[Mesa-dev] [PATCH v4 00/28] i965: Ivybridge ARB_gpu_shader_fp64 / OpenGL 4.0

Samuel Iglesias Gonsálvez siglesias at igalia.com
Mon Mar 27 08:26:58 UTC 2017


As I am sending some patch updates, to avoid any confusion I want to
clarify than the patches waiting for review are: 9, 14, 16-24.

Sam

On Mon, Mar 20, 2017 at 10:16:57AM +0100, Samuel Iglesias Gonsálvez wrote:
> Hi,
> 
> This series implements initial support for Ivybridge FP64 for both
> align16 and align1 backends, and with that we can enable FP64 and
> OpenGL 4.0 in Ivybridge. 
> 
> These patches are available in our repository for testing. You can
> clone it using the following command:
> 
> $ git clone -b i965-fp64-gen7-ivb-scalar-vec4-rc4 \
> https://github.com/Igalia/mesa.git
> 
> This is the fourth version of the patch series. The changes against v3
> are: generalization of d2x pass to allow conversions to narrower or
> equal size types and rename it, fix properly the DF CMP with null
> destination bug, split VEC4_OPCODE_FROM_DOUBLE opcode into two (one
> for conversion, another for gathering the spread data).
> 
> The only feature missing in this series would be register spilling of
> 64-bit data. With this series all existing FP64 tests in Piglit pass on
> Ivybridge, except for ~36 tests that fail to spill registers (mostly
> the same varying-packing tests that failed in the scalar backend
> before Curro fixed the scalar spilling implementation for SIMD32).
> 
> Best regards,
> 
> Sam
> 
> 
> Francisco Jerez (1):
>   i965/fs: Get 64-bit indirect moves working on IVB.
> 
> Iago Toral Quiroga (1):
>   i965/disasm: also print nibctrl in IVB for execsize=8
> 
> Juan A. Suarez Romero (7):
>   i965/fs: add helper to retrieve instruction data size
>   i965/fs: double regioning parameters and execsize for DF in IVB/BYT
>   i965/fs: fix dst stride in IVB/BYT type conversions
>   i965/fs: fix lower SIMD width for IVB/BYT's MOV_INDIRECT
>   i965/vec4: keep original type when dealing with null registers
>   i965/vec4: fix VEC4_OPCODE_FROM_DOUBLE for IVB/BYT
>   i965/vec4: consider subregister offset in live variables
> 
> Matt Turner (5):
>   i965: Handle IVB DF differences in the validator.
>   i965: Use <0,2,1> region for scalar DF sources on IVB/BYT.
>   i965: Use source region <1,2,0> when converting to DF.
>   i965/vec4: Fix exec size for MOVs {SET,PICK}_{HIGH,LOW}_32BIT.
>   i965: Use correct VertStride on align16 instructions.
> 
> Samuel Iglesias Gonsálvez (14):
>   i965/fs: clamp exec_size when an instruction has a scalar DF source
>   i965/fs: generalize the legalization d2x pass
>   i965/fs: rename lower_d2x to lower_narrow_conversions
>   i965/fs: lower all non-force_writemask_all DF instructions to SIMD4 on
>     IVB/BYT
>   i965/vec4: split DF instructions and later double its execsize in
>     IVB/BYT
>   i965/vec4: split d2x conversion and data gathering from one opcode to
>     two explicit ones
>   i965/vec4: fix assert to detect SIMD lowered DF instructions in IVB
>   i965/vec4: fix SIMD-width lowering for VEC4_OPCODE_FROM_DOUBLE
>   i965/vec4: use vec4_builder to emit instructions in setup_imm_df()
>   i965/vec4: don't do horizontal stride on some register file types
>   i965/vec4/dce: improve track of partial flag register writes
>   i965: enable ARB_gpu_shader_fp64 for Ivybridge/Baytrail
>   i965: enable OpenGL 4.0 to Ivybridge/Baytrail
>   docs: mark GL_ARB_gpu_shader_fp64 and OpenGL 4.0 as supported by
>     i965/gen7+
> 
>  docs/features.txt                                  |   4 +-
>  src/intel/Makefile.sources                         |   2 +-
>  src/intel/compiler/brw_disasm.c                    |   6 +-
>  src/intel/compiler/brw_eu_emit.c                   |  72 ++++++++++--
>  src/intel/compiler/brw_eu_validate.c               |  24 ++++
>  src/intel/compiler/brw_fs.cpp                      |  54 ++++++---
>  src/intel/compiler/brw_fs.h                        |  16 ++-
>  src/intel/compiler/brw_fs_generator.cpp            | 104 +++++++++++++++--
>  src/intel/compiler/brw_fs_lower_d2x.cpp            |  78 -------------
>  .../compiler/brw_fs_lower_narrow_conversions.cpp   | 123 +++++++++++++++++++++
>  src/intel/compiler/brw_ir_vec4.h                   |  37 ++++++-
>  src/intel/compiler/brw_vec4.cpp                    |  19 +++-
>  src/intel/compiler/brw_vec4.h                      |   3 +-
>  .../compiler/brw_vec4_dead_code_eliminate.cpp      |   2 +-
>  src/intel/compiler/brw_vec4_generator.cpp          |  59 ++++++----
>  src/intel/compiler/brw_vec4_live_variables.h       |   4 +-
>  src/intel/compiler/brw_vec4_nir.cpp                |  16 +--
>  src/mesa/drivers/dri/i965/intel_extensions.c       |   4 +-
>  src/mesa/drivers/dri/i965/intel_screen.c           |   6 +-
>  19 files changed, 474 insertions(+), 159 deletions(-)
>  delete mode 100644 src/intel/compiler/brw_fs_lower_d2x.cpp
>  create mode 100644 src/intel/compiler/brw_fs_lower_narrow_conversions.cpp
> 
> -- 
> 2.11.0
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170327/43b3678e/attachment-0001.sig>


More information about the mesa-dev mailing list