mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 10:00:40 +00:00
MTLComputePassDescriptor
This commit is contained in:
committed by
Jake Turner
parent
e6b8b380d4
commit
adb6fe2e8d
@@ -408,6 +408,13 @@ void DoSerialise(SerialiserType &ser, RDMTL::ComputePipelineDescriptor &el)
|
||||
// SERIALISE_MEMBER(binaryArchives);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, RDMTL::ComputePassDescriptor &el)
|
||||
{
|
||||
SERIALISE_MEMBER(sampleBufferAttachments);
|
||||
SERIALISE_MEMBER(dispatchType);
|
||||
}
|
||||
|
||||
INSTANTIATE_SERIALISE_TYPE(NS::String *);
|
||||
INSTANTIATE_SERIALISE_TYPE(NS::Range)
|
||||
INSTANTIATE_SERIALISE_TYPE(MTL::TextureSwizzleChannels);
|
||||
@@ -436,3 +443,4 @@ INSTANTIATE_SERIALISE_TYPE(RDMTL::RenderPassStencilAttachmentDescriptor);
|
||||
INSTANTIATE_SERIALISE_TYPE(RDMTL::RenderPassDescriptor);
|
||||
INSTANTIATE_SERIALISE_TYPE(RDMTL::ComputePassSampleBufferAttachmentDescriptor);
|
||||
INSTANTIATE_SERIALISE_TYPE(RDMTL::ComputePipelineDescriptor);
|
||||
INSTANTIATE_SERIALISE_TYPE(RDMTL::ComputePassDescriptor);
|
||||
|
||||
@@ -1218,6 +1218,17 @@ rdcstr DoStringise(const MTL::StepFunction &el)
|
||||
END_ENUM_STRINGISE()
|
||||
}
|
||||
|
||||
template <>
|
||||
rdcstr DoStringise(const MTL::DispatchType &el)
|
||||
{
|
||||
BEGIN_ENUM_STRINGISE(MTL::DispatchType)
|
||||
{
|
||||
MTL_STRINGISE_ENUM(DispatchTypeSerial);
|
||||
MTL_STRINGISE_ENUM(DispatchTypeConcurrent);
|
||||
}
|
||||
END_ENUM_STRINGISE()
|
||||
}
|
||||
|
||||
template <>
|
||||
rdcstr DoStringise(const MetalResourceType &el)
|
||||
{
|
||||
|
||||
@@ -164,6 +164,13 @@ static bool ValidData(MTL::BufferLayoutDescriptor *descriptor)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ValidData(MTL::ComputePassSampleBufferAttachmentDescriptor *descriptor)
|
||||
{
|
||||
if(!descriptor->sampleBuffer())
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename MTL_TYPE>
|
||||
static void GetWrappedNSArray(rdcarray<typename UnwrapHelper<MTL_TYPE>::Outer *> &to, NS::Array *from)
|
||||
{
|
||||
@@ -731,4 +738,19 @@ ComputePipelineDescriptor::operator MTL::ComputePipelineDescriptor *()
|
||||
return objc;
|
||||
}
|
||||
|
||||
ComputePassDescriptor::ComputePassDescriptor(MTL::ComputePassDescriptor *objc)
|
||||
: dispatchType(objc->dispatchType())
|
||||
{
|
||||
GETOBJCARRAY(ComputePassSampleBufferAttachmentDescriptor,
|
||||
MAX_COMPUTE_PASS_SAMPLE_BUFFER_ATTACHMENTS, sampleBufferAttachments, ValidData);
|
||||
}
|
||||
|
||||
ComputePassDescriptor::operator MTL::ComputePassDescriptor *()
|
||||
{
|
||||
MTL::ComputePassDescriptor *objc = MTL::ComputePassDescriptor::alloc()->init();
|
||||
COPYTOOBJCARRAY(ComputePassSampleBufferAttachmentDescriptor, sampleBufferAttachments);
|
||||
objc->setDispatchType(dispatchType);
|
||||
return objc;
|
||||
}
|
||||
|
||||
} // namespace RDMTL
|
||||
|
||||
@@ -34,6 +34,7 @@ const uint32_t MAX_RENDER_PASS_BUFFER_ATTACHMENTS = 31;
|
||||
const uint32_t MAX_VERTEX_SHADER_ATTRIBUTES = 31;
|
||||
const uint32_t MAX_RENDER_PASS_SAMPLE_BUFFER_ATTACHMENTS = 4;
|
||||
const uint32_t MAX_COMPUTE_PASS_BUFFER_ATTACHMENTS = 31;
|
||||
const uint32_t MAX_COMPUTE_PASS_SAMPLE_BUFFER_ATTACHMENTS = 4;
|
||||
|
||||
// Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCounters.h
|
||||
#ifndef MTLCounterDontSample
|
||||
@@ -166,6 +167,7 @@ MTL_DECLARE_REFLECTION_TYPE(CullMode);
|
||||
MTL_DECLARE_REFLECTION_TYPE(IndexType);
|
||||
MTL_DECLARE_REFLECTION_TYPE(StepFunction);
|
||||
MTL_DECLARE_REFLECTION_TYPE(AttributeFormat);
|
||||
MTL_DECLARE_REFLECTION_TYPE(DispatchType);
|
||||
|
||||
template <>
|
||||
inline rdcliteral TypeName<NS::Range>()
|
||||
@@ -512,6 +514,17 @@ struct ComputePipelineDescriptor
|
||||
// rdcarray<WrappedMTLBinaryArchive*> binaryArchives;
|
||||
};
|
||||
|
||||
// MTLComputePassDescriptor : based on the interface defined in
|
||||
// Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePass.h
|
||||
struct ComputePassDescriptor
|
||||
{
|
||||
ComputePassDescriptor() = default;
|
||||
ComputePassDescriptor(MTL::ComputePassDescriptor *objc);
|
||||
explicit operator MTL::ComputePassDescriptor *();
|
||||
rdcarray<ComputePassSampleBufferAttachmentDescriptor> sampleBufferAttachments;
|
||||
MTL::DispatchType dispatchType = MTL::DispatchTypeSerial;
|
||||
};
|
||||
|
||||
} // namespace RDMTL
|
||||
|
||||
template <>
|
||||
@@ -551,3 +564,4 @@ RDMTL_DECLARE_REFLECTION_STRUCT(RenderPassSampleBufferAttachmentDescriptor);
|
||||
RDMTL_DECLARE_REFLECTION_STRUCT(RenderPassDescriptor);
|
||||
RDMTL_DECLARE_REFLECTION_STRUCT(ComputePassSampleBufferAttachmentDescriptor);
|
||||
RDMTL_DECLARE_REFLECTION_STRUCT(ComputePipelineDescriptor);
|
||||
RDMTL_DECLARE_REFLECTION_STRUCT(ComputePassDescriptor);
|
||||
|
||||
Reference in New Issue
Block a user