svga: Do not shortcut NULL surface relocations with SVGA3D_INVALID_ID.

How to cope with NULL surface relocations should be entirely at winsys'
discretion.
This commit is contained in:
José Fonseca
2010-08-15 13:36:02 +01:00
parent 52e9520274
commit 04094b2da2
2 changed files with 9 additions and 6 deletions
+1 -1
View File
@@ -67,7 +67,7 @@ void surface_to_surfaceid(struct svga_winsys_context *swc, // IN
id->mipmap = s->real_level;
}
else {
id->sid = SVGA3D_INVALID_ID;
swc->surface_relocation(swc, &id->sid, NULL, flags);
id->face = 0;
id->mipmap = 0;
}
+8 -5
View File
@@ -128,18 +128,21 @@ update_tss_binding(struct svga_context *svga,
goto fail;
for (i = 0; i < queue.bind_count; i++) {
struct svga_winsys_surface *handle;
ts[i].stage = queue.bind[i].unit;
ts[i].name = SVGA3D_TS_BIND_TEXTURE;
if (queue.bind[i].view->v) {
svga->swc->surface_relocation(svga->swc,
&ts[i].value,
queue.bind[i].view->v->handle,
SVGA_RELOC_READ);
handle = queue.bind[i].view->v->handle;
}
else {
ts[i].value = SVGA3D_INVALID_ID;
handle = NULL;
}
svga->swc->surface_relocation(svga->swc,
&ts[i].value,
handle,
SVGA_RELOC_READ);
queue.bind[i].view->dirty = FALSE;
}