[Mesa-dev] [PATCH 0/6] i965/vec4: Implement partial DF register spilling

Samuel Iglesias Gonsálvez siglesias at igalia.com
Fri Jun 16 07:36:42 UTC 2017


On Thu, 2017-06-15 at 13:15 +0200, Samuel Iglesias Gonsálvez wrote:
> Hello,
> 
> As mentioned in the patch series that implemented Ivybridge support
> ARB_gpu_shader_fp64 [0], the only missing feature in that series was
> register spilling of 64-bit data and, because of that, about ~39 fp64
> piglit tests failed to spill registers.
> 
> This new patch series implement register spilling of 64-bit data for
> IVB and splitted DF instructions on vec4 backend in general.

I have realized that the latter was not being done due to an error on
my side: I limited it to IVB in some places. I have changed the
corresponding conditions on my local branch, ready to send for a v2.
However I prefer to have some feedback of the branch before doing so.

Sam

> Unfortunately, this doesn't make the previous failed tests to pass :-
> (
> 
> Nevertheless, I think this is still useful to have it in place. The
> implementation uses 1-OWord block write/read messages by reusing the
> existing implementation. Thanks to that, we can write/read valid
> dvecN
> data to/from scratch memory even under non-uniform control flow.
> 
> If you want to test the branch:
> 
> $ git clone -b fp64-ivb-vec4-spilling \
> https://github.com/Igalia/mesa.git
> 
> Thanks,
> 
> Sam
> 
> [0] https://lists.freedesktop.org/archives/mesa-dev/2017-March/148646
> .html
> 
> Samuel Iglesias Gonsálvez (6):
>   i965/eu: add support for 1-OWord Block Read/Write messages
>   i965/vec4/generator: use 1-Oword Block Read/Write messages for DF
>     scratch writes/reads
>   i965/generator: use MRF when sending 1-OWord read messages for DF
>     scratch reads on IVB
>   i965/vec4: add support for doing DF register spilling on IVB
>   i965/vec4: fix resolve reladdr case on DF scratch read/write on IVB
>   i965/vec4: allow partial DF register spilling
> 
>  src/intel/compiler/brw_eu.h                  |  18 ++--
>  src/intel/compiler/brw_eu_defines.h          |   2 +
>  src/intel/compiler/brw_eu_emit.c             |  42 +++++++--
>  src/intel/compiler/brw_fs_generator.cpp      |   5 +-
>  src/intel/compiler/brw_shader.cpp            |   5 +
>  src/intel/compiler/brw_vec4.cpp              |  10 ++
>  src/intel/compiler/brw_vec4.h                |  17 +++-
>  src/intel/compiler/brw_vec4_generator.cpp    | 136
> +++++++++++++++++++++++++++
>  src/intel/compiler/brw_vec4_reg_allocate.cpp |  42 +++++++--
>  src/intel/compiler/brw_vec4_visitor.cpp      | 125
> ++++++++++++++++++++++--
>  10 files changed, 361 insertions(+), 41 deletions(-)
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170616/ccfa522a/attachment.sig>


More information about the mesa-dev mailing list