[Mesa-dev] [PATCH 0/4] Implement separate index spaces for UBOs and SSBOs
Kristian Høgsberg
krh at bitplanet.net
Tue Oct 13 15:49:59 PDT 2015
On Fri, Oct 09, 2015 at 03:23:33PM +0200, Iago Toral Quiroga wrote:
> See the rationale for this in [1], no piglit regressions observed in my
> IvyBridge laptop.
>
> Patch 1: Renames {Num}UniformBlocks to {Num}BufferInterfaceBlocks. This is
> more consistent with the current implementation, since right now
> UniformBlocks contains both UBOs and SSBOs.
>
> Patch 2: Adds separate UniformBlocks and ShaderStorageBlocks arrays.
>
> Patch 3: Changes lower_ubo_reference pass to use UniformBlocks and
> ShaderStorageBlocks instead of BufferInterfaceBlocks so we get
> block indices in separate index spaces.
>
> Patch 4: Changes i965 to work with separate index spaces.
>
> I think there are other places that use BufferInterfaceBlocks after
> linking that can be rewritten to use UniformBlocks or ShaderStorageBlocks
> more efficiently. I'd like to tackle that too, but I think it makes sense
> to land this first I think.
Sure, that sounds good. I wasn't sure about the name
'BufferInterfaceBlocks', but thinking about it, I think it's just
right. They're interface blocks that are backed by buffers (as
opposed to input or output interface blocks).
Series
Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
> [1] http://lists.freedesktop.org/archives/mesa-dev/2015-October/095951.html
>
> Iago Toral Quiroga (4):
> mesa: Rename {Num}UniformBlocks to {Num}BufferInterfaceBlocks
> mesa: Add {Num}UniformBlocks and {Num}ShaderStorageBlocks to
> gl_shader{_program}
> glsl/lower_ubo_reference: lower UBOs and SSBOs to separate index
> spaces
> i965: Adapt SSBOs to work with their own separate index space
>
> src/glsl/link_uniform_initializers.cpp | 4 +-
> src/glsl/link_uniforms.cpp | 22 ++---
> src/glsl/linker.cpp | 105 ++++++++++++++++++-----
> src/glsl/lower_ubo_reference.cpp | 22 +++--
> src/glsl/nir/glsl_to_nir.cpp | 2 +-
> src/glsl/standalone_scaffolding.cpp | 11 ++-
> src/mesa/drivers/dri/i965/brw_context.h | 4 +-
> src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 24 +++---
> src/mesa/drivers/dri/i965/brw_shader.cpp | 7 +-
> src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 24 +++---
> src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 79 +++++++++--------
> src/mesa/main/mtypes.h | 53 +++++++++++-
> src/mesa/main/shader_query.cpp | 4 +-
> src/mesa/main/shaderapi.c | 4 +-
> src/mesa/main/shaderobj.c | 4 +-
> src/mesa/main/uniforms.c | 12 +--
> src/mesa/state_tracker/st_atom_constbuf.c | 4 +-
> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 +-
> 18 files changed, 257 insertions(+), 132 deletions(-)
>
> --
> 1.9.1
>
> _______________________________________________
> 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