Mesa (master): glsl_to_tgsi: add support for shadow cube map sampling.

Dave Airlie airlied at kemper.freedesktop.org
Wed Jan 11 17:38:19 UTC 2012


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Jan 11 13:23:38 2012 +0000

glsl_to_tgsi: add support for shadow cube map sampling.

This along with the TGSI support lets the piglit sampler-cube-shadow
test pass on softpipe.

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    5 +++--
 src/mesa/state_tracker/st_mesa_to_tgsi.c   |    1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index cb44e2b..a947e18 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -2646,8 +2646,9 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
       ir->shadow_comparitor->accept(this);
 
       /* XXX This will need to be updated for cubemap array samplers. */
-      if (sampler_type->sampler_dimensionality == GLSL_SAMPLER_DIM_2D &&
-          sampler_type->sampler_array) {
+      if ((sampler_type->sampler_dimensionality == GLSL_SAMPLER_DIM_2D &&
+	   sampler_type->sampler_array) ||
+	  sampler_type->sampler_dimensionality == GLSL_SAMPLER_DIM_CUBE) {
          coord_dst.writemask = WRITEMASK_W;
       } else {
          coord_dst.writemask = WRITEMASK_Z;
diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index ac61534..e467ffd 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -279,6 +279,7 @@ translate_texture_target( GLuint textarget,
       case TEXTURE_RECT_INDEX: return TGSI_TEXTURE_SHADOWRECT;
       case TEXTURE_1D_ARRAY_INDEX: return TGSI_TEXTURE_SHADOW1D_ARRAY;
       case TEXTURE_2D_ARRAY_INDEX: return TGSI_TEXTURE_SHADOW2D_ARRAY;
+      case TEXTURE_CUBE_INDEX: return TGSI_TEXTURE_SHADOWCUBE;
       default: break;
       }
    }




More information about the mesa-commit mailing list