anv/device: keep track of 'device lost' state
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 22 Mar 2017 07:46:04 +0000 (08:46 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Fri, 24 Mar 2017 07:11:53 +0000 (08:11 +0100)
commit50c8d2c1f71944688ebf753af3866981a07c4e9c
treea060f6041cf5d8adb61ab4e17491b32e8f2b2401
parent70194c9f1ab56f1ebe8f69cc4631df6e960e62ae
anv/device: keep track of 'device lost' state

The Vulkan specs say:

   "A logical device may become lost because of hardware errors, execution
    timeouts, power management events and/or platform-specific events. This
    may cause pending and future command execution to fail and cause hardware
    resources to be corrupted. When this happens, certain commands will
    return VK_ERROR_DEVICE_LOST (see Error Codes for a list of such commands).
    After any such event, the logical device is considered lost. It is not
    possible to reset the logical device to a non-lost state, however the lost
    state is specific to a logical device (VkDevice), and the corresponding
    physical device (VkPhysicalDevice) may be otherwise unaffected. In some
    cases, the physical device may also be lost, and attempting to create a
    new logical device will fail, returning VK_ERROR_DEVICE_LOST."

This means that we need to track if a logical device has been lost so we can
have the commands referenced by the spec return VK_ERROR_DEVICE_LOST
immediately.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_device.c
src/intel/vulkan/anv_private.h