r600g: fix exports_ps to export a number not a mask.
authorHenri Verbeet <hverbeet@gmail.com>
Sun, 19 Sep 2010 23:29:43 +0000 (09:29 +1000)
committerDave Airlie <airlied@redhat.com>
Sun, 19 Sep 2010 23:30:21 +0000 (09:30 +1000)
src/gallium/drivers/r600/eg_hw_states.c
src/gallium/drivers/r600/r600_hw_states.c

index ad8aa4c..65a5c64 100644 (file)
@@ -961,10 +961,10 @@ static int eg_ps_shader(struct r600_context *rctx, struct r600_context_state *rp
                if (rshader->output[i].name == TGSI_SEMANTIC_POSITION)
                        exports_ps |= 1;
                else if (rshader->output[i].name == TGSI_SEMANTIC_COLOR) {
-                       exports_ps |= (1 << (num_cout+1));
                        num_cout++;
                }
        }
+       exports_ps |= (1 << num_cout);
        if (!exports_ps) {
                /* always at least export 1 component per pixel */
                exports_ps = 2;
index 25344c6..5e43085 100644 (file)
@@ -974,10 +974,10 @@ static int r600_ps_shader(struct r600_context *rctx, struct r600_context_state *
                if (rshader->output[i].name == TGSI_SEMANTIC_POSITION)
                        exports_ps |= 1;
                else if (rshader->output[i].name == TGSI_SEMANTIC_COLOR) {
-                       exports_ps |= (1 << (num_cout+1));
                        num_cout++;
                }
        }
+       exports_ps |= (num_cout << 1);
        if (!exports_ps) {
                /* always at least export 1 component per pixel */
                exports_ps = 2;