Kristian Høgsberg Kristensen <k...@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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev