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 <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user