* This replaces the previous workaround disabling BDA capture/replay on
dedicated image memory, as that is not feasible with future functionality and
appears not to be the source of the bug seen before.
* Although this is believed to be a windows bug, it only manifests on NV so is
treated as an NV bug for now. A future NV driver should contain a workaround
for this so it can be disabled later.
* If a VS-PS declares a struct but there is an element which is declared but
never written in the VS (and never read in the PS) then we can't read from it
and must skip that element.
During Android >=15 app start android::uirenderer (i.e. the renderer for the APK's 'window') creates a VkInstance and VkDevice before the app does but after our layer has initialised. This is fine in principle because RD doesn't support multi-device capturing so the latter just replaces the former - unfortunately though the built-in shader construction is already underway at this point across the multiple threads. glslang's shader preprocessing is not threadsafe causing intermittent aborts and segfaults.
I haven't seen this on any app other than the RD demo app, presumably because 'real' apps take much longer to start up effectively serialising the shader processing.
Added D3D11_Workgroup_Zoo, D3D12 Workgroup Zoo, Vk Workgroup Zoo performance tests
Performance tests primarily for performance testing workgroup debugging speed
Changed workgroup and subgroup result variable from "data" -> "testResult" to help to reduce conflicts
* Scalar layout is required for vectors to straddle 16-byte boundaries but this
may not be detected if they are naturally aligned within an otherwise mis-
aligned struct.
* GLES doesn't handle rendering to formats like a normal API - it has an odd
list of exceptions and extensions to check. If we don't have support for
blitting in our texture copy emulation we fall back to CPU read and upload.
* We also can't use framebuffer blits for copying MSAA textures so we have to
fall back to clearing to black. Emulating this would require a shader write
with sample shading of some kind which is not worthwhile since this emulation
path is only hit for initial contents where MSAA texture initial contents are
very unlikely to be needed.