[Mesa-dev] [PATCH v2 75/78] i965/vec4: Generate missing NIR for fixed-function vertex programs
Eduardo Lima Mitev
elima at igalia.com
Thu Jul 23 03:17:55 PDT 2015
From: Antia Puentes <apuentes at igalia.com>
Generate NIR shader for fixed-function vertex programs not only when
we use the scalar backend but also when the NIR-vec4 pass is enabled.
---
src/mesa/drivers/dri/i965/brw_vec4.cpp | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index a569c58..a4a1b96 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -1919,18 +1919,20 @@ brw_vs_emit(struct brw_context *brw,
if (unlikely(INTEL_DEBUG & DEBUG_VS))
brw_dump_ir("vertex", prog, &shader->base, &vp->Base);
- if (brw->intelScreen->compiler->scalar_vs) {
- if (!vp->Base.nir) {
- /* Normally we generate NIR in LinkShader() or
- * ProgramStringNotify(), but Mesa's fixed-function vertex program
- * handling doesn't notify the driver at all. Just do it here, at
- * the last minute, even though it's lame.
- */
- assert(vp->Base.Id == 0 && prog == NULL);
- vp->Base.nir =
- brw_create_nir(brw, NULL, &vp->Base, MESA_SHADER_VERTEX, false);
- }
+ if (!vp->Base.nir &&
+ (brw->intelScreen->compiler->scalar_vs ||
+ brw->intelScreen->compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions != NULL)) {
+ /* Normally we generate NIR in LinkShader() or
+ * ProgramStringNotify(), but Mesa's fixed-function vertex program
+ * handling doesn't notify the driver at all. Just do it here, at
+ * the last minute, even though it's lame.
+ */
+ assert(vp->Base.Id == 0 && prog == NULL);
+ vp->Base.nir =
+ brw_create_nir(brw, NULL, &vp->Base, MESA_SHADER_VERTEX, false);
+ }
+ if (brw->intelScreen->compiler->scalar_vs) {
prog_data->base.dispatch_mode = DISPATCH_MODE_SIMD8;
fs_visitor v(brw->intelScreen->compiler, brw,
--
2.1.4
More information about the mesa-dev
mailing list