summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-05-28 15:25:02 -0700
committerJason Ekstrand <[email protected]>2015-05-28 15:25:02 -0700
commit468c89a3517a197f419335bfc8c0cf8614c1772c (patch)
tree22e5b33c416f75fe0942cd64380c86e3309d0488
parent2dc0f7fe5b447f9b0cb5a9e8bb7a867cfe6951e9 (diff)
vk/device: Use anv_batch_emit for MI_BATCH_BUFFER_START
-rw-r--r--src/vulkan/device.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/vulkan/device.c b/src/vulkan/device.c
index fa913677403..0a6f0c6e6b9 100644
--- a/src/vulkan/device.c
+++ b/src/vulkan/device.c
@@ -2279,15 +2279,19 @@ anv_cmd_buffer_chain_batch(struct anv_batch *batch, void *_data)
if (result != VK_SUCCESS)
return result;
- struct GEN8_MI_BATCH_BUFFER_START cmd = {
+ /* We set the end of the batch a little short so we would be sure we
+ * have room for the chaining command. Since we're about to emit the
+ * chaining command, let's set it back where it should go.
+ */
+ batch->end += GEN8_MI_BATCH_BUFFER_START_length * 4;
+ assert(batch->end == old_bbo->bo.map + old_bbo->bo.size);
+
+ anv_batch_emit(batch, GEN8_MI_BATCH_BUFFER_START,
GEN8_MI_BATCH_BUFFER_START_header,
._2ndLevelBatchBuffer = _1stlevelbatch,
.AddressSpaceIndicator = ASI_PPGTT,
.BatchBufferStartAddress = { &new_bbo->bo, 0 },
- };
- GEN8_MI_BATCH_BUFFER_START_pack(batch, batch->next, &cmd);
-
- batch->next += GEN8_MI_BATCH_BUFFER_START_length * 4;
+ );
/* Pad out to a 2-dword aligned boundary with zeros */
if ((uintptr_t)batch->next % 8 != 0) {