summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2018-08-28 11:41:42 +0100
committerLionel Landwerlin <[email protected]>2019-03-07 15:08:31 +0000
commitacb50d6b1ff1b73a66e88862c99b65d87869e01d (patch)
tree902cd99aa632419a6fbb1e21ec87c7281982a5e0 /src/intel/vulkan
parentec526d6ba0bdb996416b7479330a424ff737df81 (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.c2
-rw-r--r--src/intel/vulkan/anv_device.c4
-rw-r--r--src/intel/vulkan/anv_queue.c2
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)