diff options
author | Ilia Mirkin <[email protected]> | 2020-01-15 19:46:59 -0500 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2020-01-15 19:53:18 -0500 |
commit | 784b84d308f51430dbd4d9c58fd598c34c4ceefb (patch) | |
tree | cc7361a69f0055fc3c9538d946266727f4fb8a5d /src/gallium | |
parent | 9bf210ba982ba4e0a1cd125285eb65bc2213242f (diff) |
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 <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c b/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c index 697bf491a01..774c5648113 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c @@ -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); |