r600g: fix multi buffer rendering
authorJerome Glisse <jglisse@redhat.com>
Tue, 21 Sep 2010 20:56:59 +0000 (16:56 -0400)
committerJerome Glisse <jglisse@redhat.com>
Tue, 21 Sep 2010 20:57:55 +0000 (16:57 -0400)
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/drivers/r600/r600_state2.c

index 36a33760339951aa428fa142832559c3766f18e5..f29aa0fdeaf6489541d55b19e1ee82654a8f45de 100644 (file)
@@ -234,10 +234,10 @@ static void r600_pipe_shader_ps(struct pipe_context *ctx, struct r600_pipe_shade
                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 |= S_028854_EXPORT_COLORS(num_cout);
        if (!exports_ps) {
                /* always at least export 1 component per pixel */
                exports_ps = 2;
@@ -687,7 +687,7 @@ static void r600_flush2(struct pipe_context *ctx, unsigned flags,
 
 #if 0
        sprintf(dname, "gallium-%08d.bof", dc);
-       if (dc < 2) {
+       if (dc < 20) {
                r600_context_dump_bof(&rctx->ctx, dname);
                R600_ERR("dumped %s\n", dname);
        }