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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to