diff options
author | Jason Ekstrand <[email protected]> | 2015-05-28 15:25:02 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2015-05-28 15:25:02 -0700 |
commit | 468c89a3517a197f419335bfc8c0cf8614c1772c (patch) | |
tree | 22e5b33c416f75fe0942cd64380c86e3309d0488 /src | |
parent | 2dc0f7fe5b447f9b0cb5a9e8bb7a867cfe6951e9 (diff) |
vk/device: Use anv_batch_emit for MI_BATCH_BUFFER_START
Diffstat (limited to 'src')
-rw-r--r-- | src/vulkan/device.c | 14 |
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) { |