radeonsi: Pixel shaders pre-load one more SGPR
authorMichel Dänzer <michel.daenzer@amd.com>
Fri, 9 Aug 2013 16:36:31 +0000 (18:36 +0200)
committerMichel Dänzer <michel@daenzer.net>
Thu, 15 Aug 2013 15:55:00 +0000 (17:55 +0200)
Acked-by: Marek Olšák <maraeo@gmail.com>
src/gallium/drivers/radeonsi/si_state_draw.c

index c6ef8bd29ac6cde4f353497cee47d770561a06ad..47e64d8634e6caa002c786b6c526e1349749a8c0 100644 (file)
@@ -236,9 +236,10 @@ static void si_pipe_shader_ps(struct pipe_context *ctx, struct si_pipe_shader *s
 
        num_user_sgprs = SI_PS_NUM_USER_SGPR;
        num_sgprs = shader->num_sgprs;
-       if (num_user_sgprs > num_sgprs) {
+       /* One SGPR after user SGPRs is pre-loaded with {prim_mask, lds_offset} */
+       if ((num_user_sgprs + 1) > num_sgprs) {
                /* Last 2 reserved SGPRs are used for VCC */
-               num_sgprs = num_user_sgprs + 2;
+               num_sgprs = num_user_sgprs + 1 + 2;
        }
        assert(num_sgprs <= 104);