mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 00:30:11 +01:00
drm/nv50: write tic/tsc setup to correct slots when skipping units
This commit is contained in:
parent
16a06fea73
commit
869d3eea37
2 changed files with 8 additions and 6 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,18 +148,19 @@ nv50_tex_validate(struct nv50_context *nv50)
|
|||
struct nouveau_stateobj *so;
|
||||
int unit, push;
|
||||
|
||||
push = nv50->miptree_nr * 9 + 2;
|
||||
push = nv50->miptree_nr * 11;
|
||||
push += MAX2(nv50->miptree_nr, nv50->state.miptree_nr) * 2;
|
||||
|
||||
so = so_new(push, nv50->miptree_nr * 2);
|
||||
so_method(so, tesla, NV50TCL_CB_ADDR, 1);
|
||||
so_data (so, NV50_CB_TIC);
|
||||
for (unit = 0; unit < nv50->miptree_nr; unit++) {
|
||||
struct nv50_miptree *mt = nv50->miptree[unit];
|
||||
|
||||
if (!mt)
|
||||
continue;
|
||||
|
||||
so_method(so, tesla, NV50TCL_CB_ADDR, 1);
|
||||
so_data (so, ((unit * 8) << NV50TCL_CB_ADDR_ID_SHIFT) |
|
||||
NV50_CB_TIC);
|
||||
so_method(so, tesla, NV50TCL_CB_DATA(0) | 0x40000000, 8);
|
||||
if (nv50_tex_construct(nv50, so, mt, unit)) {
|
||||
NOUVEAU_ERR("failed tex validate\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue