anv:gpu_memcpy: Emit 3DSTATE_VF_INDEXING on Gen8+

If this gets run right after something which uses
VK_VERTEX_INPUT_RATE_INSTANCE on its first vertex binding, we could end
up in serious trouble.

Fixes: 3d9747780b "anv: Add a helper for doing buffer copies with..."

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5090>
(cherry picked from commit 164aed6c81)
This commit is contained in:
Jason Ekstrand 2020-04-24 12:27:21 -05:00 committed by Dylan Baker
parent ccf4cbed47
commit 54973a393b
2 changed files with 8 additions and 1 deletions

View file

@ -4459,7 +4459,7 @@
"description": "anv:gpu_memcpy: Emit 3DSTATE_VF_INDEXING on Gen8+",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "3d9747780bc2508f4474230a0998d9dba7b02d1e"
},

View file

@ -112,6 +112,13 @@ genX(cmd_buffer_so_memcpy)(struct anv_cmd_buffer *cmd_buffer,
.Component3Control = (bs >= 16) ? VFCOMP_STORE_SRC : VFCOMP_STORE_0,
});
#if GEN_GEN >= 8
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_VF_INSTANCING), vfi) {
vfi.InstancingEnable = false;
vfi.VertexElementIndex = 0;
}
#endif
#if GEN_GEN >= 8
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_VF_SGVS), sgvs);
#endif