Mesa (master): i965/fs: Use VARYING_SLOT checks rather than strcmp().

Kenneth Graunke kwg at kemper.freedesktop.org
Thu Feb 19 23:18:48 UTC 2015


Module: Mesa
Branch: master
Commit: 231267bf011e1fa6edb52ffad27fcbca8e0e28e1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=231267bf011e1fa6edb52ffad27fcbca8e0e28e1

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sat Jan 31 04:31:16 2015 -0800

i965/fs: Use VARYING_SLOT checks rather than strcmp().

Comparing the location field is equivalent and more efficient.

We'll also need this when we start using NIR for ARB programs, as our
NIR converter will set the location field correctly, but probably won't
use the GLSL names for these concepts.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>

---

 src/mesa/drivers/dri/i965/brw_fs_nir.cpp     |    2 +-
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index 850f132..2123829 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
@@ -195,7 +195,7 @@ fs_visitor::nir_setup_inputs(nir_shader *shader)
       fs_reg varying = offset(nir_inputs, var->data.driver_location);
 
       fs_reg reg;
-      if (!strcmp(var->name, "gl_FragCoord")) {
+      if (var->data.location == VARYING_SLOT_POS) {
          reg = *emit_fragcoord_interpolation(var->data.pixel_center_integer,
                                              var->data.origin_upper_left);
          emit_percomp(MOV(varying, reg), 0xF);
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index a2343c6..04e0f9a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -92,10 +92,10 @@ fs_visitor::visit(ir_variable *ir)
          reg = new(this->mem_ctx)
             fs_reg(ATTR, ir->data.location,
                    brw_type_for_base_type(ir->type->get_scalar_type()));
-      } else if (!strcmp(ir->name, "gl_FragCoord")) {
+      } else if (ir->data.location == VARYING_SLOT_POS) {
          reg = emit_fragcoord_interpolation(ir->data.pixel_center_integer,
                                             ir->data.origin_upper_left);
-      } else if (!strcmp(ir->name, "gl_FrontFacing")) {
+      } else if (ir->data.location == VARYING_SLOT_FACE) {
 	 reg = emit_frontfacing_interpolation();
       } else {
          reg = new(this->mem_ctx) fs_reg(vgrf(ir->type));




More information about the mesa-commit mailing list