Code is effectively disabled because DXIL GetDebugStatus() returns "Debugging DXIL is not supported"
Includes minimum required helper structs/methods in DXIL Debugger
Reset Files and m_CompileFlags to avoid accumulation with repeated calls to BuildReflection
Set "preferSourceDebug" to "1" if the DXIL has source file data
spirv-cross defaults to 450 but will not parse shaders containing the RayQuery capability unless the version is set to 460.
This change modifies the built-in GLSL cross tool to set `--version 460`. This change does not affect user-specified spirv-cross configurations.
* No API supports the quad overdraw with MSAA, but on other APIs it's feasible
to downgrade and render the overlay at single sampled. On Vulkan with
renderpasses this is not possible.
If an AS build command is called on an already built AS (i.e. an update build) then we need to safely destroy the previously copied input buffers and their memory. However at the point this happens, we do not own the command buffer so we don't know if the original data has actually been copied yet.
Using the mechanism in this patch we associate function objects with the command buffer that will be executed when the queue the command buffer is submitted to, has finished executing on the GPU.
This works by carying the function objects in command buffer and once it is submitted, we poll on a VkEvent we inserted. Once signalled, we call the function objects in the order they were inserted.
* We create a fake handle to provide to the wrapping system which will be non-
functional, and then later on update the mapping information once the real
handle has been patched in.
* On vulkan we don't know what valid handles might be but we assume they will
likely be pointer-like, so we start from -1 and move downward with the fake
handles to avoid a clash (which would break).
* We only expect to use jobs currently for the loading portion before the frame
capture scope, so we synchronise on jobs and process any deferred failures
immediately after applying initial contents and before doing the first frame
capture replay.
* This removes the dependency on the serialisers/deserialisers provided by
D3D12.dll or the D3D12Core.dlls
* It also allows us to easily decode root signatures that don't have DXBC
containers, such as those in embedded subobjects.
* Since the serialised format is mostly memcpy'd we don't aim for complete
coverage but just edge cases like empty lists, all different types of
descriptors and flags, and all root signature versions.