diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2009-10-07 16:07:34 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2009-10-19 09:49:02 +1000 |
commit | 869d3eea37ee060d62cd5b7f6031ef5a93e328a1 (patch) | |
tree | b251eb2750f2313edf02872c7eeaf4072d9d0d21 /src/gallium/drivers/nv50/nv50_state_validate.c | |
parent | 16a06fea73b1e6e8857f7568762bfc56dcfe2940 (diff) |
drm/nv50: write tic/tsc setup to correct slots when skipping units
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_state_validate.c')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_state_validate.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index fd27620371..9079de918d 100644 --- a/src/gallium/drivers/nv50/nv50_state_validate.c +++ b/src/gallium/drivers/nv50/nv50_state_validate.c @@ -356,13 +356,14 @@ viewport_uptodate: if (nv50->dirty & NV50_NEW_SAMPLER) { int i; - so = so_new(nv50->sampler_nr * 9 + 2, 0); - so_method(so, tesla, NV50TCL_CB_ADDR, 1); - so_data (so, NV50_CB_TSC); + so = so_new(nv50->sampler_nr * 11, 0); for (i = 0; i < nv50->sampler_nr; i++) { if (!nv50->sampler[i]) continue; + so_method(so, tesla, NV50TCL_CB_ADDR, 1); + so_data (so, ((i * 8) << NV50TCL_CB_ADDR_ID_SHIFT) | + NV50_CB_TSC); so_method(so, tesla, NV50TCL_CB_DATA(0) | (2<<29), 8); so_datap (so, nv50->sampler[i]->tsc, 8); } |