[Mesa-dev] [PATCH v4 0/9] i965/gen7 instanced GS support for ARB_gpu_shader5

Jordan Justen jordan.l.justen at intel.com
Thu Feb 6 18:28:00 PST 2014


v4:
 * Merge with recent compute shader parsing of
   input layout qualifiers

v3:
 * Fix major brokenness of dual instance mode operation
   using Paul's suggestions
 * Update parsing to allow separate primitive and
   invocation declarations. Fixes piglit test:
   spec/arb_gpu_shader5/execution/invocation-id-in-separate-gs
 * New: glsl: Generate error for invalid input layout declarations
   This is made easier by the in_qualifier addition in
   this series, but it otherwise an unrelated bug fix.
 * Added check for valid invocation count values

v2:
 * Convert gl_InvocationID to a system value

No piglit regressions on HSW.

Instanced GS support requires overriding ARB_gpu_shader5 via
MESA_EXTENSION_OVERRIDE=GL_ARB_gpu_shader5, since not all
parts of GL_ARB_gpu_shader5 are enabled.

Patches are available at:
git://people.freedesktop.org/~jljusten/mesa gs-inv-id-v4

Jordan Justen (9):
  glsl: convert GS input primitive to use ast_type_qualifier
  glsl: Generate error for invalid input layout declarations
  glsl: parse invocations layout qualifier for ARB_gpu_shader5
  glsl/linker: produce gl_shader_program Geom.Invocations
  mesa: initialize gl_geometry_program Invocations field
  main/shaderapi: GL_GEOMETRY_SHADER_INVOCATIONS GetProgramiv support
  glsl: add gl_InvocationID variable for ARB_gpu_shader5
  i965: support gl_InvocationID for gen7
  i965: support instanced GS on gen7

 src/glsl/ast.h                                    |  16 +++-
 src/glsl/ast_to_hir.cpp                           |   5 +-
 src/glsl/ast_type.cpp                             | 110 ++++++++++++++++++++++
 src/glsl/builtin_variables.cpp                    |   2 +
 src/glsl/glsl_parser.yy                           |  73 +++++---------
 src/glsl/glsl_parser_extras.cpp                   |  10 +-
 src/glsl/glsl_parser_extras.h                     |   7 +-
 src/glsl/linker.cpp                               |  18 ++++
 src/mesa/drivers/dri/i965/brw_context.h           |   2 +
 src/mesa/drivers/dri/i965/brw_defines.h           |  13 +++
 src/mesa/drivers/dri/i965/brw_shader.cpp          |   2 +
 src/mesa/drivers/dri/i965/brw_vec4.h              |   1 +
 src/mesa/drivers/dri/i965/brw_vec4_generator.cpp  |  20 ++++
 src/mesa/drivers/dri/i965/brw_vec4_gs.c           |   2 +
 src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp |  22 ++++-
 src/mesa/drivers/dri/i965/gen7_gs_state.c         |   2 +
 src/mesa/main/mtypes.h                            |  11 +++
 src/mesa/main/shaderapi.c                         |   7 ++
 src/mesa/program/program.c                        |   1 +
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp        |   1 +
 src/mesa/state_tracker/st_program.c               |   1 +
 21 files changed, 261 insertions(+), 65 deletions(-)

-- 
1.9.rc1



More information about the mesa-dev mailing list