anv: Submit fence bo only after all command buffers
We were submitting the fence bo after each command buffer in a multi command buffer submit, causing us to occasionally complete the fence too early.
This commit is contained in:
parent
39a120aefe
commit
b0c30b77d4
|
@ -1012,20 +1012,20 @@ VkResult anv_QueueSubmit(
|
||||||
"execbuf2 failed: %m");
|
"execbuf2 failed: %m");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fence) {
|
|
||||||
ret = anv_gem_execbuffer(device, &fence->execbuf);
|
|
||||||
if (ret != 0) {
|
|
||||||
/* We don't know the real error. */
|
|
||||||
return vk_errorf(VK_ERROR_OUT_OF_DEVICE_MEMORY,
|
|
||||||
"execbuf2 failed: %m");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (uint32_t k = 0; k < cmd_buffer->execbuf2.bo_count; k++)
|
for (uint32_t k = 0; k < cmd_buffer->execbuf2.bo_count; k++)
|
||||||
cmd_buffer->execbuf2.bos[k]->offset = cmd_buffer->execbuf2.objects[k].offset;
|
cmd_buffer->execbuf2.bos[k]->offset = cmd_buffer->execbuf2.objects[k].offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fence) {
|
||||||
|
ret = anv_gem_execbuffer(device, &fence->execbuf);
|
||||||
|
if (ret != 0) {
|
||||||
|
/* We don't know the real error. */
|
||||||
|
return vk_errorf(VK_ERROR_OUT_OF_DEVICE_MEMORY,
|
||||||
|
"execbuf2 failed: %m");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue