vk: Submit all cmd buffers passed to vkQueueSubmit
This commit is contained in:
@@ -567,23 +567,25 @@ VkResult VKAPI vkQueueSubmit(
|
|||||||
{
|
{
|
||||||
struct anv_queue *queue = (struct anv_queue *) _queue;
|
struct anv_queue *queue = (struct anv_queue *) _queue;
|
||||||
struct anv_device *device = queue->device;
|
struct anv_device *device = queue->device;
|
||||||
struct anv_cmd_buffer *cmd_buffer = (struct anv_cmd_buffer *) pCmdBuffers[0];
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
assert(cmdBufferCount == 1);
|
for (uint32_t i = 0; i < cmdBufferCount; i++) {
|
||||||
|
struct anv_cmd_buffer *cmd_buffer =
|
||||||
|
(struct anv_cmd_buffer *) pCmdBuffers[i];
|
||||||
|
|
||||||
if (device->dump_aub)
|
if (device->dump_aub)
|
||||||
anv_cmd_buffer_dump(cmd_buffer);
|
anv_cmd_buffer_dump(cmd_buffer);
|
||||||
|
|
||||||
if (!device->no_hw) {
|
if (!device->no_hw) {
|
||||||
ret = anv_gem_execbuffer(device, &cmd_buffer->execbuf);
|
ret = anv_gem_execbuffer(device, &cmd_buffer->execbuf);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
for (uint32_t i = 0; i < cmd_buffer->bo_count; i++)
|
for (uint32_t i = 0; i < cmd_buffer->bo_count; i++)
|
||||||
cmd_buffer->exec2_bos[i]->offset = cmd_buffer->exec2_objects[i].offset;
|
cmd_buffer->exec2_bos[i]->offset = cmd_buffer->exec2_objects[i].offset;
|
||||||
} else {
|
} else {
|
||||||
*(uint32_t *)queue->completed_serial.map = cmd_buffer->serial;
|
*(uint32_t *)queue->completed_serial.map = cmd_buffer->serial;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
|
Reference in New Issue
Block a user