diff options
author | Samuel Pitoiset <[email protected]> | 2017-03-29 01:34:05 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-06-14 10:04:36 +0200 |
commit | 8a68b4de080ea3e88a9dee91730d9c35d496f6e0 (patch) | |
tree | 7ce674b435275d9c4b4cf94a9ee6427e5f82ad15 /src/gallium/include | |
parent | 973822bcee577a01f8b8281bbcd2261d18f074b3 (diff) |
gallium: add ARB_bindless_texture interface
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/include')
-rw-r--r-- | src/gallium/include/pipe/p_context.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 4b75386a65b..c2b1ad217c8 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -766,6 +766,65 @@ struct pipe_context { unsigned last_level, unsigned first_layer, unsigned last_layer); + + /** + * Create a 64-bit texture handle. + * + * \param ctx pipe context + * \param view pipe sampler view object + * \param state pipe sampler state template + * \return a 64-bit texture handle if success, 0 otherwise + */ + uint64_t (*create_texture_handle)(struct pipe_context *ctx, + struct pipe_sampler_view *view, + const struct pipe_sampler_state *state); + + /** + * Delete a texture handle. + * + * \param ctx pipe context + * \param handle 64-bit texture handle + */ + void (*delete_texture_handle)(struct pipe_context *ctx, uint64_t handle); + + /** + * Make a texture handle resident. + * + * \param ctx pipe context + * \param handle 64-bit texture handle + * \param resident TRUE for resident, FALSE otherwise + */ + void (*make_texture_handle_resident)(struct pipe_context *ctx, + uint64_t handle, bool resident); + + /** + * Create a 64-bit image handle. + * + * \param ctx pipe context + * \param image pipe image view template + * \return a 64-bit image handle if success, 0 otherwise + */ + uint64_t (*create_image_handle)(struct pipe_context *ctx, + const struct pipe_image_view *image); + + /** + * Delete an image handle. + * + * \param ctx pipe context + * \param handle 64-bit image handle + */ + void (*delete_image_handle)(struct pipe_context *ctx, uint64_t handle); + + /** + * Make an image handle resident. + * + * \param ctx pipe context + * \param handle 64-bit image handle + * \param access GL_READ_ONLY, GL_WRITE_ONLY or GL_READ_WRITE + * \param resident TRUE for resident, FALSE otherwise + */ + void (*make_image_handle_resident)(struct pipe_context *ctx, uint64_t handle, + unsigned access, bool resident); }; |