r600g: set ENABLE_KILL in the shader state in the new design
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 25 Sep 2010 14:11:40 +0000 (16:11 +0200)
committerJerome Glisse <jglisse@redhat.com>
Sun, 26 Sep 2010 16:21:02 +0000 (12:21 -0400)
src/gallium/drivers/r600/r600_state2.c

index c4e06a5f52892c6a836468a0e05ce8f8ee8938fa..986ede3f39ce7473fc6bc2a83a2756ea63102080 100644 (file)
@@ -173,6 +173,14 @@ static void r600_pipe_shader_ps(struct pipe_context *ctx, struct r600_pipe_shade
        r600_pipe_state_add_reg(rstate, R600_GROUP_CONTEXT,
                                R_0288CC_SQ_PGM_CF_OFFSET_PS,
                                0x00000000, 0xFFFFFFFF, NULL);
+
+       if (rshader->uses_kill) {
+               /* only set some bits here, the other bits are set in the dsa state */
+               r600_pipe_state_add_reg(rstate, R600_GROUP_CONTEXT,
+                                       R_02880C_DB_SHADER_CONTROL,
+                                       S_02880C_KILL_ENABLE(1),
+                                       S_02880C_KILL_ENABLE(1), NULL);
+       }
 }
 
 static int r600_pipe_shader(struct pipe_context *ctx, struct r600_pipe_shader *shader)