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
