[Mesa-dev] [PATCH 00/15] ARB_gl_spirv series 4: support for XFB and Geometry Streams

Alejandro Piñeiro apinheiro at igalia.com
Fri Jul 20 15:08:29 UTC 2018


this is the fourth series for the ongoing support for
ARB_gl_spirv. The main focus of this series is providing support for
transform feedback and geometry streams. Those two features are not
supported on Vulkan, so most of the patches are spirv/nir. Fortunately
the changes there are small, and in the end the bigger patch is the
NIR-based linker.

The tree for this series can be found on the following repository:

And can be tested with the following piglit branch:


Alejandro Piñeiro (4):
  spirv/nir: allow Stream decoration for structs too
  compiler/spirv: add XFB and GeometryStreams capability check support
  arb_gl_spirv: add calls to several nir lowerings
  i965: enable XFB and GeometryStreams for gen7+

Neil Roberts (11):
  nir: Add members for the explicit XFB properties to nir_variable
  spirv: Handle SpvExecutionModeXfb
  spirv: Handle XFB variable decorations
  mesa/glspirv: Set last_vert_prog
  spirv: Handle the SpvDecorationStream decoration
  spirv/nir: Set info.gs.uses_end_primitive
  spirv/nir: Fix the stream ID when emitting a primitive or vertex
  spirv/nir: Set info.gs.uses_streams
  nir/types: Add a wrapper to access gl_type
  nir/linker: Add the start of a pure-NIR linker for XFB
  i965: Link XFB varyings for SPIR-V shaders

 src/compiler/Makefile.sources           |   1 +
 src/compiler/glsl/gl_nir_link_xfb.c     | 289 ++++++++++++++++++++++++++++++++
 src/compiler/glsl/gl_nir_linker.h       |   3 +
 src/compiler/glsl/glsl_to_nir.cpp       |   4 +
 src/compiler/glsl/meson.build           |   1 +
 src/compiler/nir/nir.h                  |  27 ++-
 src/compiler/nir_types.cpp              |   6 +
 src/compiler/nir_types.h                |   2 +
 src/compiler/shader_info.h              |   2 +
 src/compiler/spirv/spirv_to_nir.c       |  35 +++-
 src/compiler/spirv/vtn_variables.c      |  17 +-
 src/mesa/drivers/dri/i965/brw_context.c |   2 +
 src/mesa/drivers/dri/i965/brw_link.cpp  |   1 +
 src/mesa/main/glspirv.c                 |  15 ++
 14 files changed, 394 insertions(+), 11 deletions(-)
 create mode 100644 src/compiler/glsl/gl_nir_link_xfb.c


More information about the mesa-dev mailing list