Yes. I expect lower overhead on SI. This interface should have no impact on r600g.
Marek On Wed, Jan 7, 2015 at 3:59 PM, Aditya Avinash <adityaavina...@gmail.com> wrote: > Oh. So, we get better performance if we use atomic counters as buffers > rather than textures (images) [manipulating views are expensive]. > > Am I right? > > On Wed, Jan 7, 2015 at 8:52 AM, Marek Olšák <mar...@gmail.com> wrote: >> >> On Wed, Jan 7, 2015 at 3:44 PM, Aditya Avinash <adityaavina...@gmail.com> >> wrote: >> > >> > >> > On Wed, Jan 7, 2015 at 4:56 AM, Marek Olšák <mar...@gmail.com> wrote: >> >> >> >> From: Marek Olšák <marek.ol...@amd.com> >> >> >> >> set_shader_resources is unused. >> >> >> >> set_shader_buffers should support shader atomic counter buffers and >> >> shader >> >> storage buffers from OpenGL. >> >> >> >> The plan is to use slots 0..15 for atomic counters and slots 16..31 >> >> for storage buffers. Atomic counters are planned to be supported first. >> >> >> >> This doesn't add any interface for images. The documentation is added >> >> for future reference. >> >> --- >> >> >> >> This is the interface only. I don't plan to do anything else for now. >> >> Comments welcome. >> >> >> >> src/gallium/docs/source/context.rst | 16 ++++++++-------- >> >> src/gallium/docs/source/screen.rst | 4 ++-- >> >> src/gallium/drivers/galahad/glhd_context.c | 2 +- >> >> src/gallium/drivers/ilo/ilo_state.c | 2 +- >> >> src/gallium/drivers/nouveau/nouveau_buffer.c | 2 +- >> >> src/gallium/drivers/nouveau/nouveau_screen.c | 2 +- >> >> src/gallium/drivers/nouveau/nv50/nv50_formats.c | 2 +- >> >> src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 2 +- >> >> src/gallium/include/pipe/p_context.h | 20 >> >> +++++++++++--------- >> >> src/gallium/include/pipe/p_defines.h | 2 +- >> >> src/gallium/include/pipe/p_state.h | 10 ++++++++++ >> >> 11 files changed, 38 insertions(+), 26 deletions(-) >> >> >> >> diff --git a/src/gallium/docs/source/context.rst >> >> b/src/gallium/docs/source/context.rst >> >> index 5861f46..73fd35f 100644 >> >> --- a/src/gallium/docs/source/context.rst >> >> +++ b/src/gallium/docs/source/context.rst >> >> @@ -126,14 +126,14 @@ from a shader without an associated sampler. >> >> This >> >> means that they >> >> have no support for floating point coordinates, address wrap modes or >> >> filtering. >> >> >> >> -Shader resources are specified for all the shader stages at once using >> >> -the ``set_shader_resources`` method. When binding texture resources, >> >> -the ``level``, ``first_layer`` and ``last_layer`` pipe_surface fields >> >> -specify the mipmap level and the range of layers the texture will be >> >> -constrained to. In the case of buffers, ``first_element`` and >> >> -``last_element`` specify the range within the buffer that will be used >> >> -by the shader resource. Writes to a shader resource are only allowed >> >> -when the ``writable`` flag is set. >> >> +There are 2 types of shader resources: buffers and images. >> >> + >> >> +Buffers are specified using the ``set_shader_buffers`` method. >> >> + >> >> +Images are specified using the ``set_shader_images`` method. When >> >> binding >> >> +images, the ``level``, ``first_layer`` and ``last_layer`` >> >> pipe_image_view >> >> +fields specify the mipmap level and the range of layers the image will >> >> be >> >> +constrained to. >> >> >> >> Surfaces >> >> ^^^^^^^^ >> > >> > >> > set_shader_images are not defined in this patch. >> > Will it look similar to pipe_surface or pipe_sampler_view? >> >> There will be a separate view for images if this is approved. >> >> Marek > > > > > -- > Regards, > Aditya Atluri, > USA. > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev