anv: handle failures when growing reloc lists
Growing the reloc list happens through calling anv_reloc_list_add() or anv_reloc_list_append(). Make sure that we call these through helpers that check the result and set the batch error status if needed. v2: - Handling the crashes is not good enough, we need to keep track of the error, for that, keep track of the errors in the batch instead (Jason). - Make reloc list growth go through helpers so we can have a central place where we can do error tracking (Jason). v3: - Callers that need the offset returned by anv_reloc_list_add() can compute it themselves since it is extracted from the inputs to the function, so change the function to return a VkResult, make anv_batch_emit_reloc() also return a VkResult and let their callers do the error management (Topi) v4: - Let anv_batch_emit_reloc() return an uint64_t as it originally did, there is no real benefit in having it return a VkResult. - Do not add an is_aux parameter to add_surface_state_reloc(), instead do error checking for aux in add_image_view_relocs() separately. Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -673,7 +673,7 @@ VkResult anv_reloc_list_init(struct anv_reloc_list *list,
|
||||
void anv_reloc_list_finish(struct anv_reloc_list *list,
|
||||
const VkAllocationCallbacks *alloc);
|
||||
|
||||
uint64_t anv_reloc_list_add(struct anv_reloc_list *list,
|
||||
VkResult anv_reloc_list_add(struct anv_reloc_list *list,
|
||||
const VkAllocationCallbacks *alloc,
|
||||
uint32_t offset, struct anv_bo *target_bo,
|
||||
uint32_t delta);
|
||||
|
Reference in New Issue
Block a user