[Mesa-dev] [RFC PATCH 25/65] gallium: add ARB_bindless_texture interface

Nicolai Hähnle nhaehnle at gmail.com
Wed May 24 11:52:20 UTC 2017


On 19.05.2017 18:52, Samuel Pitoiset wrote:
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at 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.

Cheers,
Nicolai
-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list