mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-10 00:31:00 +00:00
Update DXIL Global Shader Flags to latest version SM6.8
For the future display any unknown global shader flags as hex value Make sure the DXIL debugger line numbers match the disassembly output if there are unknown global shader flags
This commit is contained in:
@@ -647,6 +647,35 @@ const rdcstr &DXBCContainer::GetDisassembly(bool dxcStyle)
|
||||
globalFlagsString += commentString + " Raytracing tier 1.1 features\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::SamplerFeedback)
|
||||
globalFlagsString += commentString + " Sampler feedback\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::AtomicInt64OnTypedResource)
|
||||
globalFlagsString += commentString + " 64-bit Atomics on Typed Resources\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::AtomicInt64OnGroupShared)
|
||||
globalFlagsString += commentString + " 64-bit Atomics on Group Shared\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::DerivativesInMeshAndAmpShaders)
|
||||
globalFlagsString +=
|
||||
commentString + " Derivatives in mesh and amplification shaders\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::ResourceDescriptorHeapIndexing)
|
||||
globalFlagsString += commentString + " Resource descriptor heap indexing\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::SamplerDescriptorHeapIndexing)
|
||||
globalFlagsString += commentString + " Sampler descriptor heap indexing\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::Reserved)
|
||||
globalFlagsString += commentString + " Wave Matrix\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::AtomicInt64OnHeapResource)
|
||||
globalFlagsString += commentString + " 64-bit Atomics on Heap Resources\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::AdvancedTextureOps)
|
||||
globalFlagsString += commentString + " Advanced Texture Ops\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::WriteableMSAATextures)
|
||||
globalFlagsString += commentString + " Writeable MSAA Textures\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::SampleCmpGradientOrBias)
|
||||
globalFlagsString += commentString + " SampleCmp with gradient or bias\n";
|
||||
if(m_GlobalFlags & GlobalShaderFlags::ShaderFeatureInfo_ExtendedCommandInfo)
|
||||
globalFlagsString += commentString + " Extended command info\n";
|
||||
if(m_GlobalFlags & ~GlobalShaderFlags::KNOWN_FLAGS_MASK)
|
||||
globalFlagsString +=
|
||||
commentString + StringFormat::Fmt(" Unknown shader flags 0x%X\n",
|
||||
(uint64_t)m_GlobalFlags -
|
||||
((uint64_t)m_GlobalFlags &
|
||||
(uint64_t)GlobalShaderFlags::KNOWN_FLAGS_MASK));
|
||||
globalFlagsString += commentString + "\n";
|
||||
}
|
||||
|
||||
@@ -707,7 +736,16 @@ void DXBCContainer::FillTraceLineInfo(ShaderDebugTrace &trace) const
|
||||
extraLines++;
|
||||
|
||||
if(m_GlobalFlags != GlobalShaderFlags::None)
|
||||
extraLines += (uint32_t)Bits::CountOnes((uint32_t)m_GlobalFlags) + 2;
|
||||
{
|
||||
extraLines += 2;
|
||||
uint64_t knownFlags = (uint64_t)m_GlobalFlags & (uint64_t)GlobalShaderFlags::KNOWN_FLAGS_MASK;
|
||||
uint32_t upperBits = knownFlags >> 32;
|
||||
uint32_t lowerBits = knownFlags & 0xFFFFFFFF;
|
||||
extraLines += (uint32_t)Bits::CountOnes(upperBits);
|
||||
extraLines += (uint32_t)Bits::CountOnes(lowerBits);
|
||||
if(m_GlobalFlags & ~GlobalShaderFlags::KNOWN_FLAGS_MASK)
|
||||
extraLines += 1;
|
||||
}
|
||||
|
||||
if(m_DXBCByteCode)
|
||||
{
|
||||
|
||||
@@ -133,6 +133,19 @@ enum class GlobalShaderFlags : int64_t
|
||||
ShadingRate = 0x080000,
|
||||
Raytracing1_1 = 0x100000,
|
||||
SamplerFeedback = 0x200000,
|
||||
AtomicInt64OnTypedResource = 0x400000,
|
||||
AtomicInt64OnGroupShared = 0x800000,
|
||||
DerivativesInMeshAndAmpShaders = 0x1000000,
|
||||
ResourceDescriptorHeapIndexing = 0x2000000,
|
||||
SamplerDescriptorHeapIndexing = 0x4000000,
|
||||
Reserved = 0x8000000,
|
||||
AtomicInt64OnHeapResource = 0x10000000,
|
||||
AdvancedTextureOps = 0x20000000,
|
||||
WriteableMSAATextures = 0x40000000,
|
||||
SampleCmpGradientOrBias = 0x80000000,
|
||||
ShaderFeatureInfo_ExtendedCommandInfo = 0x100000000,
|
||||
KNOWN_FLAGS_MASK =
|
||||
ShaderFeatureInfo_ExtendedCommandInfo + (ShaderFeatureInfo_ExtendedCommandInfo - 1),
|
||||
};
|
||||
|
||||
BITMASK_OPERATORS(GlobalShaderFlags);
|
||||
|
||||
Reference in New Issue
Block a user