diff --git a/renderdoc/driver/metal/metal_resources.h b/renderdoc/driver/metal/metal_resources.h index b4d3513b5..08040e2f5 100644 --- a/renderdoc/driver/metal/metal_resources.h +++ b/renderdoc/driver/metal/metal_resources.h @@ -124,6 +124,17 @@ inline MTL::Resource *Unwrap(WrappedMTLResource *obj) return Unwrap((WrappedMTLObject *)obj); } +enum class MetalCmdBufferStatus : uint32_t +{ + NoFlags = 0, + Enqueued = 1 << 0, + Committed = 1 << 1, + Submitted = 1 << 2, + Presented = 1 << 3, +}; + +BITMASK_OPERATORS(MetalCmdBufferStatus); + struct MetalCmdBufferRecordingInfo { MetalCmdBufferRecordingInfo(WrappedMTLCommandQueue *parentQueue) diff --git a/renderdoc/driver/metal/metal_stringise.cpp b/renderdoc/driver/metal/metal_stringise.cpp index f89538e22..9190a206b 100644 --- a/renderdoc/driver/metal/metal_stringise.cpp +++ b/renderdoc/driver/metal/metal_stringise.cpp @@ -1145,3 +1145,17 @@ rdcstr DoStringise(const MetalResourceType &el) } END_ENUM_STRINGISE(); } + +template <> +rdcstr DoStringise(const MetalCmdBufferStatus &el) +{ + BEGIN_BITFIELD_STRINGISE(MetalCmdBufferStatus) + { + STRINGISE_BITFIELD_CLASS_VALUE(NoFlags); + STRINGISE_BITFIELD_CLASS_BIT(Enqueued); + STRINGISE_BITFIELD_CLASS_BIT(Committed); + STRINGISE_BITFIELD_CLASS_BIT(Submitted); + STRINGISE_BITFIELD_CLASS_BIT(Presented); + } + END_BITFIELD_STRINGISE() +}