Procházet zdrojové kódy

nv50: fix constbuf validation

We only uploaded up to the highest offset a program would use,
and if the constant buffer isn't changed when a new program is
used, the new program is missing the rest of them.

Might want to introduce a "fill state" for user mem constbufs.
tags/snb-magic
Christoph Bumiller před 15 roky
rodič
revize
720e0c430d
1 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. 6
    1
      src/gallium/drivers/nv50/nv50_shader_state.c

+ 6
- 1
src/gallium/drivers/nv50/nv50_shader_state.c Zobrazit soubor

@@ -44,7 +44,7 @@ nv50_transfer_constbuf(struct nv50_context *nv50,
if (!map)
return;

count = MIN2(buf->width0, size);
count = buf->width0; /* MIN2(buf->width0, size); */
start = 0;

while (count) {
@@ -92,8 +92,13 @@ nv50_program_validate_data(struct nv50_context *nv50, struct nv50_program *p)
}
}

/* If the state tracker doesn't change the constbuf, and it is first
* validated with a program that doesn't use it, this check prevents
* it from even being uploaded. */
/*
if (p->parm_size == 0)
return;
*/

switch (p->type) {
case PIPE_SHADER_VERTEX:

Načítá se…
Zrušit
Uložit