WIP: st/mesa: Replace glsl_to_tgsi() with glsl_to_nir() and nir_to_tgsi().
WIP: st/mesa: Replace glsl_to_tgsi() with glsl_to_nir() and nir_to_tgsi().
Now that nir_to_tgsi exists, we can get rid of the much larger
infrastructure to support converting GLSL to TGSI.
As with the NIR-to-TGSI usage in softpipe, this comes the downside of
increased TGSI register file usage for the remaining TGSI drivers, but
with the upside of making sure every driver benefits from shared NIR
optimizations.
Removing 14.5k lines and unifying major paths through the compiler feels well worth finishing this off. Some remaining issues:
-
Lots of piglit regressions on
SOFTPIPE_DEBUG=use_tgsi
(such asgetuniform-03 -auto -fbo
), at least some of which are an issue ingl_nir_link_uniforms.c
with buffer overflows in theUniformRemapTable
- Need to set size of UBOs (virgl)
- Need to translate HW atomics (virgl)
- ntt needs to set cont/break labels (svga, nv30, nv50)
-
ntt needs to support
PIPE_CAP_LOAD_CONSTBUF
(nv, llvmpipe, GL using rasterpos/select/feedback modes) - ntt needs to declare SSBO's BUFFERs (r600, nv50 llvmpipe)
- ntt needs to set ArrayID for GS inputs (r600)
- ntt needs to set ArrayID for tess outputs (svga)
- ntt needs to emit sample index in image load/store (r600, nouveau, llvmpipe)
- ntt should probably support emitting txp (i915g, r300)
- ntt should probably support generating TXF_LZ (nv, llvmpipe)
- !7658 (merged) fixes
- depth clamp lowering (virgl)