anv: refresh cached current batch bo after emitting some commands
Fixes crashes in:
- Rise of the Tomb Rider (on benchmark start)
- Total War: Three Kingdoms (on game start)
- Total War: Warhammer II (on game start)
Fixes: 34a0ce58c7
("anv: add a new execution mode for secondary command buffers")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6546>
This commit is contained in:

committed by
Marge Bot

parent
a1c2bd6ce8
commit
e94c22429b
@@ -951,6 +951,11 @@ anv_cmd_buffer_end_batch_buffer(struct anv_cmd_buffer *cmd_buffer)
|
||||
.SecondLevelBatchBuffer = Firstlevelbatch) +
|
||||
(GEN8_MI_BATCH_BUFFER_START_BatchBufferStartAddress_start / 8);
|
||||
cmd_buffer->return_addr = anv_batch_address(&cmd_buffer->batch, jump_addr);
|
||||
|
||||
/* The emit above may have caused us to chain batch buffers which
|
||||
* would mean that batch_bo is no longer valid.
|
||||
*/
|
||||
batch_bo = anv_cmd_buffer_current_batch_bo(cmd_buffer);
|
||||
} else if ((cmd_buffer->batch_bos.next == cmd_buffer->batch_bos.prev) &&
|
||||
(length < ANV_CMD_BUFFER_BATCH_SIZE / 2)) {
|
||||
/* If the secondary has exactly one batch buffer in its list *and*
|
||||
|
Reference in New Issue
Block a user