Module: Mesa
Branch: 9.2
Commit: 35c934571199ca7e6adae289a6891d72ec2c349b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=35c934571199ca7e6adae289a6891d72ec2c349b

Author: Michel Dänzer <[email protected]>
Date:   Mon Aug 19 15:45:32 2013 +0200

radeonsi: Always pre-load separate VGPRs for centroid vs. center interpolation

The LLVM R600 backend currently always uses separate VGPRs for these.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68162
(Centroid interpolation is identical to center interpolation without
multisampling, so the shader hardware was only pre-loading one set of
interpolation coefficients, and the pixel shader code was using
uninitialized values as the centroid interpolation coefficients)

Cc: [email protected]
Tested-by: Laurent Carlier <[email protected]>
(cherry picked from commit be301f707e8c6ba3bb0574e64a0a4f1653af8fb7)

---

 src/gallium/drivers/radeonsi/si_state_draw.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
b/src/gallium/drivers/radeonsi/si_state_draw.c
index 7d037d0..5e62617 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -190,7 +190,8 @@ static void si_pipe_shader_ps(struct pipe_context *ctx, 
struct si_pipe_shader *s
                exports_ps = 2;
        }
 
-       spi_ps_in_control = S_0286D8_NUM_INTERP(shader->shader.ninterp);
+       spi_ps_in_control = S_0286D8_NUM_INTERP(shader->shader.ninterp) |
+               S_0286D8_BC_OPTIMIZE_DISABLE(1);
 
        spi_baryc_cntl = 0;
        if (have_perspective)

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

Reply via email to