anv: allow multiple command buffers in anv_queue_submit

v2: Fixup crash spotted by Mark about missing alloc vfuncs

v3: Fixup double iteration over device->memory_objects (that ought to
    be expensive...) (Ken)

v4: Add more asserts for non-softpin cases (Ken)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2371>
This commit is contained in:
Lionel Landwerlin
2020-12-09 13:22:45 +02:00
parent 882fc72442
commit 83fee30e85
3 changed files with 265 additions and 123 deletions

View File

@@ -1090,7 +1090,9 @@ VkResult anv_init_wsi(struct anv_physical_device *physical_device);
void anv_finish_wsi(struct anv_physical_device *physical_device);
struct anv_queue_submit {
struct anv_cmd_buffer * cmd_buffer;
struct anv_cmd_buffer ** cmd_buffers;
uint32_t cmd_buffer_count;
uint32_t cmd_buffer_array_length;
uint32_t fence_count;
uint32_t fence_array_length;
@@ -1132,6 +1134,7 @@ struct anv_queue_submit {
uintptr_t * fence_bos;
int perf_query_pass;
struct anv_query_pool * perf_query_pool;
const VkAllocationCallbacks * alloc;
VkSystemAllocationScope alloc_scope;