From: Rob Clark <robcl...@freedesktop.org> To avoid propagating the tgsi semantic name/index hack further, and to avoid a generic nir lowering pass knowing about tgsi semantic, first I needed to switch over to using VERT_ATTRIB_/VARYING_SLOT_/ FRAG_RESULT_. So I dusted off Eric's patch, split out the vc4 conversion into a separate patch, and converted freedreno/ir3.
Along the way, I realized that shader_enum missed something along the lines of tgsi_strings.c to give us nice human readable names for error messages, debug prints, etc. So I added shader_enums.c with 'const char * foo_name()' fxns for each of the enums and wired up nir_print to use that. For the conversion to using shader_enum's, I also ended up needing to add a SYSTEM_VALUE_VERTEX_CNT, which is an internal sys-val used by adreno for calculating where to write stream-out values. Finally after all that, add nir_lower_clip and wire it up in ir3 and a4xx. (a3xx still TODO since it has partial support to do GLES1 style user-clip-planes in hardware, although it will need the lowering in some cases still.) And after all that, neverball renders correctly ;-) Eric Anholt (2): gallium/ttn: Convert to using VARYING_SLOT_* / FRAG_RESULT_*. vc4: convert from tgsi semantic/index to varying-slot Rob Clark (9): glsl: shader-enum to name debug fxns nir/print: print symbolic names from shader-enum freedreno/ir3: switch to shader_enums.h interp constants glsl: add SYSTEM_VALUE_VERTEX_CNT freedreno/ir3: convert from tgsi semantic/index to varying-slot nir: add sysval for user-clip-planes nir: add lowering stage for user-clip-planes / clipdist freedreno/ir3: add support for ucp freedreno/a4xx: wire up ucp support src/Makefile.am | 1 + src/gallium/auxiliary/nir/tgsi_to_nir.c | 181 ++++++++++- src/gallium/auxiliary/nir/tgsi_to_nir.h | 6 + src/gallium/drivers/freedreno/a3xx/fd3_emit.c | 30 +- src/gallium/drivers/freedreno/a3xx/fd3_program.c | 54 ++-- src/gallium/drivers/freedreno/a4xx/fd4_draw.c | 1 + src/gallium/drivers/freedreno/a4xx/fd4_emit.c | 31 +- src/gallium/drivers/freedreno/a4xx/fd4_program.c | 61 ++-- src/gallium/drivers/freedreno/ir3/ir3_cmdline.c | 8 + .../drivers/freedreno/ir3/ir3_compiler_nir.c | 209 ++++++------- src/gallium/drivers/freedreno/ir3/ir3_shader.c | 116 +++++-- src/gallium/drivers/freedreno/ir3/ir3_shader.h | 91 +++--- src/gallium/drivers/vc4/vc4_context.h | 9 +- src/gallium/drivers/vc4/vc4_nir_lower_io.c | 18 +- src/gallium/drivers/vc4/vc4_opt_dead_code.c | 2 +- src/gallium/drivers/vc4/vc4_program.c | 174 +++++------ src/gallium/drivers/vc4/vc4_qir.c | 2 +- src/gallium/drivers/vc4/vc4_qir.h | 21 +- src/glsl/Makefile.sources | 1 + src/glsl/nir/nir.h | 3 + src/glsl/nir/nir_intrinsics.h | 23 +- src/glsl/nir/nir_lower_clip.c | 341 +++++++++++++++++++++ src/glsl/nir/nir_print.c | 73 ++++- src/glsl/shader_enums.c | 202 ++++++++++++ src/glsl/shader_enums.h | 59 ++++ src/mesa/Makefile.sources | 4 +- 26 files changed, 1306 insertions(+), 415 deletions(-) create mode 100644 src/glsl/nir/nir_lower_clip.c create mode 100644 src/glsl/shader_enums.c -- 2.4.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev