[Mesa-dev] [PATCH v2 0/8] SSBO optimizations
Francisco Jerez
currojerez at riseup.net
Fri Oct 23 05:37:31 PDT 2015
Kristian Høgsberg Kristensen <krh at bitplanet.net> writes:
> Here's an updated and expanded ssbo optimization series. I found a bit
> of low-hanging fruit around dynamic ssbo array indexing. I removed the
> IMM shortcut in emit_uniformize() and added the constant propagation
> for the read and write opcodes. The result is the same for constant
> indexing, and it helps dynamic indexing a little bit.
>
> There's still a redundant MOV in the dynamic case that I'm going to
> punt on for now. We want to copy propagate the scalar surface index
> into the send instruction, but that fails as that's considered
> !can_do_source_mods(), but the surface index argument isn't part of
> the payload and can accept misc strides and modifiers.
>
Right... It seems kind of an abuse of can_do_source_mods() to use it in
order to find out whether the instruction supports scalar sources.
Anyway we could probably make it depend on the source index passed as
argument.
> I also took a look at ssbo stores and made it write out contiguous
> channels in the writemask together, in particular, the common case of
> writing a vec4 goes from 4 to 1 write instruction.
>
> Kristian Høgsberg Kristensen (8):
> i965: Don't use message headers for untyped reads
> i965/fs: Read all components of a SSBO field with one send
> i965/fs: Use unsigned immediate 0 when eliminating
> SHADER_OPCODE_FIND_LIVE_CHANNEL
> i965/fs: Don't uniformize surface index twice
> i965/fs: Avoid scalar destinations in emit_uniformize()
> i965/fs: Drop offset_reg temporary in ssbo load
> i965/fs: Optimize ssbo stores
> i965/fs: Allow copy propagating into new surface access opcodes
>
> src/mesa/drivers/dri/i965/brw_eu_emit.c | 3 +-
> src/mesa/drivers/dri/i965/brw_fs.cpp | 4 +-
> src/mesa/drivers/dri/i965/brw_fs_builder.h | 8 +-
> .../drivers/dri/i965/brw_fs_copy_propagation.cpp | 15 ++++
> src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 91 +++++++++-------------
> 5 files changed, 58 insertions(+), 63 deletions(-)
>
> --
> 2.6.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151023/2718960a/attachment-0001.sig>
More information about the mesa-dev
mailing list