summaryrefslogtreecommitdiffstats
path: root/src/gallium/include
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2017-03-29 01:34:05 +0200
committerSamuel Pitoiset <[email protected]>2017-06-14 10:04:36 +0200
commit8a68b4de080ea3e88a9dee91730d9c35d496f6e0 (patch)
tree7ce674b435275d9c4b4cf94a9ee6427e5f82ad15 /src/gallium/include
parent973822bcee577a01f8b8281bbcd2261d18f074b3 (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.h59
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);
};