Series Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com>

On 2015-11-23 04:53:07, Iago Toral Quiroga wrote:
> Fixes linking issues when copying large variables backed by buffers (ubos, 
> ssbos, etc).
> In these cases, lower_ubo_reference would split the rhs into loads for all 
> the elements 
> first and then the lhs into writes to all the elements. This is not 
> efficient, because
> it requires the whole set of loads to be alive until we start consuming them 
> with
> the writes.       
> 
> These patches fix this by splitting array and struct copies into multiple
> single-element copies so that we generate consecutive loads and stores for 
> each
> element, reducing the lifespan of the loads and thus reducing register 
> pressure.
> 
> No regressions in dEQP's SSBO functional tests.
> 
> Fixes:
> spec/arb_shader_storage_buffer_object/execution/large-field-copy.shader_test
> spec/arb_shader_storage_buffer_object/linker/copy-large-array.shader_test
> 
> Iago Toral Quiroga (2):
>   glsl/lower_ubo_reference: split array copies into element copies
>   glsl/lower_ubo_reference: split struct copies into element copies
> 
>  src/glsl/lower_ubo_reference.cpp | 119 
> +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 119 insertions(+)
> 
> -- 
> 1.9.1
> 
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to