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

Marek Olšák maraeo at gmail.com
Thu May 25 13:53:26 UTC 2017


On Wed, May 24, 2017 at 1:52 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> 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.

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


More information about the mesa-dev mailing list