diff options
author | Iago Toral Quiroga <[email protected]> | 2017-03-08 12:59:58 +0100 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2017-03-16 11:40:05 +0100 |
commit | a8ce8e35420e57b6921dfce8462a7caa512b797a (patch) | |
tree | b9e21e8c2b44362e2207df6ee07034b02cac736e | |
parent | d0195bd0678b7ebfa740386c781e981ded8d788d (diff) |
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 <[email protected]>
-rw-r--r-- | src/intel/vulkan/anv_private.h | 15 |
1 files changed, 15 insertions, 0 deletions
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; |