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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user