Module: Mesa Branch: master Commit: 5f9085638a75b0fdfbb56aaa1c0da3414d8c13ce URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f9085638a75b0fdfbb56aaa1c0da3414d8c13ce
Author: Rob Clark <robdcl...@gmail.com> Date: Fri Dec 14 14:35:54 2018 -0500 freedreno/a6xx: fix corrupted uniforms For older gen's fd_wfi() is used to conditionally insert a WFI if there hasn't already been one since last draw. But this doesn't work out well with stateobj since the order the stateobj is evaluated might not be what you expect. (Ie. stateobj might not be evaluated until a later draw if there is no geometry from the current draw in a given tile.) Signed-off-by: Rob Clark <robdcl...@gmail.com> --- src/gallium/drivers/freedreno/a6xx/fd6_emit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c index c4d43c22f9..245353ee16 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c @@ -741,7 +741,6 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit) OUT_PKT4(ring, REG_A6XX_VFD_UNKNOWN_A008, 1); OUT_RING(ring, 0); - OUT_PKT4(ring, REG_A6XX_PC_PRIMITIVE_CNTL_0, 1); OUT_RING(ring, rasterizer->pc_primitive_cntl | COND(emit->info->primitive_restart && emit->info->index_size, @@ -769,6 +768,7 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit) struct fd_ringbuffer *vsconstobj = fd_submit_new_ringbuffer( ctx->batch->submit, 0x1000, FD_RINGBUFFER_STREAMING); + OUT_WFI5(vsconstobj); ir3_emit_vs_consts(vp, vsconstobj, ctx, emit->info); fd6_emit_add_group(emit, vsconstobj, FD6_GROUP_VS_CONST, 0x7); fd_ringbuffer_del(vsconstobj); @@ -778,6 +778,7 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit) struct fd_ringbuffer *fsconstobj = fd_submit_new_ringbuffer( ctx->batch->submit, 0x1000, FD_RINGBUFFER_STREAMING); + OUT_WFI5(fsconstobj); ir3_emit_fs_consts(fp, fsconstobj, ctx); fd6_emit_add_group(emit, fsconstobj, FD6_GROUP_FS_CONST, 0x6); fd_ringbuffer_del(fsconstobj); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit