[Mesa-dev] [PATCH 2/4] gallium: add PIPE_BIND_COMMAND_BUFFER

Christoph Bumiller e0425955 at student.tuwien.ac.at
Fri Apr 5 03:42:42 PDT 2013


On 04.04.2013 21:53, Christoph Bumiller wrote:
> On 04.04.2013 21:44, Jose Fonseca wrote:
>> I think that PIPE_BIND_INDIRECT_BUFFER would be more self-descriptive.

Marek suggested PIPE_BIND_DRAW_INDIRECT_BUFFER, but I think that's too
specific because there's also a DISPATCH_INDIRECT buffer for compute
shaders.

And just "INDIRECT_BUFFER" without the _DRAW_ doesn't seem so
self-descriptive if you're not thinking in the right context.

I'd like to stick with BIND_COMMAND_BUFFER, or maybe
BIND_COMMAND_ARGS_BUFFER ...

>> Or do you envision other uses of such buffer?
> It's possible that at some point we add a mechanism to let the driver
> store arbitrary commands into a buffer created by the st, or have
> resources used as arguments conditional rendering ...
> Lost of possiblities, but nothing concrete, and for the command lists
> like with D3D's deferred contexts we'd probably return opaque objects
> that can contain more auxiliary data.
> I like it to be more generic, but then it could turn out that there be
> different requirements on these "command source" buffers in the future
> ... I'm undecided now.
>
>
>> Jose
>>
>> ----- Original Message -----
>>> Intended for use with GL_ARB_draw_indirect's DRAW_INDIRECT_BUFFER
>>> target or for D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS.
>>> ---
>>>  src/gallium/docs/source/screen.rst   |    2 ++
>>>  src/gallium/include/pipe/p_defines.h |    1 +
>>>  2 files changed, 3 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/src/gallium/docs/source/screen.rst
>>> b/src/gallium/docs/source/screen.rst
>>> index c1a3c0b..f8cdded 100644
>>> --- a/src/gallium/docs/source/screen.rst
>>> +++ b/src/gallium/docs/source/screen.rst
>>> @@ -306,6 +306,8 @@ resources might be created and handled quite differently.
>>>    bound to the graphics pipeline as a shader resource.
>>>  * ``PIPE_BIND_COMPUTE_RESOURCE``: A buffer or texture that can be
>>>    bound to the compute program as a shader resource.
>>> +* ``PIPE_BIND_COMMAND_BUFFER``: A buffer or that may be sourced by the
>>> +  GPU command processor, like with indirect drawing.
>>>  
>>>  .. _pipe_usage:
>>>  
>>> diff --git a/src/gallium/include/pipe/p_defines.h
>>> b/src/gallium/include/pipe/p_defines.h
>>> index 5b00acc..2b79f2a 100644
>>> --- a/src/gallium/include/pipe/p_defines.h
>>> +++ b/src/gallium/include/pipe/p_defines.h
>>> @@ -315,6 +315,7 @@ enum pipe_flush_flags {
>>>  #define PIPE_BIND_GLOBAL               (1 << 18) /* set_global_binding */
>>>  #define PIPE_BIND_SHADER_RESOURCE      (1 << 19) /* set_shader_resources */
>>>  #define PIPE_BIND_COMPUTE_RESOURCE     (1 << 20) /* set_compute_resources */
>>> +#define PIPE_BIND_COMMAND_BUFFER       (1 << 21) /* pipe_draw_info.indirect
>>> */
>>>  
>>>  /* The first two flags above were previously part of the amorphous
>>>   * TEXTURE_USAGE, most of which are now descriptions of the ways a
>>> --
>>> 1.7.3.4
>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list