diff options
author | Lionel Landwerlin <[email protected]> | 2018-08-28 11:41:42 +0100 |
---|---|---|
committer | Lionel Landwerlin <[email protected]> | 2019-03-07 15:08:31 +0000 |
commit | acb50d6b1ff1b73a66e88862c99b65d87869e01d (patch) | |
tree | 902cd99aa632419a6fbb1e21ec87c7281982a5e0 /src/intel/vulkan | |
parent | ec526d6ba0bdb996416b7479330a424ff737df81 (diff) |
intel/decoders: handle decoding MI_BBS from ring
An MI_BATCH_BUFFER_START in the ring buffer acts as a second level
batchbuffer (aka jump back to ring buffer when running into a
MI_BATCH_BUFFER_END).
Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Rafael Antognolli <[email protected]>
Diffstat (limited to 'src/intel/vulkan')
-rw-r--r-- | src/intel/vulkan/anv_batch_chain.c | 2 | ||||
-rw-r--r-- | src/intel/vulkan/anv_device.c | 4 | ||||
-rw-r--r-- | src/intel/vulkan/anv_queue.c | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/intel/vulkan/anv_batch_chain.c b/src/intel/vulkan/anv_batch_chain.c index 9c7f96873a8..cf40d8b7123 100644 --- a/src/intel/vulkan/anv_batch_chain.c +++ b/src/intel/vulkan/anv_batch_chain.c @@ -1735,7 +1735,7 @@ anv_cmd_buffer_execbuf(struct anv_device *device, device->cmd_buffer_being_decoded = cmd_buffer; gen_print_batch(&device->decoder_ctx, (*bo)->bo.map, - (*bo)->bo.size, (*bo)->bo.offset); + (*bo)->bo.size, (*bo)->bo.offset, false); device->cmd_buffer_being_decoded = NULL; } diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index aee795cbdbb..92e8f40278f 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1795,11 +1795,13 @@ get_bo_from_pool(struct gen_batch_decode_bo *ret, /* Finding a buffer for batch decoding */ static struct gen_batch_decode_bo -decode_get_bo(void *v_batch, uint64_t address) +decode_get_bo(void *v_batch, bool ppgtt, uint64_t address) { struct anv_device *device = v_batch; struct gen_batch_decode_bo ret_bo = {}; + assert(ppgtt); + if (get_bo_from_pool(&ret_bo, &device->dynamic_state_pool.block_pool, address)) return ret_bo; if (get_bo_from_pool(&ret_bo, &device->instruction_state_pool.block_pool, address)) diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index 54e848fd15c..dcefed9e4dc 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -101,7 +101,7 @@ anv_device_submit_simple_batch(struct anv_device *device, execbuf.rsvd2 = 0; if (unlikely(INTEL_DEBUG & DEBUG_BATCH)) - gen_print_batch(&device->decoder_ctx, bo.map, bo.size, bo.offset); + gen_print_batch(&device->decoder_ctx, bo.map, bo.size, bo.offset, false); result = anv_device_execbuf(device, &execbuf, exec_bos); if (result != VK_SUCCESS) |