diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vulkan/anv_cmd_buffer.c | 10 | ||||
-rw-r--r-- | src/vulkan/anv_cmd_emit.c | 2 | ||||
-rw-r--r-- | src/vulkan/anv_private.h | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/vulkan/anv_cmd_buffer.c b/src/vulkan/anv_cmd_buffer.c index 2d46cc0c0ad..a0a67af676c 100644 --- a/src/vulkan/anv_cmd_buffer.c +++ b/src/vulkan/anv_cmd_buffer.c @@ -249,10 +249,6 @@ anv_batch_bo_start(struct anv_batch_bo *bbo, struct anv_batch *batch, static void anv_batch_bo_finish(struct anv_batch_bo *bbo, struct anv_batch *batch) { - /* Round batch up to an even number of dwords. */ - if ((batch->next - batch->start) & 4) - anv_batch_emit(batch, GEN8_MI_NOOP); - assert(batch->start == bbo->bo.map); bbo->length = batch->next - batch->start; VG(VALGRIND_CHECK_MEM_IS_DEFINED(batch->start, bbo->length)); @@ -511,7 +507,7 @@ anv_cmd_buffer_reset_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer) } void -anv_cmd_buffer_emit_batch_buffer_end(struct anv_cmd_buffer *cmd_buffer) +anv_cmd_buffer_end_batch_buffer(struct anv_cmd_buffer *cmd_buffer) { struct anv_batch_bo *batch_bo = anv_cmd_buffer_current_batch_bo(cmd_buffer); struct anv_batch_bo *surface_bbo = @@ -519,6 +515,10 @@ anv_cmd_buffer_emit_batch_buffer_end(struct anv_cmd_buffer *cmd_buffer) anv_batch_emit(&cmd_buffer->batch, GEN8_MI_BATCH_BUFFER_END); + /* Round batch up to an even number of dwords. */ + if ((cmd_buffer->batch.next - cmd_buffer->batch.start) & 4) + anv_batch_emit(&cmd_buffer->batch, GEN8_MI_NOOP); + anv_batch_bo_finish(batch_bo, &cmd_buffer->batch); surface_bbo->length = cmd_buffer->surface_next; diff --git a/src/vulkan/anv_cmd_emit.c b/src/vulkan/anv_cmd_emit.c index abe7275e2bd..93ffb8cf2c1 100644 --- a/src/vulkan/anv_cmd_emit.c +++ b/src/vulkan/anv_cmd_emit.c @@ -182,7 +182,7 @@ VkResult anv_EndCommandBuffer( ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, cmdBuffer); struct anv_device *device = cmd_buffer->device; - anv_cmd_buffer_emit_batch_buffer_end(cmd_buffer); + anv_cmd_buffer_end_batch_buffer(cmd_buffer); /* The algorithm used to compute the validate list is not threadsafe as * it uses the bo->index field. We have to lock the device around it. diff --git a/src/vulkan/anv_private.h b/src/vulkan/anv_private.h index a3787229a74..f3f50002568 100644 --- a/src/vulkan/anv_private.h +++ b/src/vulkan/anv_private.h @@ -740,7 +740,7 @@ struct anv_cmd_buffer { VkResult anv_cmd_buffer_init_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer); void anv_cmd_buffer_fini_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer); void anv_cmd_buffer_reset_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer); -void anv_cmd_buffer_emit_batch_buffer_end(struct anv_cmd_buffer *cmd_buffer); +void anv_cmd_buffer_end_batch_buffer(struct anv_cmd_buffer *cmd_buffer); void anv_cmd_buffer_prepare_execbuf(struct anv_cmd_buffer *cmd_buffer); struct anv_bo * |