* This applies to all ASs, images, image views, buffers and samplers. Buffer
views are not used with this extension. We enable this globally even if there
are resources which wouldn't be possible to put in a descriptor (e.g. transfer
only) or if they are internal allocations. The ordering rules are poorly
written - as the letter of the spec goes it would be impossible to ever omit
this flag during capture since we can't put all capture/replay creates before
all non-capture/replay creates. On replay in theory we could, but we also
don't know how well drivers will implement these rules anyway.
* This will be optional in many cases but for some situations might be required
when type information is not implicitly available in the descriptor store.
Generally it should always be available unless the descriptor store is being
viewed 'blank' purely from its contents with no other context.
* We already enable this during replay, for descriptor buffer we will have to
have it match but in general it's a good idea to match environments between
capture and replay.
* This should not happen, the vulkan spec guarantees that this function must
return the same value passed in if there was one, and this can help detect BDA
addresses moving.
* 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.