This enables the new shadow texture functions in GLSL 1.30.

Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-01
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-02
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-03
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-04
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-05
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-06
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-07
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-08
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-09
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-10
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-11
Test-case: piglit:spec/glsl-1.30/execution/fs-texture-sampler2dshadow-12

Signed-off-by: Chad Versace <[email protected]>
---
 src/mesa/drivers/dri/i965/brw_fs.cpp |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
b/src/mesa/drivers/dri/i965/brw_fs.cpp
index ce7959b..e69bfbe 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1472,6 +1472,21 @@ fs_visitor::visit(ir_texture *ir)
       }
       this->result = swizzle_dst;
    }
+
+   if (ir->type == glsl_type::float_type) {
+      assert(ir->sampler->type->sampler_shadow);
+      fs_reg l = fs_reg(this, glsl_type::float_type);
+      fs_reg r = this->result;
+      if (c->key.depth_modes[sampler] == GL_ALPHA) {
+         r.reg_offset = 3;
+      }
+      emit(fs_inst(BRW_OPCODE_MOV, l, r));
+      this->result = l;
+   } else if (ir->type == glsl_type::vec4_type) {
+          /* do not alter this->result */
+   } else {
+          assert(0);
+   }
 }
 
 void
-- 
1.7.4

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to