31 lines
1.3 KiB
Diff
31 lines
1.3 KiB
Diff
diff -up mesa-23.1.4/src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c.da mesa-23.1.4/src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c
|
|
--- mesa-23.1.4/src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c.da 2025-01-10 13:14:31.119630821 +1000
|
|
+++ mesa-23.1.4/src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c 2025-01-10 13:15:11.917433170 +1000
|
|
@@ -149,6 +149,7 @@ nvc0_validate_fb(struct nvc0_context *nv
|
|
unsigned ms_mode = NVC0_3D_MULTISAMPLE_MODE_MS1;
|
|
unsigned nr_cbufs = fb->nr_cbufs;
|
|
bool serialize = false;
|
|
+ bool cbuf_is_linear = false;
|
|
|
|
nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_FB);
|
|
|
|
@@ -203,8 +204,7 @@ nvc0_validate_fb(struct nvc0_context *nv
|
|
PUSH_DATA(push, 0);
|
|
|
|
nvc0_resource_fence(nvc0, res, NOUVEAU_BO_WR);
|
|
-
|
|
- assert(!fb->zsbuf);
|
|
+ cbuf_is_linear = true;
|
|
}
|
|
|
|
if (res->status & NOUVEAU_BUFFER_STATUS_GPU_READING)
|
|
@@ -216,7 +216,7 @@ nvc0_validate_fb(struct nvc0_context *nv
|
|
BCTX_REFN(nvc0->bufctx_3d, 3D_FB, res, WR);
|
|
}
|
|
|
|
- if (fb->zsbuf) {
|
|
+ if (fb->zsbuf && !cbuf_is_linear) {
|
|
struct nv50_miptree *mt = nv50_miptree(fb->zsbuf->texture);
|
|
struct nv50_surface *sf = nv50_surface(fb->zsbuf);
|
|
int unk = mt->base.base.target == PIPE_TEXTURE_2D;
|