diff --git a/renderdoc/driver/metal/metal_serialise.cpp b/renderdoc/driver/metal/metal_serialise.cpp index f5b8bc2c0..837421f2d 100644 --- a/renderdoc/driver/metal/metal_serialise.cpp +++ b/renderdoc/driver/metal/metal_serialise.cpp @@ -138,6 +138,29 @@ void DoSerialise(SerialiserType &ser, MTL::SamplePosition &el) SERIALISE_MEMBER(y); } +template +void DoSerialise(SerialiserType &ser, MTL::Origin &el) +{ + SERIALISE_MEMBER(x); + SERIALISE_MEMBER(y); + SERIALISE_MEMBER(z); +} + +template +void DoSerialise(SerialiserType &ser, MTL::Region &el) +{ + SERIALISE_MEMBER(origin); + SERIALISE_MEMBER(size); +} + +template +void DoSerialise(SerialiserType &ser, MTL::Size &el) +{ + SERIALISE_MEMBER(width); + SERIALISE_MEMBER(height); + SERIALISE_MEMBER(depth); +} + template void DoSerialise(SerialiserType &ser, RDMTL::TextureDescriptor &el) { @@ -334,6 +357,9 @@ INSTANTIATE_SERIALISE_TYPE(MTL::TextureSwizzleChannels); INSTANTIATE_SERIALISE_TYPE(MTL::ClearColor); INSTANTIATE_SERIALISE_TYPE(MTL::SamplePosition); INSTANTIATE_SERIALISE_TYPE(MTL::Viewport); +INSTANTIATE_SERIALISE_TYPE(MTL::Origin); +INSTANTIATE_SERIALISE_TYPE(MTL::Region); +INSTANTIATE_SERIALISE_TYPE(MTL::Size); INSTANTIATE_SERIALISE_TYPE(RDMTL::TextureDescriptor); INSTANTIATE_SERIALISE_TYPE(RDMTL::RenderPipelineColorAttachmentDescriptor); INSTANTIATE_SERIALISE_TYPE(RDMTL::PipelineBufferDescriptor); diff --git a/renderdoc/driver/metal/metal_stringise.cpp b/renderdoc/driver/metal/metal_stringise.cpp index 45c395499..a84f3460d 100644 --- a/renderdoc/driver/metal/metal_stringise.cpp +++ b/renderdoc/driver/metal/metal_stringise.cpp @@ -994,3 +994,75 @@ rdcstr DoStringise(const MTL::MultisampleStencilResolveFilter &el) } END_ENUM_STRINGISE() } + +template <> +rdcstr DoStringise(const MTL::BlitOption &el) +{ + BEGIN_ENUM_STRINGISE(MTL::BlitOption) + { + MTL_STRINGISE_ENUM(BlitOptionNone); + MTL_STRINGISE_ENUM(BlitOptionDepthFromDepthStencil); + MTL_STRINGISE_ENUM(BlitOptionRowLinearPVRTC); + MTL_STRINGISE_ENUM(BlitOptionStencilFromDepthStencil); + } + END_ENUM_STRINGISE() +} + +template <> +rdcstr DoStringise(const MTL::DeviceLocation &el) +{ + BEGIN_BITFIELD_STRINGISE(MTL::DeviceLocation) + { + MTL_STRINGISE_BITFIELD_BIT(DeviceLocationBuiltIn); + MTL_STRINGISE_BITFIELD_BIT(DeviceLocationSlot); + MTL_STRINGISE_BITFIELD_BIT(DeviceLocationExternal); + MTL_STRINGISE_BITFIELD_BIT(DeviceLocationUnspecified); + } + END_BITFIELD_STRINGISE() +} + +template <> +rdcstr DoStringise(const MTL::ArgumentBuffersTier &el) +{ + BEGIN_BITFIELD_STRINGISE(MTL::ArgumentBuffersTier) + { + MTL_STRINGISE_BITFIELD_BIT(ArgumentBuffersTier1); + MTL_STRINGISE_BITFIELD_BIT(ArgumentBuffersTier2); + } + END_BITFIELD_STRINGISE() +} + +template <> +rdcstr DoStringise(const MTL::DepthClipMode &el) +{ + BEGIN_ENUM_STRINGISE(MTL::DepthClipMode); + { + MTL_STRINGISE_ENUM(DepthClipModeClip); + MTL_STRINGISE_ENUM(DepthClipModeClamp); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const MTL::TriangleFillMode &el) +{ + BEGIN_ENUM_STRINGISE(MTL::TriangleFillMode); + { + MTL_STRINGISE_ENUM(TriangleFillModeFill); + MTL_STRINGISE_ENUM(TriangleFillModeLines); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const MTL::CullMode &el) +{ + BEGIN_ENUM_STRINGISE(MTL::CullMode); + { + MTL_STRINGISE_ENUM(CullModeNone); + MTL_STRINGISE_ENUM(CullModeFront); + MTL_STRINGISE_ENUM(CullModeBack); + } + END_ENUM_STRINGISE(); +}; + diff --git a/renderdoc/driver/metal/metal_types.h b/renderdoc/driver/metal/metal_types.h index e7764ad0d..e291659ca 100644 --- a/renderdoc/driver/metal/metal_types.h +++ b/renderdoc/driver/metal/metal_types.h @@ -115,6 +115,15 @@ MTL_DECLARE_REFLECTION_TYPE(Viewport); MTL_DECLARE_REFLECTION_TYPE(MultisampleDepthResolveFilter); MTL_DECLARE_REFLECTION_TYPE(MultisampleStencilResolveFilter); MTL_DECLARE_REFLECTION_TYPE(SamplePosition); +MTL_DECLARE_REFLECTION_TYPE(Origin); +MTL_DECLARE_REFLECTION_TYPE(Region); +MTL_DECLARE_REFLECTION_TYPE(Size); +MTL_DECLARE_REFLECTION_TYPE(BlitOption); +MTL_DECLARE_REFLECTION_TYPE(DeviceLocation); +MTL_DECLARE_REFLECTION_TYPE(ArgumentBuffersTier); +MTL_DECLARE_REFLECTION_TYPE(DepthClipMode); +MTL_DECLARE_REFLECTION_TYPE(TriangleFillMode); +MTL_DECLARE_REFLECTION_TYPE(CullMode); template <> inline rdcliteral TypeName()