anv: Apply cache flushes after setting index/draw VBs
Reviewed-by: Ivan Briano <ivan.briano@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
@@ -2942,8 +2942,6 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer)
|
||||
gen7_cmd_buffer_emit_scissor(cmd_buffer);
|
||||
|
||||
genX(cmd_buffer_flush_dynamic_state)(cmd_buffer);
|
||||
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -3041,6 +3039,11 @@ void genX(CmdDraw)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, 0);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
/* Our implementation of VK_KHR_multiview uses instancing to draw the
|
||||
* different views. We need to multiply instanceCount by the view count.
|
||||
*/
|
||||
@@ -3084,6 +3087,11 @@ void genX(CmdDrawIndexed)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, 0);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
/* Our implementation of VK_KHR_multiview uses instancing to draw the
|
||||
* different views. We need to multiply instanceCount by the view count.
|
||||
*/
|
||||
@@ -3138,6 +3146,11 @@ void genX(CmdDrawIndirectByteCountEXT)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, 0);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
/* Our implementation of VK_KHR_multiview uses instancing to draw the
|
||||
* different views. We need to multiply instanceCount by the view count.
|
||||
*/
|
||||
@@ -3236,6 +3249,11 @@ void genX(CmdDrawIndirect)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, i);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
load_indirect_parameters(cmd_buffer, draw, false);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(3DPRIMITIVE), prim) {
|
||||
@@ -3279,6 +3297,11 @@ void genX(CmdDrawIndexedIndirect)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, i);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
load_indirect_parameters(cmd_buffer, draw, true);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(3DPRIMITIVE), prim) {
|
||||
@@ -3428,6 +3451,11 @@ void genX(CmdDrawIndirectCountKHR)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, i);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
load_indirect_parameters(cmd_buffer, draw, false);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(3DPRIMITIVE), prim) {
|
||||
@@ -3488,6 +3516,11 @@ void genX(CmdDrawIndexedIndirectCountKHR)(
|
||||
if (vs_prog_data->uses_drawid)
|
||||
emit_draw_index(cmd_buffer, i);
|
||||
|
||||
/* Emitting draw index or vertex index BOs may result in needing
|
||||
* additional VF cache flushes.
|
||||
*/
|
||||
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
|
||||
|
||||
load_indirect_parameters(cmd_buffer, draw, true);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(3DPRIMITIVE), prim) {
|
||||
|
Reference in New Issue
Block a user