diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/docs/source/context.rst | 8 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_context.h | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst index 8aee21b2ed4..9d069b37d7e 100644 --- a/src/gallium/docs/source/context.rst +++ b/src/gallium/docs/source/context.rst @@ -145,6 +145,14 @@ to the array index which is used for sampling. * ``sampler_view_destroy`` destroys a sampler view and releases its reference to associated texture. +Hardware Atomic buffers +^^^^^^^^^^^^^^^^^^^^^^^ + +Buffers containing hw atomics are required to support the feature +on some drivers. + +Drivers that require this need to fill the ``set_hw_atomic_buffers`` method. + Shader Resources ^^^^^^^^^^^^^^^^ diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 0dd4ad12424..b74e6492196 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -332,6 +332,22 @@ struct pipe_context { const struct pipe_shader_buffer *buffers); /** + * Bind an array of hw atomic buffers for use by all shaders. + * And buffers that were previously bound to the specified range + * will be unbound. + * + * \param start_slot first buffer slot to bind. + * \param count number of consecutive buffers to bind. + * \param buffers array of pointers to the buffers to bind, it + * should contain at least \a count elements + * unless it's NULL, in which case no buffers will + * be bound. + */ + void (*set_hw_atomic_buffers)(struct pipe_context *, + unsigned start_slot, unsigned count, + const struct pipe_shader_buffer *buffers); + + /** * Bind an array of images that will be used by a shader. * Any images that were previously bound to the specified range * will be unbound. |