The frontend compares the registered child PIDs against the locally running ones, any that aren't in the list are removed - this is how dead procs are removed. Unfortunately this causes any children from a remote context to be immediately removed.
After discussion with upstream, the agreed solution was to prevent child removal entirely for remote contexts as long as clicking on dead children does nothing.
* When a non-zero UAVStartSlot is present, the index in the array and
the slot in the shader do not line up.
* This fixes both the listing for "Usage in Frame" and pixel history
results.
IsDXCNop() checks for DXC Nop generated instructions, which take the form of a Load from a global variable called "dx.nothing.*"
IsSSA() checks if a DXIL::Value is an SSA value i.e. from an instruction, not a constant etc.
Store function name from Operation::Call in a const reference instead of making a copy
AnnotateHandle
* Change the SSA result name to be "_typed_descriptor_<N>"
* Show the input handle SSA name instead of the resource alias name
CreateHandleFromHeap
* Change the SSA result name to be "_untyped_descriptor_<N>"
CBufferLoad, CBufferLoadLegacy
* For SM6.6 use the handle alias instead of the cbuffer name
Before:
_dx.types.Handle _3 = ResourceDescriptorHeap[8];
_dx.types.Handle __heap_descriptor_0 = (StructuredBuffer<stride=8>)ResourceDescriptorHeap[8];
_dx.types.Handle _11 = SamplerDescriptorHeap[0];
_dx.types.Handle __heap_descriptor_1 = (SamplerState)SamplerDescriptorHeap[0];
_dx.types.Handle _15 = ResourceDescriptorHeap[12];
_dx.types.Handle __heap_descriptor_2 = (Texture2D<4xF32>)ResourceDescriptorHeap[12];
_dx.types.ResRet.f32 _19 = __heap_descriptor_2.Sample(__heap_descriptor_1, _.i05, _.i16, Offset = {0, 0});
After:
_dx.types.Handle __untyped_descriptor_0 = ResourceDescriptorHeap[8];
_dx.types.Handle __typed_descriptor_0 = (StructuredBuffer<stride=8>)__untyped_descriptor_0;
_dx.types.Handle __untyped_descriptor_1 = SamplerDescriptorHeap[0];
_dx.types.Handle __typed_descriptor_1 = (SamplerState)__untyped_descriptor_1;
_dx.types.Handle __untyped_descriptor_2 = ResourceDescriptorHeap[12];
_dx.types.Handle __typed_descriptor_2 = (Texture2D<float4>)__untyped_descriptor_2;
_dx.types.ResRet.f32 _19 = __typed_descriptor_2.Sample(__typed_descriptor_1, _.i05, _.i16, Offset = {0, 0});
This needs to be added to HookInitVulkanInstanceExts, like the other KHR_display functions.
Fixes a segfault when Renderdoc'ing SteamVR.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
* During capture if ResizeBuffers is called we can't defer destruction to the
end of the capture as it will cause the function to fail due to refcounting
rules.
Add DXILDebug::[Debugger,ThreadState] as friends to DXIL::Program
Expose DXIL::isUndef(const DXIL::Value* v); for use in the DXIL Debugger
Add more stubs to DXILDebug::[DebugAPIWrapper, ThreadState, GlobalState]
Pass in bool dxcStyleFormatting parameter to helper functions
Derive dxilIdentifier from dxcStyleFormatting i.e. '%' or '_'
DXIL Debugger and RD Disassembly specific helper methods choose to use "dxcStyleFormatting = false"
* The previous ignoring of the top commit was to avoid badly-written merge
commits added by github, we want to continue doing that for PRs but check all
commits on push as a safety measure.