nvc0: disable xfb's which don't have a stride

No stride / no attributes means that nothing is being written to the
buffer. However it might still prevent primitives from being written out
to the other buffers. Disabling it entirely seems to fix it.

Fixes GTF-GL45.gtf30.GL3Tests.transform_feedback.transform_feedback_overflow

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Ilia Mirkin
2020-01-15 19:46:59 -05:00
parent 9bf210ba98
commit 784b84d308

View File

@@ -315,14 +315,14 @@ nvc0_tfb_validate(struct nvc0_context *nvc0)
struct nvc0_so_target *targ = nvc0_so_target(nvc0->tfbbuf[b]);
struct nv04_resource *buf;
if (!targ) {
if (targ && tfb)
targ->stride = tfb->stride[b];
if (!targ || !targ->stride) {
IMMED_NVC0(push, NVC0_3D(TFB_BUFFER_ENABLE(b)), 0);
continue;
}
if (tfb)
targ->stride = tfb->stride[b];
buf = nv04_resource(targ->pipe.buffer);
BCTX_REFN(nvc0->bufctx_3d, 3D_TFB, buf, WR);