summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_state_validate.c
diff options
context:
space:
mode:
authorNicolai Hähnle <nhaehnle@gmail.com>2009-10-07 20:45:08 +0200
committerNicolai Hähnle <nhaehnle@gmail.com>2009-10-07 20:45:08 +0200
commit7ca7220ea1d31dbdbf1fe7e6f3e6cc4ff8b0abde (patch)
treea4e50f36da7c75c945a2418738e2a84af2b3789d /src/gallium/drivers/nv50/nv50_state_validate.c
parent57abb76e1095d14f54ea8b8d0d2220e209b8656f (diff)
parent5b4c0b864a25fa193e7ba828cf5ce483ca05bd4e (diff)
Merge branch 'master' into r300g-glsl
Conflicts: src/gallium/drivers/r300/r300_tgsi_to_rc.c Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_state_validate.c')
-rw-r--r--src/gallium/drivers/nv50/nv50_state_validate.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c
index 4ed76973c4..fd27620371 100644
--- a/src/gallium/drivers/nv50/nv50_state_validate.c
+++ b/src/gallium/drivers/nv50/nv50_state_validate.c
@@ -57,6 +57,9 @@ nv50_state_validate_fb(struct nv50_context *nv50)
case PIPE_FORMAT_A8R8G8B8_UNORM:
so_data(so, NV50TCL_RT_FORMAT_A8R8G8B8_UNORM);
break;
+ case PIPE_FORMAT_X8R8G8B8_UNORM:
+ so_data(so, NV50TCL_RT_FORMAT_X8R8G8B8_UNORM);
+ break;
case PIPE_FORMAT_R5G6B5_UNORM:
so_data(so, NV50TCL_RT_FORMAT_R5G6B5_UNORM);
break;
@@ -353,13 +356,16 @@ viewport_uptodate:
if (nv50->dirty & NV50_NEW_SAMPLER) {
int i;
- so = so_new(nv50->sampler_nr * 8 + 3, 0);
+ so = so_new(nv50->sampler_nr * 9 + 2, 0);
so_method(so, tesla, NV50TCL_CB_ADDR, 1);
so_data (so, NV50_CB_TSC);
- so_method(so, tesla, NV50TCL_CB_DATA(0) | 0x40000000,
- nv50->sampler_nr * 8);
- for (i = 0; i < nv50->sampler_nr; i++)
+ for (i = 0; i < nv50->sampler_nr; i++) {
+ if (!nv50->sampler[i])
+ continue;
+
+ so_method(so, tesla, NV50TCL_CB_DATA(0) | (2<<29), 8);
so_datap (so, nv50->sampler[i]->tsc, 8);
+ }
so_ref(so, &nv50->state.tsc_upload);
so_ref(NULL, &so);
}