Avoid using custom instances in robustness tests
Some robustness custom devices are created with a large amount of
enabled extensions and features, using the default device as a
reference. Some drivers may expose or hide different device extensions
depending on the enabled instance extensions.
This means if we use a custom instance with no extensions and try to
enable everything that's available on the default device, device
creation may fail unexpectedly. This can be solved in two ways:
* Create the custom instance with the same extensions as the default
instance.
* Avoid creating a custom instance at all and reuse the context
instance.
This commit opts for the second option. Creating a custom instance is
rarely useful. The focus of robustness tests in on creating a custom
device with robustness features.
In addition, this commit also fixes some cases where the code was mixing
the context DeviceInterface with custom devices, and fixes validation
errors caused by the tests failing to enable shaderInt64 or vert/frag
stores and atomics in cases they were needed.
Affects:
dEQP-VK.robustness.*
dEQP-VKSC.robustness.*
VK-GL-CTS issue: 4136
Components: Vulkan
Change-Id: I820f8932e74100f01dba397ccf9eac24042ce33d