mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 05:20:45 +00:00
Check for supported capability/extensions when debugging
This commit is contained in:
@@ -99,6 +99,84 @@ ShaderDebugTrace *Debugger::BeginDebug(DebugAPIWrapper *apiWrapper, const Shader
|
||||
return new ShaderDebugTrace;
|
||||
}
|
||||
|
||||
for(Capability c : capabilities)
|
||||
{
|
||||
bool supported = false;
|
||||
switch(c)
|
||||
{
|
||||
case Capability::Matrix:
|
||||
case Capability::Shader:
|
||||
// we "support" geometry/tessellation in case the module contains other entry points
|
||||
case Capability::Geometry:
|
||||
case Capability::Tessellation:
|
||||
case Capability::GeometryPointSize:
|
||||
case Capability::TessellationPointSize:
|
||||
case Capability::Float16:
|
||||
case Capability::Float64:
|
||||
case Capability::Int64:
|
||||
case Capability::Int64Atomics:
|
||||
case Capability::AtomicStorage:
|
||||
case Capability::Int16:
|
||||
case Capability::ImageGatherExtended:
|
||||
case Capability::StorageImageMultisample:
|
||||
case Capability::ClipDistance:
|
||||
case Capability::CullDistance:
|
||||
case Capability::ImageCubeArray:
|
||||
case Capability::Int8:
|
||||
case Capability::InputAttachment:
|
||||
case Capability::MinLod:
|
||||
case Capability::Sampled1D:
|
||||
case Capability::Image1D:
|
||||
case Capability::SampledCubeArray:
|
||||
case Capability::SampledBuffer:
|
||||
case Capability::ImageBuffer:
|
||||
case Capability::ImageMSArray:
|
||||
case Capability::StorageImageExtendedFormats:
|
||||
case Capability::ImageQuery:
|
||||
case Capability::DerivativeControl:
|
||||
case Capability::InterpolationFunction:
|
||||
case Capability::TransformFeedback:
|
||||
case Capability::GeometryStreams:
|
||||
case Capability::StorageImageReadWithoutFormat:
|
||||
case Capability::StorageImageWriteWithoutFormat:
|
||||
case Capability::MultiViewport:
|
||||
case Capability::ShaderLayer:
|
||||
case Capability::ShaderViewportIndex:
|
||||
case Capability::DrawParameters:
|
||||
case Capability::StorageBuffer16BitAccess:
|
||||
case Capability::UniformAndStorageBuffer16BitAccess:
|
||||
case Capability::StoragePushConstant16:
|
||||
case Capability::StorageInputOutput16:
|
||||
case Capability::StorageBuffer8BitAccess:
|
||||
case Capability::UniformAndStorageBuffer8BitAccess:
|
||||
case Capability::StoragePushConstant8:
|
||||
{
|
||||
supported = true;
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
|
||||
if(!supported)
|
||||
{
|
||||
RDCERR("Unsupported capability '%s'", ToStr(c).c_str());
|
||||
return new ShaderDebugTrace;
|
||||
}
|
||||
}
|
||||
|
||||
for(const rdcstr &e : extensions)
|
||||
{
|
||||
if(e == "SPV_GOOGLE_decorate_string" || e == "SPV_GOOGLE_hlsl_functionality1")
|
||||
{
|
||||
// supported extensions
|
||||
}
|
||||
else
|
||||
{
|
||||
RDCERR("Unsupported extension '%s'", e.c_str());
|
||||
return new ShaderDebugTrace;
|
||||
}
|
||||
}
|
||||
|
||||
ShaderDebugTrace *ret = new ShaderDebugTrace;
|
||||
ret->debugger = this;
|
||||
this->activeLaneIndex = activeIndex;
|
||||
|
||||
Reference in New Issue
Block a user