anv: Add a fence_reset_reset_temporary helper

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
Jason Ekstrand
2019-12-04 13:01:35 -06:00
parent ccb7d606f1
commit ecc119a96e
2 changed files with 14 additions and 2 deletions

View File

@@ -2863,6 +2863,9 @@ struct anv_fence {
struct anv_fence_impl temporary;
};
void anv_fence_reset_temporary(struct anv_device *device,
struct anv_fence *fence);
struct anv_event {
uint64_t semaphore;
struct anv_state state;

View File

@@ -1123,6 +1123,16 @@ anv_fence_impl_cleanup(struct anv_device *device,
impl->type = ANV_FENCE_TYPE_NONE;
}
void
anv_fence_reset_temporary(struct anv_device *device,
struct anv_fence *fence)
{
if (fence->temporary.type == ANV_FENCE_TYPE_NONE)
return;
anv_fence_impl_cleanup(device, &fence->temporary);
}
void anv_DestroyFence(
VkDevice _device,
VkFence _fence,
@@ -1157,8 +1167,7 @@ VkResult anv_ResetFences(
* first restored. The remaining operations described therefore
* operate on the restored payload.
*/
if (fence->temporary.type != ANV_FENCE_TYPE_NONE)
anv_fence_impl_cleanup(device, &fence->temporary);
anv_fence_reset_temporary(device, fence);
struct anv_fence_impl *impl = &fence->permanent;