On Wed, May 24, 2017 at 1:52 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > On 19.05.2017 18:52, Samuel Pitoiset wrote: >> >> Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> >> --- >> 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.
BTW, shaders and sampler views are shared across a GL share group too. I think this is the same as sampler views. radeonsi is OK with that. I don't think any other drivers except nouveau will want to support bindless textures. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev