Module: Mesa
Branch: 9.1
Commit: 5baa8ec737e82bbfec1561b4018bae9804d708fd
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5baa8ec737e82bbfec1561b4018bae9804d708fd

Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Wed Feb 13 15:57:23 2013 +0100

radeonsi: Fix w component of TGSI_SEMANTIC_POSITION fragment shader inputs.

It's the reciprocal of the register value.

Fixes piglit fragcoord_w and glsl-fs-fragcoord-zw-perspective.

NOTE: This is a candidate for the 9.1 branch.
(cherry picked from commit 954bc4ac34b821cdc4ecb3ea8e394a66bcc2dda0)

---

 src/gallium/drivers/radeonsi/radeonsi_shader.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c 
b/src/gallium/drivers/radeonsi/radeonsi_shader.c
index 7c57f4c..2545634 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
+++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
@@ -263,6 +263,14 @@ static void declare_input_fs(
                                build_intrinsic(base->gallivm->builder,
                                        "llvm.SI.fs.read.pos", input_type,
                                        args, 1, LLVMReadNoneAttribute);
+
+                       if (chan == 3)
+                               /* RCP for fragcoord.w */
+                               si_shader_ctx->radeon_bld.inputs[soa_index] =
+                                       LLVMBuildFDiv(gallivm->builder,
+                                                     
lp_build_const_float(gallivm, 1.0f),
+                                                     
si_shader_ctx->radeon_bld.inputs[soa_index],
+                                                     "");
                }
                return;
        }

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to