summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2009-11-09 14:29:00 +0100
committerChristoph Bumiller <[email protected]>2009-11-09 14:30:32 +0100
commit7204b92101ecf4e2fbc78cf91f387996396deec8 (patch)
tree8d82c881df3c0fe82a6d951ae06e03278af05598 /src
parentc9167d868cfb2ba821f01e0217e3880c5df4c97b (diff)
nv50: clarify data for method 0x121c
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nv50/nv50_state_validate.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c
index a13d64b7fa7..799d2758fee 100644
--- a/src/gallium/drivers/nv50/nv50_state_validate.c
+++ b/src/gallium/drivers/nv50/nv50_state_validate.c
@@ -37,13 +37,14 @@ nv50_state_validate_fb(struct nv50_context *nv50)
struct pipe_framebuffer_state *fb = &nv50->framebuffer;
unsigned i, w, h, gw = 0;
- /* Set nr of active RTs. Don't know what 0xfac6880 does, but
- * at least 0x880 was required to draw to more than 1 RT.
- * In some special cases, 0xfac6880 is not used, we probably
- * don't hit any of these though.
+ /* Set nr of active RTs and select RT for each colour output.
+ * FP result 0 always goes to RT[0], bits 4 - 6 are ignored.
+ * Ambiguous assignment results in no rendering (no DATA_ERROR).
*/
so_method(so, tesla, 0x121c, 1);
- so_data (so, 0x0fac6880 | fb->nr_cbufs);
+ so_data (so, fb->nr_cbufs |
+ (0 << 4) | (1 << 7) | (2 << 10) | (3 << 13) |
+ (4 << 16) | (5 << 19) | (6 << 22) | (7 << 25));
for (i = 0; i < fb->nr_cbufs; i++) {
struct pipe_texture *pt = fb->cbufs[i]->texture;