i965: Call nir_lower_samplers for ARB programs.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 6 Feb 2019 03:15:46 +0000 (19:15 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 12 Feb 2019 05:34:30 +0000 (21:34 -0800)
An upcoming patch will start building derefs in prog_to_nir, at which
point we'll need to lower them to indexes.

This gets both GLSL and non-GLSL shaders using the same paths.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_program.c

index 1038d9a47a0a7d2de0ed3c43dd3d7311f270c358..5dedca5a7194f5729f134b431a1852d7379d7386 100644 (file)
@@ -41,6 +41,7 @@
 #include "util/ralloc.h"
 #include "compiler/glsl/ir.h"
 #include "compiler/glsl/program.h"
+#include "compiler/glsl/gl_nir.h"
 #include "compiler/glsl/glsl_to_nir.h"
 #include "glsl/float64_glsl.h"
 
@@ -151,6 +152,7 @@ brw_create_nir(struct brw_context *brw,
    } else {
       nir = prog_to_nir(prog, options);
       NIR_PASS_V(nir, nir_lower_regs_to_ssa); /* turn registers into SSA */
+      NIR_PASS_V(nir, gl_nir_lower_samplers, NULL);
    }
    nir_validate_shader(nir, "before brw_preprocess_nir");