[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