On 19.05.2017 18:52, Samuel Pitoiset wrote:
Signed-off-by: Samuel Pitoiset <[email protected]> --- src/gallium/include/pipe/p_context.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 4b75386a65..83eb1c9b08 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -766,6 +766,22 @@ struct pipe_context { unsigned last_level, unsigned first_layer, unsigned last_layer); + + /** + * Bindless texture/image handles interface. + */ + uint64_t (*create_texture_handle)(struct pipe_context *ctx, + struct pipe_resource *res, + struct pipe_sampler_view *view, + const struct pipe_sampler_state *state); + void (*delete_texture_handle)(struct pipe_context *ctx, uint64_t handle); + void (*make_texture_handle_resident)(struct pipe_context *ctx, + uint64_t handle, bool resident); + uint64_t (*create_image_handle)(struct pipe_context *ctx, + const struct pipe_image_view *image); + void (*delete_image_handle)(struct pipe_context *ctx, uint64_t handle); + void (*make_image_handle_resident)(struct pipe_context *ctx, uint64_t handle, + unsigned access, bool resident);
Should the create/delete functions be pipe_screen functions? Handles are shared across a GL share group, so the current implementation with a per-context hash of handles is definitely wrong. I still need to go over it in detail.
Cheers, Nicolai -- Lerne, wie die Welt wirklich ist, Aber vergiss niemals, wie sie sein sollte. _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
