diff --git a/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist
new file mode 100755
index 00000000..47051fc8
--- /dev/null
+++ b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist
@@ -0,0 +1,579 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000
+ CFBundleGetInfoString
+ AMDRadeonX6000 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6000 Kernel Extension
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 4.0.8
+ GPUCompanionBundles
+
+ AMDRadeonX6000GLDriver.bundle
+ AMDRadeonVADriver2.bundle
+ AMDRadeonX6000MTLDriver.bundle
+ AMDRawCounterPlugin.bundle
+
+ IOKitPersonalities
+
+ AMDNavi10GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi10GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi12GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi12GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73601002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi14GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi14GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi21GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi21GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73A21002 0x73AB1002 0x73BF1002 0x73A31002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ ResNoAllocPaging
+ 0
+ SWIP_properties
+
+ EnableGDDR6MemoryTraining
+ 0
+ EnableSwVCNFWLoading
+ 0
+ EnableSwVCNUnifiedQueue
+
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi23GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi23GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73E31002 0x73FF1002 0x73E01002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ ResNoAllocPaging
+ 0
+ SWIP_properties
+
+ EnableGDDR6MemoryTraining
+ 0
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+
+ NSHumanReadableCopyright
+ Copyright © 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleLibraries
+
+ com.apple.iokit.IOAcceleratorFamily2
+ 2.0.0
+ com.apple.iokit.IOGraphicsFamily
+ 1.0.0b1
+ com.apple.iokit.IOPCIFamily
+ 1.0.0b1
+ com.apple.iokit.IOSurface
+ 87.0
+ com.apple.kpi.bsd
+ 8.0.0
+ com.apple.kpi.iokit
+ 8.0.0
+ com.apple.kpi.libkern
+ 8.0.0
+ com.apple.kpi.mach
+ 8.0.0
+ com.apple.kpi.unsupported
+ 8.0.0
+
+
+
diff --git a/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000 b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000
new file mode 100755
index 00000000..5f1f4754
Binary files /dev/null and b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000 differ
diff --git a/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo
new file mode 100755
index 00000000..8bc3257a
--- /dev/null
+++ b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo
@@ -0,0 +1 @@
+KEXT????
diff --git a/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5-23.4/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist
new file mode 100755
index 00000000..47051fc8
--- /dev/null
+++ b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist
@@ -0,0 +1,579 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000
+ CFBundleGetInfoString
+ AMDRadeonX6000 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6000 Kernel Extension
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 4.0.8
+ GPUCompanionBundles
+
+ AMDRadeonX6000GLDriver.bundle
+ AMDRadeonVADriver2.bundle
+ AMDRadeonX6000MTLDriver.bundle
+ AMDRawCounterPlugin.bundle
+
+ IOKitPersonalities
+
+ AMDNavi10GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi10GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi12GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi12GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73601002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi14GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi14GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi21GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi21GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73A21002 0x73AB1002 0x73BF1002 0x73A31002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ ResNoAllocPaging
+ 0
+ SWIP_properties
+
+ EnableGDDR6MemoryTraining
+ 0
+ EnableSwVCNFWLoading
+ 0
+ EnableSwVCNUnifiedQueue
+
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi23GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi23GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73E31002 0x73FF1002 0x73E01002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ ResNoAllocPaging
+ 0
+ SWIP_properties
+
+ EnableGDDR6MemoryTraining
+ 0
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+
+ NSHumanReadableCopyright
+ Copyright © 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleLibraries
+
+ com.apple.iokit.IOAcceleratorFamily2
+ 2.0.0
+ com.apple.iokit.IOGraphicsFamily
+ 1.0.0b1
+ com.apple.iokit.IOPCIFamily
+ 1.0.0b1
+ com.apple.iokit.IOSurface
+ 87.0
+ com.apple.kpi.bsd
+ 8.0.0
+ com.apple.kpi.iokit
+ 8.0.0
+ com.apple.kpi.libkern
+ 8.0.0
+ com.apple.kpi.mach
+ 8.0.0
+ com.apple.kpi.unsupported
+ 8.0.0
+
+
+
diff --git a/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000 b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000
new file mode 100755
index 00000000..3aff0b9e
Binary files /dev/null and b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000 differ
diff --git a/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo
new file mode 100755
index 00000000..8bc3257a
--- /dev/null
+++ b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo
@@ -0,0 +1 @@
+KEXT????
diff --git a/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5-23/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Info.plist b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Info.plist
new file mode 100755
index 00000000..52439224
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Info.plist
@@ -0,0 +1,52 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000MTLDriver
+ CFBundleGetInfoString
+ AMDRadeonX6000MTLDriver 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.AMDRadeonX6000MTLDriver
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMD GFX10 Metal Driver
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 4.0.8
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ LSMinimumSystemVersion
+ 12.6
+ NSPrincipalClass
+ GFX10_MtlDevice
+
+
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/AMDRadeonX6000MTLDriver b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/AMDRadeonX6000MTLDriver
new file mode 100755
index 00000000..4c71abcf
Binary files /dev/null and b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/AMDRadeonX6000MTLDriver differ
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/impostor.dylib b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/impostor.dylib
new file mode 100755
index 00000000..e62554b9
Binary files /dev/null and b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/impostor.dylib differ
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/PkgInfo b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/PkgInfo
new file mode 100755
index 00000000..43c9cb0f
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/PkgInfo
@@ -0,0 +1 @@
+BNDL????
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-analysis.js b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-analysis.js
new file mode 100755
index 00000000..b76edaf4
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-analysis.js
@@ -0,0 +1,33 @@
+var MemBandWidth = MemClkFreq / 100000 * MemBusWidth / 8 * 2; // GB/s
+var MaxPixelRate = NumROP * 4; // Pixels/EngineClk
+
+var waSEVERITY_HIGH = 2;
+var waSEVERITY_MEDIUM = 1;
+var waSEVERITY_LOW = 0;
+
+function analysis_pixelRate_bound()
+{
+ var blendingOn = (AMDStat_CB_Mem_Read == 0) ? 1 : 2;
+ if (PixelRate > ((MaxPixelRate / blendingOn) * 0.8))
+ {
+ var severity = waSEVERITY_LOW;
+
+ if ((NumMRT > 2) || (blendingOn == 2))
+ {
+ severity = waSEVERITY_MEDIUM;
+ }
+
+ var problemId = ReportProblem(0.3, "Pixel rate bound", severity);
+ AddProblemSubItem(problemId, "Performance is bound by the maximum rate the GPU can write pixels");
+
+ if (NumMRT > 2)
+ {
+ AddProblemSubItem(problemId, "Consider decreasing the number of MRTs if possible");
+ }
+
+ if (blendingOn == 2)
+ {
+ AddProblemSubItem(problemId, "Blending is on, which will reduce the maximum pixel rate, check if blending needs to be turned on")
+ }
+ }
+}
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-counters.plist b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-counters.plist
new file mode 100755
index 00000000..c657f10d
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-counters.plist
@@ -0,0 +1,2487 @@
+
+
+
+
+ Bottlenecks
+
+ analysis_shaderALU_bound
+
+ name
+ Shader ALU Bound
+ description
+ is shader ALU bound
+
+ analysis_TextureSamplingInst_bound
+
+ name
+ Texture Sampling Instructions Bound
+ description
+ is shader texture sampling instruction bound
+
+ analysis_pixelRate_bound
+
+ name
+ Pixel Rate Bound
+ description
+ is pixel rate bound
+
+ analysis_primitiveRate_bound
+
+ name
+ Primitive Rate Bound
+ description
+ is primitive rate bound
+
+ analysis_memory_bound
+
+ name
+ Memory Bandwidth Bound
+ description
+ is memory bandwidth bound
+
+
+ Version
+ 1.0
+ Instruments
+
+ DefaultSamplingInterval
+ 500
+ Profiles
+
+ Limiters1
+
+ DerivedCounters
+
+
+ Name
+ VSOccupancy
+
+
+ Name
+ PSOccupancy
+
+
+ Name
+ CSOccupancy
+
+
+ Name
+ LLCRead
+
+
+ Name
+ LLCWrite
+
+
+ Name
+ ALUutilization
+
+
+
+
+
+ DerivedCounters
+
+ VSOccupancy
+
+ counters
+
+ DerivedVSOccupancy
+ DerivedCPF
+
+ name
+ Vertex Shader Occupancy
+ description
+ Vertex Shader occupancy
+ type
+ Percentage
+
+ PSOccupancy
+
+ counters
+
+ DerivedPSOccupancy
+ DerivedCPF
+
+ name
+ Fragment Shader Occupancy
+ description
+ Fragment Shader occupancy
+ type
+ Percentage
+
+ CSOccupancy
+
+ counters
+
+ DerivedCSOccupancy
+ DerivedCSNOccupancy
+ DerivedCPF
+
+ name
+ Compute Shader Occupancy
+ description
+ Compute Shader occupancy
+ type
+ Percentage
+
+ LLCRead
+
+ counters
+
+ DerivedLLCRead
+ GpuTime
+
+ name
+ Last Level Cache Read
+ description
+ Last Level Cache Read # of Bytes
+ type
+ Rate
+
+ LLCWrite
+
+ counters
+
+ DerivedLLCWrite
+ GpuTime
+
+ name
+ Last Level Cache Written
+ description
+ Last Level Cache Write # of Bytes
+ type
+ Rate
+
+ ALUutilization
+
+ counters
+
+ DerivedWavesInFlight
+ DerivedALUActiveInst
+ DerivedALUThreadCycles
+ GpuTime
+
+ name
+ ALUutilization
+ description
+ Utilization of instructions in SIMD
+ type
+ Rate
+
+ GPUTime
+
+ counters
+
+ MTLStat_nSec
+
+ name
+ GPU Time
+ description
+ GPU Time in nSec
+ type
+ Count
+
+ GPUBusy
+
+ counters
+
+ AMDStat_GPU_Engine_Ticks
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ GPU Busy %
+ description
+ Percentage of time GPU is doing work
+ type
+ Percentage
+
+ GPUStall
+
+ counters
+
+ GPUBusy
+
+ name
+ GPU Stall %
+ description
+ Percentage of time GPU is being stalled
+ type
+ Percentage
+
+ ShaderCoreUtilization
+
+ counters
+
+ MTLStatShaderCost
+ MTLStatComputeCost
+
+ name
+ Shader Core Utilization %
+ description
+ Percentage of time Shader core is doing work
+ type
+ Percentage
+
+ ShaderCoreALUActive
+
+ counters
+
+ MTLStatComputeCost
+ AMDStat_Shader_SALU_Cycles
+ AMDStat_Shader_VALU_Cycles
+ AMDStat_Compute_SALU_Insts
+ AMDStat_Compute_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Shader Core ALU Active %
+ description
+ Percentage of time Shader core is doing actual work (ALU instructions) in total GPU time
+ type
+ Percentage
+
+ ShaderCoreVertexALUActive
+
+ counters
+
+ AMDStat_Vertex_SALU_Insts
+ AMDStat_Vertex_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ALU active % in Vertex Shader
+ description
+ Percentage of time shader core is running ALU instructions in vertex shader in total GPU time
+ type
+ Percentage
+
+ ShaderCoreFragmentALUActive
+
+ counters
+
+ AMDStat_Fragment_SALU_Insts
+ AMDStat_Fragment_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ALU active % in Fragment Shader
+ description
+ Percentage of time shader core is running ALU instructions in fragment shader in total GPU time
+ type
+ Percentage
+
+ MemoryStallPerWavefrontCompute
+
+ counters
+
+ AMDStat_Compute_Wait_Inst_VMEM
+ AMDStat_Compute_WAIT_CNT_VMVS
+ AMDStat_Compute_Waves_Executed
+ AverageWavefrontLatencyCompute
+
+ name
+ Memory Stall % in Compute Shader Wavefronts
+ description
+ Percentage of time a compute shader wavefront is stalled by memory operation
+ type
+ Percentage
+
+ MemoryStallPerWavefrontVertex
+
+ counters
+
+ AMDStat_Vertex_Wait_Inst_VMEM
+ AMDStat_Vertex_WAIT_CNT_VMVS
+ AMDStat_Vertex_Waves_Executed
+ AverageWavefrontLatencyVertex
+
+ name
+ Memory Stall % in Vertex Shader Wavefronts
+ description
+ Percentage of time a vertex shader wavefront is stalled by memory operation
+ type
+ Percentage
+
+ MemoryStallPerWavefrontFragment
+
+ counters
+
+ AMDStat_Fragment_Wait_Inst_VMEM
+ AMDStat_Fragment_WAIT_CNT_VMVS
+ AMDStat_Fragment_Waves_Executed
+ AverageWavefrontLatencyFragment
+
+ name
+ Memory Stall % in Fragment Shader Wavefronts
+ description
+ Percentage of time a fragment shader wavefront is stalled by memory operation
+ type
+ Percentage
+
+ AverageWavefrontLatencyCompute
+
+ counters
+
+ AMDStat_Compute_Accum_Prev_Cycles
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average latency of a Compute Shader Wavefront
+ description
+ Average cycles each Compute shader wavefront takes
+ type
+ Count
+
+ AverageWavefrontLatencyVertex
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Vertex_Waves_Executed
+
+ name
+ Average latency of a Vertex Shader Wavefront
+ description
+ Average cycles each vertex shader wavefront takes
+ type
+ Count
+
+ AverageWavefrontLatencyFragment
+
+ counters
+
+ AMDStat_Fragment_Accum_Prev_Cycles
+ AMDStat_Fragment_Waves_Executed
+
+ name
+ Average latency of a Fragment Shader Wavefront
+ description
+ Average cycles each fragment shader wavefront takes
+ type
+ Count
+
+ AverageWavesInflightCompute
+
+ counters
+
+ AMDStat_Compute_Accum_Prev_Cycles
+ AMDStat_Compute_Busy_Cycles
+
+ name
+ Compute Shader Wavefront SIMD Occupancy
+ description
+ Average Number of Compute Shader Wavefront In Flight per SIMD
+ type
+ Count
+
+ AverageWavesInflightVertex
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Vertex_Busy_Cycles
+
+ name
+ Vertex Shader Wavefront SIMD Occupancy
+ description
+ Average Number of Vertex Shader Wavefront In Flight per SIMD
+ type
+ Count
+
+ AverageWavesInflightFragment
+
+ counters
+
+ AMDStat_Fragment_Accum_Prev_Cycles
+ AMDStat_Fragment_Busy_Cycles
+
+ name
+ Fragment Shader Wavefront SIMD Occupancy
+ description
+ Average Number of Fragment Shader Wavefront In Flight per SIMD
+ type
+ Count
+
+ ShaderCoreStall
+
+ counters
+
+ ShaderCoreALUActive
+ AMDStat_GPU_Engine_Busy_Ticks
+ AMDStat_Shader_VMEM_Read_Cycles
+ AMDStat_Shader_VMEM_Write_Cycles
+ AMDStat_Shader_EXP_Cycles
+ AMDStat_Shader_GDS_Cycles
+ MTLStatShaderCost
+
+ name
+ % of Stall Time in Shader Core in total GPU time
+ description
+ Percentage of time shader core is being stalled in total GPU time
+ type
+ Percentage
+
+ SamplerBusy
+
+ counters
+
+ AMDStat_Sampler_Busy
+
+ name
+ % of Busy Time in Sampler
+ description
+ Percentage of time Sampler is busy
+ type
+ Percentage
+
+ L2CacheThroughput
+
+ counters
+
+ AMDStat_L2_Cache_Request
+ AMDStat_L2_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ L2 Cache Throughput
+ description
+ Number of requests (cache lines) being sent to L2 Cache per GPU clock
+ type
+ Rate
+
+ L2CacheDramBandwidth
+
+ counters
+
+ AMDStat_L2_Write_Size
+ AMDStat_L2_Read_Size
+ AMDStat_L2_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ L2 Cache Dram Bandwidth
+ description
+ Number of GB being accessed in memory by L2 cache per second
+ type
+ Rate
+
+ VSInvocation
+
+ counters
+
+ AMDStat_DS_Invocations
+ AMDStat_VS_Invocations
+
+ name
+ Vertex Shader Invocations
+ description
+ Number of times vertex shader is invoked
+ type
+ Count
+
+ CSInvocation
+
+ counters
+
+ AMDStat_CS_Invocations
+ AMDStat_VS_Invocations
+ AMDStat_PS_Invocations
+
+ name
+ Compute Shader Invocations
+ description
+ Number of times compute shader is invoked
+ type
+ Count
+
+ PSInvocation
+
+ counters
+
+ AMDStat_PS_Invocations
+ AMDStat_VS_Invocations
+
+ name
+ Fragment Shader Invocations
+ description
+ Number of times fragment shader is invoked
+ type
+ Count
+
+ VertexCost
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Fragment_Accum_Prev_Cycles
+
+ name
+ Vertex Shader Cost
+ description
+ % of total compute unit cycles spend running vertex shader
+ type
+ Percentage
+
+ FragmentCost
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Fragment_Accum_Prev_Cycles
+
+ name
+ Fragment Shader Cost
+ description
+ % of total compute unit cycles spend running fragment shader
+ type
+ Percentage
+
+ VertexDuration
+
+ counters
+
+ MTLStatFragmentCost
+ MTLStatVertexCost
+
+ name
+ Vertex Shader Duration
+ description
+ % of GPU busy time the vertex shader is in flight
+ type
+ Percentage
+
+ FragmentDuration
+
+ counters
+
+ MTLStatFragmentCost
+ MTLStatVertexCost
+
+ name
+ Fragment Shader Duration
+ description
+ % of GPU busy time the fragment shader is in flight
+ type
+ Percentage
+
+ PixelToVertexRatio
+
+ counters
+
+ AMDStat_GE_Vertices
+ PixelsRasterized
+
+ name
+ Pixel To Vertex Ratio
+ description
+ Number of pixels per vertex
+ type
+ Rate
+
+ PixelPerTriangle
+
+ counters
+
+ PrimitivesSubmitted
+ PixelsRasterized
+
+ name
+ Pixel Per Triangle
+ description
+ Number of pixels per triangle
+ type
+ Rate
+
+ VerticesSubmitted
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_GE_Vertices
+ AMDStat_VS_Vertices_In
+
+ name
+ Vertices Submitted
+ description
+ Number of vertices being submitted to input assembly
+ type
+ Count
+
+ NumberOfPatchesSubmitted
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_GE_Vertices
+
+ name
+ Number of Patches Submitted
+ description
+ Number of patches being submitted to input assembly
+ type
+ Count
+
+ VerticesReused
+
+ counters
+
+ AMDStat_Vertices_Reuse
+ AMDStat_GE_Vertices
+ AMDStat_VS_Invocations
+
+ name
+ Number of Vertices Reused
+ description
+ Number of number of vertices being reused in the total number of submitted vertices
+ type
+ Count
+
+ VerticesReusedPercentage
+
+ counters
+
+ VerticesReused
+ AMDStat_GE_Vertices
+
+ name
+ Percentage of Vertices Reused
+ description
+ Percentage of number of vertices being reused in the total number of submitted vertices
+ type
+ Percentage
+
+ AverageTessFactor
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_VS_Vertices_In
+ AMDStat_GE_Vertices
+
+ name
+ Average Tessellation Factor
+ description
+ Average of actually calculated tessellation factor
+ type
+ Count
+
+ VerticesRendered
+
+ counters
+
+ AMDStat_VS_Vertices_In
+
+ name
+ Number of Vertices Rendered
+ description
+ Number of number of vertices being passed to shader core in total number of vertices submitted
+ type
+ Count
+
+ VerticesRenderedPercentage
+
+ counters
+
+ AMDStat_VS_Vertices_In
+ VerticesSubmitted
+
+ name
+ Percentage of Vertices Rendered
+ description
+ Percentage of number of vertices being passed to shader core in total number of vertices submitted
+ type
+ Percentage
+
+ PrimitivesSubmitted
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_C_Invocations
+ AMDStat_GE_Primitives
+
+ name
+ Primitives Submitted
+ description
+ Number of primitives gathered by input assembly
+ type
+ Count
+
+ PrimitivesRendered
+
+ counters
+
+ AMDStat_C_Primitives
+
+ name
+ Number of Primitives Rendered
+ description
+ Number of Number of primitives actually rendered in total number of primitives submitted
+ type
+ Count
+
+ PrimitivesRenderedPercentage
+
+ counters
+
+ AMDStat_C_Primitives
+ PrimitivesSubmitted
+
+ name
+ Percentage of Primitives Rendered
+ description
+ Percentage of Number of primitives actually rendered in total number of primitives submitted
+ type
+ Percentage
+
+ NumberOfCulledPrimitives
+
+ counters
+
+ AMDStat_Culled_Prims
+
+ name
+ Number of Primitives Culled
+ description
+ Number of Number of primitives being culled in total number of primitives submitted
+ type
+ Count
+
+ NumberOfCulledPrimitivesPercentage
+
+ counters
+
+ AMDStat_Culled_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Primitives Culled
+ description
+ Percentage of Number of primitives being culled in total number of primitives submitted
+ type
+ Percentage
+
+ NumberOfClippedPrimitives
+
+ counters
+
+ AMDStat_Clipped_Prims
+
+ name
+ Number of Primitives Clipped
+ description
+ Number of Number of primitives being clipped in total number of primitives submitted
+ type
+ Count
+
+ NumberOfClippedPrimitivesPercentage
+
+ counters
+
+ AMDStat_Clipped_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Primitives Clipped
+ description
+ Percentage of Number of primitives being clipped in total number of primitives submitted
+ type
+ Percentage
+
+ HierarchicalZTotalTilesCount
+
+ counters
+
+ AMDStat_HiZTiles_Total_Count
+
+ name
+ Hierarchical ZTotal Tiles Count
+ description
+ Number of tiles sent to hierarchical Z test
+ type
+ Count
+
+ HierarchicalZFailPercentage
+
+ counters
+
+ AMDStat_HiZTiles_Culled_Count
+ AMDStat_HiZTiles_Total_Count
+
+ name
+ Percentage of Hierarchical Z Fail Count
+ description
+ Percentage of number of tiles that fails hierarchical Z test in the total number of tiles sent to HiZ test
+ type
+ Percentage
+
+ PreZPassSampleCount
+
+ counters
+
+ AMDStat_PreZ_Samples_PassingZ
+
+ name
+ PreZ Z test Pass Sample Count
+ description
+ Number of samples that pass preZ Z test
+ type
+ Count
+
+ PreZFailSampleCount
+
+ counters
+
+ AMDStat_PreZ_Samples_FailingZ
+
+ name
+ PreZ Z test Fail Count
+ description
+ Number of samples that fail preZ Z test
+ type
+ Count
+
+ PreZStencilFailSampleCount
+
+ counters
+
+ AMDStat_PreZ_Samples_FailingS
+
+ name
+ PreZ Stencil Test Fail SampleCount
+ description
+ Number of samples that fail preZ stencil test
+ type
+ Count
+
+ PostZPassSampleCount
+
+ counters
+
+ AMDStat_PostZ_Samples_PassingZ
+
+ name
+ PostZ Z test Pass Sample Count
+ description
+ Number of samples that pass postZ Z test
+ type
+ Count
+
+ PostZFailSampleCount
+
+ counters
+
+ AMDStat_PostZ_Samples_FailingZ
+
+ name
+ PostZ Z test Fail Sample Count
+ description
+ Number of samples that fail postZ Z test
+ type
+ Count
+
+ PostZStencilFailSampleCount
+
+ counters
+
+ AMDStat_PostZ_Samples_FailingS
+
+ name
+ PostZ Stencil test Fail Sample Count
+ description
+ Number of samples that fail postZ stencil test
+ type
+ Count
+
+ PreZFailPercentage
+
+ counters
+
+ AMDStat_PreZ_Quads_Count
+ AMDStat_FS_Quads_Count
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ Fail % in PreZ Z and Stencil test
+ description
+ Percentage of pixels that failed preZ Z and stencil test in total number of rasterized pixels
+ type
+ Percentage
+
+ PostZFailPercentage
+
+ counters
+
+ AMDStat_PostZ_Samples_FailingZ
+ AMDStat_PostZ_Samples_FailingS
+ AMDStat_PostZ_Samples_PassingZ
+ AMDStat_PreZ_Quads_Count
+ AMDStat_PostFS_Pixels
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ Fail % in PostZ Z and Stencil test
+ description
+ Percentage of pixels that failed postZ Z and stencil test in total number of rasterized pixels
+ type
+ Percentage
+
+ PixelsRasterized
+
+ counters
+
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ Pixels Rasterized
+ description
+ Total number of pixels rasterized
+ type
+ Count
+
+ PixelsDrawn
+
+ counters
+
+ AMDStat_Pixels_Drawn
+ NumMRT
+
+ name
+ Pixels Drawn
+ description
+ Number of pixels written to color buffer
+ type
+ Count
+
+ PixelsDrawnPercentage
+
+ counters
+
+ NumMRT
+ AMDStat_Quads_Drawn
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ % of Pixels Drawn
+ description
+ Percentage of number of pixels written to color buffer in total number of rasterized pixels
+ type
+ Percentage
+
+ FragmentsDrawn
+
+ counters
+
+ PixelsDrawn
+ AMDStat_Quads_Drawn
+ AMDStat_Quad_Fragments_Drawn
+ NumMRT
+
+ name
+ Fragments Drawn
+ description
+ Number of fragments written to color buffer
+ type
+ Count
+
+ PixelsDiscardedPercentage
+
+ counters
+
+ AMDStat_PS_Invocations
+ AMDStat_PostFS_Pixels
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ % of Pixels Discarded in Shader
+ description
+ Percentage of number of pixels being discarded in shader in total number of pixels rasterized
+ type
+ Percentage
+
+ PixelRate
+
+ counters
+
+ AMDStat_Pixels_Drawn
+ AMDStat_CBDrawn_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Pixel Rate
+ description
+ Number of pixels being rendered per GPU clock
+ type
+ Rate
+
+ ALUInstructionPerInvocationCompute
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_Compute_SALU_Insts
+ AMDStat_Compute_VALU_Insts
+
+ name
+ ALU Instructions Executed Per Compute Shader Invocation
+ description
+ Total number of ALU instructions executed in each compute shader invocation
+ type
+ Count
+
+ ALUInstructionPerInvocationVertex
+
+ counters
+
+ AMDStat_Vertex_SALU_Insts
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_Vertex_VALU_Insts
+
+ name
+ ALU Instructions Executed Per Vertex Shader Invocation
+ description
+ Total number of ALU instructions executed in each vertex shader invocation
+ type
+ Count
+
+ ALUInstructionPerInvocationFragment
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_Fragment_SALU_Insts
+ AMDStat_Fragment_VALU_Insts
+
+ name
+ ALU Instructions Executed Per Fragment Shader Invocation
+ description
+ Total number of ALU instructions executed in each fragment shader invocation
+ type
+ Count
+
+ MemInstructionPerInvocationCompute
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_Compute_VMEM_Write_Cycles
+ AMDStat_Compute_VMEM_Read_Cycles
+ AMDStat_Compute_SMEM_Insts
+
+ name
+ Memory Instructions Executed Per Compute Shader Invocation
+ description
+ Total number of memory instructions executed in each compute shader invocation
+ type
+ Count
+
+ MemInstructionPerInvocationVertex
+
+ counters
+
+ AMDStat_Vertex_VMEM_Write_Cycles
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_Vertex_VMEM_Read_Cycles
+ AMDStat_Vertex_SMEM_Insts
+
+ name
+ Memory Instructions Executed Per Vertex Shader Invocation
+ description
+ Total number of memory instructions executed in each vertex shader invocation
+ type
+ Count
+
+ MemInstructionPerInvocationFragment
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_Fragment_VMEM_Write_Cycles
+ AMDStat_Fragment_VMEM_Read_Cycles
+ AMDStat_Fragment_SMEM_Insts
+
+ name
+ Memory Instructions Executed Per Fragment Shader Invocation
+ description
+ Total number of memory Iinstructions executed in each fragment shader invocation
+ type
+ Count
+
+ ControlInstructionPerInvocationCompute
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_Compute_Branch_Insts
+
+ name
+ Control Instructions Executed Per Compute Shader Invocation
+ description
+ Total number of control instructions executed in each compute shader invocation
+ type
+ Count
+
+ ControlInstructionPerInvocationVertex
+
+ counters
+
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_Vertex_Branch_Insts
+
+ name
+ Control Instructions Executed Per Vertex Shader Invocation
+ description
+ Total number of control instructions executed in each vertex shader invocation
+ type
+ Count
+
+ ControlInstructionPerInvocationFragment
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_Fragment_Branch_Insts
+
+ name
+ Control Instructions Executed Per Fragment Shader Invocation
+ description
+ Total number of control instructions executed in each fragment shader invocation
+ type
+ Count
+
+ ALUToMemRatioCompute
+
+ counters
+
+ ALUInstructionPerInvocationCompute
+ MemInstructionPerInvocationCompute
+
+ name
+ ALU to Memory Ratio in Compute Shader
+ description
+ Number of ALU instructions per memory instruction in compute shader
+ type
+ Rate
+
+ ALUToMemRatioVertex
+
+ counters
+
+ ALUInstructionPerInvocationVertex
+ MemInstructionPerInvocationVertex
+
+ name
+ ALU to Memory Ratio in Vertex Shader
+ description
+ Number of ALU instructions per memory instruction in vertex shader
+ type
+ Rate
+
+ ALUToMemRatioFragment
+
+ counters
+
+ ALUInstructionPerInvocationFragment
+ MemInstructionPerInvocationFragment
+
+ name
+ ALU to Memory Ratio in Fragment Shader
+ description
+ Number of ALU instructions per memory instruction in fragment shader
+ type
+ Rate
+
+ LdsStallPerWavefrontCompute
+
+ counters
+
+ AMDStat_Compute_WAIT_CNT_LGKM
+ AMDStat_Compute_LDS_Wait
+ AMDStat_Compute_Waves_Executed
+ AverageWavefrontLatencyCompute
+
+ name
+ % of LDS Stall in a Compute Wavefront
+ description
+ Percentage of a compute shader wavefront being stalled by LDS access
+ type
+ Percentage
+
+ LdsStallPerWavefrontVertex
+
+ counters
+
+ AMDStat_Vertex_LDS_Wait
+ AMDStat_Vertex_WAIT_CNT_LGKM
+ AMDStat_Vertex_Waves_Executed
+ AverageWavefrontLatencyVertex
+
+ name
+ % of LDS Stall in a Vertex Wavefront
+ description
+ Percentage of a vertex shader wavefront being stalled by LDS access
+ type
+ Percentage
+
+ LdsStallPerWavefrontFragment
+
+ counters
+
+ AMDStat_Fragment_LDS_Wait
+ AMDStat_Fragment_WAIT_CNT_LGKM
+ AMDStat_Fragment_Waves_Executed
+ AverageWavefrontLatencyFragment
+
+ name
+ % of LDS Stall in a Fragment Wavefront
+ description
+ Percentage of a fragment wavefront being stalled by LDS access
+ type
+ Percentage
+
+ ROPStall
+
+ counters
+
+ AMDStat_ROP_Stalled_Ticks
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ROP Stall
+ description
+ Percentage of GPU busy time being stalled by ROP
+ type
+ Percentage
+
+ ExportStallPerWavefrontVertex
+
+ counters
+
+ AMDStat_Vertex_Wait_Export_Alloc
+ AMDStat_Vertex_WAIT_CNT_EXP
+ AMDStat_Vertex_Waves_Executed
+ AverageWavefrontLatencyVertex
+
+ name
+ Export Stall % in Vertex Shader Wavefronts
+ description
+ Percentage of time a vertex shader wavefront is stalled by export instructions
+ type
+ Percentage
+
+ ExportStallPerWavefrontFragment
+
+ counters
+
+ AMDStat_Fragment_Wait_Export_Alloc
+ AMDStat_Fragment_WAIT_CNT_EXP
+ AMDStat_Fragment_Waves_Executed
+ AverageWavefrontLatencyFragment
+
+ name
+ Export Stall % in Fragment Shader Wavefronts
+ description
+ Percentage of time a fragment shader wavefront is stalled by export instructions
+ type
+ Percentage
+
+ ZeroAreaCullPrims
+
+ counters
+
+ AMDStat_ZeroArea_Culled_Prims
+
+ name
+ Number of Zero Area Culled Primitives
+ description
+ Number of number of primitives being culled due to having zero area coverage in total number of primitives submitted
+ type
+ Count
+
+ ZeroAreaCullPrimsPercentage
+
+ counters
+
+ AMDStat_ZeroArea_Culled_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Zero Area Culled Primitives
+ description
+ Percentage of number of primitives being culled due to having zero area coverage in total number of primitives submitted
+ type
+ Percentage
+
+ ClipperCullPrims
+
+ counters
+
+ AMDStat_Clipping_Culled_Prims
+
+ name
+ Number of Clipper Culled Primitives
+ description
+ Number of number of primitives being culled by clipper in total number of primitives submitted
+ type
+ Count
+
+ ClipperCullPrimsPercentage
+
+ counters
+
+ AMDStat_Clipping_Culled_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Clipper Culled Primitives
+ description
+ Percentage of number of primitives being culled by clipper in total number of primitives submitted
+ type
+ Percentage
+
+ MemUnitBusy
+
+ counters
+
+ AMDStat_TexUnit_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Memory Unit Stall
+ description
+ Percentage of GPUTime the memory unit is active
+ type
+ Percentage
+
+ MemUnitBusyCycles
+
+ counters
+
+ AMDStat_TexUnit_Busy_Ticks
+
+ name
+ Memory Unit Busy Cycles
+ description
+ Number of GPU cycles the memory unit is active
+ type
+ Count
+
+ MemUnitStalled
+
+ counters
+
+ AMDStat_TexUnit_Stall
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Memory Unit Stall Cycles
+ description
+ The percentage of GPUTime the memory unit is stalled
+ type
+ Percentage
+
+ MemUnitStalledCycles
+
+ counters
+
+ AMDStat_TexUnit_Stalled_Ticks
+
+ name
+ Memory Unit Stall Cycles
+ description
+ Number of GPU cycles the memory unit is stalled
+ type
+ Count
+
+ WriteUnitStalled
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Write Unit Stall Cycles
+ description
+ The percentage of GPUTime the write unit is stalled
+ type
+ Percentage
+
+ WriteUnitStalledCycles
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+
+ name
+ Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ LocalVidMemBytes
+
+ counters
+
+ AMDStat_LocalVidMemBytes
+
+ name
+ Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ XGMIBytes
+
+ counters
+
+ AMDStat_XGMIBytes
+
+ name
+ Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ PcieBytes
+
+ counters
+
+ AMDStat_PcieBytes
+
+ name
+ PCIEbytes
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ TextureUnitStall
+
+ counters
+
+ AMDStat_TexUnit_Stall
+
+ name
+ Texture Unit Stall
+ description
+ Percentage of GPU busy time the texture unit is stalled
+ type
+ Percentage
+
+ TextureUnitBusy
+
+ counters
+
+ AMDStat_TexUnit_Busy
+
+ name
+ Texture Unit Busy
+ description
+ Percentage of GPU busy time the texture unit is busy
+ type
+ Percentage
+
+ TextureCacheMissRate
+
+ counters
+
+ AMDStat_TextureCache_Hit
+ AMDStat_TextureCache_Miss
+
+ name
+ Texture Cache Miss Rate
+ description
+ Percentage of time Texture Cache access is a Miss
+ type
+ Percentage
+
+ L0CacheHitRate
+
+ counters
+
+ AMDStat_L0_Cache_Request
+ AMDStat_L0_Cache_Miss
+
+ name
+ L0 Cache Hit Rate
+ description
+ Percentage of time L0 Cache access is a Hit
+ type
+ Percentage
+
+ L0CacheHitCount
+
+ counters
+
+ AMDStat_L0_Cache_Request
+ AMDStat_L0_Cache_Miss
+
+ name
+ L0 Cache Hit Count
+ description
+ Count of L0 Cache Hits
+ type
+ Count
+
+ L0CacheMissCount
+
+ counters
+
+ AMDStat_L0_Cache_Miss
+
+ name
+ L0 Cache Miss Count
+ description
+ Count of L0 Cache Misses
+ type
+ Count
+
+ L1CacheHitRate
+
+ counters
+
+ AMDStat_L1_Cache_Miss
+ AMDStat_L1_Cache_Request
+
+ name
+ L1 Cache Hit Rate
+ description
+ Percentage of time L1 Cache access is a Hit
+ type
+ Percentage
+
+ L1CacheHitCount
+
+ counters
+
+ AMDStat_L1_Cache_Miss
+ AMDStat_L1_Cache_Request
+
+ name
+ L1 Cache Hit Count
+ description
+ L1 Cache Hit Count
+ type
+ Count
+
+ L1CacheMissCount
+
+ counters
+
+ AMDStat_L1_Cache_Miss
+
+ name
+ L1 Cache Miss Count
+ description
+ L1 Cache Miss Count
+ type
+ Count
+
+ L2CacheHitRate
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+ AMDStat_L2_Cache_Request
+
+ name
+ L2 Cache Hit Rate
+ description
+ Percentage of time L2 Cache access is a Hit
+ type
+ Percentage
+
+ L2CacheMissRate
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+ AMDStat_L2_Cache_Request
+
+ name
+ L2 Cache Miss Rate
+ description
+ Percentage of time L2 Cache access is a Miss
+ type
+ Percentage
+
+ L2CacheHitCount
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+ AMDStat_L2_Cache_Request
+
+ name
+ L2 Cache Hit Count
+ description
+ Count of L2 Cache access is a Hit
+ type
+ Count
+
+ L2CacheMissCount
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+
+ name
+ L2 Cache Miss Count
+ description
+ Count of L2 Cache access is a Miss
+ type
+ Count
+
+ FetchSize
+
+ counters
+
+ AMDStat_Tex_Fetch_Size_32B
+ AMDStat_Tex_Fetch_Size_64B
+ AMDStat_Tex_Fetch_Size_96B
+ AMDStat_Tex_Fetch_Size_128B
+
+ name
+ FetchSize
+ description
+ Number of total bytes fetched from the video memory
+ type
+ Count
+
+ WriteSize
+
+ counters
+
+ AMDStat_L2_Write_Size
+ AMDStat_Tex_Write_Size
+
+ name
+ WriteSize
+ description
+ Number of total bytes written to the video memory
+ type
+ Count
+
+ VertexMemoryFetchLatency
+
+ counters
+
+ AMDStat_GE_MemRead_Bin0
+ AMDStat_GE_MemRead_Bin1
+ AMDStat_GE_MemRead_Bin2
+ AMDStat_GE_MemRead_Bin3
+ AMDStat_GE_MemRead_Bin4
+ AMDStat_GE_MemRead_Bin5
+ AMDStat_GE_MemRead_Bin6
+ AMDStat_GE_MemRead_Bin7
+
+ name
+ Vertex Memory Fetch Latency
+ description
+ Average latency of vertex memory fetch in number of GPU clocks
+ type
+ Count
+
+ NumMRT
+
+ counters
+
+ AMDStat_PostFS_Pixels
+ AMDStat_PostFS_Exports
+
+ name
+ Number of MRT
+ description
+ Number of MRT being used
+ type
+ Count
+
+ PrimitiveRate
+
+ counters
+
+ AMDStat_FrontEnd_Busy_SE0PA0
+ AMDStat_FrontEnd_Busy_SE0PA1
+ AMDStat_FrontEnd_Busy_SE1PA0
+ AMDStat_FrontEnd_Busy_SE1PA1
+ AMDStat_FrontEnd_Busy_SE2PA0
+ AMDStat_FrontEnd_Busy_SE2PA1
+ AMDStat_FrontEnd_Busy_SE3PA0
+ AMDStat_FrontEnd_Busy_SE3PA1
+ AMDStat_FrontEnd_Stall_SE0PA0
+ AMDStat_FrontEnd_Stall_SE0PA1
+ AMDStat_FrontEnd_Stall_SE1PA0
+ AMDStat_FrontEnd_Stall_SE1PA1
+ AMDStat_FrontEnd_Stall_SE2PA0
+ AMDStat_FrontEnd_Stall_SE2PA1
+ AMDStat_FrontEnd_Stall_SE3PA0
+ AMDStat_FrontEnd_Stall_SE3PA1
+ AMDStat_FrontEnd_StarvedBusy_SE0PA0
+ AMDStat_FrontEnd_StarvedBusy_SE0PA1
+ AMDStat_FrontEnd_StarvedBusy_SE1PA0
+ AMDStat_FrontEnd_StarvedBusy_SE1PA1
+ AMDStat_FrontEnd_StarvedBusy_SE2PA0
+ AMDStat_FrontEnd_StarvedBusy_SE2PA1
+ AMDStat_FrontEnd_StarvedBusy_SE3PA0
+ AMDStat_FrontEnd_StarvedBusy_SE3PA1
+
+ name
+ Primitive Rate
+ description
+ Number of primitives processed per GPU clock
+ type
+ Rate
+
+ VertexRate
+
+ counters
+
+ AMDStat_VS_Vertices_In
+ AMDStat_VS_Stalled_Ticks
+ AMDStat_VS_StarvedBusy_Ticks
+
+ name
+ Vertex Rate
+ description
+ Number of vertices processed per GPU clock during vertex pipe busy time
+ type
+ Rate
+
+ PeakPrimitiveRate
+
+ name
+ Peak Primitive Rate per Clock
+ description
+ Peak primitive rate per GPU clock supported by this GPU. To reach peak primitive rate you have to have perfect vertex reuse.
+ type
+ Rate
+
+ PeakVertexRate
+
+ name
+ Peak Vertex Rate per Clock
+ description
+ Peak vertex rate per GPU clock supported by this GPU
+ type
+ Rate
+
+ PeakPixelRate
+
+ name
+ Peak Pixel Rate per Clock
+ description
+ Peak pixel rate per GPU clock supported by this GPU
+ type
+ Rate
+
+ VertexRatePercentage
+
+ counters
+
+ PeakVertexRate
+ VertexRate
+
+ name
+ Vertex Rate Percentage
+ description
+ Percentage of actual vertex rate in peak vertex rate
+ type
+ Percentage
+
+ PrimitiveRatePercentage
+
+ counters
+
+ PeakPrimitiveRate
+ PrimitiveRate
+
+ name
+ Primitive Rate Percentage
+ description
+ Percentage of actual primitiveR rate in peak primitive rate
+ type
+ Percentage
+
+ PixelRatePercentage
+
+ counters
+
+ PeakPixelRate
+ PixelRate
+
+ name
+ Pixel Rate Percentage
+ description
+ Percentage of actual pixel rate in peak pixel rate
+ type
+ Percentage
+
+ ParameterCacheStall
+
+ counters
+
+ AMDStat_ParameterCache_Stall
+
+ name
+ % of GPU time stalled by Full Parameter Cache
+ description
+ Percentage of GPU time VS workload is stalled due to parameter cache space. This can also be caused by backend not releasing parameter cache space fast enough.
+ type
+ Percentage
+
+ ShaderCoreVertexStall
+
+ counters
+
+ AMDStat_Vertex_SALU_Insts
+ AMDStat_Vertex_VALU_Inst_Cycles
+ AverageThreadsPerVertexWavefront
+ AMDStat_Vertex_VMEM_Read_Cycles
+ AMDStat_Vertex_VMEM_Write_Cycles
+ AMDStat_Vertex_VMEM_Inst_Cycles
+ AMDStat_Vertex_EXP_Insts
+ AMDStat_GPU_Engine_Busy_Ticks
+ MTLStatVertexCost
+
+ name
+ Shader Core Stall % in Vertex Shader
+ description
+ Percentage of time shader core is being stalled in vertex shader in total GPU time
+ type
+ Percentage
+
+ ShaderCoreFragmentStall
+
+ counters
+
+ AMDStat_Fragment_SALU_Insts
+ AMDStat_Fragment_VALU_Inst_Cycles
+ AverageThreadsPerFragmentWavefront
+ AMDStat_Fragment_VMEM_Inst_Cycles
+ AMDStat_Fragment_VMEM_Read_Cycles
+ AMDStat_Fragment_VMEM_Write_Cycles
+ AMDStat_Fragment_SMEM_Insts
+ AMDStat_Fragment_EXP_Insts
+ AMDStat_GPU_Engine_Busy_Ticks
+ MTLStatFragmentCost
+
+ name
+ Shader Core Stall % in Fragment Shader
+ description
+ Percentage of time shader core is being stalled in fragment shader in total GPU time
+ type
+ Percentage
+
+ TessellatorBusy
+
+ counters
+
+ AMDStat_Tessellator_Busy
+
+ name
+ Tessellator Busy
+ description
+ Percentage of GPU busy time the tessellator is busy
+ type
+ Percentage
+
+ CBDrawnBusyRate
+
+ counters
+
+ AMDStat_CBDrawn_Busy
+ AMDStat_CB_Busy
+
+ name
+ Color Buffer Draw to Busy Rate
+ description
+ Percentage of time color buffer is busy drawing to total color buffer busy time
+ type
+ Percentage
+
+ ColorBlockL2Throughput
+
+ counters
+
+ AMDStat_CBDrawn_Busy
+ AMDStat_CB_Mem_Read
+ AMDStat_CB_Mem_Written
+
+ name
+ Traffic send out by Color Buffer To L2 Cache
+ description
+ Bytes of cache access made by color buffer each clock when color buffer is busy
+ type
+ Rate
+
+ CBMemRead
+
+ counters
+
+ AMDStat_CB_Mem_Read
+
+ name
+ Color Buffer Memory Read
+ description
+ Number of bytes read from the color buffer.
+ type
+ Count
+
+ CBColorAndMaskRead
+
+ counters
+
+ AMDStat_CB_Mem_Read
+ AMDStat_CB_FC_MC_DCC_Mem_Read
+ AMDStat_CB_CM_Mem_Read
+ AMDStat_CB_FC_Mem_Read
+
+ name
+ Color Buffer and Mask buffer Memory Read
+ description
+ Total number of bytes read from the color and mask buffers.
+ type
+ Count
+
+ CBMemWritten
+
+ counters
+
+ AMDStat_CB_Mem_Written
+
+ name
+ Color Buffer Memory Written
+ description
+ Number of bytes written to the color buffer.
+ type
+ Count
+
+ CBColorAndMaskWritten
+
+ counters
+
+ AMDStat_CB_Mem_Written
+ AMDStat_CB_FC_MC_DCC_Mem_Written
+ AMDStat_CB_CM_Mem_Written
+ AMDStat_CB_FC_Mem_Written
+
+ name
+ Color Buffer and Mask buffer Memory Written
+ description
+ Total number of bytes written to the color and mask buffers.
+ type
+ Count
+
+ CBSlowPixelPct
+
+ counters
+
+ AMDStat_Quad_Fragments_32ABGR_Drawn
+ AMDStat_Quad_Fragments_Drawn
+
+ name
+ Color Buffer slow draws
+ description
+ Percentage of pixels written to the color buffer using a half-rate or quarter-rate format.
+ type
+ Percentage
+
+ CBSlowPixelCount
+
+ counters
+
+ AMDStat_Quad_Fragments_32ABGR_Drawn
+
+ name
+ Color Buffer slow draws pixel count
+ description
+ Number of pixels written to the color buffer using a half-rate or quarter-rate format
+ type
+ Count
+
+ DepthBlockL2Throughput
+
+ counters
+
+ AMDStat_ZUnit_Busy
+ AMDStat_DB_Tile_Read
+ AMDStat_DB_Quad_Read
+ AMDStat_DB_Tile_Write
+ AMDStat_DB_Quad_Write
+
+ name
+ Traffic send out by Depth Buffer To L2 Cache
+ description
+ Bytes of cache access made by depth buffer each clock when Depth buffer is busy
+ type
+ Rate
+
+ ZUnitStalled
+
+ counters
+
+ AMDStat_ZUnit_Stalled
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ZUnit Stall rate
+ description
+ The percentage of GPUTime the depth buffer spends waiting for the color buffer to be ready to accept data. High figures here indicate a bottleneck in color buffer operations.
+ type
+ Percentage
+
+ ZUnitStalledCycles
+
+ counters
+
+ AMDStat_ZUnit_Stalled_Ticks
+
+ name
+ ZUnit Stall cycles
+ description
+ Number of GPU cycles the depth buffer spends waiting for the color buffer to be ready to accept data. Larger numbers indicate a bottleneck in color buffer operations.
+ type
+ Count
+
+ DBMemRead
+
+ counters
+
+ AMDStat_DB_Tile_Read
+ AMDStat_DB_Quad_Read
+
+ name
+ Depth Buffer Memory Read
+ description
+ Number of bytes read from the Depth buffer.
+ type
+ Count
+
+ DBMemWritten
+
+ counters
+
+ AMDStat_DB_Tile_Write
+ AMDStat_DB_Quad_Write
+
+ name
+ Depth Buffer Memory Written
+ description
+ Number of bytes written to the Depth buffer.
+ type
+ Count
+
+ TexTriFilteringPct
+
+ counters
+
+ AMDStat_TexUnit_TriFilteringCount
+ AMDStat_TexUnit_NoTriFilteringCount
+
+ name
+ Tri Filtering Tex
+ description
+ Percentage of pixels that received trilinear filtering. Note that not all pixels for which trilinear filtering is enabled will receive it (e.g. if the texture is magnified)
+ type
+ Percentage
+
+ TexTriFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_TriFilteringCount
+
+ name
+ Trilinear Filtering Count of pixels
+ description
+ Count of pixels that received trilinear filtering. Note that not all pixels for which trilinear filtering is enabled will receive it (e.g. if the texture is magnified).
+ type
+ Count
+
+ NoTexTriFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_NoTriFilteringCount
+
+ name
+ Non Trilinear Filtering Count of pixels
+ description
+ Count of pixels that did not receive trilinear filtering.
+ type
+ Count
+
+ TexVolFilteringPct
+
+ counters
+
+ AMDStat_TexUnit_TexVolFilteringCount
+ AMDStat_TexUnit_NoTexVolFilteringCount
+
+ name
+ Volume Filtered Pixel Percentage
+ description
+ Percentage of pixels that received volume filtering.
+ type
+ Percentage
+
+ TexVolFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_TexVolFilteringCount
+
+ name
+ Volume Filtering Count of pixels
+ description
+ Count of pixels that received volume filtering.
+ type
+ Count
+
+ NoTexVolFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_NoTexVolFilteringCount
+
+ name
+ Non Volume Filtering Count of pixels
+ description
+ Count of pixels that did not receive volume filtering.
+ type
+ Count
+
+ TexAveAnisotropy
+
+ counters
+
+ AMDStat_TexUnit_Average_Anisotropy_1
+ AMDStat_TexUnit_Average_Anisotropy_2
+ AMDStat_TexUnit_Average_Anisotropy_4
+ AMDStat_TexUnit_Average_Anisotropy_6
+ AMDStat_TexUnit_Average_Anisotropy_8
+ AMDStat_TexUnit_Average_Anisotropy_10
+ AMDStat_TexUnit_Average_Anisotropy_12
+ AMDStat_TexUnit_Average_Anisotropy_14
+ AMDStat_TexUnit_Average_Anisotropy_16
+
+ name
+ Average Anisotropy
+ description
+ The average degree of anisotropy applied. A number between 1 and 16. The anisotropic filtering algorithm only applies samples where they are required (e.g. there will be no extra anisotropic samples if the view vector is perpendicular to the surface) so this can be much lower than the requested anisotropy.
+ type
+ Percentage
+
+ CSVFetchInsts
+
+ counters
+
+ AMDStat_Compute_Tex_Load_Inst
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average vector fetch instructions
+ description
+ The average number of vector fetch instructions from the video memory executed per work-item (affected by flow control).
+ type
+ Percentage
+
+ CSSFetchInsts
+
+ counters
+
+ AMDStat_Compute_SMEM_Insts
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average scalar fetch instructions
+ description
+ The average number of scalar fetch instructions from the video memory executed per work-item (affected by flow control).
+ type
+ Percentage
+
+ CSVWriteInsts
+
+ counters
+
+ AMDStat_Compute_Tex_Store_Inst
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average vector fetch instructions
+ description
+ The average number of vector fetch instructions from the video memory executed per work-item (affected by flow control).
+ type
+ Percentage
+
+ CSVALUBusy
+
+ counters
+
+ AMDStat_Compute_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Percentage of CS vector ALU instructions
+ description
+ The percentage of GPUTime vector ALU instructions are processed. Value range: 0% (bad) to 100% (optimal).
+ type
+ Percentage
+
+ CSVALUBusyCycles
+
+ counters
+
+ AMDStat_Compute_VALU_Inst_Cycles
+
+ name
+ Number of CS vector ALU instruction cycles
+ description
+ Number of GPU cycles where vector ALU instructions are processed.
+ type
+ Count
+
+ CSSALUBusy
+
+ counters
+
+ AMDStat_Compute_SALU_Insts
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Percentage of CS scalar ALU instructions
+ description
+ The percentage of GPUTime scalar ALU instructions are processed. Value range: 0% (bad) to 100% (optimal).
+ type
+ Percentage
+
+ CSSALUBusyCycles
+
+ counters
+
+ AMDStat_Compute_SALU_Insts
+
+ name
+ Number of CS scalar ALU instruction cycles
+ description
+ Number of GPU cycles where scalar ALU instructions are processed
+ type
+ Count
+
+ CSMemUnitBusy
+
+ counters
+
+ AMDStat_TexUnit_Busy
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ CS Memory Unit Busy
+ description
+ The percentage of GPUTime the memory unit is active. The result includes the stall time (MemUnitStalled). This is measured with all extra fetches and writes and any cache or memory effects taken into account. Value range: 0% to 100% (fetch-bound).
+ type
+ Percentage
+
+ CSMemUnitBusyCycles
+
+ counters
+
+ AMDStat_TexUnit_Busy_Ticks
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+
+ name
+ CS Memory Unit Busy Cycles
+ description
+ Number of GPU cycles the memory unit is active
+ type
+ Count
+
+ CSMemUnitStalled
+
+ counters
+
+ AMDStat_L0_Stall
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ CS Memory Unit Stall Cycles from CS instructions
+ description
+ The percentage of GPUTime the memory unit is stalled. Try reducing the number or size of fetches and writes if possible. Value range: 0% (optimal) to 100% (bad).
+ type
+ Percentage
+
+ CSMemUnitStalledCycles
+
+ counters
+
+ AMDStat_L0_Stall
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+
+ name
+ CS Memory Unit Stall Cycles
+ description
+ Number of GPU cycles the memory unit is stalled
+ type
+ Count
+
+ CSWriteUnitStalled
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ CS Write Unit Stall Cycles from CS instructions
+ description
+ The percentage of GPUTime the write unit is stalled.
+ type
+ Percentage
+
+ CSWriteUnitStalledCycles
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+
+ name
+ CS Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled.
+ type
+ Count
+
+ CSGDSInsts
+
+ counters
+
+ AMDStat_Compute_GDS_Insts
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average GDS instructions
+ description
+ The average number of GDS read or GDS write instructions executed per work item (affected by flow control).
+ type
+ Percentage
+
+ CSLDSInsts
+
+ counters
+
+ AMDStat_Compute_LDS_Insts
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average LDS instructions
+ description
+ The average number of LDS read or LDS write instructions executed per work item (affected by flow control).
+ type
+ Percentage
+
+ CSALUStalledByLDS
+
+ counters
+
+ AMDStat_Compute_LDS_Wait
+ AMDStat_GPU_Engine_Busy_Ticks
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average Stall time due to LDS instructions
+ description
+ The percentage of GPUTime ALU units are stalled by the LDS input queue being full or the output queue being not ready. If there are LDS bank conflicts, reduce them. Otherwise, try reducing the number of LDS accesses if possible. Value range: 0% (optimal) to 100% (bad).
+ type
+ Percentage
+
+ CSLDSBankConflict
+
+ counters
+
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+ AMDStat_Compute_LDS_Bank_Conflict
+
+ name
+ Average LDS Stall time due to bank conflicts
+ description
+ The percentage of GPUTime LDS is stalled by bank conflicts. Value range: 0% (optimal) to 100% (bad).
+ type
+ Percentage
+
+ CSLDSBankConflictCycles
+
+ counters
+
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_Compute_LDS_Bank_Conflict
+
+ name
+ Number LDS Stall cycles due to bank conflicts
+ description
+ Number of GPU cycles the LDS is stalled by bank conflicts. Value range: 0 (optimal) to GPUBusyCycles (bad).
+ type
+ Count
+
+ AverageThreadsPerVertexWavefront
+
+ counters
+
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_VS_Invocations
+
+ name
+ Average Threads Per Vertex Wavefront
+ description
+ Average number of active threads per vertex wavefront
+ type
+ Count
+
+ AverageThreadsPerFragmentWavefront
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_PS_Invocations
+
+ name
+ Average Threads Per Fragment Wavefront
+ description
+ Average number of active threads per fragment wavefront
+ type
+ Count
+
+ AverageThreadsPerComputeWavefront
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_CS_Invocations
+
+ name
+ Average Threads Per Compute Wavefront
+ description
+ Average number of active threads per compute wavefront
+ type
+ Count
+
+
+
+
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-derived.js b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-derived.js
new file mode 100755
index 00000000..694dd9fb
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-derived.js
@@ -0,0 +1,1096 @@
+// Counters are being captured in multiple rounds. For small draw call, data can vary pretty significantly. So we need to cap the rate.
+
+function GPUTime()
+{
+ return MTLStat_nSec;
+}
+
+function GPUBusy()
+{
+ if (AMDStat_GPU_Engine_Busy_Ticks < AMDStat_GPU_Engine_Ticks)
+ return (AMDStat_GPU_Engine_Busy_Ticks/AMDStat_GPU_Engine_Ticks * 100);
+ else
+ return 100;
+}
+
+function GPUStall()
+{
+ return 100 - GPUBusy();
+}
+
+function ShaderCoreUtilization()
+{
+ if (MTLStatComputeCost != 0)
+ return MTLStatComputeCost;
+ else
+ return MTLStatShaderCost;
+}
+
+function ShaderCoreALUActive()
+{
+ var rate = 0;
+ if (MTLStatComputeCost != 0)
+ rate = (((AMDStat_Compute_SALU_Insts + AMDStat_Compute_VALU_Inst_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ else
+ rate = (((AMDStat_Shader_SALU_Cycles + AMDStat_Shader_VALU_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+
+ return (rate > 100 ? 100 : rate);
+}
+
+function ShaderCoreStall()
+{
+ var OtherActive = (((AMDStat_Shader_VMEM_Read_Cycles + AMDStat_Shader_VMEM_Write_Cycles + AMDStat_Shader_EXP_Cycles + AMDStat_Shader_GDS_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ var AllActive = ShaderCoreALUActive() + OtherActive;
+ if (AllActive >= MTLStatShaderCost)
+ return 0;
+ else
+ return MTLStatShaderCost - AllActive;
+}
+
+function ShaderCoreVertexALUActive()
+{
+ var rate = (((AMDStat_Vertex_SALU_Insts + AMDStat_Vertex_VALU_Inst_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ return (rate > 100 ? 100 : rate);
+}
+
+function ShaderCoreFragmentALUActive()
+{
+ var rate = (((AMDStat_Fragment_SALU_Insts + AMDStat_Fragment_VALU_Inst_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ return (rate > 100 ? 100 : rate);
+}
+
+function ShaderCoreVertexStall()
+{
+ // Percentage of GPU time that shader core is doing real work for vertex shader.
+ var Active = (((AMDStat_Vertex_VALU_Inst_Cycles + AMDStat_Vertex_SALU_Insts + AMDStat_Vertex_VMEM_Inst_Cycles + AMDStat_Vertex_SMEM_Insts + AMDStat_Vertex_EXP_Insts) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ // (VertexShaderBusyPercentage - Active) is the percentage of GPU time that shader core is being stalled for vertex shader workload.
+ if (Active >= MTLStatVertexCost)
+ return 0;
+ else
+ return MTLStatVertexCost - Active;
+}
+
+function ShaderCoreFragmentStall()
+{
+ var Active = (((AMDStat_Fragment_VALU_Inst_Cycles + AMDStat_Fragment_SALU_Insts + AMDStat_Fragment_VMEM_Inst_Cycles + AMDStat_Fragment_SMEM_Insts + AMDStat_Fragment_EXP_Insts) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ if (Active >= MTLStatFragmentCost)
+ return 0;
+ else
+ return MTLStatFragmentCost - Active;
+}
+
+function MemoryStallPerWavefrontCompute()
+{
+ var MemWait = (AMDStat_Compute_WAIT_CNT_VMVS > AMDStat_Compute_Wait_Inst_VMEM) ? AMDStat_Compute_WAIT_CNT_VMVS : AMDStat_Compute_Wait_Inst_VMEM;
+ var rate = (MemWait / AMDStat_Compute_Waves_Executed) / AverageWavefrontLatencyCompute() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function MemoryStallPerWavefrontVertex()
+{
+ var MemWait = (AMDStat_Vertex_WAIT_CNT_VMVS > AMDStat_Vertex_Wait_Inst_VMEM) ? AMDStat_Vertex_WAIT_CNT_VMVS : AMDStat_Vertex_Wait_Inst_VMEM;
+ var rate = (MemWait / AMDStat_Vertex_Waves_Executed) / AverageWavefrontLatencyVertex() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function MemoryStallPerWavefrontFragment()
+{
+ var MemWait = (AMDStat_Fragment_WAIT_CNT_VMVS > AMDStat_Fragment_Wait_Inst_VMEM) ? AMDStat_Fragment_WAIT_CNT_VMVS : AMDStat_Fragment_Wait_Inst_VMEM;
+ var rate = (MemWait / AMDStat_Fragment_Waves_Executed) / AverageWavefrontLatencyFragment() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function LdsStallPerWavefrontCompute()
+{
+ var LdsWait = (AMDStat_Compute_WAIT_CNT_LGKM > AMDStat_Compute_LDS_Wait) ? AMDStat_Compute_WAIT_CNT_LGKM : AMDStat_Compute_LDS_Wait;
+ var rate = (LdsWait / AMDStat_Compute_Waves_Executed) / AverageWavefrontLatencyCompute() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function LdsStallPerWavefrontVertex()
+{
+ var LdsWait = (AMDStat_Vertex_WAIT_CNT_LGKM > AMDStat_Vertex_LDS_Wait) ? AMDStat_Vertex_WAIT_CNT_LGKM : AMDStat_Vertex_LDS_Wait;
+ var rate = (LdsWait / AMDStat_Vertex_Waves_Executed) / AverageWavefrontLatencyVertex() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function LdsStallPerWavefrontFragment()
+{
+ var LdsWait = (AMDStat_Fragment_WAIT_CNT_LGKM > AMDStat_Fragment_LDS_Wait) ? AMDStat_Fragment_WAIT_CNT_LGKM : AMDStat_Fragment_LDS_Wait;
+ var rate = (LdsWait / AMDStat_Fragment_Waves_Executed) / AverageWavefrontLatencyFragment() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function ExportStallPerWavefrontVertex()
+{
+ var rate = ((AMDStat_Vertex_WAIT_CNT_EXP + AMDStat_Vertex_Wait_Export_Alloc) / AMDStat_Vertex_Waves_Executed) / AverageWavefrontLatencyVertex() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function ExportStallPerWavefrontFragment()
+{
+ var rate = ((AMDStat_Fragment_Wait_Export_Alloc + AMDStat_Fragment_WAIT_CNT_EXP) / AMDStat_Fragment_Waves_Executed) / AverageWavefrontLatencyFragment() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function AverageWavefrontLatencyCompute()
+{
+ return (AMDStat_Compute_Accum_Prev_Cycles) / AMDStat_Compute_Waves_Executed;
+}
+
+function AverageWavefrontLatencyVertex()
+{
+ return (AMDStat_Vertex_Accum_Prev_Cycles) / AMDStat_Vertex_Waves_Executed;
+}
+
+function AverageWavefrontLatencyFragment()
+{
+ return (AMDStat_Fragment_Accum_Prev_Cycles) / AMDStat_Fragment_Waves_Executed;
+}
+
+function AverageWavesInflightCompute()
+{
+ return (AMDStat_Compute_Accum_Prev_Cycles) / (NumCUPerSH * NumSH) / AMDStat_Compute_Busy_Cycles;
+}
+
+function AverageWavesInflightVertex()
+{
+ return (AMDStat_Vertex_Accum_Prev_Cycles) / (NumCUPerSH * NumSH) / AMDStat_Vertex_Busy_Cycles;
+}
+
+function AverageWavesInflightFragment()
+{
+ return (AMDStat_Fragment_Accum_Prev_Cycles) / (NumCUPerSH * NumSH) / AMDStat_Fragment_Busy_Cycles;
+}
+
+function SamplerBusy()
+{
+ return AMDStat_Sampler_Busy;
+}
+
+function L2CacheThroughput()
+{
+ return (AMDStat_L2_Cache_Request / (AMDStat_L2_Busy / 100 * AMDStat_GPU_Engine_Busy_Ticks));
+}
+
+function L2CacheDramBandwidth()
+{
+ return ((AMDStat_L2_Write_Size + AMDStat_L2_Read_Size) / (AMDStat_L2_Busy / 100 * AMDStat_GPU_Engine_Busy_Ticks)) * SysClkFreq / 100000;
+}
+
+function VSInvocation()
+{
+ if (AMDStat_DS_Invocations == 0)
+ return AMDStat_VS_Invocations;
+ else
+ return AMDStat_DS_Invocations;
+}
+
+function CSInvocation()
+{
+ if (AMDStat_VS_Invocations == 0 && AMDStat_PS_Invocations !=0)
+ return AMDStat_PS_Invocations;
+ else
+ return AMDStat_CS_Invocations;
+}
+
+function PSInvocation()
+{
+ if (AMDStat_VS_Invocations == 0 && AMDStat_PS_Invocations !=0)
+ return 0;
+ else
+ return AMDStat_PS_Invocations;
+}
+
+function VertexCost()
+{
+ return AMDStat_Vertex_Accum_Prev_Cycles / (AMDStat_Vertex_Accum_Prev_Cycles + AMDStat_Fragment_Accum_Prev_Cycles) * 100;
+}
+
+function VertexDuration()
+{
+ return MTLStatVertexCost / (MTLStatVertexCost + MTLStatFragmentCost) * 100;
+}
+
+function FragmentCost()
+{
+ return AMDStat_Fragment_Accum_Prev_Cycles / (AMDStat_Vertex_Accum_Prev_Cycles + AMDStat_Fragment_Accum_Prev_Cycles) * 100;
+}
+
+function FragmentDuration()
+{
+ return MTLStatFragmentCost / (MTLStatVertexCost + MTLStatFragmentCost) * 100;
+}
+
+function PixelToVertexRatio()
+{
+ return (PixelsRasterized() / VerticesSubmitted());
+}
+
+function PixelPerTriangle()
+{
+ return (PixelsRasterized() / PrimitivesSubmitted());
+}
+
+function VerticesSubmitted()
+{
+ if (AMDStat_HS_Invocations == 0)
+ return AMDStat_GE_Vertices;
+ else
+ return AMDStat_VS_Vertices_In;
+}
+
+function NumberOfPatchesSubmitted()
+{
+ if (AMDStat_HS_Invocations > 0)
+ return AMDStat_GE_Vertices;
+ else
+ return 0;
+}
+
+function VerticesReused()
+{
+ if (AMDStat_Vertices_Reuse != 0)
+ {
+ return (AMDStat_GE_Vertices - AMDStat_VS_Invocations);
+ }
+ else
+ return 0;
+}
+
+function VerticesReusedPercentage()
+{
+ return (VerticesReused() * 100 / AMDStat_GE_Vertices);
+}
+
+function VerticesRendered()
+{
+ return AMDStat_VS_Vertices_In;
+}
+
+function VerticesRenderedPercentage()
+{
+ return (AMDStat_VS_Vertices_In * 100 / VerticesSubmitted());
+}
+
+function AverageTessFactor()
+{
+ if (AMDStat_HS_Invocations > 0)
+ return (AMDStat_VS_Vertices_In / AMDStat_GE_Vertices);
+ else
+ return 0;
+}
+
+function PrimitivesSubmitted()
+{
+ if (AMDStat_HS_Invocations > 0)
+ return AMDStat_C_Invocations;
+ else
+ return AMDStat_GE_Primitives;
+}
+
+function PrimitivesRendered()
+{
+ return AMDStat_C_Primitives;
+}
+
+function PrimitivesRenderedPercentage()
+{
+ return (AMDStat_C_Primitives * 100 / PrimitivesSubmitted());
+}
+
+function NumberOfCulledPrimitives()
+{
+ return AMDStat_Culled_Prims;
+}
+
+function NumberOfCulledPrimitivesPercentage()
+{
+ return (AMDStat_Culled_Prims * 100 / PrimitivesSubmitted());
+}
+
+function NumberOfClippedPrimitives()
+{
+ return AMDStat_Clipped_Prims;
+}
+
+function NumberOfClippedPrimitivesPercentage()
+{
+ return (AMDStat_Clipped_Prims * 100 / PrimitivesSubmitted());
+}
+
+function HierarchicalZTotalTilesCount()
+{
+ return AMDStat_HiZTiles_Total_Count;
+}
+
+function HierarchicalZFailPercentage()
+{
+ return (AMDStat_HiZTiles_Culled_Count * 100 / AMDStat_HiZTiles_Total_Count);
+}
+
+function PreZPassSampleCount()
+{
+ return AMDStat_PreZ_Samples_PassingZ;
+}
+
+function PreZFailSampleCount()
+{
+ return AMDStat_PreZ_Samples_FailingZ;
+}
+
+function PreZStencilFailSampleCount()
+{
+ return AMDStat_PreZ_Samples_FailingS;
+}
+
+function PostZPassSampleCount()
+{
+ return AMDStat_PostZ_Samples_PassingZ;
+}
+
+function PostZFailSampleCount()
+{
+ return AMDStat_PostZ_Samples_FailingZ;
+}
+
+function PostZStencilFailSampleCount()
+{
+ return AMDStat_PostZ_Samples_FailingS;
+}
+
+function PixelsRasterized()
+{
+ return AMDStat_PreHiZ_Total_Quads_Count * 4 * 2;
+}
+
+function PreZFailPercentage()
+{
+ if (AMDStat_FS_Quads_Count != 0)
+ {
+ return (AMDStat_PreZ_Quads_Count*2 - AMDStat_FS_Quads_Count*2) / (AMDStat_PreHiZ_Total_Quads_Count * 2) * 100;
+ }
+ else
+ {
+ // This is Z only rendering
+ return 0;
+ }
+}
+
+function PostZFailPercentage()
+{
+ var PostZFailRate = (AMDStat_PostZ_Samples_FailingZ + AMDStat_PostZ_Samples_FailingS) / (AMDStat_PostZ_Samples_FailingZ + AMDStat_PostZ_Samples_FailingS + AMDStat_PostZ_Samples_PassingZ);
+ if (AMDStat_PostFS_Pixels == 0)
+ {
+ // This is Z only rendering
+ return (AMDStat_PreZ_Quads_Count * 2 * PostZFailRate) / (AMDStat_PreHiZ_Total_Quads_Count * 2) * 100;
+ }
+ else
+ {
+ return (AMDStat_PostFS_Pixels * 2 * PostZFailRate) / (AMDStat_PreHiZ_Total_Quads_Count * 2 * 4) * 100;
+ }
+}
+
+function PixelsDrawn()
+{
+ return AMDStat_Pixels_Drawn / NumMRT();
+}
+
+function PixelsDrawnPercentage()
+{
+ return AMDStat_Quads_Drawn / NumMRT() / (AMDStat_PreHiZ_Total_Quads_Count*2) * 100;
+}
+
+function FragmentsDrawn()
+{
+ if (AMDStat_Quads_Drawn == AMDStat_Quad_Fragments_Drawn)
+ {
+ // No MSAA
+ return PixelsDrawn();
+ }
+ else
+ {
+ return (AMDStat_Quad_Fragments_Drawn / NumMRT()) *4;
+ }
+}
+
+function PixelsDiscardedPercentage()
+{
+ // Cannot use quad * 4 to get approximation about pixels discarded as discard is usually used when some but not all pixels in a quad need to be discarded.
+ return (AMDStat_PS_Invocations - AMDStat_PostFS_Pixels) / (AMDStat_PreHiZ_Total_Quads_Count * 2 * 4) * 100;
+}
+
+function PixelRate()
+{
+ return (AMDStat_Pixels_Drawn / (AMDStat_CBDrawn_Busy / 100 * AMDStat_GPU_Engine_Busy_Ticks));
+}
+
+function ALUInstructionPerInvocationCompute()
+{
+ return ((AMDStat_Compute_SALU_Insts + AMDStat_Compute_VALU_Insts) / AMDStat_Compute_Waves_Executed);
+}
+
+function ALUInstructionPerInvocationVertex()
+{
+ return ((AMDStat_Vertex_SALU_Insts + AMDStat_Vertex_VALU_Insts) / AMDStat_Vertex_Waves_Executed);
+}
+
+function ALUInstructionPerInvocationFragment()
+{
+ return ((AMDStat_Fragment_SALU_Insts + AMDStat_Fragment_VALU_Insts) / AMDStat_Fragment_Waves_Executed);
+}
+
+function MemInstructionPerInvocationCompute()
+{
+ return ((AMDStat_Compute_VMEM_Write_Cycles + AMDStat_Compute_VMEM_Read_Cycles + AMDStat_Compute_SMEM_Insts) / AMDStat_Compute_Waves_Executed);
+}
+
+function MemInstructionPerInvocationVertex()
+{
+ return ((AMDStat_Vertex_VMEM_Write_Cycles + AMDStat_Vertex_VMEM_Read_Cycles + AMDStat_Vertex_SMEM_Insts) / AMDStat_Vertex_Waves_Executed);
+}
+
+function MemInstructionPerInvocationFragment()
+{
+ return ((AMDStat_Fragment_VMEM_Write_Cycles + AMDStat_Fragment_VMEM_Read_Cycles + AMDStat_Fragment_SMEM_Insts) / AMDStat_Fragment_Waves_Executed);
+}
+
+function ControlInstructionPerInvocationCompute()
+{
+ return (AMDStat_Compute_Branch_Insts / AMDStat_Compute_Waves_Executed);
+}
+
+function ControlInstructionPerInvocationVertex()
+{
+ return (AMDStat_Vertex_Branch_Insts / AMDStat_Vertex_Waves_Executed);
+}
+
+function ControlInstructionPerInvocationFragment()
+{
+ return (AMDStat_Fragment_Branch_Insts / AMDStat_Fragment_Waves_Executed);
+}
+
+function ALUToMemRatioCompute()
+{
+ return (ALUInstructionPerInvocationCompute() / MemInstructionPerInvocationCompute());
+}
+
+function ALUToMemRatioVertex()
+{
+ return (ALUInstructionPerInvocationVertex() / MemInstructionPerInvocationVertex());
+}
+
+function ALUToMemRatioFragment()
+{
+ return (ALUInstructionPerInvocationFragment() / MemInstructionPerInvocationFragment());
+}
+
+function ALUToMemRatio()
+{
+ return (ALUInstructionPerInvocation() / MemInstructionPerInvocation());
+}
+
+function ROPStall()
+{
+ return (AMDStat_ROP_Stalled_Ticks / AMDStat_GPU_Engine_Busy_Ticks) * 100;
+}
+
+function ZeroAreaCullPrims()
+{
+ return AMDStat_ZeroArea_Culled_Prims;
+}
+
+function ZeroAreaCullPrimsPercentage()
+{
+ return (AMDStat_ZeroArea_Culled_Prims * 100 / PrimitivesSubmitted());
+}
+
+function ClipperCullPrims()
+{
+ return AMDStat_Clipping_Culled_Prims;
+}
+
+function ClipperCullPrimsPercentage()
+{
+ return (AMDStat_Clipping_Culled_Prims * 100 / PrimitivesSubmitted());
+}
+
+function TextureUnitStall()
+{
+ return AMDStat_TexUnit_Stall;
+}
+
+function TextureUnitBusy()
+{
+ return AMDStat_TexUnit_Busy;
+}
+
+function TextureCacheMissRate()
+{
+ return (AMDStat_TextureCache_Miss / (AMDStat_TextureCache_Miss + AMDStat_TextureCache_Hit)) * 100;
+}
+
+function L0CacheHitRate()
+{
+ hitRate = ((AMDStat_L0_Cache_Request - AMDStat_L0_Cache_Miss) / AMDStat_L0_Cache_Request) * 100;
+ return (hitRate > 100 ? 100 : hitRate);
+}
+
+function L0CacheHitCount()
+{
+ return AMDStat_L0_Cache_Request - AMDStat_L0_Cache_Miss;
+}
+
+function L0CacheMissCount()
+{
+ return AMDStat_L0_Cache_Miss;
+}
+
+function L1CacheHitRate()
+{
+ if( AMDStat_L1_Cache_Request != 0)
+ hitRate = ((AMDStat_L1_Cache_Request - AMDStat_L1_Cache_Miss) / AMDStat_L1_Cache_Request) * 100;
+ else
+ hitRate = 0;
+ return (hitRate > 100 ? 100 : hitRate);
+}
+
+function L1CacheHitCount()
+{
+ return AMDStat_L1_Cache_Request - AMDStat_L1_Cache_Miss;
+}
+
+function L1CacheMissCount()
+{
+ return AMDStat_L1_Cache_Miss;
+}
+
+function L2CacheHitRate()
+{
+ var hitRate = ((AMDStat_L2_Cache_Request - AMDStat_L2_Cache_Miss) / AMDStat_L2_Cache_Request) * 100;
+ return (hitRate > 100 ? 100 : hitRate);
+}
+
+function L2CacheMissRate()
+{
+ var missRate = (AMDStat_L2_Cache_Miss / AMDStat_L2_Cache_Request) * 100;
+ return (missRate > 100 ? 100 : missRate);
+}
+
+function L2CacheHitCount()
+{
+ return AMDStat_L2_Cache_Request - AMDStat_L2_Cache_Miss;
+}
+
+function L2CacheMissCount()
+{
+ return AMDStat_L2_Cache_Miss;
+}
+
+function FetchSize()
+{
+ return AMDStat_Tex_Fetch_Size_32B * 32 + AMDStat_Tex_Fetch_Size_64B * 64 + AMDStat_Tex_Fetch_Size_96B * 96 + AMDStat_Tex_Fetch_Size_128B * 128;
+}
+
+function WriteSize()
+{
+ return ((AMDStat_L2_Write_Size - AMDStat_Tex_Write_Size) * 32) + (AMDStat_Tex_Write_Size * 64);
+}
+
+function MemUnitBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitBusy = ((AMDStat_TexUnit_Busy_Ticks / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitBusy > 100 ? 100 : unitBusy);
+}
+
+function MemUnitBusyCycles()
+{
+ return AMDStat_TexUnit_Busy_Ticks;
+}
+
+function MemUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitStall = ((AMDStat_TexUnit_Stall / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+}
+
+function MemUnitStalledCycles()
+{
+ return AMDStat_TexUnit_Stalled_Ticks;
+}
+
+function WriteUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitStall = (AMDStat_L2_Write_Unit_Stalled / AMDStat_GPU_Engine_Busy_Ticks) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+}
+
+function WriteUnitStalledCycles()
+{
+ return AMDStat_L2_Write_Unit_Stalled;
+}
+
+function LocalVidMemBytes()
+{
+ return AMDStat_LocalVidMemBytes;
+}
+
+function XGMIBytes()
+{
+ return AMDStat_XGMIBytes;
+}
+
+function PcieBytes()
+{
+ return AMDStat_PcieBytes;
+}
+/* TODO
+name=LocalVidMemBytes
+desc=#GlobalMemory#Number of bytes read from or written to local video memory
+type=gpa_float64
+usage=bytes
+;[DX11Gfx9]
+[DX12Gfx9]
+[VKGfx9]
+GCEA*_PERF_SEL_SARB_DRAM_SIZED_REQUESTS[0..15]
+eqn=0..15,sum16,(32),*
+
+name=PcieBytes
+desc=#GlobalMemory#Number of bytes sent and received over the PCIe bus
+type=gpa_float64
+usage=bytes
+;[DX11Gfx9]
+[DX12Gfx9]
+[VKGfx9]
+GCEA*_PERF_SEL_SARB_IO_SIZED_REQUESTS[0..15]
+eqn=0..15,sum16,(32),*
+*/
+
+function VertexMemoryFetchLatency()
+{
+ return (AMDStat_GE_MemRead_Bin0 * 64 + AMDStat_GE_MemRead_Bin1 * (128 + 64) + AMDStat_GE_MemRead_Bin2 * (128 * 2 + 64) + AMDStat_GE_MemRead_Bin3 * (128 * 3 + 64) + AMDStat_GE_MemRead_Bin4 * (128 * 4 + 64) + AMDStat_GE_MemRead_Bin5 * (128 * 5 + 64) + AMDStat_GE_MemRead_Bin6 * (128 * 6 + 64) + AMDStat_GE_MemRead_Bin7 * (128 * 7 + 64)) / (AMDStat_GE_MemRead_Bin0 + AMDStat_GE_MemRead_Bin1 + AMDStat_GE_MemRead_Bin2 + AMDStat_GE_MemRead_Bin3 + AMDStat_GE_MemRead_Bin4 + AMDStat_GE_MemRead_Bin5 + AMDStat_GE_MemRead_Bin6 + AMDStat_GE_MemRead_Bin7);
+}
+
+function NumMRT()
+{
+ return AMDStat_PostFS_Exports / AMDStat_PostFS_Pixels;
+}
+
+function PrimitiveRate()
+{
+ return (
+ AMDStat_FrontEnd_Busy_SE0PA0 + AMDStat_FrontEnd_Busy_SE0PA1 +
+ AMDStat_FrontEnd_Busy_SE1PA0 + AMDStat_FrontEnd_Busy_SE1PA1 +
+ AMDStat_FrontEnd_Busy_SE2PA0 + AMDStat_FrontEnd_Busy_SE2PA1 +
+ AMDStat_FrontEnd_Busy_SE3PA0 + AMDStat_FrontEnd_Busy_SE3PA1 )
+ / (AMDStat_FrontEnd_Stall_SE0PA0 + AMDStat_FrontEnd_Stall_SE0PA1 +
+ AMDStat_FrontEnd_Stall_SE1PA0 + AMDStat_FrontEnd_Stall_SE1PA1 +
+ AMDStat_FrontEnd_Stall_SE2PA0 + AMDStat_FrontEnd_Stall_SE2PA1 +
+ AMDStat_FrontEnd_Stall_SE3PA0 + AMDStat_FrontEnd_Stall_SE3PA1 ) +
+ ( AMDStat_FrontEnd_StarvedBusy_SE0PA0 + AMDStat_FrontEnd_StarvedBusy_SE0PA1 +
+ AMDStat_FrontEnd_StarvedBusy_SE1PA0 + AMDStat_FrontEnd_StarvedBusy_SE1PA1 +
+ AMDStat_FrontEnd_StarvedBusy_SE2PA0 + AMDStat_FrontEnd_StarvedBusy_SE2PA1 +
+ AMDStat_FrontEnd_StarvedBusy_SE3PA0 + AMDStat_FrontEnd_StarvedBusy_SE3PA1);
+}
+
+function VertexRate()
+{
+ return AMDStat_VS_Vertices_In * NumSE / (AMDStat_VS_Vertices_In + AMDStat_VS_Stalled_Ticks + AMDStat_VS_StarvedBusy_Ticks);
+}
+
+function PeakPrimitiveRate()
+{
+ return NumSE;
+}
+
+function PeakVertexRate()
+{
+ return NumSE;
+}
+
+function PeakPixelRate()
+{
+ return NumROP * 4;
+}
+
+function VertexRatePercentage()
+{
+ return VertexRate() * 100 / PeakVertexRate();
+}
+
+function PrimitiveRatePercentage()
+{
+ return PrimitiveRate() * 100 / PeakPrimitiveRate();
+}
+
+function PixelRatePercentage()
+{
+ return PixelRate() * 100 / PeakPixelRate();
+}
+
+function ParameterCacheStall()
+{
+ return AMDStat_ParameterCache_Stall;
+}
+
+function AAMode()
+{
+ return AMDStat_Quad_Fragments_Drawn / AMDStat_Quad_Drawn;
+}
+
+function TessellatorBusy()
+{
+ return AMDStat_Tessellator_Busy;
+}
+
+function CBDrawnBusyRate()
+{
+ var rate = (AMDStat_CBDrawn_Busy / AMDStat_CB_Busy) * 100;
+ return (rate > 100) ? 100 : rate;
+}
+
+function ColorBlockL2Throughput()
+{
+ return (AMDStat_CB_Mem_Read + AMDStat_CB_Mem_Written) / AMDStat_CBDrawn_Busy;
+}
+
+function CBMemRead()
+{
+ return AMDStat_CB_Mem_Read * 32;
+}
+
+function CBColorAndMaskRead()
+{
+ return (AMDStat_CB_FC_MC_DCC_Mem_Read + AMDStat_CB_CM_Mem_Read + AMDStat_CB_FC_Mem_Read + AMDStat_CB_Mem_Read) * 32;
+}
+
+function CBMemWritten()
+{
+ return AMDStat_CB_Mem_Written * 32;
+}
+
+function CBColorAndMaskWritten()
+{
+ return (AMDStat_CB_FC_MC_DCC_Mem_Written + AMDStat_CB_CM_Mem_Written + AMDStat_CB_FC_Mem_Written + AMDStat_CB_Mem_Written) * 32;
+}
+
+function CBSlowPixelPct()
+{
+ var pxl = (AMDStat_Quad_Fragments_32ABGR_Drawn / AMDStat_Quad_Fragments_Drawn) * 100;
+ return (pxl > 100) ? 100 : pxl;
+}
+
+function CBSlowPixelCount()
+{
+ return AMDStat_Quad_Fragments_32ABGR_Drawn;
+}
+
+function DepthBlockL2Throughput()
+{
+ return (AMDStat_DB_Tile_Read * 8 + AMDStat_DB_Quad_Read + AMDStat_DB_Tile_Write + AMDStat_DB_Quad_Write) / AMDStat_ZUnit_Busy;
+}
+
+function ZUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitStalled = ((AMDStat_ZUnit_Stalled / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStalled > 100 ? 100 : unitStalled);
+}
+
+function ZUnitStalledCycles()
+{
+ return AMDStat_ZUnit_Stalled_Ticks;
+}
+
+function DBMemRead()
+{
+ return (AMDStat_DB_Tile_Read * 256) + (AMDStat_DB_Quad_Read * 32);
+}
+
+function DBMemWritten()
+{
+ return 32 * (AMDStat_DB_Tile_Write + AMDStat_DB_Quad_Write);
+}
+
+function TexTriFilteringPct()
+{
+ var pxl = (100 * AMDStat_TexUnit_TriFilteringCount) / (AMDStat_TexUnit_TriFilteringCount + AMDStat_TexUnit_NoTriFilteringCount);
+ return (pxl > 100) ? 100 : pxl;
+}
+
+function TexTriFilteringCount()
+{
+ return AMDStat_TexUnit_TriFilteringCount;
+}
+
+function NoTexTriFilteringCount()
+{
+ return AMDStat_TexUnit_NoTriFilteringCount;
+}
+
+function TexVolFilteringPct()
+{
+ var pxl = (100 * AMDStat_TexUnit_TexVolFilteringCount) / (AMDStat_TexUnit_TexVolFilteringCount + AMDStat_TexUnit_NoTexVolFilteringCount);
+ return (pxl > 100) ? 100 : pxl;
+}
+
+function TexVolFilteringCount()
+{
+ return AMDStat_TexUnit_TexVolFilteringCount;
+}
+
+function NoTexVolFilteringCount()
+{
+ return AMDStat_TexUnit_NoTexVolFilteringCount;
+}
+
+function TexAveAnisotropy()
+{
+ var unitCount = AMDStat_TexUnit_Average_Anisotropy_1 +
+ ( 2 * AMDStat_TexUnit_Average_Anisotropy_2) +
+ ( 4 * AMDStat_TexUnit_Average_Anisotropy_4) +
+ ( 6 * AMDStat_TexUnit_Average_Anisotropy_6) +
+ ( 8 * AMDStat_TexUnit_Average_Anisotropy_8) +
+ ( 10 * AMDStat_TexUnit_Average_Anisotropy_10) +
+ ( 12 * AMDStat_TexUnit_Average_Anisotropy_12) +
+ ( 14 * AMDStat_TexUnit_Average_Anisotropy_14) +
+ ( 16 * AMDStat_TexUnit_Average_Anisotropy_16);
+
+ var typeCount = AMDStat_TexUnit_Average_Anisotropy_1 +
+ AMDStat_TexUnit_Average_Anisotropy_2 +
+ AMDStat_TexUnit_Average_Anisotropy_4 +
+ AMDStat_TexUnit_Average_Anisotropy_6 +
+ AMDStat_TexUnit_Average_Anisotropy_8 +
+ AMDStat_TexUnit_Average_Anisotropy_10 +
+ AMDStat_TexUnit_Average_Anisotropy_12 +
+ AMDStat_TexUnit_Average_Anisotropy_14 +
+ AMDStat_TexUnit_Average_Anisotropy_16;
+
+ return typeCount / unitCount;
+}
+
+function CSVFetchInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_Tex_Load_Inst / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+function CSSFetchInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_SMEM_Insts / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+function CSVWriteInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_Tex_Store_Inst / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+function CSVALUBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ return ((AMDStat_Compute_VALU_Inst_Cycles / (NumCUPerSH * NumSH)) / AMDStat_GPU_Engine_Busy_Ticks ) * 100;
+}
+
+function CSVALUBusyCycles()
+{
+ return AMDStat_Compute_VALU_Inst_Cycles / (NumCUPerSH * NumSH);
+}
+
+function CSSALUBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ return ((AMDStat_Compute_SALU_Insts / (NumCUPerSH * NumSH)) / AMDStat_GPU_Engine_Busy_Ticks ) * 100;
+}
+
+function CSSALUBusyCycles()
+{
+ return AMDStat_Compute_SALU_Insts / (NumCUPerSH * NumSH);
+}
+
+function CSMemUnitBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var unitBusy = ((AMDStat_TexUnit_Busy_Ticks / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitBusy > 100 ? 100 : unitBusy);
+ }
+ else
+ return 0;
+}
+
+function CSMemUnitBusyCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ return AMDStat_TexUnit_Busy_Ticks;
+ else
+ return 0;
+}
+
+function CSMemUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var unitStall = ((AMDStat_L0_Stall / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+ }
+ else
+ return 0;
+}
+
+function CSMemUnitStalledCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ return AMDStat_L0_Stall;
+ else
+ return 0;
+}
+
+function CSWriteUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var unitStall = ((AMDStat_L2_Write_Unit_Stalled / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+ }
+ else
+ return 0;
+}
+
+function CSWriteUnitStalledCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ return AMDStat_L2_Write_Unit_Stalled;
+ else
+ return 0;
+}
+
+function CSGDSInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_GDS_Insts / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+ function CSLDSInsts()
+ {
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_LDS_Insts / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+ }
+
+function CSALUStalledByLDS()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return (((AMDStat_Compute_LDS_Wait / AMDStat_Compute_Waves_Executed) / AMDStat_GPU_Engine_Busy_Ticks) / NumSE ) * 100;
+ else
+ return 0;
+}
+
+function CSLDSBankConflict()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var conflict = ( (AMDStat_Compute_LDS_Bank_Conflict / AMDStat_GPU_Engine_Busy_Ticks) / (4 * NumCUPerSH * NumSH)) * 100;
+ return (conflict > 100 ? 100 : conflict);
+ }
+ else
+ return 0;
+}
+
+function CSLDSBankConflictCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ return AMDStat_Compute_LDS_Bank_Conflict / (4 * NumCUPerSH * NumSH);
+ }
+ else
+ return 0;
+}
+
+function AverageThreadsPerVertexWavefront()
+{
+ return AMDStat_VS_Invocations / AMDStat_Vertex_Waves_Executed;
+}
+
+function AverageThreadsPerFragmentWavefront()
+{
+ return AMDStat_PS_Invocations / AMDStat_Fragment_Waves_Executed;
+}
+
+function AverageThreadsPerComputeWavefront()
+{
+ if (AMDStat_VS_Invocations == 0 && AMDStat_PS_Invocations !=0)
+ return AMDStat_PS_Invocations / AMDStat_Compute_Waves_Executed;
+ else
+ return AMDStat_CS_Invocations / AMDStat_Compute_Waves_Executed;
+}
+
+function VSOccupancy()
+{
+ return (100 * DerivedVSOccupancy) / DerivedCPF;
+}
+
+function PSOccupancy()
+{
+ return (100 * DerivedPSOccupancy) / DerivedCPF;
+}
+
+function CSOccupancy()
+{
+ return (100 * (DerivedCSOccupancy + DerivedCSNOccupancy)) / DerivedCPF;
+}
+
+function LLCRead()
+{
+ return DerivedLLCRead * 32;
+}
+
+function LLCWrite()
+{
+ return DerivedLLCWrite * 32;
+}
+
+function ALUutilization()
+{
+ var util = 0;
+
+ var wave_size = 0;
+ if (DerivedWavesInFlight !=0)
+ {
+ wave_size = 64;
+ }
+ else
+ {
+ wave_size = 32;
+ }
+
+ util = (DerivedALUThreadCycles / (DerivedALUActiveInst * wave_size)) * 100;
+ return (util > 100 ? 100 : util);
+
+}
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/MPSPlugin_GFX10.dict b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/MPSPlugin_GFX10.dict
new file mode 100755
index 00000000..86a77502
Binary files /dev/null and b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/MPSPlugin_GFX10.dict differ
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/TensileKernels_GFX10.plist b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/TensileKernels_GFX10.plist
new file mode 100755
index 00000000..35489d5a
Binary files /dev/null and b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/TensileKernels_GFX10.plist differ
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..b22951e5
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,183 @@
+
+
+
+
+ files
+
+ Resources/GFX10Statistics-analysis.js
+
+ qh2W0Hw3HANaHM5B3oXUiGOCZi8=
+
+ Resources/GFX10Statistics-counters.plist
+
+ PvLFnOz73gfXm3OMKsknBF205PM=
+
+ Resources/GFX10Statistics-derived.js
+
+ pFb5hsndGqTVXTQ3zQ52bVq43G4=
+
+ Resources/MPSPlugin_GFX10.dict
+
+ TNZPeZ0R0wVaj+aInPnqp/XwiC8=
+
+ Resources/TensileKernels_GFX10.plist
+
+ lAHI/QhL93goZONxXyvKy1DjiSk=
+
+ version.plist
+
+ IWrOyfKjDkFgGXymiMABq9VEuCs=
+
+
+ files2
+
+ Resources/GFX10Statistics-analysis.js
+
+ hash2
+
+ r+v9dnyMjbmuA6rAY56jQbhr0qyfuUm5J3YGRukOepo=
+
+
+ Resources/GFX10Statistics-counters.plist
+
+ hash2
+
+ Gr+ge1yOKzgmDCpZB6uSdNhJBz9AAbhKqlYMVkiuUNM=
+
+
+ Resources/GFX10Statistics-derived.js
+
+ hash2
+
+ e4Cv+0+JZNXo88w4OYZVz5V9HR95b9Qb0sba3cTxg+0=
+
+
+ Resources/MPSPlugin_GFX10.dict
+
+ hash2
+
+ P6NWGEWPDf6bww15kThMu9fiT5btECU4GJtHf1osgsU=
+
+
+ Resources/TensileKernels_GFX10.plist
+
+ hash2
+
+ fA113DrJZFRZQnYR2OC0UnyDrtIckwUwouiqJQwWNk8=
+
+
+ version.plist
+
+ hash2
+
+ LgYgdrOQYIi8Y68w5OeEger7paj8Bzmo6OINu0v2IV8=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/version.plist b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5-24/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist
new file mode 100755
index 00000000..47051fc8
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/Info.plist
@@ -0,0 +1,579 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000
+ CFBundleGetInfoString
+ AMDRadeonX6000 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6000 Kernel Extension
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 4.0.8
+ GPUCompanionBundles
+
+ AMDRadeonX6000GLDriver.bundle
+ AMDRadeonVADriver2.bundle
+ AMDRadeonX6000MTLDriver.bundle
+ AMDRawCounterPlugin.bundle
+
+ IOKitPersonalities
+
+ AMDNavi10GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi10GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi12GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi12GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73601002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi14GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi14GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ SWIP_properties
+
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi21GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi21GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73A21002 0x73AB1002 0x73BF1002 0x73A31002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ ResNoAllocPaging
+ 0
+ SWIP_properties
+
+ EnableGDDR6MemoryTraining
+ 0
+ EnableSwVCNFWLoading
+ 0
+ EnableSwVCNUnifiedQueue
+
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+ AMDNavi23GraphicsAccelerator
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000
+ GPUDCCDisplayable
+
+ GPUDebugNullClientMask
+ 0
+ GpuDebugPolicy
+ 0
+ IOClass
+ AMDRadeonX6000_AMDNavi23GraphicsAccelerator
+ IODVDBundleName
+ AMDRadeonVADriver2
+ IOGVACodec
+ AMDVCN2
+ IOGVAH264EncodeCapabilities
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+
+ IOGVAHEVCDecode
+ 1
+ IOGVAHEVCDecodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxDecodeLevel
+ 153
+
+ 2
+
+ VTMaxDecodeLevel
+ 153
+
+ 3
+
+ VTMaxDecodeLevel
+ 153
+
+
+ VTSupportedProfileArray
+
+ 1
+ 2
+ 3
+
+
+ IOGVAHEVCEncode
+ 1
+ IOGVAHEVCEncodeCapabilities
+
+ VTPerProfileDetails
+
+ 1
+
+ VTMaxEncodeLevel
+ 153
+
+
+ VTQualityRating
+ 50
+ VTRating
+ 350
+ VTSupportedProfileArray
+
+ 1
+
+
+ IOKitDebug
+ 0
+ IOMatchCategory
+ IOAccelerator
+ IOPCIMatch
+ 0x73E31002 0x73FF1002 0x73E01002
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadAccelerator
+
+
+ IOProviderClass
+ IOPCIDevice
+ IOSourceVersion
+ 0.0.0.0.0
+ IOVARendererID
+ 16908288
+ ResNoAllocPaging
+ 0
+ SWIP_properties
+
+ EnableGDDR6MemoryTraining
+ 0
+ EnableSwVCNFWLoading
+ 0
+ EnableVCNFWLog
+ 0
+
+ cail_properties
+
+
+
+ NSHumanReadableCopyright
+ Copyright © 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleLibraries
+
+ com.apple.iokit.IOAcceleratorFamily2
+ 2.0.0
+ com.apple.iokit.IOGraphicsFamily
+ 1.0.0b1
+ com.apple.iokit.IOPCIFamily
+ 1.0.0b1
+ com.apple.iokit.IOSurface
+ 87.0
+ com.apple.kpi.bsd
+ 8.0.0
+ com.apple.kpi.iokit
+ 8.0.0
+ com.apple.kpi.libkern
+ 8.0.0
+ com.apple.kpi.mach
+ 8.0.0
+ com.apple.kpi.unsupported
+ 8.0.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000 b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000
new file mode 100755
index 00000000..4bfe0096
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/MacOS/AMDRadeonX6000 differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo
new file mode 100755
index 00000000..8bc3257a
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/PkgInfo
@@ -0,0 +1 @@
+KEXT????
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/Info.plist
new file mode 100755
index 00000000..d0cca4dc
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/Info.plist
@@ -0,0 +1,803 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6000Framebuffer
+ CFBundleGetInfoString
+ AMDRadeonX6000Framebuffer 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6000Framebuffer
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 4.0.8
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ GPUCompanionBundles
+
+ AMDShared.bundle
+ AMDRadeonX6000Shared.bundle
+
+ IOKitPersonalities
+
+ AMDGPUWrangler
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ IOClass
+ AMDRadeonX6000_AmdGpuWrangler
+ IOMatchCategory
+ IOFramebuffer
+ IOPCIMatch
+ 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002 0x73BF1002 0x73601002 0x73621002 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002 0x73A01002 0x73A21002 0x73A31002 0x73AB1002 0x73AE1002 0x73AF1002 0x73BF1002 0x73E31002 0x73FF1002 0x73E01002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 60000
+ IOProviderClass
+ IOPCIDevice
+
+ AMDRadeonNavi10Controller
+
+ ATY,Adder
+
+ aty_config
+
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 250
+ CFG_PTPL2_MIN
+ 100
+
+ aty_properties
+
+ DalEarlyTps1Pattern
+ 1
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 32
+ SMU_ActivityMonitorTable
+
+ AAQABAIA6AMAAAEAAAAAAAAAAADQAQEAMP7+
+ /wAAAAAABAAAAgDoAwAAAQAAAAAAAAAAANAB
+ AQA45v//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAEAkFAAFkPAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA==
+
+ SMU_DisallowedFeatures
+ 64
+
+
+ ATY,Ikaheka
+
+ aty_config
+
+ CFG_LINK_BUILT_IN_MAP
+ 3
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 130
+ CFG_PTPL2_MIN
+ 50
+
+ aty_properties
+
+ DalExtraDelayBacklightOff
+ 25
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 0
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 32
+ SMU_ActivityMonitorTable
+
+ AAAAAgIF6AMAAAAAAAAAAAAAAAAAAAEAAAD/
+ /wAAAAAAAAACAgroAwAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAD2/wAAAAAABQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAABkyPAAFAAAA
+ AQAAAAAAAAAAAAAAfnAAAAAAAAAgAQYAMGkA
+ AA==
+
+ SMU_DisallowedFeatures
+ 3012184920132
+
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ IOClass
+ AMDRadeonX6000_AmdRadeonControllerNavi10
+ IOMatchCategory
+ ATIFramebuffer
+ IOPCIMatch
+ 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002 0x73BF1002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 6000
+ IOPropertyMatch
+
+ LoadController
+
+
+ IOProviderClass
+ IOPCIDevice
+ aty_config
+
+ CFG_CORRECT_BLPT
+
+ CFG_TRANS_WSRV
+
+ CFG_UFL_CHK
+
+ CFG_UFL_STP
+
+ CFG_USE_DPT
+
+
+ aty_properties
+
+ DalDisableDisplayID2
+ 1
+ DalDisableLTTPR
+ 1
+ DalSkipDetectionLT
+ 1
+ PP_DisableClockStretcher
+ 1
+ PP_DisableULV
+ 0
+ PP_EnableUploadFirmware
+ 0
+ PP_Falcon_QuickTransition_Enable
+ 1
+ PP_GfxOffControl
+ 0
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_ToolsLogSpaceSize
+ 524288
+ PP_WorkLoadPolicyMask
+ 16
+
+
+ AMDRadeonNavi12Controller
+
+ ATY,Sunbeam
+
+ aty_config
+
+ CFG_LINK_FIXED_MAP
+ 1
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 50
+ CFG_PTPL2_MIN
+ 20
+ CFG_USE_PSR
+
+
+ aty_properties
+
+ DalDramClockChangeOneDisplayVActive
+ 1
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 32
+ SMU_ActivityMonitorTable
+
+ AAAAAAIAAABMBAEAAAAAAAAAAAAAAAoAAAD/
+ /wAAAAAAAAAABAAAAAAAAQAAAAAAAAAAAAAA
+ PAAAAP//AAAAAAAAAAAEAAAAAAABAAAAAAAA
+ AAAAAAADAAAA//8AAAAAAAALAAEKPAAFAAAA
+ AQAAACkOAIAwaQAABwAAAFCjAAAgBQYAMGkA
+ AA==
+
+ SMU_DisallowedFeatures
+ 4111696413508
+
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ IOClass
+ AMDRadeonX6000_AmdRadeonControllerNavi12
+ IOMatchCategory
+ ATIFramebuffer
+ IOPCIMatch
+ 0x73601002 0x73621002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 6000
+ IOPropertyMatch
+
+ LoadController
+
+
+ IOProviderClass
+ IOPCIDevice
+ aty_config
+
+ CFG_CORRECT_BLPT
+
+ CFG_TRANS_WSRV
+
+ CFG_UFL_CHK
+
+ CFG_UFL_STP
+
+ CFG_USE_DPT
+
+
+ aty_properties
+
+ DalDisableDisplayID2
+ 1
+ DalDisableLTTPR
+ 1
+ DalSkipDetectionLT
+ 1
+ PP_DisableClockStretcher
+ 1
+ PP_DisableULV
+ 0
+ PP_EnableUploadFirmware
+ 0
+ PP_Falcon_QuickTransition_Enable
+ 1
+ PP_GfxOffControl
+ 0
+ PP_PhmUseDummyBackEnd
+ 1
+ PP_ToolsLogSpaceSize
+ 524288
+ PP_WorkLoadPolicyMask
+ 16
+
+
+ AMDRadeonNavi14Controller
+
+ ATY,Boa
+
+ aty_config
+
+ CFG_LINK_FIXED_MAP
+ 1
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 50
+ CFG_PTPL2_MIN
+ 15
+ CFG_USE_DWLP
+
+
+ aty_properties
+
+ DalDisableVActiveDramChange
+ 1
+ DalForceSingleDispPipeSplit
+ 0
+ DalPipeSplitPolicy
+ 1
+ DalSrEnterPlusExitTimeNs
+ 17000
+ DalSrExitTimeNs
+ 13000
+ DalVblankAlignmentDTOParams
+
+ AAyAB1AANwA8/jgA2P04AFAAOAA09zgACPY4
+ AFAAwgE8/jgA2P04AFAAJALw+TgA8Pk4AFAA
+ JwIQ/TgAEP04AA==
+
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 1
+ PP_WorkLoadPolicyMask
+ 0
+ SMU_ActivityMonitorTable
+
+ AAAAAAIAAADoAwEAAAAAAAAAAAAgEgoAMP7+
+ /wAAAAAAAAADAwAAAAAAAAAAAAAAAAAAAOB+
+ RgA45v//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAMBsPAA8YPAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA==
+
+
+
+ ATY,Keelback
+
+ aty_config
+
+ CFG_LINK_BUILT_IN_MAP
+ 3
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 130
+ CFG_PTPL2_MIN
+ 50
+
+ aty_properties
+
+ DalExtraDelayBacklightOff
+ 25
+ DalSrEnterPlusExitTimeNs
+ 13900
+ DalSrExitTimeNs
+ 11600
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 0
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 32
+ SMU_ActivityMonitorTable
+
+ AAQABAIA6AMAAAEAAAAAAAAAAADQAQEAMP7+
+ /wAAAAAABAAAAgDoAwAAAQAAAAAAAAAAANAB
+ AQA45v//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAEAkFAAFkPAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA==
+
+ SMU_DisallowedFeatures
+ 3012184920132
+
+
+ ATY,Python
+
+ aty_config
+
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 130
+ CFG_PTPL2_MIN
+ 52
+
+ aty_properties
+
+ DalEarlyTps1Pattern
+ 1
+ DalSrEnterPlusExitTimeNs
+ 13900
+ DalSrExitTimeNs
+ 11600
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 0
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 32
+ SMU_ActivityMonitorTable
+
+ AAQABAIA6AMAAAEAAAAAAAAAAADQAQEAMP7+
+ /wAAAAAABAAAAgDoAwAAAQAAAAAAAAAAANAB
+ AQA45v//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAEAkFAAFkPAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA==
+
+ SMU_DisallowedFeatures
+ 64
+
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ IOClass
+ AMDRadeonX6000_AmdRadeonControllerNavi14
+ IOMatchCategory
+ ATIFramebuffer
+ IOPCIMatch
+ 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 6000
+ IOPropertyMatch
+
+ LoadController
+
+
+ IOProviderClass
+ IOPCIDevice
+ aty_config
+
+ CFG_CORRECT_BLPT
+
+ CFG_TRANS_WSRV
+
+ CFG_UFL_CHK
+
+ CFG_UFL_STP
+
+ CFG_USE_DPT
+
+
+ aty_properties
+
+ DalDisableDisplayID2
+ 1
+ DalDisableLTTPR
+ 1
+ DalSkipDetectionLT
+ 1
+ PP_DisableClockStretcher
+ 1
+ PP_DisableULV
+ 0
+ PP_EnableUploadFirmware
+ 0
+ PP_Falcon_QuickTransition_Enable
+ 1
+ PP_GfxOffControl
+ 0
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_ToolsLogSpaceSize
+ 524288
+ PP_WorkLoadPolicyMask
+ 16
+
+
+ AMDRadeonNavi21Controller
+
+ ATY,Belknap
+
+ aty_config
+
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 300
+ CFG_PTPL2_MIN
+ 120
+
+ aty_properties
+
+ DalEarlyTps1Pattern
+ 1
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_Run_DcBTC
+ 0
+ PP_WorkLoadPolicyMask
+ 16
+ SMU_DisallowedFeatures
+ 224014029030020
+
+
+ ATY,Carswell
+
+ aty_config
+
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 200
+ CFG_PTPL2_MIN
+ 80
+ PM_PWR_GEMINI_BGT
+ 400
+
+ aty_properties
+
+ DalEarlyTps1Pattern
+ 1
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 16
+ SMU_DisallowedFeatures
+ 505489005740676
+
+
+ ATY,Deepbay
+
+ aty_config
+
+ CFG_NO_HDCP
+
+
+ aty_properties
+
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ IOClass
+ AMDRadeonX6000_AmdRadeonControllerNavi21
+ IOMatchCategory
+ ATIFramebuffer
+ IOPCIMatch
+ 0x73A01002 0x73A21002 0x73A31002 0x73AB1002 0x73AE1002 0x73AF1002 0x73BF1002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 1000
+ IOPropertyMatch
+
+ LoadController
+
+
+ IOProviderClass
+ IOPCIDevice
+ aty_config
+
+ CFG_CORRECT_BLPT
+
+ CFG_TRANS_WSRV
+
+ CFG_UFL_CHK
+
+ CFG_UFL_STP
+
+ CFG_USE_DPT
+
+
+ aty_properties
+
+ DalDisableDisplayID2
+ 1
+ DalDisableLTTPR
+ 1
+ DalEnablePspFwLoad
+ 0
+ DalSkipDetectionLT
+ 1
+ PP_DisableClockStretcher
+ 1
+ PP_DisableULV
+ 0
+ PP_EnableUploadFirmware
+ 0
+ PP_Falcon_QuickTransition_Enable
+ 1
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_ToolsLogSpaceSize
+ 524288
+ PP_WorkLoadPolicyMask
+ 16
+ SMU_DisallowedFeatures
+ 4
+
+
+ AMDRadeonNavi23Controller
+
+ ATY,Henbury
+
+ aty_config
+
+ CFG_NO_PP
+
+ CFG_PTPL2_CNT
+ 16
+ CFG_PTPL2_MAX
+ 130
+ CFG_PTPL2_MIN
+ 52
+
+ aty_properties
+
+ DalEarlyTps1Pattern
+ 1
+ DalForceMinDpmLevel
+ 3
+ PP_DiDtSQStallPatternOverride
+ 16383
+ PP_DisableDIDT
+ 0
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_WorkLoadPolicyMask
+ 32
+ SMU_ActivityMonitorTable
+
+ AAEABAEF6AMAAAoAAAAAAAAAAADAbDwAAAAA
+ AAAAAAAAAAABAQUAAAAAAAAAAAAAAAAAACAS
+ CgA45v//OOb//wAAAAQDBVIDAAAKAAAAAAAA
+ AAAAEAkFAAAAAAAAAAAA0AEBAACWPAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA==
+
+ SMU_DisallowedFeatures
+ 1628090377699844
+
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000Framebuffer
+ IOClass
+ AMDRadeonX6000_AmdRadeonControllerNavi23
+ IOMatchCategory
+ ATIFramebuffer
+ IOPCIMatch
+ 0x73E31002 0x73FF1002 0x73E01002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 1000
+ IOPropertyMatch
+
+ LoadController
+
+
+ IOProviderClass
+ IOPCIDevice
+ aty_config
+
+ CFG_CORRECT_BLPT
+
+ CFG_TRANS_WSRV
+
+ CFG_UFL_CHK
+
+ CFG_UFL_STP
+
+ CFG_USE_DPT
+
+
+ aty_properties
+
+ DalDisableDisplayID2
+ 1
+ DalDisableLTTPR
+ 1
+ DalEnablePspFwLoad
+ 0
+ DalForceEnumEDP
+ 1
+ DalSkipDetectionLT
+ 1
+ PP_DisableClockStretcher
+ 1
+ PP_DisableULV
+ 0
+ PP_EnableUploadFirmware
+ 0
+ PP_Falcon_QuickTransition_Enable
+ 1
+ PP_GfxOffControl
+ 1
+ PP_PhmUseDummyBackEnd
+ 0
+ PP_ToolsLogSpaceSize
+ 524288
+ PP_WorkLoadPolicyMask
+ 16
+ SMU_DisallowedFeatures
+ 4
+
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2018 AMD. All rights reserved.
+ OSBundleCompatibleVersion
+ 0.1.0
+ OSBundleLibraries
+
+ com.apple.AppleGraphicsDeviceControl
+ 3.22.0
+ com.apple.iokit.IOACPIFamily
+ 1.4
+ com.apple.iokit.IOGraphicsFamily
+ 2.4.1
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 15.0.0
+ com.apple.kpi.iokit
+ 15.0.0
+ com.apple.kpi.libkern
+ 15.0.0
+ com.apple.kpi.mach
+ 15.0.0
+ com.apple.kpi.unsupported
+ 15.0.0
+
+ OSBundleRequired
+ Safe Boot
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/MacOS/AMDRadeonX6000Framebuffer b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/MacOS/AMDRadeonX6000Framebuffer
new file mode 100755
index 00000000..403757a1
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/MacOS/AMDRadeonX6000Framebuffer differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Framebuffer.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/Info.plist
new file mode 100755
index 00000000..cad636d9
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/Info.plist
@@ -0,0 +1,50 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000GLDriver
+ CFBundleGetInfoString
+ AMDRadeonX6000GLDriver 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.AMDRadeonX6000GLDriver
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMD RadeonX6000 OpenGL Driver
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 4.0.8
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ LSMinimumSystemVersion
+ 12.6
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/MacOS/AMDRadeonX6000GLDriver b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/MacOS/AMDRadeonX6000GLDriver
new file mode 100755
index 00000000..9522f04f
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/MacOS/AMDRadeonX6000GLDriver differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/MacOS/ATIRadeonX6000SCLib.dylib b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/MacOS/ATIRadeonX6000SCLib.dylib
new file mode 100755
index 00000000..6d6e08e8
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/MacOS/ATIRadeonX6000SCLib.dylib differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/PkgInfo b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/PkgInfo
new file mode 100755
index 00000000..43c9cb0f
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/PkgInfo
@@ -0,0 +1 @@
+BNDL????
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..5eff7591
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^.*
+
+ omit
+
+ weight
+ 20
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^.*
+
+ omit
+
+ weight
+ 20
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000GLDriver.bundle/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/Info.plist
new file mode 100755
index 00000000..b4c16945
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/Info.plist
@@ -0,0 +1,98 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6000HWServices
+ CFBundleGetInfoString
+ AMDRadeonX6000HWServices 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000HWServices
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6000HWServices
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 4.0.8
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMD Radeon X6000 HW Services
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000HWServices
+ IOClass
+ AMDRadeonX6000_AMDRadeonHWServicesNavi
+ IOMatchCategory
+ AMDRadeonX6000HWServices
+ IOPCIMatch
+ 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002 0x73601002 0x73A21002 0x73AB1002 0x73BF1002 0x73A31002 0x73E31002 0x73FF1002 0x73E01002
+ IOPCITunnelCompatible
+
+ IOProbeScore
+ 65051
+ IOPropertyMatch
+
+ LoadHWServices
+
+
+ IOProviderClass
+ IOPCIDevice
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 4.0.8
+ OSBundleLibraries
+
+ com.apple.iokit.IOACPIFamily
+ 1.4
+ com.apple.iokit.IOGraphicsFamily
+ 2.4.1
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 15.0.0
+ com.apple.kpi.iokit
+ 15.0.0
+ com.apple.kpi.libkern
+ 15.0.0
+ com.apple.kpi.mach
+ 15.0.0
+ com.apple.kpi.unsupported
+ 15.0.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/MacOS/AMDRadeonX6000HWServices b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/MacOS/AMDRadeonX6000HWServices
new file mode 100755
index 00000000..c672307f
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/MacOS/AMDRadeonX6000HWServices differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..0cf6aedc
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6000HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6000HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6000HWLibs
+ IOClass
+ AMDRadeonX6000_AMDRadeonHWLibsX6000
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6000
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/MacOS/AMDRadeonX6000HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/MacOS/AMDRadeonX6000HWLibs
new file mode 100755
index 00000000..cb1d5e0d
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/MacOS/AMDRadeonX6000HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6000HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..e2f68dc0
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6100HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6100HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6100HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6100HWLibs
+ IOClass
+ AMDRadeonX6100_AMDRadeonHWLibsX6100
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6100
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/MacOS/AMDRadeonX6100HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/MacOS/AMDRadeonX6100HWLibs
new file mode 100755
index 00000000..78521cea
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/MacOS/AMDRadeonX6100HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6100HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..b8af92e8
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6200HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6200HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6200HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6200HWLibs
+ IOClass
+ AMDRadeonX6200_AMDRadeonHWLibsX6200
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6200
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/MacOS/AMDRadeonX6200HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/MacOS/AMDRadeonX6200HWLibs
new file mode 100755
index 00000000..00af8892
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/MacOS/AMDRadeonX6200HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6200HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..5ad3cc81
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6300HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6300HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6300HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6300HWLibs
+ IOClass
+ AMDRadeonX6300_AMDRadeonHWLibsX6300
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6300
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/MacOS/AMDRadeonX6300HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/MacOS/AMDRadeonX6300HWLibs
new file mode 100755
index 00000000..5b54771f
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/MacOS/AMDRadeonX6300HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6300HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..65b9cf79
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6700HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6700HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6700HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6700HWLibs
+ IOClass
+ AMDRadeonX6700_AMDRadeonHWLibsX6700
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6700
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/MacOS/AMDRadeonX6700HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/MacOS/AMDRadeonX6700HWLibs
new file mode 100755
index 00000000..6f7fc3a7
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/MacOS/AMDRadeonX6700HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6700HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..e3553134
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6800HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6800HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6800HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6800HWLibs
+ IOClass
+ AMDRadeonX6800_AMDRadeonHWLibsX6800
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6800
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/MacOS/AMDRadeonX6800HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/MacOS/AMDRadeonX6800HWLibs
new file mode 100755
index 00000000..1922241b
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/MacOS/AMDRadeonX6800HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6800HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/Info.plist
new file mode 100755
index 00000000..ee772953
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ AMDRadeonX6810HWLibs
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6810HWLibs
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMDRadeonX6810HWLibs
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ IOKitPersonalities
+
+ AMDRadeonHWLibs
+
+ CFBundleIdentifier
+ com.apple.kext.AMDRadeonX6810HWLibs
+ IOClass
+ AMDRadeonX6810_AMDRadeonHWLibsX6810
+ IOMatchCategory
+ AMDRadeonHWLibs
+ IOPCITunnelCompatible
+
+ IOPropertyMatch
+
+ LoadPlugIn
+ Load6810
+
+ IOProviderClass
+ AMDRadeonX6000_AMDRadeonHWServicesInterface
+
+
+ LSMinimumSystemVersion
+ 12.6
+ NSHumanReadableCopyright
+ Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved.
+ OSBundleCompatibleVersion
+ 1.0
+ OSBundleLibraries
+
+ com.apple.iokit.IOPCIFamily
+ 2.9
+ com.apple.kpi.bsd
+ 16.0
+ com.apple.kpi.iokit
+ 16.0
+ com.apple.kpi.libkern
+ 16.0
+ com.apple.kpi.mach
+ 16.0
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/MacOS/AMDRadeonX6810HWLibs b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/MacOS/AMDRadeonX6810HWLibs
new file mode 100755
index 00000000..40ef0b35
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/MacOS/AMDRadeonX6810HWLibs differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/version.plist
new file mode 100755
index 00000000..f08fb0f7
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/PlugIns/AMDRadeonX6810HWLibs.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..c4832a05
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^PlugIns/
+
+ omit
+
+ weight
+ 200
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000HWServices.kext/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Info.plist
new file mode 100755
index 00000000..52439224
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Info.plist
@@ -0,0 +1,52 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000MTLDriver
+ CFBundleGetInfoString
+ AMDRadeonX6000MTLDriver 4.8.101 24119
+ CFBundleIdentifier
+ com.apple.AMDRadeonX6000MTLDriver
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMD GFX10 Metal Driver
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 4.0.8
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ LSMinimumSystemVersion
+ 12.6
+ NSPrincipalClass
+ GFX10_MtlDevice
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/AMDRadeonX6000MTLDriver b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/AMDRadeonX6000MTLDriver
new file mode 100755
index 00000000..fc31780c
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/MacOS/AMDRadeonX6000MTLDriver differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/PkgInfo b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/PkgInfo
new file mode 100755
index 00000000..43c9cb0f
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/PkgInfo
@@ -0,0 +1 @@
+BNDL????
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-analysis.js b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-analysis.js
new file mode 100755
index 00000000..b76edaf4
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-analysis.js
@@ -0,0 +1,33 @@
+var MemBandWidth = MemClkFreq / 100000 * MemBusWidth / 8 * 2; // GB/s
+var MaxPixelRate = NumROP * 4; // Pixels/EngineClk
+
+var waSEVERITY_HIGH = 2;
+var waSEVERITY_MEDIUM = 1;
+var waSEVERITY_LOW = 0;
+
+function analysis_pixelRate_bound()
+{
+ var blendingOn = (AMDStat_CB_Mem_Read == 0) ? 1 : 2;
+ if (PixelRate > ((MaxPixelRate / blendingOn) * 0.8))
+ {
+ var severity = waSEVERITY_LOW;
+
+ if ((NumMRT > 2) || (blendingOn == 2))
+ {
+ severity = waSEVERITY_MEDIUM;
+ }
+
+ var problemId = ReportProblem(0.3, "Pixel rate bound", severity);
+ AddProblemSubItem(problemId, "Performance is bound by the maximum rate the GPU can write pixels");
+
+ if (NumMRT > 2)
+ {
+ AddProblemSubItem(problemId, "Consider decreasing the number of MRTs if possible");
+ }
+
+ if (blendingOn == 2)
+ {
+ AddProblemSubItem(problemId, "Blending is on, which will reduce the maximum pixel rate, check if blending needs to be turned on")
+ }
+ }
+}
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-counters.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-counters.plist
new file mode 100755
index 00000000..c657f10d
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-counters.plist
@@ -0,0 +1,2487 @@
+
+
+
+
+ Bottlenecks
+
+ analysis_shaderALU_bound
+
+ name
+ Shader ALU Bound
+ description
+ is shader ALU bound
+
+ analysis_TextureSamplingInst_bound
+
+ name
+ Texture Sampling Instructions Bound
+ description
+ is shader texture sampling instruction bound
+
+ analysis_pixelRate_bound
+
+ name
+ Pixel Rate Bound
+ description
+ is pixel rate bound
+
+ analysis_primitiveRate_bound
+
+ name
+ Primitive Rate Bound
+ description
+ is primitive rate bound
+
+ analysis_memory_bound
+
+ name
+ Memory Bandwidth Bound
+ description
+ is memory bandwidth bound
+
+
+ Version
+ 1.0
+ Instruments
+
+ DefaultSamplingInterval
+ 500
+ Profiles
+
+ Limiters1
+
+ DerivedCounters
+
+
+ Name
+ VSOccupancy
+
+
+ Name
+ PSOccupancy
+
+
+ Name
+ CSOccupancy
+
+
+ Name
+ LLCRead
+
+
+ Name
+ LLCWrite
+
+
+ Name
+ ALUutilization
+
+
+
+
+
+ DerivedCounters
+
+ VSOccupancy
+
+ counters
+
+ DerivedVSOccupancy
+ DerivedCPF
+
+ name
+ Vertex Shader Occupancy
+ description
+ Vertex Shader occupancy
+ type
+ Percentage
+
+ PSOccupancy
+
+ counters
+
+ DerivedPSOccupancy
+ DerivedCPF
+
+ name
+ Fragment Shader Occupancy
+ description
+ Fragment Shader occupancy
+ type
+ Percentage
+
+ CSOccupancy
+
+ counters
+
+ DerivedCSOccupancy
+ DerivedCSNOccupancy
+ DerivedCPF
+
+ name
+ Compute Shader Occupancy
+ description
+ Compute Shader occupancy
+ type
+ Percentage
+
+ LLCRead
+
+ counters
+
+ DerivedLLCRead
+ GpuTime
+
+ name
+ Last Level Cache Read
+ description
+ Last Level Cache Read # of Bytes
+ type
+ Rate
+
+ LLCWrite
+
+ counters
+
+ DerivedLLCWrite
+ GpuTime
+
+ name
+ Last Level Cache Written
+ description
+ Last Level Cache Write # of Bytes
+ type
+ Rate
+
+ ALUutilization
+
+ counters
+
+ DerivedWavesInFlight
+ DerivedALUActiveInst
+ DerivedALUThreadCycles
+ GpuTime
+
+ name
+ ALUutilization
+ description
+ Utilization of instructions in SIMD
+ type
+ Rate
+
+ GPUTime
+
+ counters
+
+ MTLStat_nSec
+
+ name
+ GPU Time
+ description
+ GPU Time in nSec
+ type
+ Count
+
+ GPUBusy
+
+ counters
+
+ AMDStat_GPU_Engine_Ticks
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ GPU Busy %
+ description
+ Percentage of time GPU is doing work
+ type
+ Percentage
+
+ GPUStall
+
+ counters
+
+ GPUBusy
+
+ name
+ GPU Stall %
+ description
+ Percentage of time GPU is being stalled
+ type
+ Percentage
+
+ ShaderCoreUtilization
+
+ counters
+
+ MTLStatShaderCost
+ MTLStatComputeCost
+
+ name
+ Shader Core Utilization %
+ description
+ Percentage of time Shader core is doing work
+ type
+ Percentage
+
+ ShaderCoreALUActive
+
+ counters
+
+ MTLStatComputeCost
+ AMDStat_Shader_SALU_Cycles
+ AMDStat_Shader_VALU_Cycles
+ AMDStat_Compute_SALU_Insts
+ AMDStat_Compute_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Shader Core ALU Active %
+ description
+ Percentage of time Shader core is doing actual work (ALU instructions) in total GPU time
+ type
+ Percentage
+
+ ShaderCoreVertexALUActive
+
+ counters
+
+ AMDStat_Vertex_SALU_Insts
+ AMDStat_Vertex_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ALU active % in Vertex Shader
+ description
+ Percentage of time shader core is running ALU instructions in vertex shader in total GPU time
+ type
+ Percentage
+
+ ShaderCoreFragmentALUActive
+
+ counters
+
+ AMDStat_Fragment_SALU_Insts
+ AMDStat_Fragment_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ALU active % in Fragment Shader
+ description
+ Percentage of time shader core is running ALU instructions in fragment shader in total GPU time
+ type
+ Percentage
+
+ MemoryStallPerWavefrontCompute
+
+ counters
+
+ AMDStat_Compute_Wait_Inst_VMEM
+ AMDStat_Compute_WAIT_CNT_VMVS
+ AMDStat_Compute_Waves_Executed
+ AverageWavefrontLatencyCompute
+
+ name
+ Memory Stall % in Compute Shader Wavefronts
+ description
+ Percentage of time a compute shader wavefront is stalled by memory operation
+ type
+ Percentage
+
+ MemoryStallPerWavefrontVertex
+
+ counters
+
+ AMDStat_Vertex_Wait_Inst_VMEM
+ AMDStat_Vertex_WAIT_CNT_VMVS
+ AMDStat_Vertex_Waves_Executed
+ AverageWavefrontLatencyVertex
+
+ name
+ Memory Stall % in Vertex Shader Wavefronts
+ description
+ Percentage of time a vertex shader wavefront is stalled by memory operation
+ type
+ Percentage
+
+ MemoryStallPerWavefrontFragment
+
+ counters
+
+ AMDStat_Fragment_Wait_Inst_VMEM
+ AMDStat_Fragment_WAIT_CNT_VMVS
+ AMDStat_Fragment_Waves_Executed
+ AverageWavefrontLatencyFragment
+
+ name
+ Memory Stall % in Fragment Shader Wavefronts
+ description
+ Percentage of time a fragment shader wavefront is stalled by memory operation
+ type
+ Percentage
+
+ AverageWavefrontLatencyCompute
+
+ counters
+
+ AMDStat_Compute_Accum_Prev_Cycles
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average latency of a Compute Shader Wavefront
+ description
+ Average cycles each Compute shader wavefront takes
+ type
+ Count
+
+ AverageWavefrontLatencyVertex
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Vertex_Waves_Executed
+
+ name
+ Average latency of a Vertex Shader Wavefront
+ description
+ Average cycles each vertex shader wavefront takes
+ type
+ Count
+
+ AverageWavefrontLatencyFragment
+
+ counters
+
+ AMDStat_Fragment_Accum_Prev_Cycles
+ AMDStat_Fragment_Waves_Executed
+
+ name
+ Average latency of a Fragment Shader Wavefront
+ description
+ Average cycles each fragment shader wavefront takes
+ type
+ Count
+
+ AverageWavesInflightCompute
+
+ counters
+
+ AMDStat_Compute_Accum_Prev_Cycles
+ AMDStat_Compute_Busy_Cycles
+
+ name
+ Compute Shader Wavefront SIMD Occupancy
+ description
+ Average Number of Compute Shader Wavefront In Flight per SIMD
+ type
+ Count
+
+ AverageWavesInflightVertex
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Vertex_Busy_Cycles
+
+ name
+ Vertex Shader Wavefront SIMD Occupancy
+ description
+ Average Number of Vertex Shader Wavefront In Flight per SIMD
+ type
+ Count
+
+ AverageWavesInflightFragment
+
+ counters
+
+ AMDStat_Fragment_Accum_Prev_Cycles
+ AMDStat_Fragment_Busy_Cycles
+
+ name
+ Fragment Shader Wavefront SIMD Occupancy
+ description
+ Average Number of Fragment Shader Wavefront In Flight per SIMD
+ type
+ Count
+
+ ShaderCoreStall
+
+ counters
+
+ ShaderCoreALUActive
+ AMDStat_GPU_Engine_Busy_Ticks
+ AMDStat_Shader_VMEM_Read_Cycles
+ AMDStat_Shader_VMEM_Write_Cycles
+ AMDStat_Shader_EXP_Cycles
+ AMDStat_Shader_GDS_Cycles
+ MTLStatShaderCost
+
+ name
+ % of Stall Time in Shader Core in total GPU time
+ description
+ Percentage of time shader core is being stalled in total GPU time
+ type
+ Percentage
+
+ SamplerBusy
+
+ counters
+
+ AMDStat_Sampler_Busy
+
+ name
+ % of Busy Time in Sampler
+ description
+ Percentage of time Sampler is busy
+ type
+ Percentage
+
+ L2CacheThroughput
+
+ counters
+
+ AMDStat_L2_Cache_Request
+ AMDStat_L2_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ L2 Cache Throughput
+ description
+ Number of requests (cache lines) being sent to L2 Cache per GPU clock
+ type
+ Rate
+
+ L2CacheDramBandwidth
+
+ counters
+
+ AMDStat_L2_Write_Size
+ AMDStat_L2_Read_Size
+ AMDStat_L2_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ L2 Cache Dram Bandwidth
+ description
+ Number of GB being accessed in memory by L2 cache per second
+ type
+ Rate
+
+ VSInvocation
+
+ counters
+
+ AMDStat_DS_Invocations
+ AMDStat_VS_Invocations
+
+ name
+ Vertex Shader Invocations
+ description
+ Number of times vertex shader is invoked
+ type
+ Count
+
+ CSInvocation
+
+ counters
+
+ AMDStat_CS_Invocations
+ AMDStat_VS_Invocations
+ AMDStat_PS_Invocations
+
+ name
+ Compute Shader Invocations
+ description
+ Number of times compute shader is invoked
+ type
+ Count
+
+ PSInvocation
+
+ counters
+
+ AMDStat_PS_Invocations
+ AMDStat_VS_Invocations
+
+ name
+ Fragment Shader Invocations
+ description
+ Number of times fragment shader is invoked
+ type
+ Count
+
+ VertexCost
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Fragment_Accum_Prev_Cycles
+
+ name
+ Vertex Shader Cost
+ description
+ % of total compute unit cycles spend running vertex shader
+ type
+ Percentage
+
+ FragmentCost
+
+ counters
+
+ AMDStat_Vertex_Accum_Prev_Cycles
+ AMDStat_Fragment_Accum_Prev_Cycles
+
+ name
+ Fragment Shader Cost
+ description
+ % of total compute unit cycles spend running fragment shader
+ type
+ Percentage
+
+ VertexDuration
+
+ counters
+
+ MTLStatFragmentCost
+ MTLStatVertexCost
+
+ name
+ Vertex Shader Duration
+ description
+ % of GPU busy time the vertex shader is in flight
+ type
+ Percentage
+
+ FragmentDuration
+
+ counters
+
+ MTLStatFragmentCost
+ MTLStatVertexCost
+
+ name
+ Fragment Shader Duration
+ description
+ % of GPU busy time the fragment shader is in flight
+ type
+ Percentage
+
+ PixelToVertexRatio
+
+ counters
+
+ AMDStat_GE_Vertices
+ PixelsRasterized
+
+ name
+ Pixel To Vertex Ratio
+ description
+ Number of pixels per vertex
+ type
+ Rate
+
+ PixelPerTriangle
+
+ counters
+
+ PrimitivesSubmitted
+ PixelsRasterized
+
+ name
+ Pixel Per Triangle
+ description
+ Number of pixels per triangle
+ type
+ Rate
+
+ VerticesSubmitted
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_GE_Vertices
+ AMDStat_VS_Vertices_In
+
+ name
+ Vertices Submitted
+ description
+ Number of vertices being submitted to input assembly
+ type
+ Count
+
+ NumberOfPatchesSubmitted
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_GE_Vertices
+
+ name
+ Number of Patches Submitted
+ description
+ Number of patches being submitted to input assembly
+ type
+ Count
+
+ VerticesReused
+
+ counters
+
+ AMDStat_Vertices_Reuse
+ AMDStat_GE_Vertices
+ AMDStat_VS_Invocations
+
+ name
+ Number of Vertices Reused
+ description
+ Number of number of vertices being reused in the total number of submitted vertices
+ type
+ Count
+
+ VerticesReusedPercentage
+
+ counters
+
+ VerticesReused
+ AMDStat_GE_Vertices
+
+ name
+ Percentage of Vertices Reused
+ description
+ Percentage of number of vertices being reused in the total number of submitted vertices
+ type
+ Percentage
+
+ AverageTessFactor
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_VS_Vertices_In
+ AMDStat_GE_Vertices
+
+ name
+ Average Tessellation Factor
+ description
+ Average of actually calculated tessellation factor
+ type
+ Count
+
+ VerticesRendered
+
+ counters
+
+ AMDStat_VS_Vertices_In
+
+ name
+ Number of Vertices Rendered
+ description
+ Number of number of vertices being passed to shader core in total number of vertices submitted
+ type
+ Count
+
+ VerticesRenderedPercentage
+
+ counters
+
+ AMDStat_VS_Vertices_In
+ VerticesSubmitted
+
+ name
+ Percentage of Vertices Rendered
+ description
+ Percentage of number of vertices being passed to shader core in total number of vertices submitted
+ type
+ Percentage
+
+ PrimitivesSubmitted
+
+ counters
+
+ AMDStat_HS_Invocations
+ AMDStat_C_Invocations
+ AMDStat_GE_Primitives
+
+ name
+ Primitives Submitted
+ description
+ Number of primitives gathered by input assembly
+ type
+ Count
+
+ PrimitivesRendered
+
+ counters
+
+ AMDStat_C_Primitives
+
+ name
+ Number of Primitives Rendered
+ description
+ Number of Number of primitives actually rendered in total number of primitives submitted
+ type
+ Count
+
+ PrimitivesRenderedPercentage
+
+ counters
+
+ AMDStat_C_Primitives
+ PrimitivesSubmitted
+
+ name
+ Percentage of Primitives Rendered
+ description
+ Percentage of Number of primitives actually rendered in total number of primitives submitted
+ type
+ Percentage
+
+ NumberOfCulledPrimitives
+
+ counters
+
+ AMDStat_Culled_Prims
+
+ name
+ Number of Primitives Culled
+ description
+ Number of Number of primitives being culled in total number of primitives submitted
+ type
+ Count
+
+ NumberOfCulledPrimitivesPercentage
+
+ counters
+
+ AMDStat_Culled_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Primitives Culled
+ description
+ Percentage of Number of primitives being culled in total number of primitives submitted
+ type
+ Percentage
+
+ NumberOfClippedPrimitives
+
+ counters
+
+ AMDStat_Clipped_Prims
+
+ name
+ Number of Primitives Clipped
+ description
+ Number of Number of primitives being clipped in total number of primitives submitted
+ type
+ Count
+
+ NumberOfClippedPrimitivesPercentage
+
+ counters
+
+ AMDStat_Clipped_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Primitives Clipped
+ description
+ Percentage of Number of primitives being clipped in total number of primitives submitted
+ type
+ Percentage
+
+ HierarchicalZTotalTilesCount
+
+ counters
+
+ AMDStat_HiZTiles_Total_Count
+
+ name
+ Hierarchical ZTotal Tiles Count
+ description
+ Number of tiles sent to hierarchical Z test
+ type
+ Count
+
+ HierarchicalZFailPercentage
+
+ counters
+
+ AMDStat_HiZTiles_Culled_Count
+ AMDStat_HiZTiles_Total_Count
+
+ name
+ Percentage of Hierarchical Z Fail Count
+ description
+ Percentage of number of tiles that fails hierarchical Z test in the total number of tiles sent to HiZ test
+ type
+ Percentage
+
+ PreZPassSampleCount
+
+ counters
+
+ AMDStat_PreZ_Samples_PassingZ
+
+ name
+ PreZ Z test Pass Sample Count
+ description
+ Number of samples that pass preZ Z test
+ type
+ Count
+
+ PreZFailSampleCount
+
+ counters
+
+ AMDStat_PreZ_Samples_FailingZ
+
+ name
+ PreZ Z test Fail Count
+ description
+ Number of samples that fail preZ Z test
+ type
+ Count
+
+ PreZStencilFailSampleCount
+
+ counters
+
+ AMDStat_PreZ_Samples_FailingS
+
+ name
+ PreZ Stencil Test Fail SampleCount
+ description
+ Number of samples that fail preZ stencil test
+ type
+ Count
+
+ PostZPassSampleCount
+
+ counters
+
+ AMDStat_PostZ_Samples_PassingZ
+
+ name
+ PostZ Z test Pass Sample Count
+ description
+ Number of samples that pass postZ Z test
+ type
+ Count
+
+ PostZFailSampleCount
+
+ counters
+
+ AMDStat_PostZ_Samples_FailingZ
+
+ name
+ PostZ Z test Fail Sample Count
+ description
+ Number of samples that fail postZ Z test
+ type
+ Count
+
+ PostZStencilFailSampleCount
+
+ counters
+
+ AMDStat_PostZ_Samples_FailingS
+
+ name
+ PostZ Stencil test Fail Sample Count
+ description
+ Number of samples that fail postZ stencil test
+ type
+ Count
+
+ PreZFailPercentage
+
+ counters
+
+ AMDStat_PreZ_Quads_Count
+ AMDStat_FS_Quads_Count
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ Fail % in PreZ Z and Stencil test
+ description
+ Percentage of pixels that failed preZ Z and stencil test in total number of rasterized pixels
+ type
+ Percentage
+
+ PostZFailPercentage
+
+ counters
+
+ AMDStat_PostZ_Samples_FailingZ
+ AMDStat_PostZ_Samples_FailingS
+ AMDStat_PostZ_Samples_PassingZ
+ AMDStat_PreZ_Quads_Count
+ AMDStat_PostFS_Pixels
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ Fail % in PostZ Z and Stencil test
+ description
+ Percentage of pixels that failed postZ Z and stencil test in total number of rasterized pixels
+ type
+ Percentage
+
+ PixelsRasterized
+
+ counters
+
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ Pixels Rasterized
+ description
+ Total number of pixels rasterized
+ type
+ Count
+
+ PixelsDrawn
+
+ counters
+
+ AMDStat_Pixels_Drawn
+ NumMRT
+
+ name
+ Pixels Drawn
+ description
+ Number of pixels written to color buffer
+ type
+ Count
+
+ PixelsDrawnPercentage
+
+ counters
+
+ NumMRT
+ AMDStat_Quads_Drawn
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ % of Pixels Drawn
+ description
+ Percentage of number of pixels written to color buffer in total number of rasterized pixels
+ type
+ Percentage
+
+ FragmentsDrawn
+
+ counters
+
+ PixelsDrawn
+ AMDStat_Quads_Drawn
+ AMDStat_Quad_Fragments_Drawn
+ NumMRT
+
+ name
+ Fragments Drawn
+ description
+ Number of fragments written to color buffer
+ type
+ Count
+
+ PixelsDiscardedPercentage
+
+ counters
+
+ AMDStat_PS_Invocations
+ AMDStat_PostFS_Pixels
+ AMDStat_PreHiZ_Total_Quads_Count
+
+ name
+ % of Pixels Discarded in Shader
+ description
+ Percentage of number of pixels being discarded in shader in total number of pixels rasterized
+ type
+ Percentage
+
+ PixelRate
+
+ counters
+
+ AMDStat_Pixels_Drawn
+ AMDStat_CBDrawn_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Pixel Rate
+ description
+ Number of pixels being rendered per GPU clock
+ type
+ Rate
+
+ ALUInstructionPerInvocationCompute
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_Compute_SALU_Insts
+ AMDStat_Compute_VALU_Insts
+
+ name
+ ALU Instructions Executed Per Compute Shader Invocation
+ description
+ Total number of ALU instructions executed in each compute shader invocation
+ type
+ Count
+
+ ALUInstructionPerInvocationVertex
+
+ counters
+
+ AMDStat_Vertex_SALU_Insts
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_Vertex_VALU_Insts
+
+ name
+ ALU Instructions Executed Per Vertex Shader Invocation
+ description
+ Total number of ALU instructions executed in each vertex shader invocation
+ type
+ Count
+
+ ALUInstructionPerInvocationFragment
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_Fragment_SALU_Insts
+ AMDStat_Fragment_VALU_Insts
+
+ name
+ ALU Instructions Executed Per Fragment Shader Invocation
+ description
+ Total number of ALU instructions executed in each fragment shader invocation
+ type
+ Count
+
+ MemInstructionPerInvocationCompute
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_Compute_VMEM_Write_Cycles
+ AMDStat_Compute_VMEM_Read_Cycles
+ AMDStat_Compute_SMEM_Insts
+
+ name
+ Memory Instructions Executed Per Compute Shader Invocation
+ description
+ Total number of memory instructions executed in each compute shader invocation
+ type
+ Count
+
+ MemInstructionPerInvocationVertex
+
+ counters
+
+ AMDStat_Vertex_VMEM_Write_Cycles
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_Vertex_VMEM_Read_Cycles
+ AMDStat_Vertex_SMEM_Insts
+
+ name
+ Memory Instructions Executed Per Vertex Shader Invocation
+ description
+ Total number of memory instructions executed in each vertex shader invocation
+ type
+ Count
+
+ MemInstructionPerInvocationFragment
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_Fragment_VMEM_Write_Cycles
+ AMDStat_Fragment_VMEM_Read_Cycles
+ AMDStat_Fragment_SMEM_Insts
+
+ name
+ Memory Instructions Executed Per Fragment Shader Invocation
+ description
+ Total number of memory Iinstructions executed in each fragment shader invocation
+ type
+ Count
+
+ ControlInstructionPerInvocationCompute
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_Compute_Branch_Insts
+
+ name
+ Control Instructions Executed Per Compute Shader Invocation
+ description
+ Total number of control instructions executed in each compute shader invocation
+ type
+ Count
+
+ ControlInstructionPerInvocationVertex
+
+ counters
+
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_Vertex_Branch_Insts
+
+ name
+ Control Instructions Executed Per Vertex Shader Invocation
+ description
+ Total number of control instructions executed in each vertex shader invocation
+ type
+ Count
+
+ ControlInstructionPerInvocationFragment
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_Fragment_Branch_Insts
+
+ name
+ Control Instructions Executed Per Fragment Shader Invocation
+ description
+ Total number of control instructions executed in each fragment shader invocation
+ type
+ Count
+
+ ALUToMemRatioCompute
+
+ counters
+
+ ALUInstructionPerInvocationCompute
+ MemInstructionPerInvocationCompute
+
+ name
+ ALU to Memory Ratio in Compute Shader
+ description
+ Number of ALU instructions per memory instruction in compute shader
+ type
+ Rate
+
+ ALUToMemRatioVertex
+
+ counters
+
+ ALUInstructionPerInvocationVertex
+ MemInstructionPerInvocationVertex
+
+ name
+ ALU to Memory Ratio in Vertex Shader
+ description
+ Number of ALU instructions per memory instruction in vertex shader
+ type
+ Rate
+
+ ALUToMemRatioFragment
+
+ counters
+
+ ALUInstructionPerInvocationFragment
+ MemInstructionPerInvocationFragment
+
+ name
+ ALU to Memory Ratio in Fragment Shader
+ description
+ Number of ALU instructions per memory instruction in fragment shader
+ type
+ Rate
+
+ LdsStallPerWavefrontCompute
+
+ counters
+
+ AMDStat_Compute_WAIT_CNT_LGKM
+ AMDStat_Compute_LDS_Wait
+ AMDStat_Compute_Waves_Executed
+ AverageWavefrontLatencyCompute
+
+ name
+ % of LDS Stall in a Compute Wavefront
+ description
+ Percentage of a compute shader wavefront being stalled by LDS access
+ type
+ Percentage
+
+ LdsStallPerWavefrontVertex
+
+ counters
+
+ AMDStat_Vertex_LDS_Wait
+ AMDStat_Vertex_WAIT_CNT_LGKM
+ AMDStat_Vertex_Waves_Executed
+ AverageWavefrontLatencyVertex
+
+ name
+ % of LDS Stall in a Vertex Wavefront
+ description
+ Percentage of a vertex shader wavefront being stalled by LDS access
+ type
+ Percentage
+
+ LdsStallPerWavefrontFragment
+
+ counters
+
+ AMDStat_Fragment_LDS_Wait
+ AMDStat_Fragment_WAIT_CNT_LGKM
+ AMDStat_Fragment_Waves_Executed
+ AverageWavefrontLatencyFragment
+
+ name
+ % of LDS Stall in a Fragment Wavefront
+ description
+ Percentage of a fragment wavefront being stalled by LDS access
+ type
+ Percentage
+
+ ROPStall
+
+ counters
+
+ AMDStat_ROP_Stalled_Ticks
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ROP Stall
+ description
+ Percentage of GPU busy time being stalled by ROP
+ type
+ Percentage
+
+ ExportStallPerWavefrontVertex
+
+ counters
+
+ AMDStat_Vertex_Wait_Export_Alloc
+ AMDStat_Vertex_WAIT_CNT_EXP
+ AMDStat_Vertex_Waves_Executed
+ AverageWavefrontLatencyVertex
+
+ name
+ Export Stall % in Vertex Shader Wavefronts
+ description
+ Percentage of time a vertex shader wavefront is stalled by export instructions
+ type
+ Percentage
+
+ ExportStallPerWavefrontFragment
+
+ counters
+
+ AMDStat_Fragment_Wait_Export_Alloc
+ AMDStat_Fragment_WAIT_CNT_EXP
+ AMDStat_Fragment_Waves_Executed
+ AverageWavefrontLatencyFragment
+
+ name
+ Export Stall % in Fragment Shader Wavefronts
+ description
+ Percentage of time a fragment shader wavefront is stalled by export instructions
+ type
+ Percentage
+
+ ZeroAreaCullPrims
+
+ counters
+
+ AMDStat_ZeroArea_Culled_Prims
+
+ name
+ Number of Zero Area Culled Primitives
+ description
+ Number of number of primitives being culled due to having zero area coverage in total number of primitives submitted
+ type
+ Count
+
+ ZeroAreaCullPrimsPercentage
+
+ counters
+
+ AMDStat_ZeroArea_Culled_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Zero Area Culled Primitives
+ description
+ Percentage of number of primitives being culled due to having zero area coverage in total number of primitives submitted
+ type
+ Percentage
+
+ ClipperCullPrims
+
+ counters
+
+ AMDStat_Clipping_Culled_Prims
+
+ name
+ Number of Clipper Culled Primitives
+ description
+ Number of number of primitives being culled by clipper in total number of primitives submitted
+ type
+ Count
+
+ ClipperCullPrimsPercentage
+
+ counters
+
+ AMDStat_Clipping_Culled_Prims
+ PrimitivesSubmitted
+
+ name
+ Percentage of Clipper Culled Primitives
+ description
+ Percentage of number of primitives being culled by clipper in total number of primitives submitted
+ type
+ Percentage
+
+ MemUnitBusy
+
+ counters
+
+ AMDStat_TexUnit_Busy
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Memory Unit Stall
+ description
+ Percentage of GPUTime the memory unit is active
+ type
+ Percentage
+
+ MemUnitBusyCycles
+
+ counters
+
+ AMDStat_TexUnit_Busy_Ticks
+
+ name
+ Memory Unit Busy Cycles
+ description
+ Number of GPU cycles the memory unit is active
+ type
+ Count
+
+ MemUnitStalled
+
+ counters
+
+ AMDStat_TexUnit_Stall
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Memory Unit Stall Cycles
+ description
+ The percentage of GPUTime the memory unit is stalled
+ type
+ Percentage
+
+ MemUnitStalledCycles
+
+ counters
+
+ AMDStat_TexUnit_Stalled_Ticks
+
+ name
+ Memory Unit Stall Cycles
+ description
+ Number of GPU cycles the memory unit is stalled
+ type
+ Count
+
+ WriteUnitStalled
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Write Unit Stall Cycles
+ description
+ The percentage of GPUTime the write unit is stalled
+ type
+ Percentage
+
+ WriteUnitStalledCycles
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+
+ name
+ Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ LocalVidMemBytes
+
+ counters
+
+ AMDStat_LocalVidMemBytes
+
+ name
+ Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ XGMIBytes
+
+ counters
+
+ AMDStat_XGMIBytes
+
+ name
+ Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ PcieBytes
+
+ counters
+
+ AMDStat_PcieBytes
+
+ name
+ PCIEbytes
+ description
+ Number of GPU cycles the write unit is stalled
+ type
+ Count
+
+ TextureUnitStall
+
+ counters
+
+ AMDStat_TexUnit_Stall
+
+ name
+ Texture Unit Stall
+ description
+ Percentage of GPU busy time the texture unit is stalled
+ type
+ Percentage
+
+ TextureUnitBusy
+
+ counters
+
+ AMDStat_TexUnit_Busy
+
+ name
+ Texture Unit Busy
+ description
+ Percentage of GPU busy time the texture unit is busy
+ type
+ Percentage
+
+ TextureCacheMissRate
+
+ counters
+
+ AMDStat_TextureCache_Hit
+ AMDStat_TextureCache_Miss
+
+ name
+ Texture Cache Miss Rate
+ description
+ Percentage of time Texture Cache access is a Miss
+ type
+ Percentage
+
+ L0CacheHitRate
+
+ counters
+
+ AMDStat_L0_Cache_Request
+ AMDStat_L0_Cache_Miss
+
+ name
+ L0 Cache Hit Rate
+ description
+ Percentage of time L0 Cache access is a Hit
+ type
+ Percentage
+
+ L0CacheHitCount
+
+ counters
+
+ AMDStat_L0_Cache_Request
+ AMDStat_L0_Cache_Miss
+
+ name
+ L0 Cache Hit Count
+ description
+ Count of L0 Cache Hits
+ type
+ Count
+
+ L0CacheMissCount
+
+ counters
+
+ AMDStat_L0_Cache_Miss
+
+ name
+ L0 Cache Miss Count
+ description
+ Count of L0 Cache Misses
+ type
+ Count
+
+ L1CacheHitRate
+
+ counters
+
+ AMDStat_L1_Cache_Miss
+ AMDStat_L1_Cache_Request
+
+ name
+ L1 Cache Hit Rate
+ description
+ Percentage of time L1 Cache access is a Hit
+ type
+ Percentage
+
+ L1CacheHitCount
+
+ counters
+
+ AMDStat_L1_Cache_Miss
+ AMDStat_L1_Cache_Request
+
+ name
+ L1 Cache Hit Count
+ description
+ L1 Cache Hit Count
+ type
+ Count
+
+ L1CacheMissCount
+
+ counters
+
+ AMDStat_L1_Cache_Miss
+
+ name
+ L1 Cache Miss Count
+ description
+ L1 Cache Miss Count
+ type
+ Count
+
+ L2CacheHitRate
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+ AMDStat_L2_Cache_Request
+
+ name
+ L2 Cache Hit Rate
+ description
+ Percentage of time L2 Cache access is a Hit
+ type
+ Percentage
+
+ L2CacheMissRate
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+ AMDStat_L2_Cache_Request
+
+ name
+ L2 Cache Miss Rate
+ description
+ Percentage of time L2 Cache access is a Miss
+ type
+ Percentage
+
+ L2CacheHitCount
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+ AMDStat_L2_Cache_Request
+
+ name
+ L2 Cache Hit Count
+ description
+ Count of L2 Cache access is a Hit
+ type
+ Count
+
+ L2CacheMissCount
+
+ counters
+
+ AMDStat_L2_Cache_Miss
+
+ name
+ L2 Cache Miss Count
+ description
+ Count of L2 Cache access is a Miss
+ type
+ Count
+
+ FetchSize
+
+ counters
+
+ AMDStat_Tex_Fetch_Size_32B
+ AMDStat_Tex_Fetch_Size_64B
+ AMDStat_Tex_Fetch_Size_96B
+ AMDStat_Tex_Fetch_Size_128B
+
+ name
+ FetchSize
+ description
+ Number of total bytes fetched from the video memory
+ type
+ Count
+
+ WriteSize
+
+ counters
+
+ AMDStat_L2_Write_Size
+ AMDStat_Tex_Write_Size
+
+ name
+ WriteSize
+ description
+ Number of total bytes written to the video memory
+ type
+ Count
+
+ VertexMemoryFetchLatency
+
+ counters
+
+ AMDStat_GE_MemRead_Bin0
+ AMDStat_GE_MemRead_Bin1
+ AMDStat_GE_MemRead_Bin2
+ AMDStat_GE_MemRead_Bin3
+ AMDStat_GE_MemRead_Bin4
+ AMDStat_GE_MemRead_Bin5
+ AMDStat_GE_MemRead_Bin6
+ AMDStat_GE_MemRead_Bin7
+
+ name
+ Vertex Memory Fetch Latency
+ description
+ Average latency of vertex memory fetch in number of GPU clocks
+ type
+ Count
+
+ NumMRT
+
+ counters
+
+ AMDStat_PostFS_Pixels
+ AMDStat_PostFS_Exports
+
+ name
+ Number of MRT
+ description
+ Number of MRT being used
+ type
+ Count
+
+ PrimitiveRate
+
+ counters
+
+ AMDStat_FrontEnd_Busy_SE0PA0
+ AMDStat_FrontEnd_Busy_SE0PA1
+ AMDStat_FrontEnd_Busy_SE1PA0
+ AMDStat_FrontEnd_Busy_SE1PA1
+ AMDStat_FrontEnd_Busy_SE2PA0
+ AMDStat_FrontEnd_Busy_SE2PA1
+ AMDStat_FrontEnd_Busy_SE3PA0
+ AMDStat_FrontEnd_Busy_SE3PA1
+ AMDStat_FrontEnd_Stall_SE0PA0
+ AMDStat_FrontEnd_Stall_SE0PA1
+ AMDStat_FrontEnd_Stall_SE1PA0
+ AMDStat_FrontEnd_Stall_SE1PA1
+ AMDStat_FrontEnd_Stall_SE2PA0
+ AMDStat_FrontEnd_Stall_SE2PA1
+ AMDStat_FrontEnd_Stall_SE3PA0
+ AMDStat_FrontEnd_Stall_SE3PA1
+ AMDStat_FrontEnd_StarvedBusy_SE0PA0
+ AMDStat_FrontEnd_StarvedBusy_SE0PA1
+ AMDStat_FrontEnd_StarvedBusy_SE1PA0
+ AMDStat_FrontEnd_StarvedBusy_SE1PA1
+ AMDStat_FrontEnd_StarvedBusy_SE2PA0
+ AMDStat_FrontEnd_StarvedBusy_SE2PA1
+ AMDStat_FrontEnd_StarvedBusy_SE3PA0
+ AMDStat_FrontEnd_StarvedBusy_SE3PA1
+
+ name
+ Primitive Rate
+ description
+ Number of primitives processed per GPU clock
+ type
+ Rate
+
+ VertexRate
+
+ counters
+
+ AMDStat_VS_Vertices_In
+ AMDStat_VS_Stalled_Ticks
+ AMDStat_VS_StarvedBusy_Ticks
+
+ name
+ Vertex Rate
+ description
+ Number of vertices processed per GPU clock during vertex pipe busy time
+ type
+ Rate
+
+ PeakPrimitiveRate
+
+ name
+ Peak Primitive Rate per Clock
+ description
+ Peak primitive rate per GPU clock supported by this GPU. To reach peak primitive rate you have to have perfect vertex reuse.
+ type
+ Rate
+
+ PeakVertexRate
+
+ name
+ Peak Vertex Rate per Clock
+ description
+ Peak vertex rate per GPU clock supported by this GPU
+ type
+ Rate
+
+ PeakPixelRate
+
+ name
+ Peak Pixel Rate per Clock
+ description
+ Peak pixel rate per GPU clock supported by this GPU
+ type
+ Rate
+
+ VertexRatePercentage
+
+ counters
+
+ PeakVertexRate
+ VertexRate
+
+ name
+ Vertex Rate Percentage
+ description
+ Percentage of actual vertex rate in peak vertex rate
+ type
+ Percentage
+
+ PrimitiveRatePercentage
+
+ counters
+
+ PeakPrimitiveRate
+ PrimitiveRate
+
+ name
+ Primitive Rate Percentage
+ description
+ Percentage of actual primitiveR rate in peak primitive rate
+ type
+ Percentage
+
+ PixelRatePercentage
+
+ counters
+
+ PeakPixelRate
+ PixelRate
+
+ name
+ Pixel Rate Percentage
+ description
+ Percentage of actual pixel rate in peak pixel rate
+ type
+ Percentage
+
+ ParameterCacheStall
+
+ counters
+
+ AMDStat_ParameterCache_Stall
+
+ name
+ % of GPU time stalled by Full Parameter Cache
+ description
+ Percentage of GPU time VS workload is stalled due to parameter cache space. This can also be caused by backend not releasing parameter cache space fast enough.
+ type
+ Percentage
+
+ ShaderCoreVertexStall
+
+ counters
+
+ AMDStat_Vertex_SALU_Insts
+ AMDStat_Vertex_VALU_Inst_Cycles
+ AverageThreadsPerVertexWavefront
+ AMDStat_Vertex_VMEM_Read_Cycles
+ AMDStat_Vertex_VMEM_Write_Cycles
+ AMDStat_Vertex_VMEM_Inst_Cycles
+ AMDStat_Vertex_EXP_Insts
+ AMDStat_GPU_Engine_Busy_Ticks
+ MTLStatVertexCost
+
+ name
+ Shader Core Stall % in Vertex Shader
+ description
+ Percentage of time shader core is being stalled in vertex shader in total GPU time
+ type
+ Percentage
+
+ ShaderCoreFragmentStall
+
+ counters
+
+ AMDStat_Fragment_SALU_Insts
+ AMDStat_Fragment_VALU_Inst_Cycles
+ AverageThreadsPerFragmentWavefront
+ AMDStat_Fragment_VMEM_Inst_Cycles
+ AMDStat_Fragment_VMEM_Read_Cycles
+ AMDStat_Fragment_VMEM_Write_Cycles
+ AMDStat_Fragment_SMEM_Insts
+ AMDStat_Fragment_EXP_Insts
+ AMDStat_GPU_Engine_Busy_Ticks
+ MTLStatFragmentCost
+
+ name
+ Shader Core Stall % in Fragment Shader
+ description
+ Percentage of time shader core is being stalled in fragment shader in total GPU time
+ type
+ Percentage
+
+ TessellatorBusy
+
+ counters
+
+ AMDStat_Tessellator_Busy
+
+ name
+ Tessellator Busy
+ description
+ Percentage of GPU busy time the tessellator is busy
+ type
+ Percentage
+
+ CBDrawnBusyRate
+
+ counters
+
+ AMDStat_CBDrawn_Busy
+ AMDStat_CB_Busy
+
+ name
+ Color Buffer Draw to Busy Rate
+ description
+ Percentage of time color buffer is busy drawing to total color buffer busy time
+ type
+ Percentage
+
+ ColorBlockL2Throughput
+
+ counters
+
+ AMDStat_CBDrawn_Busy
+ AMDStat_CB_Mem_Read
+ AMDStat_CB_Mem_Written
+
+ name
+ Traffic send out by Color Buffer To L2 Cache
+ description
+ Bytes of cache access made by color buffer each clock when color buffer is busy
+ type
+ Rate
+
+ CBMemRead
+
+ counters
+
+ AMDStat_CB_Mem_Read
+
+ name
+ Color Buffer Memory Read
+ description
+ Number of bytes read from the color buffer.
+ type
+ Count
+
+ CBColorAndMaskRead
+
+ counters
+
+ AMDStat_CB_Mem_Read
+ AMDStat_CB_FC_MC_DCC_Mem_Read
+ AMDStat_CB_CM_Mem_Read
+ AMDStat_CB_FC_Mem_Read
+
+ name
+ Color Buffer and Mask buffer Memory Read
+ description
+ Total number of bytes read from the color and mask buffers.
+ type
+ Count
+
+ CBMemWritten
+
+ counters
+
+ AMDStat_CB_Mem_Written
+
+ name
+ Color Buffer Memory Written
+ description
+ Number of bytes written to the color buffer.
+ type
+ Count
+
+ CBColorAndMaskWritten
+
+ counters
+
+ AMDStat_CB_Mem_Written
+ AMDStat_CB_FC_MC_DCC_Mem_Written
+ AMDStat_CB_CM_Mem_Written
+ AMDStat_CB_FC_Mem_Written
+
+ name
+ Color Buffer and Mask buffer Memory Written
+ description
+ Total number of bytes written to the color and mask buffers.
+ type
+ Count
+
+ CBSlowPixelPct
+
+ counters
+
+ AMDStat_Quad_Fragments_32ABGR_Drawn
+ AMDStat_Quad_Fragments_Drawn
+
+ name
+ Color Buffer slow draws
+ description
+ Percentage of pixels written to the color buffer using a half-rate or quarter-rate format.
+ type
+ Percentage
+
+ CBSlowPixelCount
+
+ counters
+
+ AMDStat_Quad_Fragments_32ABGR_Drawn
+
+ name
+ Color Buffer slow draws pixel count
+ description
+ Number of pixels written to the color buffer using a half-rate or quarter-rate format
+ type
+ Count
+
+ DepthBlockL2Throughput
+
+ counters
+
+ AMDStat_ZUnit_Busy
+ AMDStat_DB_Tile_Read
+ AMDStat_DB_Quad_Read
+ AMDStat_DB_Tile_Write
+ AMDStat_DB_Quad_Write
+
+ name
+ Traffic send out by Depth Buffer To L2 Cache
+ description
+ Bytes of cache access made by depth buffer each clock when Depth buffer is busy
+ type
+ Rate
+
+ ZUnitStalled
+
+ counters
+
+ AMDStat_ZUnit_Stalled
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ ZUnit Stall rate
+ description
+ The percentage of GPUTime the depth buffer spends waiting for the color buffer to be ready to accept data. High figures here indicate a bottleneck in color buffer operations.
+ type
+ Percentage
+
+ ZUnitStalledCycles
+
+ counters
+
+ AMDStat_ZUnit_Stalled_Ticks
+
+ name
+ ZUnit Stall cycles
+ description
+ Number of GPU cycles the depth buffer spends waiting for the color buffer to be ready to accept data. Larger numbers indicate a bottleneck in color buffer operations.
+ type
+ Count
+
+ DBMemRead
+
+ counters
+
+ AMDStat_DB_Tile_Read
+ AMDStat_DB_Quad_Read
+
+ name
+ Depth Buffer Memory Read
+ description
+ Number of bytes read from the Depth buffer.
+ type
+ Count
+
+ DBMemWritten
+
+ counters
+
+ AMDStat_DB_Tile_Write
+ AMDStat_DB_Quad_Write
+
+ name
+ Depth Buffer Memory Written
+ description
+ Number of bytes written to the Depth buffer.
+ type
+ Count
+
+ TexTriFilteringPct
+
+ counters
+
+ AMDStat_TexUnit_TriFilteringCount
+ AMDStat_TexUnit_NoTriFilteringCount
+
+ name
+ Tri Filtering Tex
+ description
+ Percentage of pixels that received trilinear filtering. Note that not all pixels for which trilinear filtering is enabled will receive it (e.g. if the texture is magnified)
+ type
+ Percentage
+
+ TexTriFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_TriFilteringCount
+
+ name
+ Trilinear Filtering Count of pixels
+ description
+ Count of pixels that received trilinear filtering. Note that not all pixels for which trilinear filtering is enabled will receive it (e.g. if the texture is magnified).
+ type
+ Count
+
+ NoTexTriFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_NoTriFilteringCount
+
+ name
+ Non Trilinear Filtering Count of pixels
+ description
+ Count of pixels that did not receive trilinear filtering.
+ type
+ Count
+
+ TexVolFilteringPct
+
+ counters
+
+ AMDStat_TexUnit_TexVolFilteringCount
+ AMDStat_TexUnit_NoTexVolFilteringCount
+
+ name
+ Volume Filtered Pixel Percentage
+ description
+ Percentage of pixels that received volume filtering.
+ type
+ Percentage
+
+ TexVolFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_TexVolFilteringCount
+
+ name
+ Volume Filtering Count of pixels
+ description
+ Count of pixels that received volume filtering.
+ type
+ Count
+
+ NoTexVolFilteringCount
+
+ counters
+
+ AMDStat_TexUnit_NoTexVolFilteringCount
+
+ name
+ Non Volume Filtering Count of pixels
+ description
+ Count of pixels that did not receive volume filtering.
+ type
+ Count
+
+ TexAveAnisotropy
+
+ counters
+
+ AMDStat_TexUnit_Average_Anisotropy_1
+ AMDStat_TexUnit_Average_Anisotropy_2
+ AMDStat_TexUnit_Average_Anisotropy_4
+ AMDStat_TexUnit_Average_Anisotropy_6
+ AMDStat_TexUnit_Average_Anisotropy_8
+ AMDStat_TexUnit_Average_Anisotropy_10
+ AMDStat_TexUnit_Average_Anisotropy_12
+ AMDStat_TexUnit_Average_Anisotropy_14
+ AMDStat_TexUnit_Average_Anisotropy_16
+
+ name
+ Average Anisotropy
+ description
+ The average degree of anisotropy applied. A number between 1 and 16. The anisotropic filtering algorithm only applies samples where they are required (e.g. there will be no extra anisotropic samples if the view vector is perpendicular to the surface) so this can be much lower than the requested anisotropy.
+ type
+ Percentage
+
+ CSVFetchInsts
+
+ counters
+
+ AMDStat_Compute_Tex_Load_Inst
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average vector fetch instructions
+ description
+ The average number of vector fetch instructions from the video memory executed per work-item (affected by flow control).
+ type
+ Percentage
+
+ CSSFetchInsts
+
+ counters
+
+ AMDStat_Compute_SMEM_Insts
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average scalar fetch instructions
+ description
+ The average number of scalar fetch instructions from the video memory executed per work-item (affected by flow control).
+ type
+ Percentage
+
+ CSVWriteInsts
+
+ counters
+
+ AMDStat_Compute_Tex_Store_Inst
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average vector fetch instructions
+ description
+ The average number of vector fetch instructions from the video memory executed per work-item (affected by flow control).
+ type
+ Percentage
+
+ CSVALUBusy
+
+ counters
+
+ AMDStat_Compute_VALU_Inst_Cycles
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Percentage of CS vector ALU instructions
+ description
+ The percentage of GPUTime vector ALU instructions are processed. Value range: 0% (bad) to 100% (optimal).
+ type
+ Percentage
+
+ CSVALUBusyCycles
+
+ counters
+
+ AMDStat_Compute_VALU_Inst_Cycles
+
+ name
+ Number of CS vector ALU instruction cycles
+ description
+ Number of GPU cycles where vector ALU instructions are processed.
+ type
+ Count
+
+ CSSALUBusy
+
+ counters
+
+ AMDStat_Compute_SALU_Insts
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ Percentage of CS scalar ALU instructions
+ description
+ The percentage of GPUTime scalar ALU instructions are processed. Value range: 0% (bad) to 100% (optimal).
+ type
+ Percentage
+
+ CSSALUBusyCycles
+
+ counters
+
+ AMDStat_Compute_SALU_Insts
+
+ name
+ Number of CS scalar ALU instruction cycles
+ description
+ Number of GPU cycles where scalar ALU instructions are processed
+ type
+ Count
+
+ CSMemUnitBusy
+
+ counters
+
+ AMDStat_TexUnit_Busy
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ CS Memory Unit Busy
+ description
+ The percentage of GPUTime the memory unit is active. The result includes the stall time (MemUnitStalled). This is measured with all extra fetches and writes and any cache or memory effects taken into account. Value range: 0% to 100% (fetch-bound).
+ type
+ Percentage
+
+ CSMemUnitBusyCycles
+
+ counters
+
+ AMDStat_TexUnit_Busy_Ticks
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+
+ name
+ CS Memory Unit Busy Cycles
+ description
+ Number of GPU cycles the memory unit is active
+ type
+ Count
+
+ CSMemUnitStalled
+
+ counters
+
+ AMDStat_L0_Stall
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ CS Memory Unit Stall Cycles from CS instructions
+ description
+ The percentage of GPUTime the memory unit is stalled. Try reducing the number or size of fetches and writes if possible. Value range: 0% (optimal) to 100% (bad).
+ type
+ Percentage
+
+ CSMemUnitStalledCycles
+
+ counters
+
+ AMDStat_L0_Stall
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+
+ name
+ CS Memory Unit Stall Cycles
+ description
+ Number of GPU cycles the memory unit is stalled
+ type
+ Count
+
+ CSWriteUnitStalled
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+
+ name
+ CS Write Unit Stall Cycles from CS instructions
+ description
+ The percentage of GPUTime the write unit is stalled.
+ type
+ Percentage
+
+ CSWriteUnitStalledCycles
+
+ counters
+
+ AMDStat_L2_Write_Unit_Stalled
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+
+ name
+ CS Write Unit Stall Cycles
+ description
+ Number of GPU cycles the write unit is stalled.
+ type
+ Count
+
+ CSGDSInsts
+
+ counters
+
+ AMDStat_Compute_GDS_Insts
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average GDS instructions
+ description
+ The average number of GDS read or GDS write instructions executed per work item (affected by flow control).
+ type
+ Percentage
+
+ CSLDSInsts
+
+ counters
+
+ AMDStat_Compute_LDS_Insts
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average LDS instructions
+ description
+ The average number of LDS read or LDS write instructions executed per work item (affected by flow control).
+ type
+ Percentage
+
+ CSALUStalledByLDS
+
+ counters
+
+ AMDStat_Compute_LDS_Wait
+ AMDStat_GPU_Engine_Busy_Ticks
+ AMDStat_Compute_Waves_Executed
+
+ name
+ Average Stall time due to LDS instructions
+ description
+ The percentage of GPUTime ALU units are stalled by the LDS input queue being full or the output queue being not ready. If there are LDS bank conflicts, reduce them. Otherwise, try reducing the number of LDS accesses if possible. Value range: 0% (optimal) to 100% (bad).
+ type
+ Percentage
+
+ CSLDSBankConflict
+
+ counters
+
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_GPU_Engine_Busy_Ticks
+ AMDStat_Compute_LDS_Bank_Conflict
+
+ name
+ Average LDS Stall time due to bank conflicts
+ description
+ The percentage of GPUTime LDS is stalled by bank conflicts. Value range: 0% (optimal) to 100% (bad).
+ type
+ Percentage
+
+ CSLDSBankConflictCycles
+
+ counters
+
+ AMDStat_CSG_number_of_threadGrps
+ AMDStat_CSN_number_of_threadGrps
+ AMDStat_Compute_LDS_Bank_Conflict
+
+ name
+ Number LDS Stall cycles due to bank conflicts
+ description
+ Number of GPU cycles the LDS is stalled by bank conflicts. Value range: 0 (optimal) to GPUBusyCycles (bad).
+ type
+ Count
+
+ AverageThreadsPerVertexWavefront
+
+ counters
+
+ AMDStat_Vertex_Waves_Executed
+ AMDStat_VS_Invocations
+
+ name
+ Average Threads Per Vertex Wavefront
+ description
+ Average number of active threads per vertex wavefront
+ type
+ Count
+
+ AverageThreadsPerFragmentWavefront
+
+ counters
+
+ AMDStat_Fragment_Waves_Executed
+ AMDStat_PS_Invocations
+
+ name
+ Average Threads Per Fragment Wavefront
+ description
+ Average number of active threads per fragment wavefront
+ type
+ Count
+
+ AverageThreadsPerComputeWavefront
+
+ counters
+
+ AMDStat_Compute_Waves_Executed
+ AMDStat_CS_Invocations
+
+ name
+ Average Threads Per Compute Wavefront
+ description
+ Average number of active threads per compute wavefront
+ type
+ Count
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-derived.js b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-derived.js
new file mode 100755
index 00000000..694dd9fb
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/GFX10Statistics-derived.js
@@ -0,0 +1,1096 @@
+// Counters are being captured in multiple rounds. For small draw call, data can vary pretty significantly. So we need to cap the rate.
+
+function GPUTime()
+{
+ return MTLStat_nSec;
+}
+
+function GPUBusy()
+{
+ if (AMDStat_GPU_Engine_Busy_Ticks < AMDStat_GPU_Engine_Ticks)
+ return (AMDStat_GPU_Engine_Busy_Ticks/AMDStat_GPU_Engine_Ticks * 100);
+ else
+ return 100;
+}
+
+function GPUStall()
+{
+ return 100 - GPUBusy();
+}
+
+function ShaderCoreUtilization()
+{
+ if (MTLStatComputeCost != 0)
+ return MTLStatComputeCost;
+ else
+ return MTLStatShaderCost;
+}
+
+function ShaderCoreALUActive()
+{
+ var rate = 0;
+ if (MTLStatComputeCost != 0)
+ rate = (((AMDStat_Compute_SALU_Insts + AMDStat_Compute_VALU_Inst_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ else
+ rate = (((AMDStat_Shader_SALU_Cycles + AMDStat_Shader_VALU_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+
+ return (rate > 100 ? 100 : rate);
+}
+
+function ShaderCoreStall()
+{
+ var OtherActive = (((AMDStat_Shader_VMEM_Read_Cycles + AMDStat_Shader_VMEM_Write_Cycles + AMDStat_Shader_EXP_Cycles + AMDStat_Shader_GDS_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ var AllActive = ShaderCoreALUActive() + OtherActive;
+ if (AllActive >= MTLStatShaderCost)
+ return 0;
+ else
+ return MTLStatShaderCost - AllActive;
+}
+
+function ShaderCoreVertexALUActive()
+{
+ var rate = (((AMDStat_Vertex_SALU_Insts + AMDStat_Vertex_VALU_Inst_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ return (rate > 100 ? 100 : rate);
+}
+
+function ShaderCoreFragmentALUActive()
+{
+ var rate = (((AMDStat_Fragment_SALU_Insts + AMDStat_Fragment_VALU_Inst_Cycles) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ return (rate > 100 ? 100 : rate);
+}
+
+function ShaderCoreVertexStall()
+{
+ // Percentage of GPU time that shader core is doing real work for vertex shader.
+ var Active = (((AMDStat_Vertex_VALU_Inst_Cycles + AMDStat_Vertex_SALU_Insts + AMDStat_Vertex_VMEM_Inst_Cycles + AMDStat_Vertex_SMEM_Insts + AMDStat_Vertex_EXP_Insts) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ // (VertexShaderBusyPercentage - Active) is the percentage of GPU time that shader core is being stalled for vertex shader workload.
+ if (Active >= MTLStatVertexCost)
+ return 0;
+ else
+ return MTLStatVertexCost - Active;
+}
+
+function ShaderCoreFragmentStall()
+{
+ var Active = (((AMDStat_Fragment_VALU_Inst_Cycles + AMDStat_Fragment_SALU_Insts + AMDStat_Fragment_VMEM_Inst_Cycles + AMDStat_Fragment_SMEM_Insts + AMDStat_Fragment_EXP_Insts) / NumSE) / AMDStat_GPU_Engine_Busy_Ticks) / (NumCUPerSH * NumSH) * 100;
+ if (Active >= MTLStatFragmentCost)
+ return 0;
+ else
+ return MTLStatFragmentCost - Active;
+}
+
+function MemoryStallPerWavefrontCompute()
+{
+ var MemWait = (AMDStat_Compute_WAIT_CNT_VMVS > AMDStat_Compute_Wait_Inst_VMEM) ? AMDStat_Compute_WAIT_CNT_VMVS : AMDStat_Compute_Wait_Inst_VMEM;
+ var rate = (MemWait / AMDStat_Compute_Waves_Executed) / AverageWavefrontLatencyCompute() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function MemoryStallPerWavefrontVertex()
+{
+ var MemWait = (AMDStat_Vertex_WAIT_CNT_VMVS > AMDStat_Vertex_Wait_Inst_VMEM) ? AMDStat_Vertex_WAIT_CNT_VMVS : AMDStat_Vertex_Wait_Inst_VMEM;
+ var rate = (MemWait / AMDStat_Vertex_Waves_Executed) / AverageWavefrontLatencyVertex() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function MemoryStallPerWavefrontFragment()
+{
+ var MemWait = (AMDStat_Fragment_WAIT_CNT_VMVS > AMDStat_Fragment_Wait_Inst_VMEM) ? AMDStat_Fragment_WAIT_CNT_VMVS : AMDStat_Fragment_Wait_Inst_VMEM;
+ var rate = (MemWait / AMDStat_Fragment_Waves_Executed) / AverageWavefrontLatencyFragment() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function LdsStallPerWavefrontCompute()
+{
+ var LdsWait = (AMDStat_Compute_WAIT_CNT_LGKM > AMDStat_Compute_LDS_Wait) ? AMDStat_Compute_WAIT_CNT_LGKM : AMDStat_Compute_LDS_Wait;
+ var rate = (LdsWait / AMDStat_Compute_Waves_Executed) / AverageWavefrontLatencyCompute() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function LdsStallPerWavefrontVertex()
+{
+ var LdsWait = (AMDStat_Vertex_WAIT_CNT_LGKM > AMDStat_Vertex_LDS_Wait) ? AMDStat_Vertex_WAIT_CNT_LGKM : AMDStat_Vertex_LDS_Wait;
+ var rate = (LdsWait / AMDStat_Vertex_Waves_Executed) / AverageWavefrontLatencyVertex() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function LdsStallPerWavefrontFragment()
+{
+ var LdsWait = (AMDStat_Fragment_WAIT_CNT_LGKM > AMDStat_Fragment_LDS_Wait) ? AMDStat_Fragment_WAIT_CNT_LGKM : AMDStat_Fragment_LDS_Wait;
+ var rate = (LdsWait / AMDStat_Fragment_Waves_Executed) / AverageWavefrontLatencyFragment() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function ExportStallPerWavefrontVertex()
+{
+ var rate = ((AMDStat_Vertex_WAIT_CNT_EXP + AMDStat_Vertex_Wait_Export_Alloc) / AMDStat_Vertex_Waves_Executed) / AverageWavefrontLatencyVertex() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function ExportStallPerWavefrontFragment()
+{
+ var rate = ((AMDStat_Fragment_Wait_Export_Alloc + AMDStat_Fragment_WAIT_CNT_EXP) / AMDStat_Fragment_Waves_Executed) / AverageWavefrontLatencyFragment() * 100;
+ return (rate >= 99) ? 99 : rate;
+}
+
+function AverageWavefrontLatencyCompute()
+{
+ return (AMDStat_Compute_Accum_Prev_Cycles) / AMDStat_Compute_Waves_Executed;
+}
+
+function AverageWavefrontLatencyVertex()
+{
+ return (AMDStat_Vertex_Accum_Prev_Cycles) / AMDStat_Vertex_Waves_Executed;
+}
+
+function AverageWavefrontLatencyFragment()
+{
+ return (AMDStat_Fragment_Accum_Prev_Cycles) / AMDStat_Fragment_Waves_Executed;
+}
+
+function AverageWavesInflightCompute()
+{
+ return (AMDStat_Compute_Accum_Prev_Cycles) / (NumCUPerSH * NumSH) / AMDStat_Compute_Busy_Cycles;
+}
+
+function AverageWavesInflightVertex()
+{
+ return (AMDStat_Vertex_Accum_Prev_Cycles) / (NumCUPerSH * NumSH) / AMDStat_Vertex_Busy_Cycles;
+}
+
+function AverageWavesInflightFragment()
+{
+ return (AMDStat_Fragment_Accum_Prev_Cycles) / (NumCUPerSH * NumSH) / AMDStat_Fragment_Busy_Cycles;
+}
+
+function SamplerBusy()
+{
+ return AMDStat_Sampler_Busy;
+}
+
+function L2CacheThroughput()
+{
+ return (AMDStat_L2_Cache_Request / (AMDStat_L2_Busy / 100 * AMDStat_GPU_Engine_Busy_Ticks));
+}
+
+function L2CacheDramBandwidth()
+{
+ return ((AMDStat_L2_Write_Size + AMDStat_L2_Read_Size) / (AMDStat_L2_Busy / 100 * AMDStat_GPU_Engine_Busy_Ticks)) * SysClkFreq / 100000;
+}
+
+function VSInvocation()
+{
+ if (AMDStat_DS_Invocations == 0)
+ return AMDStat_VS_Invocations;
+ else
+ return AMDStat_DS_Invocations;
+}
+
+function CSInvocation()
+{
+ if (AMDStat_VS_Invocations == 0 && AMDStat_PS_Invocations !=0)
+ return AMDStat_PS_Invocations;
+ else
+ return AMDStat_CS_Invocations;
+}
+
+function PSInvocation()
+{
+ if (AMDStat_VS_Invocations == 0 && AMDStat_PS_Invocations !=0)
+ return 0;
+ else
+ return AMDStat_PS_Invocations;
+}
+
+function VertexCost()
+{
+ return AMDStat_Vertex_Accum_Prev_Cycles / (AMDStat_Vertex_Accum_Prev_Cycles + AMDStat_Fragment_Accum_Prev_Cycles) * 100;
+}
+
+function VertexDuration()
+{
+ return MTLStatVertexCost / (MTLStatVertexCost + MTLStatFragmentCost) * 100;
+}
+
+function FragmentCost()
+{
+ return AMDStat_Fragment_Accum_Prev_Cycles / (AMDStat_Vertex_Accum_Prev_Cycles + AMDStat_Fragment_Accum_Prev_Cycles) * 100;
+}
+
+function FragmentDuration()
+{
+ return MTLStatFragmentCost / (MTLStatVertexCost + MTLStatFragmentCost) * 100;
+}
+
+function PixelToVertexRatio()
+{
+ return (PixelsRasterized() / VerticesSubmitted());
+}
+
+function PixelPerTriangle()
+{
+ return (PixelsRasterized() / PrimitivesSubmitted());
+}
+
+function VerticesSubmitted()
+{
+ if (AMDStat_HS_Invocations == 0)
+ return AMDStat_GE_Vertices;
+ else
+ return AMDStat_VS_Vertices_In;
+}
+
+function NumberOfPatchesSubmitted()
+{
+ if (AMDStat_HS_Invocations > 0)
+ return AMDStat_GE_Vertices;
+ else
+ return 0;
+}
+
+function VerticesReused()
+{
+ if (AMDStat_Vertices_Reuse != 0)
+ {
+ return (AMDStat_GE_Vertices - AMDStat_VS_Invocations);
+ }
+ else
+ return 0;
+}
+
+function VerticesReusedPercentage()
+{
+ return (VerticesReused() * 100 / AMDStat_GE_Vertices);
+}
+
+function VerticesRendered()
+{
+ return AMDStat_VS_Vertices_In;
+}
+
+function VerticesRenderedPercentage()
+{
+ return (AMDStat_VS_Vertices_In * 100 / VerticesSubmitted());
+}
+
+function AverageTessFactor()
+{
+ if (AMDStat_HS_Invocations > 0)
+ return (AMDStat_VS_Vertices_In / AMDStat_GE_Vertices);
+ else
+ return 0;
+}
+
+function PrimitivesSubmitted()
+{
+ if (AMDStat_HS_Invocations > 0)
+ return AMDStat_C_Invocations;
+ else
+ return AMDStat_GE_Primitives;
+}
+
+function PrimitivesRendered()
+{
+ return AMDStat_C_Primitives;
+}
+
+function PrimitivesRenderedPercentage()
+{
+ return (AMDStat_C_Primitives * 100 / PrimitivesSubmitted());
+}
+
+function NumberOfCulledPrimitives()
+{
+ return AMDStat_Culled_Prims;
+}
+
+function NumberOfCulledPrimitivesPercentage()
+{
+ return (AMDStat_Culled_Prims * 100 / PrimitivesSubmitted());
+}
+
+function NumberOfClippedPrimitives()
+{
+ return AMDStat_Clipped_Prims;
+}
+
+function NumberOfClippedPrimitivesPercentage()
+{
+ return (AMDStat_Clipped_Prims * 100 / PrimitivesSubmitted());
+}
+
+function HierarchicalZTotalTilesCount()
+{
+ return AMDStat_HiZTiles_Total_Count;
+}
+
+function HierarchicalZFailPercentage()
+{
+ return (AMDStat_HiZTiles_Culled_Count * 100 / AMDStat_HiZTiles_Total_Count);
+}
+
+function PreZPassSampleCount()
+{
+ return AMDStat_PreZ_Samples_PassingZ;
+}
+
+function PreZFailSampleCount()
+{
+ return AMDStat_PreZ_Samples_FailingZ;
+}
+
+function PreZStencilFailSampleCount()
+{
+ return AMDStat_PreZ_Samples_FailingS;
+}
+
+function PostZPassSampleCount()
+{
+ return AMDStat_PostZ_Samples_PassingZ;
+}
+
+function PostZFailSampleCount()
+{
+ return AMDStat_PostZ_Samples_FailingZ;
+}
+
+function PostZStencilFailSampleCount()
+{
+ return AMDStat_PostZ_Samples_FailingS;
+}
+
+function PixelsRasterized()
+{
+ return AMDStat_PreHiZ_Total_Quads_Count * 4 * 2;
+}
+
+function PreZFailPercentage()
+{
+ if (AMDStat_FS_Quads_Count != 0)
+ {
+ return (AMDStat_PreZ_Quads_Count*2 - AMDStat_FS_Quads_Count*2) / (AMDStat_PreHiZ_Total_Quads_Count * 2) * 100;
+ }
+ else
+ {
+ // This is Z only rendering
+ return 0;
+ }
+}
+
+function PostZFailPercentage()
+{
+ var PostZFailRate = (AMDStat_PostZ_Samples_FailingZ + AMDStat_PostZ_Samples_FailingS) / (AMDStat_PostZ_Samples_FailingZ + AMDStat_PostZ_Samples_FailingS + AMDStat_PostZ_Samples_PassingZ);
+ if (AMDStat_PostFS_Pixels == 0)
+ {
+ // This is Z only rendering
+ return (AMDStat_PreZ_Quads_Count * 2 * PostZFailRate) / (AMDStat_PreHiZ_Total_Quads_Count * 2) * 100;
+ }
+ else
+ {
+ return (AMDStat_PostFS_Pixels * 2 * PostZFailRate) / (AMDStat_PreHiZ_Total_Quads_Count * 2 * 4) * 100;
+ }
+}
+
+function PixelsDrawn()
+{
+ return AMDStat_Pixels_Drawn / NumMRT();
+}
+
+function PixelsDrawnPercentage()
+{
+ return AMDStat_Quads_Drawn / NumMRT() / (AMDStat_PreHiZ_Total_Quads_Count*2) * 100;
+}
+
+function FragmentsDrawn()
+{
+ if (AMDStat_Quads_Drawn == AMDStat_Quad_Fragments_Drawn)
+ {
+ // No MSAA
+ return PixelsDrawn();
+ }
+ else
+ {
+ return (AMDStat_Quad_Fragments_Drawn / NumMRT()) *4;
+ }
+}
+
+function PixelsDiscardedPercentage()
+{
+ // Cannot use quad * 4 to get approximation about pixels discarded as discard is usually used when some but not all pixels in a quad need to be discarded.
+ return (AMDStat_PS_Invocations - AMDStat_PostFS_Pixels) / (AMDStat_PreHiZ_Total_Quads_Count * 2 * 4) * 100;
+}
+
+function PixelRate()
+{
+ return (AMDStat_Pixels_Drawn / (AMDStat_CBDrawn_Busy / 100 * AMDStat_GPU_Engine_Busy_Ticks));
+}
+
+function ALUInstructionPerInvocationCompute()
+{
+ return ((AMDStat_Compute_SALU_Insts + AMDStat_Compute_VALU_Insts) / AMDStat_Compute_Waves_Executed);
+}
+
+function ALUInstructionPerInvocationVertex()
+{
+ return ((AMDStat_Vertex_SALU_Insts + AMDStat_Vertex_VALU_Insts) / AMDStat_Vertex_Waves_Executed);
+}
+
+function ALUInstructionPerInvocationFragment()
+{
+ return ((AMDStat_Fragment_SALU_Insts + AMDStat_Fragment_VALU_Insts) / AMDStat_Fragment_Waves_Executed);
+}
+
+function MemInstructionPerInvocationCompute()
+{
+ return ((AMDStat_Compute_VMEM_Write_Cycles + AMDStat_Compute_VMEM_Read_Cycles + AMDStat_Compute_SMEM_Insts) / AMDStat_Compute_Waves_Executed);
+}
+
+function MemInstructionPerInvocationVertex()
+{
+ return ((AMDStat_Vertex_VMEM_Write_Cycles + AMDStat_Vertex_VMEM_Read_Cycles + AMDStat_Vertex_SMEM_Insts) / AMDStat_Vertex_Waves_Executed);
+}
+
+function MemInstructionPerInvocationFragment()
+{
+ return ((AMDStat_Fragment_VMEM_Write_Cycles + AMDStat_Fragment_VMEM_Read_Cycles + AMDStat_Fragment_SMEM_Insts) / AMDStat_Fragment_Waves_Executed);
+}
+
+function ControlInstructionPerInvocationCompute()
+{
+ return (AMDStat_Compute_Branch_Insts / AMDStat_Compute_Waves_Executed);
+}
+
+function ControlInstructionPerInvocationVertex()
+{
+ return (AMDStat_Vertex_Branch_Insts / AMDStat_Vertex_Waves_Executed);
+}
+
+function ControlInstructionPerInvocationFragment()
+{
+ return (AMDStat_Fragment_Branch_Insts / AMDStat_Fragment_Waves_Executed);
+}
+
+function ALUToMemRatioCompute()
+{
+ return (ALUInstructionPerInvocationCompute() / MemInstructionPerInvocationCompute());
+}
+
+function ALUToMemRatioVertex()
+{
+ return (ALUInstructionPerInvocationVertex() / MemInstructionPerInvocationVertex());
+}
+
+function ALUToMemRatioFragment()
+{
+ return (ALUInstructionPerInvocationFragment() / MemInstructionPerInvocationFragment());
+}
+
+function ALUToMemRatio()
+{
+ return (ALUInstructionPerInvocation() / MemInstructionPerInvocation());
+}
+
+function ROPStall()
+{
+ return (AMDStat_ROP_Stalled_Ticks / AMDStat_GPU_Engine_Busy_Ticks) * 100;
+}
+
+function ZeroAreaCullPrims()
+{
+ return AMDStat_ZeroArea_Culled_Prims;
+}
+
+function ZeroAreaCullPrimsPercentage()
+{
+ return (AMDStat_ZeroArea_Culled_Prims * 100 / PrimitivesSubmitted());
+}
+
+function ClipperCullPrims()
+{
+ return AMDStat_Clipping_Culled_Prims;
+}
+
+function ClipperCullPrimsPercentage()
+{
+ return (AMDStat_Clipping_Culled_Prims * 100 / PrimitivesSubmitted());
+}
+
+function TextureUnitStall()
+{
+ return AMDStat_TexUnit_Stall;
+}
+
+function TextureUnitBusy()
+{
+ return AMDStat_TexUnit_Busy;
+}
+
+function TextureCacheMissRate()
+{
+ return (AMDStat_TextureCache_Miss / (AMDStat_TextureCache_Miss + AMDStat_TextureCache_Hit)) * 100;
+}
+
+function L0CacheHitRate()
+{
+ hitRate = ((AMDStat_L0_Cache_Request - AMDStat_L0_Cache_Miss) / AMDStat_L0_Cache_Request) * 100;
+ return (hitRate > 100 ? 100 : hitRate);
+}
+
+function L0CacheHitCount()
+{
+ return AMDStat_L0_Cache_Request - AMDStat_L0_Cache_Miss;
+}
+
+function L0CacheMissCount()
+{
+ return AMDStat_L0_Cache_Miss;
+}
+
+function L1CacheHitRate()
+{
+ if( AMDStat_L1_Cache_Request != 0)
+ hitRate = ((AMDStat_L1_Cache_Request - AMDStat_L1_Cache_Miss) / AMDStat_L1_Cache_Request) * 100;
+ else
+ hitRate = 0;
+ return (hitRate > 100 ? 100 : hitRate);
+}
+
+function L1CacheHitCount()
+{
+ return AMDStat_L1_Cache_Request - AMDStat_L1_Cache_Miss;
+}
+
+function L1CacheMissCount()
+{
+ return AMDStat_L1_Cache_Miss;
+}
+
+function L2CacheHitRate()
+{
+ var hitRate = ((AMDStat_L2_Cache_Request - AMDStat_L2_Cache_Miss) / AMDStat_L2_Cache_Request) * 100;
+ return (hitRate > 100 ? 100 : hitRate);
+}
+
+function L2CacheMissRate()
+{
+ var missRate = (AMDStat_L2_Cache_Miss / AMDStat_L2_Cache_Request) * 100;
+ return (missRate > 100 ? 100 : missRate);
+}
+
+function L2CacheHitCount()
+{
+ return AMDStat_L2_Cache_Request - AMDStat_L2_Cache_Miss;
+}
+
+function L2CacheMissCount()
+{
+ return AMDStat_L2_Cache_Miss;
+}
+
+function FetchSize()
+{
+ return AMDStat_Tex_Fetch_Size_32B * 32 + AMDStat_Tex_Fetch_Size_64B * 64 + AMDStat_Tex_Fetch_Size_96B * 96 + AMDStat_Tex_Fetch_Size_128B * 128;
+}
+
+function WriteSize()
+{
+ return ((AMDStat_L2_Write_Size - AMDStat_Tex_Write_Size) * 32) + (AMDStat_Tex_Write_Size * 64);
+}
+
+function MemUnitBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitBusy = ((AMDStat_TexUnit_Busy_Ticks / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitBusy > 100 ? 100 : unitBusy);
+}
+
+function MemUnitBusyCycles()
+{
+ return AMDStat_TexUnit_Busy_Ticks;
+}
+
+function MemUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitStall = ((AMDStat_TexUnit_Stall / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+}
+
+function MemUnitStalledCycles()
+{
+ return AMDStat_TexUnit_Stalled_Ticks;
+}
+
+function WriteUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitStall = (AMDStat_L2_Write_Unit_Stalled / AMDStat_GPU_Engine_Busy_Ticks) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+}
+
+function WriteUnitStalledCycles()
+{
+ return AMDStat_L2_Write_Unit_Stalled;
+}
+
+function LocalVidMemBytes()
+{
+ return AMDStat_LocalVidMemBytes;
+}
+
+function XGMIBytes()
+{
+ return AMDStat_XGMIBytes;
+}
+
+function PcieBytes()
+{
+ return AMDStat_PcieBytes;
+}
+/* TODO
+name=LocalVidMemBytes
+desc=#GlobalMemory#Number of bytes read from or written to local video memory
+type=gpa_float64
+usage=bytes
+;[DX11Gfx9]
+[DX12Gfx9]
+[VKGfx9]
+GCEA*_PERF_SEL_SARB_DRAM_SIZED_REQUESTS[0..15]
+eqn=0..15,sum16,(32),*
+
+name=PcieBytes
+desc=#GlobalMemory#Number of bytes sent and received over the PCIe bus
+type=gpa_float64
+usage=bytes
+;[DX11Gfx9]
+[DX12Gfx9]
+[VKGfx9]
+GCEA*_PERF_SEL_SARB_IO_SIZED_REQUESTS[0..15]
+eqn=0..15,sum16,(32),*
+*/
+
+function VertexMemoryFetchLatency()
+{
+ return (AMDStat_GE_MemRead_Bin0 * 64 + AMDStat_GE_MemRead_Bin1 * (128 + 64) + AMDStat_GE_MemRead_Bin2 * (128 * 2 + 64) + AMDStat_GE_MemRead_Bin3 * (128 * 3 + 64) + AMDStat_GE_MemRead_Bin4 * (128 * 4 + 64) + AMDStat_GE_MemRead_Bin5 * (128 * 5 + 64) + AMDStat_GE_MemRead_Bin6 * (128 * 6 + 64) + AMDStat_GE_MemRead_Bin7 * (128 * 7 + 64)) / (AMDStat_GE_MemRead_Bin0 + AMDStat_GE_MemRead_Bin1 + AMDStat_GE_MemRead_Bin2 + AMDStat_GE_MemRead_Bin3 + AMDStat_GE_MemRead_Bin4 + AMDStat_GE_MemRead_Bin5 + AMDStat_GE_MemRead_Bin6 + AMDStat_GE_MemRead_Bin7);
+}
+
+function NumMRT()
+{
+ return AMDStat_PostFS_Exports / AMDStat_PostFS_Pixels;
+}
+
+function PrimitiveRate()
+{
+ return (
+ AMDStat_FrontEnd_Busy_SE0PA0 + AMDStat_FrontEnd_Busy_SE0PA1 +
+ AMDStat_FrontEnd_Busy_SE1PA0 + AMDStat_FrontEnd_Busy_SE1PA1 +
+ AMDStat_FrontEnd_Busy_SE2PA0 + AMDStat_FrontEnd_Busy_SE2PA1 +
+ AMDStat_FrontEnd_Busy_SE3PA0 + AMDStat_FrontEnd_Busy_SE3PA1 )
+ / (AMDStat_FrontEnd_Stall_SE0PA0 + AMDStat_FrontEnd_Stall_SE0PA1 +
+ AMDStat_FrontEnd_Stall_SE1PA0 + AMDStat_FrontEnd_Stall_SE1PA1 +
+ AMDStat_FrontEnd_Stall_SE2PA0 + AMDStat_FrontEnd_Stall_SE2PA1 +
+ AMDStat_FrontEnd_Stall_SE3PA0 + AMDStat_FrontEnd_Stall_SE3PA1 ) +
+ ( AMDStat_FrontEnd_StarvedBusy_SE0PA0 + AMDStat_FrontEnd_StarvedBusy_SE0PA1 +
+ AMDStat_FrontEnd_StarvedBusy_SE1PA0 + AMDStat_FrontEnd_StarvedBusy_SE1PA1 +
+ AMDStat_FrontEnd_StarvedBusy_SE2PA0 + AMDStat_FrontEnd_StarvedBusy_SE2PA1 +
+ AMDStat_FrontEnd_StarvedBusy_SE3PA0 + AMDStat_FrontEnd_StarvedBusy_SE3PA1);
+}
+
+function VertexRate()
+{
+ return AMDStat_VS_Vertices_In * NumSE / (AMDStat_VS_Vertices_In + AMDStat_VS_Stalled_Ticks + AMDStat_VS_StarvedBusy_Ticks);
+}
+
+function PeakPrimitiveRate()
+{
+ return NumSE;
+}
+
+function PeakVertexRate()
+{
+ return NumSE;
+}
+
+function PeakPixelRate()
+{
+ return NumROP * 4;
+}
+
+function VertexRatePercentage()
+{
+ return VertexRate() * 100 / PeakVertexRate();
+}
+
+function PrimitiveRatePercentage()
+{
+ return PrimitiveRate() * 100 / PeakPrimitiveRate();
+}
+
+function PixelRatePercentage()
+{
+ return PixelRate() * 100 / PeakPixelRate();
+}
+
+function ParameterCacheStall()
+{
+ return AMDStat_ParameterCache_Stall;
+}
+
+function AAMode()
+{
+ return AMDStat_Quad_Fragments_Drawn / AMDStat_Quad_Drawn;
+}
+
+function TessellatorBusy()
+{
+ return AMDStat_Tessellator_Busy;
+}
+
+function CBDrawnBusyRate()
+{
+ var rate = (AMDStat_CBDrawn_Busy / AMDStat_CB_Busy) * 100;
+ return (rate > 100) ? 100 : rate;
+}
+
+function ColorBlockL2Throughput()
+{
+ return (AMDStat_CB_Mem_Read + AMDStat_CB_Mem_Written) / AMDStat_CBDrawn_Busy;
+}
+
+function CBMemRead()
+{
+ return AMDStat_CB_Mem_Read * 32;
+}
+
+function CBColorAndMaskRead()
+{
+ return (AMDStat_CB_FC_MC_DCC_Mem_Read + AMDStat_CB_CM_Mem_Read + AMDStat_CB_FC_Mem_Read + AMDStat_CB_Mem_Read) * 32;
+}
+
+function CBMemWritten()
+{
+ return AMDStat_CB_Mem_Written * 32;
+}
+
+function CBColorAndMaskWritten()
+{
+ return (AMDStat_CB_FC_MC_DCC_Mem_Written + AMDStat_CB_CM_Mem_Written + AMDStat_CB_FC_Mem_Written + AMDStat_CB_Mem_Written) * 32;
+}
+
+function CBSlowPixelPct()
+{
+ var pxl = (AMDStat_Quad_Fragments_32ABGR_Drawn / AMDStat_Quad_Fragments_Drawn) * 100;
+ return (pxl > 100) ? 100 : pxl;
+}
+
+function CBSlowPixelCount()
+{
+ return AMDStat_Quad_Fragments_32ABGR_Drawn;
+}
+
+function DepthBlockL2Throughput()
+{
+ return (AMDStat_DB_Tile_Read * 8 + AMDStat_DB_Quad_Read + AMDStat_DB_Tile_Write + AMDStat_DB_Quad_Write) / AMDStat_ZUnit_Busy;
+}
+
+function ZUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var unitStalled = ((AMDStat_ZUnit_Stalled / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStalled > 100 ? 100 : unitStalled);
+}
+
+function ZUnitStalledCycles()
+{
+ return AMDStat_ZUnit_Stalled_Ticks;
+}
+
+function DBMemRead()
+{
+ return (AMDStat_DB_Tile_Read * 256) + (AMDStat_DB_Quad_Read * 32);
+}
+
+function DBMemWritten()
+{
+ return 32 * (AMDStat_DB_Tile_Write + AMDStat_DB_Quad_Write);
+}
+
+function TexTriFilteringPct()
+{
+ var pxl = (100 * AMDStat_TexUnit_TriFilteringCount) / (AMDStat_TexUnit_TriFilteringCount + AMDStat_TexUnit_NoTriFilteringCount);
+ return (pxl > 100) ? 100 : pxl;
+}
+
+function TexTriFilteringCount()
+{
+ return AMDStat_TexUnit_TriFilteringCount;
+}
+
+function NoTexTriFilteringCount()
+{
+ return AMDStat_TexUnit_NoTriFilteringCount;
+}
+
+function TexVolFilteringPct()
+{
+ var pxl = (100 * AMDStat_TexUnit_TexVolFilteringCount) / (AMDStat_TexUnit_TexVolFilteringCount + AMDStat_TexUnit_NoTexVolFilteringCount);
+ return (pxl > 100) ? 100 : pxl;
+}
+
+function TexVolFilteringCount()
+{
+ return AMDStat_TexUnit_TexVolFilteringCount;
+}
+
+function NoTexVolFilteringCount()
+{
+ return AMDStat_TexUnit_NoTexVolFilteringCount;
+}
+
+function TexAveAnisotropy()
+{
+ var unitCount = AMDStat_TexUnit_Average_Anisotropy_1 +
+ ( 2 * AMDStat_TexUnit_Average_Anisotropy_2) +
+ ( 4 * AMDStat_TexUnit_Average_Anisotropy_4) +
+ ( 6 * AMDStat_TexUnit_Average_Anisotropy_6) +
+ ( 8 * AMDStat_TexUnit_Average_Anisotropy_8) +
+ ( 10 * AMDStat_TexUnit_Average_Anisotropy_10) +
+ ( 12 * AMDStat_TexUnit_Average_Anisotropy_12) +
+ ( 14 * AMDStat_TexUnit_Average_Anisotropy_14) +
+ ( 16 * AMDStat_TexUnit_Average_Anisotropy_16);
+
+ var typeCount = AMDStat_TexUnit_Average_Anisotropy_1 +
+ AMDStat_TexUnit_Average_Anisotropy_2 +
+ AMDStat_TexUnit_Average_Anisotropy_4 +
+ AMDStat_TexUnit_Average_Anisotropy_6 +
+ AMDStat_TexUnit_Average_Anisotropy_8 +
+ AMDStat_TexUnit_Average_Anisotropy_10 +
+ AMDStat_TexUnit_Average_Anisotropy_12 +
+ AMDStat_TexUnit_Average_Anisotropy_14 +
+ AMDStat_TexUnit_Average_Anisotropy_16;
+
+ return typeCount / unitCount;
+}
+
+function CSVFetchInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_Tex_Load_Inst / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+function CSSFetchInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_SMEM_Insts / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+function CSVWriteInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_Tex_Store_Inst / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+function CSVALUBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ return ((AMDStat_Compute_VALU_Inst_Cycles / (NumCUPerSH * NumSH)) / AMDStat_GPU_Engine_Busy_Ticks ) * 100;
+}
+
+function CSVALUBusyCycles()
+{
+ return AMDStat_Compute_VALU_Inst_Cycles / (NumCUPerSH * NumSH);
+}
+
+function CSSALUBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ return ((AMDStat_Compute_SALU_Insts / (NumCUPerSH * NumSH)) / AMDStat_GPU_Engine_Busy_Ticks ) * 100;
+}
+
+function CSSALUBusyCycles()
+{
+ return AMDStat_Compute_SALU_Insts / (NumCUPerSH * NumSH);
+}
+
+function CSMemUnitBusy()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var unitBusy = ((AMDStat_TexUnit_Busy_Ticks / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitBusy > 100 ? 100 : unitBusy);
+ }
+ else
+ return 0;
+}
+
+function CSMemUnitBusyCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ return AMDStat_TexUnit_Busy_Ticks;
+ else
+ return 0;
+}
+
+function CSMemUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var unitStall = ((AMDStat_L0_Stall / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+ }
+ else
+ return 0;
+}
+
+function CSMemUnitStalledCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ return AMDStat_L0_Stall;
+ else
+ return 0;
+}
+
+function CSWriteUnitStalled()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var unitStall = ((AMDStat_L2_Write_Unit_Stalled / AMDStat_GPU_Engine_Busy_Ticks) / NumSE) * 100;
+ return (unitStall > 100 ? 100 : unitStall);
+ }
+ else
+ return 0;
+}
+
+function CSWriteUnitStalledCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ return AMDStat_L2_Write_Unit_Stalled;
+ else
+ return 0;
+}
+
+function CSGDSInsts()
+{
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_GDS_Insts / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+}
+
+ function CSLDSInsts()
+ {
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return AMDStat_Compute_LDS_Insts / AMDStat_Compute_Waves_Executed;
+ else
+ return 0;
+ }
+
+function CSALUStalledByLDS()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ if (AMDStat_Compute_Waves_Executed != 0)
+ return (((AMDStat_Compute_LDS_Wait / AMDStat_Compute_Waves_Executed) / AMDStat_GPU_Engine_Busy_Ticks) / NumSE ) * 100;
+ else
+ return 0;
+}
+
+function CSLDSBankConflict()
+{
+ //TODO handle CPF_PERF_SEL_CPF_STAT_BUSY
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ var conflict = ( (AMDStat_Compute_LDS_Bank_Conflict / AMDStat_GPU_Engine_Busy_Ticks) / (4 * NumCUPerSH * NumSH)) * 100;
+ return (conflict > 100 ? 100 : conflict);
+ }
+ else
+ return 0;
+}
+
+function CSLDSBankConflictCycles()
+{
+ var csNumOfThreadGroups = AMDStat_CSG_number_of_threadGrps + AMDStat_CSN_number_of_threadGrps;
+ if ( csNumOfThreadGroups != 0)
+ {
+ return AMDStat_Compute_LDS_Bank_Conflict / (4 * NumCUPerSH * NumSH);
+ }
+ else
+ return 0;
+}
+
+function AverageThreadsPerVertexWavefront()
+{
+ return AMDStat_VS_Invocations / AMDStat_Vertex_Waves_Executed;
+}
+
+function AverageThreadsPerFragmentWavefront()
+{
+ return AMDStat_PS_Invocations / AMDStat_Fragment_Waves_Executed;
+}
+
+function AverageThreadsPerComputeWavefront()
+{
+ if (AMDStat_VS_Invocations == 0 && AMDStat_PS_Invocations !=0)
+ return AMDStat_PS_Invocations / AMDStat_Compute_Waves_Executed;
+ else
+ return AMDStat_CS_Invocations / AMDStat_Compute_Waves_Executed;
+}
+
+function VSOccupancy()
+{
+ return (100 * DerivedVSOccupancy) / DerivedCPF;
+}
+
+function PSOccupancy()
+{
+ return (100 * DerivedPSOccupancy) / DerivedCPF;
+}
+
+function CSOccupancy()
+{
+ return (100 * (DerivedCSOccupancy + DerivedCSNOccupancy)) / DerivedCPF;
+}
+
+function LLCRead()
+{
+ return DerivedLLCRead * 32;
+}
+
+function LLCWrite()
+{
+ return DerivedLLCWrite * 32;
+}
+
+function ALUutilization()
+{
+ var util = 0;
+
+ var wave_size = 0;
+ if (DerivedWavesInFlight !=0)
+ {
+ wave_size = 64;
+ }
+ else
+ {
+ wave_size = 32;
+ }
+
+ util = (DerivedALUThreadCycles / (DerivedALUActiveInst * wave_size)) * 100;
+ return (util > 100 ? 100 : util);
+
+}
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/MPSPlugin_GFX10.dict b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/MPSPlugin_GFX10.dict
new file mode 100755
index 00000000..86a77502
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/MPSPlugin_GFX10.dict differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/TensileKernels_GFX10.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/TensileKernels_GFX10.plist
new file mode 100755
index 00000000..35489d5a
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/Resources/TensileKernels_GFX10.plist differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..b22951e5
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,183 @@
+
+
+
+
+ files
+
+ Resources/GFX10Statistics-analysis.js
+
+ qh2W0Hw3HANaHM5B3oXUiGOCZi8=
+
+ Resources/GFX10Statistics-counters.plist
+
+ PvLFnOz73gfXm3OMKsknBF205PM=
+
+ Resources/GFX10Statistics-derived.js
+
+ pFb5hsndGqTVXTQ3zQ52bVq43G4=
+
+ Resources/MPSPlugin_GFX10.dict
+
+ TNZPeZ0R0wVaj+aInPnqp/XwiC8=
+
+ Resources/TensileKernels_GFX10.plist
+
+ lAHI/QhL93goZONxXyvKy1DjiSk=
+
+ version.plist
+
+ IWrOyfKjDkFgGXymiMABq9VEuCs=
+
+
+ files2
+
+ Resources/GFX10Statistics-analysis.js
+
+ hash2
+
+ r+v9dnyMjbmuA6rAY56jQbhr0qyfuUm5J3YGRukOepo=
+
+
+ Resources/GFX10Statistics-counters.plist
+
+ hash2
+
+ Gr+ge1yOKzgmDCpZB6uSdNhJBz9AAbhKqlYMVkiuUNM=
+
+
+ Resources/GFX10Statistics-derived.js
+
+ hash2
+
+ e4Cv+0+JZNXo88w4OYZVz5V9HR95b9Qb0sba3cTxg+0=
+
+
+ Resources/MPSPlugin_GFX10.dict
+
+ hash2
+
+ P6NWGEWPDf6bww15kThMu9fiT5btECU4GJtHf1osgsU=
+
+
+ Resources/TensileKernels_GFX10.plist
+
+ hash2
+
+ fA113DrJZFRZQnYR2OC0UnyDrtIckwUwouiqJQwWNk8=
+
+
+ version.plist
+
+ hash2
+
+ LgYgdrOQYIi8Y68w5OeEger7paj8Bzmo6OINu0v2IV8=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/version.plist
new file mode 100755
index 00000000..ee309d54
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000MTLDriver.bundle/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 4.8.101
+ CFBundleVersion
+ 4.0.8
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Info.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Info.plist
new file mode 100755
index 00000000..3bce0ee5
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Info.plist
@@ -0,0 +1,52 @@
+
+
+
+
+ BuildMachineOSBuild
+ 20A241133
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ AMDRadeonX6000Shared
+ CFBundleGetInfoString
+ AMDRadeonX6000Shared 0.0.0.0.0
+ CFBundleIdentifier
+ com.apple.AMDRadeonX6000Shared
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AMD Radeon X6000 Shared IL
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 0.0.0
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 0.0.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 21G113
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.6
+ DTSDKBuild
+ 21G113
+ DTSDKName
+ macosx12.6.internal
+ DTXcode
+ 1330
+ DTXcodeBuild
+ 13E6049a
+ LSMinimumSystemVersion
+ 12.6
+ NSPrincipalClass
+ AMDRadeonX6000Shared
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/MacOS/AMDRadeonX6000Shared b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/MacOS/AMDRadeonX6000Shared
new file mode 100755
index 00000000..529d1300
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/MacOS/AMDRadeonX6000Shared differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/PkgInfo b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/PkgInfo
new file mode 100755
index 00000000..43c9cb0f
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/PkgInfo
@@ -0,0 +1 @@
+BNDL????
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Resources/runtime.amdil.bc b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Resources/runtime.amdil.bc
new file mode 100755
index 00000000..7baa2e69
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Resources/runtime.amdil.bc differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Resources/runtime.amdil.builtin b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Resources/runtime.amdil.builtin
new file mode 100755
index 00000000..954fc04b
Binary files /dev/null and b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/Resources/runtime.amdil.builtin differ
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/_CodeSignature/CodeResources b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/_CodeSignature/CodeResources
new file mode 100755
index 00000000..5eff7591
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,37 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^.*
+
+ omit
+
+ weight
+ 20
+
+
+ rules2
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 0.0
+
+ ^.*
+
+ omit
+
+ weight
+ 20
+
+
+
+
diff --git a/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/version.plist b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/version.plist
new file mode 100755
index 00000000..f72dc2bd
--- /dev/null
+++ b/Universal-Binaries/12.5/System/Library/Extensions/AMDRadeonX6000Shared.bundle/Contents/version.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ BuildVersion
+ 34
+ CFBundleShortVersionString
+ 0.0.0
+ CFBundleVersion
+ 0.0.0
+ ProjectName
+ GPUDriversAMD
+ SourceVersion
+ 4008102000000
+
+