From: Iago Toral Quiroga Date: Wed, 8 Mar 2017 11:59:58 +0000 (+0100) Subject: anv: add anv_batch_set_error() and anv_batch_has_error() helpers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a8ce8e35420e57b6921dfce8462a7caa512b797a;p=mesa.git anv: add anv_batch_set_error() and anv_batch_has_error() helpers The anv_batch_set_error() helper will track the first error that happened while recording a command buffer. The helper returns the currently tracked error to help the job of internal functions that may generate errors that need to be tracked and return a VkResult to the caller. We will use the anv_batch_has_error() helper to guard parts of the driver that are not safe to execute if an error has been generated while recording a particular command buffer. Reviewed-by: Topi Pohjolainen --- diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index fbf62255c1c..0177a42dcc0 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -722,6 +722,21 @@ uint64_t anv_batch_emit_reloc(struct anv_batch *batch, VkResult anv_device_submit_simple_batch(struct anv_device *device, struct anv_batch *batch); +static inline VkResult +anv_batch_set_error(struct anv_batch *batch, VkResult error) +{ + assert(error != VK_SUCCESS); + if (batch->status == VK_SUCCESS) + batch->status = error; + return batch->status; +} + +static inline bool +anv_batch_has_error(struct anv_batch *batch) +{ + return batch->status != VK_SUCCESS; +} + struct anv_address { struct anv_bo *bo; uint32_t offset;