diff --git a/src/Metal/MTLCommandBuffer.cs b/src/Metal/MTLCommandBuffer.cs new file mode 100644 index 000000000000..9de261e4cc0a --- /dev/null +++ b/src/Metal/MTLCommandBuffer.cs @@ -0,0 +1,18 @@ +using System; + +using ObjCRuntime; + +#nullable enable + +namespace Metal { + + public partial interface IMTLCommandBuffer { + + /// Marks the specified residency sets as part of the current command buffer execution. + /// The residency sets to mark. + public void UseResidencySets (params IMTLResidencySet [] residencySets) + { + NativeObjectExtensions.CallWithPointerToFirstElementAndCount (residencySets, nameof (residencySets), UseResidencySets); + } + } +} diff --git a/src/Metal/MTLCommandQueue.cs b/src/Metal/MTLCommandQueue.cs new file mode 100644 index 000000000000..d0a99b3caa6a --- /dev/null +++ b/src/Metal/MTLCommandQueue.cs @@ -0,0 +1,25 @@ +using System; + +using ObjCRuntime; + +#nullable enable + +namespace Metal { + + public partial interface IMTLCommandQueue { + + /// Marks the specified residency sets as part of the current command buffer execution. + /// The residency sets to mark. + public void AddResidencySets (params IMTLResidencySet [] residencySets) + { + NativeObjectExtensions.CallWithPointerToFirstElementAndCount (residencySets, nameof (residencySets), AddResidencySets); + } + + /// Removes the specified residency sets from the current command buffer execution. + /// The residency sets to mark. + public void RemoveResidencySets (params IMTLResidencySet [] residencySets) + { + NativeObjectExtensions.CallWithPointerToFirstElementAndCount (residencySets, nameof (residencySets), RemoveResidencySets); + } + } +} diff --git a/src/Metal/MTLDevice.cs b/src/Metal/MTLDevice.cs index 7e0c2bc73a01..d78a254e043f 100644 --- a/src/Metal/MTLDevice.cs +++ b/src/Metal/MTLDevice.cs @@ -55,15 +55,14 @@ public static IMTLDevice? SystemDefault { } } -#if MONOMAC || __MACCATALYST__ - #if NET [SupportedOSPlatform ("maccatalyst15.0")] [SupportedOSPlatform ("macos")] - [UnsupportedOSPlatform ("ios")] - [UnsupportedOSPlatform ("tvos")] + [SupportedOSPlatform ("ios18.0")] + [SupportedOSPlatform ("tvos18.0")] #else - [MacCatalyst (15,0)] + [MacCatalyst (15, 0)] + [iOS (18, 0), TV (18, 0)] #endif [DllImport (Constants.MetalLibrary)] unsafe static extern IntPtr MTLCopyAllDevices (); @@ -71,10 +70,11 @@ public static IMTLDevice? SystemDefault { #if NET [SupportedOSPlatform ("maccatalyst15.0")] [SupportedOSPlatform ("macos")] - [UnsupportedOSPlatform ("ios")] - [UnsupportedOSPlatform ("tvos")] + [SupportedOSPlatform ("ios18.0")] + [SupportedOSPlatform ("tvos18.0")] #else - [MacCatalyst (15,0)] + [MacCatalyst (15, 0)] + [iOS (18, 0), TV (18, 0)] #endif public static IMTLDevice [] GetAllDevices () { @@ -84,8 +84,6 @@ public static IMTLDevice [] GetAllDevices () return devices; } -#endif - #if MONOMAC #if NET diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index a12125b0b376..935d031c07b0 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -405,14 +405,55 @@ public enum MTLPixelFormat : ulong { [NoiOS] [NoMacCatalyst] BC7_RGBAUnorm_sRGB = 153, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGB_2BPP = 160, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGB_2BPP_sRGB = 161, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGB_4BPP = 162, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGB_4BPP_sRGB = 163, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGBA_2BPP = 164, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGBA_2BPP_sRGB = 165, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGBA_4BPP = 166, + + [Deprecated (PlatformName.iOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use ASTC/ETC2/BC formats instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use ASTC/ETC2/BC formats instead.")] PVRTC_RGBA_4BPP_sRGB = 167, + EAC_R11Unorm = 170, EAC_R11Snorm = 172, EAC_RG11Unorm = 174, @@ -966,7 +1007,14 @@ public enum MTLArgumentAccess : ulong { [Flags] public enum MTLPipelineOption : ulong { None, - ArgumentInfo, +#if !XAMCORE_5_0 + [Deprecated (PlatformName.iOS, 18, 0, message: "Use 'BindingInfo' instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use 'BindingInfo' instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use 'BindingInfo' instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use 'BindingInfo' instead.")] + ArgumentInfo = 1 << 0, +#endif + BindingInfo = 1 << 0, BufferTypeInfo, [iOS (14, 0)] [TV (14, 0)] @@ -1109,6 +1157,8 @@ public enum MTLLanguageVersion : ulong { v3_0 = (3uL << 16) + 0, [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0), NoWatch] v3_1 = (3uL << 16) + 1, + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + v3_2 = (3ul << 16) + 2, } /// Enumerates values that indicate whether to clip or clamp depth values. @@ -1690,7 +1740,15 @@ public enum MTLFunctionOptions : ulong { [MacCatalyst (14, 0)] CompileToBinary = 1uL << 0, [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0)] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use 'StoreFunctionInMetalPipelinesScript' instead.")] + [Deprecated (PlatformName.iOS, 18, 0, message: "Use 'StoreFunctionInMetalPipelinesScript' instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use 'StoreFunctionInMetalPipelinesScript' instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use 'StoreFunctionInMetalPipelinesScript' instead.")] StoreFunctionInMetalScript = 1uL << 1, + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + StoreFunctionInMetalPipelinesScript = 1 << 1, + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + FailOnBinaryArchiveMiss = 1 << 2, } [Flags, Mac (11, 0), iOS (14, 0), TV (16, 0)] diff --git a/src/Metal/MTLResidencySet.cs b/src/Metal/MTLResidencySet.cs new file mode 100644 index 000000000000..741ed898fd63 --- /dev/null +++ b/src/Metal/MTLResidencySet.cs @@ -0,0 +1,25 @@ +using System; + +using ObjCRuntime; + +#nullable enable + +namespace Metal { + + public partial interface IMTLResidencySet { + + /// Adds allocations to be committed the next time is called. + /// The allocations to add. + public void AddAllocations (params IMTLAllocation [] allocations) + { + NativeObjectExtensions.CallWithPointerToFirstElementAndCount (allocations, nameof (allocations), AddAllocations); + } + + /// Marks allocations to be removed the next time is called. + /// The allocations to remove. + public void RemoveAllocations (params IMTLAllocation [] allocations) + { + NativeObjectExtensions.CallWithPointerToFirstElementAndCount (allocations, nameof (allocations), RemoveAllocations); + } + } +} diff --git a/src/ObjCRuntime/INativeObject.cs b/src/ObjCRuntime/INativeObject.cs index 58c085400740..f464c21fd741 100644 --- a/src/ObjCRuntime/INativeObject.cs +++ b/src/ObjCRuntime/INativeObject.cs @@ -55,6 +55,25 @@ public static NativeHandle GetCheckedHandle (this INativeObject self) return h; } #endif + + internal static void CallWithPointerToFirstElementAndCount (T [] array, string arrayVariableName, Action callback) + where T : INativeObject + { + if (array is null) + ObjCRuntime.ThrowHelper.ThrowArgumentNullException (arrayVariableName); + + var handles = new IntPtr [array.Length]; + for (var i = 0; i < handles.Length; i++) + handles [i] = array [i].GetNonNullHandle (arrayVariableName + $"[{i}]"); + + unsafe { + fixed (IntPtr* handlesPtr = handles) { + callback ((IntPtr) handlesPtr, (nuint) handles.Length); + } + } + + GC.KeepAlive (array); + } } #endif } diff --git a/src/foundation.cs b/src/foundation.cs index 9177f2d6fdda..086271153ed1 100644 --- a/src/foundation.cs +++ b/src/foundation.cs @@ -13230,6 +13230,11 @@ interface NSProcessInfo { [Export ("iOSAppOnMac")] bool IsiOSApplicationOnMac { [Bind ("isiOSAppOnMac")] get; } #endregion + + [Field ("NSProcessInfoPerformanceProfileDidChangeNotification", "Metal")] + [Notification] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoWatch] + NSString PerformanceProfileDidChangeNotification { get; } } [NoWatch] diff --git a/src/frameworks.sources b/src/frameworks.sources index ee2132421cca..9a9213695d11 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -1223,6 +1223,8 @@ METAL_CORE_SOURCES = \ METAL_SOURCES = \ Metal/MTLArgumentEncoder.cs \ Metal/MTLBlitPassSampleBufferAttachmentDescriptorArray.cs \ + Metal/MTLCommandBuffer.cs \ + Metal/MTLCommandQueue.cs \ Metal/MTLCompat.cs \ Metal/MTLIOCompression.cs \ Metal/MTLComputeCommandEncoder.cs \ @@ -1234,6 +1236,7 @@ METAL_SOURCES = \ Metal/MTLRenderCommandEncoder.cs \ Metal/MTLRenderPassDescriptor.cs \ Metal/MTLRenderPassSampleBufferAttachmentDescriptorArray.cs \ + Metal/MTLResidencySet.cs \ Metal/MTLResourceStateCommandEncoder.cs \ Metal/MTLResourceStatePassSampleBufferAttachmentDescriptorArray.cs \ Metal/MTLVertexDescriptor.cs \ diff --git a/src/metal.cs b/src/metal.cs index f9d5a9b8d244..929c5fe707c9 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -233,8 +233,8 @@ partial interface MTLBuffer : MTLResource { IMTLBuffer CreateRemoteBuffer (IMTLDevice device); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuAddress")] ulong GpuAddress { get; } @@ -413,20 +413,11 @@ partial interface MTLCommandBuffer { [Export ("popDebugGroup")] void PopDebugGroup (); + #if NET -#if XAMCORE_5_0 - [MacCatalyst (14, 0), Mac (11, 0), iOS (13, 0), TV (16,0)] - [Abstract] // @required but we can't add abstract members in C# and keep binary compatibility -#elif !TVOS - [MacCatalyst (14, 0), Mac (11, 0), iOS (13, 0), NoTV] - [Abstract] // @required but we can't add abstract members in C# and keep binary compatibility -#else - [NoMacCatalyst, NoMac, NoiOS, TV (16,0)] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (14, 0), Mac (11, 0), iOS (13, 0), TV (16, 0)] -#endif [NullAllowed, Export ("resourceStateCommandEncoder")] IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; } @@ -463,45 +454,35 @@ partial interface MTLCommandBuffer { IMTLBlitCommandEncoder CreateBlitCommandEncoder (MTLBlitPassDescriptor blitPassDescriptor); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("resourceStateCommandEncoderWithDescriptor:")] IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (MTLResourceStatePassDescriptor resourceStatePassDescriptor); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("accelerationStructureCommandEncoderWithDescriptor:")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (MTLAccelerationStructurePassDescriptor descriptor); + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("useResidencySet:")] + void UseResidencySet (IMTLResidencySet residencySet); + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("useResidencySets:count:")] + void UseResidencySets (IntPtr /* const id _Nonnull[_Nonnull] */ residencySets, nuint count); } interface IMTLCommandQueue { } @@ -542,6 +523,26 @@ partial interface MTLCommandQueue { [Export ("commandBufferWithDescriptor:")] [return: NullAllowed] IMTLCommandBuffer CreateCommandBuffer (MTLCommandBufferDescriptor descriptor); + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("addResidencySet:")] + void AddResidencySet (IMTLResidencySet residencySet); + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("addResidencySets:count:")] + void AddResidencySets (IntPtr residencySets, nuint count); + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("removeResidencySet:")] + void RemoveResidencySet (IMTLResidencySet residencySet); + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("removeResidencySets:count:")] + void RemoveResidencySets (IntPtr residencySets, nuint count); } interface IMTLComputeCommandEncoder { } @@ -747,87 +748,37 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { #endif #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setVisibleFunctionTable:atBufferIndex:")] void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable visibleFunctionTable, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setVisibleFunctionTables:withBufferRange:")] void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setIntersectionFunctionTable:atBufferIndex:")] void SetIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setIntersectionFunctionTables:withBufferRange:")] void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setAccelerationStructure:atBufferIndex:")] void SetAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); @@ -839,22 +790,22 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { void SetBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setBuffers:offsets:attributeStrides:withRange:")] void SetBuffers (IntPtr /* IMTLBuffer[] */ buffers, IntPtr /* nuint[] */ offsets, IntPtr /* nuint[] */ strides, NSRange range); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setBufferOffset:attributeStride:atIndex:")] void SetBufferOffset (nuint offset, nuint stride, nuint index); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setBytes:length:attributeStride:atIndex:")] void SetBytes (IntPtr bytes, nuint length, nuint stride, nuint index); @@ -932,83 +883,46 @@ partial interface MTLComputePipelineState { bool SupportIndirectCommandBuffers { get; } #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("functionHandleWithFunction:")] IMTLFunctionHandle CreateFunctionHandle (IMTLFunction function); #if NET - -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newComputePipelineStateWithAdditionalBinaryFunctions:error:")] [return: Release] IMTLComputePipelineState CreateComputePipelineState (IMTLFunction [] functions, [NullAllowed] out NSError error); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newVisibleFunctionTableWithDescriptor:")] [return: Release] IMTLVisibleFunctionTable CreateVisibleFunctionTable (MTLVisibleFunctionTableDescriptor descriptor); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newIntersectionFunctionTableWithDescriptor:")] [return: Release] IMTLIntersectionFunctionTable CreateIntersectionFunctionTable (MTLIntersectionFunctionTableDescriptor descriptor); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuResourceID")] MTLResourceId GpuResourceId { get; } + + [Abstract] + [Export ("shaderValidation")] + MTLShaderValidation ShaderValidation { get; } } interface IMTLBlitCommandEncoder { } @@ -1132,15 +1046,17 @@ partial interface MTLBlitCommandEncoder : MTLCommandEncoder { [Export ("optimizeIndirectCommandBuffer:withRange:")] void Optimize (IMTLIndirectCommandBuffer indirectCommandBuffer, NSRange range); -#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS - [Abstract] + // @optional in macOS and Mac Catalyst +#if NET && !__MACOS__ && !__MACCATALYST__ + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("getTextureAccessCounters:region:mipLevel:slice:resetCounters:countersBuffer:countersBufferOffset:")] void GetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice, bool resetCounters, IMTLBuffer countersBuffer, nuint countersBufferOffset); -#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS - [Abstract] + // @optional in macOS and Mac Catalyst +#if NET && !__MACOS__ && !__MACCATALYST__ + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("resetTextureAccessCounters:region:mipLevel:slice:")] @@ -1664,87 +1580,37 @@ partial interface MTLDevice { void CreateRenderPipelineState (MTLTileRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); #if NET -#if XAMCORE_5_0 - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] - [Abstract] -#elif !TVOS - [MacCatalyst (13, 4), NoTV, iOS (13, 0)] - [Abstract] -#else - [NoMac, NoMacCatalyst, TV (16,0), NoiOS] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] -#endif [Export ("supportsVertexAmplificationCount:")] bool SupportsVertexAmplification (nuint count); #if NET -#if XAMCORE_5_0 - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] - [Abstract] -#elif !TVOS - [MacCatalyst (13, 4), NoTV, iOS (13, 0)] - [Abstract] -#else - [NoMac, NoMacCatalyst, TV (16,0), NoiOS] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] -#endif [Export ("supportsRasterizationRateMapWithLayerCount:")] bool SupportsRasterizationRateMap (nuint layerCount); #if NET -#if XAMCORE_5_0 - [MacCatalyst (14, 0), Mac (11, 0), TV (16,0), iOS (13, 0)] - [Abstract] -#elif !TVOS - [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] - [Abstract] -#else - [NoMacCatalyst, NoMac, TV (16,0), NoiOS] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (14, 0), Mac (11, 0), TV (16, 0), iOS (13, 0)] -#endif [Export ("sparseTileSizeWithTextureType:pixelFormat:sampleCount:")] MTLSize GetSparseTileSize (MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount); #if NET -#if XAMCORE_5_0 - [MacCatalyst (14, 0), Mac (11, 0), TV (16,0), iOS (13, 0)] - [Abstract] -#elif !TVOS - [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] - [Abstract] -#else - [NoMacCatalyst, NoMac, TV (16,0), NoiOS] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (14, 0), Mac (11, 0), TV (16, 0), iOS (13, 0)] -#endif [Export ("sparseTileSizeInBytes")] nuint SparseTileSizeInBytes { get; } #if NET -#if XAMCORE_5_0 - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] - [Abstract] -#elif !TVOS - [MacCatalyst (13, 4), NoTV, iOS (13, 0)] - [Abstract] -#else - [NoMac, NoMacCatalyst, TV (16,0), NoiOS] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] -#endif [Export ("newRasterizationRateMapWithDescriptor:")] [return: NullAllowed] [return: Release] @@ -1779,24 +1645,14 @@ partial interface MTLDevice { #if NET [Abstract] #endif - [iOS (14, 0), NoTV, NoMacCatalyst] + [iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Export ("barycentricCoordsSupported")] bool BarycentricCoordsSupported { [Bind ("areBarycentricCoordsSupported")] get; } #if NET -#if XAMCORE_5_0 - [iOS (14, 0), TV (16,0), NoMacCatalyst] - [Abstract] -#elif !TVOS - [iOS (14, 0), NoTV, NoMacCatalyst] - [Abstract] -#else - [NoiOS, TV (16,0), NoMacCatalyst] -#endif - -#else - [iOS (14, 0), TV (16, 0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif + [iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] [Export ("supportsShaderBarycentricCoordinates")] bool SupportsShaderBarycentricCoordinates { get; } @@ -1885,40 +1741,20 @@ partial interface MTLDevice { nuint LocationNumber { get; } #if NET -#if XAMCORE_5_0 - [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] - [Abstract] -#elif !TVOS - [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] - [Abstract] -#else - [NoMac, TV (16,0), NoiOS, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), TV (16, 0), iOS (14, 5), MacCatalyst (14, 5)] -#endif [Export ("supports32BitFloatFiltering")] bool Supports32BitFloatFiltering { get; } #if NET -#if XAMCORE_5_0 - [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] - [Abstract] -#elif !TVOS - [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] - [Abstract] -#else - [NoMac, TV (16,0), NoiOS, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif -#else [Mac (11, 0), TV (16, 0), iOS (14, 5), MacCatalyst (14, 5)] -#endif [Export ("supports32BitMSAA")] bool Supports32BitMsaa { get; } - [Mac (11, 0), iOS (16, 4), TV (16, 4), NoMacCatalyst] - [NoMacCatalyst] + [Mac (11, 0), iOS (16, 4), TV (16, 4), MacCatalyst (16, 4)] #if NET [Abstract] #endif @@ -1980,110 +1816,50 @@ partial interface MTLDevice { IMTLBinaryArchive CreateBinaryArchive (MTLBinaryArchiveDescriptor descriptor, [NullAllowed] out NSError error); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (!6,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("supportsRaytracing")] bool SupportsRaytracing { get; } #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("accelerationStructureSizesWithDescriptor:")] #pragma warning disable 0618 // warning CS0618: 'MTLAccelerationStructureSizes' is obsolete: 'This API is not available on this platform.' MTLAccelerationStructureSizes CreateAccelerationStructureSizes (MTLAccelerationStructureDescriptor descriptor); #pragma warning restore #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newAccelerationStructureWithSize:")] [return: NullAllowed] [return: Release] IMTLAccelerationStructure CreateAccelerationStructure (nuint size); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newAccelerationStructureWithDescriptor:")] [return: NullAllowed] [return: Release] IMTLAccelerationStructure CreateAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("supportsFunctionPointers")] bool SupportsFunctionPointers { get; } #if NET -#if XAMCORE_5_0 - [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] - [Abstract] -#elif !TVOS - [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] - [Abstract] -#else - [NoMac, TV (16,0), NoiOS, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), TV (16, 0), iOS (14, 5), MacCatalyst (14, 5)] -#endif [Export ("supportsQueryTextureLOD")] bool SupportsQueryTextureLod { get; } @@ -2095,53 +1871,23 @@ partial interface MTLDevice { bool SupportsRenderDynamicLibraries { get; } #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0)] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] - [Abstract] -#else - [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0)] -#endif [Export ("supportsRaytracingFromRender")] bool SupportsRaytracingFromRender { get; } #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0)] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] - [Abstract] -#else - [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0)] -#endif [Export ("supportsPrimitiveMotionBlur")] bool SupportsPrimitiveMotionBlur { get; } #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] - [Abstract] -#else - [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0), NoWatch] -#endif [Export ("supportsFunctionPointersFromRender")] bool SupportsFunctionPointersFromRender { get; } @@ -2163,37 +1909,37 @@ partial interface MTLDevice { void CreateLibrary (MTLStitchedLibraryDescriptor descriptor, Action completionHandler); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("architecture")] MTLArchitecture Architecture { get; } [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("heapAccelerationStructureSizeAndAlignWithDescriptor:")] MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (MTLAccelerationStructureDescriptor descriptor); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("heapAccelerationStructureSizeAndAlignWithSize:")] MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (nuint size); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("newArgumentEncoderWithBufferBinding:")] [return: Release] IMTLArgumentEncoder CreateArgumentEncoder (IMTLBufferBinding bufferBinding); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("newRenderPipelineStateWithMeshDescriptor:options:reflection:error:")] [return: NullAllowed] @@ -2201,40 +1947,62 @@ partial interface MTLDevice { IMTLRenderPipelineState CreateRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, [NullAllowed] out MTLRenderPipelineReflection reflection, [NullAllowed] out NSError error); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("newRenderPipelineStateWithMeshDescriptor:options:completionHandler:")] void CreateRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("sparseTileSizeInBytesForSparsePageSize:")] nuint GetSparseTileSizeInBytes (MTLSparsePageSize sparsePageSize); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize:")] MTLSize GetSparseTileSize (MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount, MTLSparsePageSize sparsePageSize); [NoiOS, Mac (13, 3), NoTV, NoMacCatalyst] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("maximumConcurrentCompilationTaskCount")] nuint MaximumConcurrentCompilationTaskCount { get; } - [NoiOS, Mac (13, 3), NoTV, NoMacCatalyst] -#if XAMCORE_5_0 + [NoiOS, Mac (13, 3), NoTV, NoMacCatalyst] +#if NET + [Abstract (GenerateExtensionMethod = true)] +#endif + [Export ("shouldMaximizeConcurrentCompilation")] + bool ShouldMaximizeConcurrentCompilation { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Abstract] + [Export ("newLogStateWithDescriptor:error:")] + [return: NullAllowed] + [return: Release] + IMTLLogState GetNewLogState (MTLLogStateDescriptor descriptor, out NSError error); + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Abstract] + [Export ("newCommandQueueWithDescriptor:")] + [return: NullAllowed] + [return: Release] + IMTLCommandQueue CreateCommandQueue (MTLCommandQueueDescriptor descriptor); + +#if NET [Abstract] #endif - [Export ("shouldMaximizeConcurrentCompilation")] - bool ShouldMaximizeConcurrentCompilation { get; set; } - + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [return: NullAllowed] + [Export ("newResidencySetWithDescriptor:error:")] + [return: Release] + IMTLResidencySet CreateResidencySet (MTLResidencySetDescriptor descriptor, out NSError error); } /// Interface representing the required methods (if any) of the protocol . @@ -2394,19 +2162,9 @@ partial interface MTLTexture : MTLResource { bool AllowGpuOptimizedContents { get; } #if NET -#if XAMCORE_5_0 - [Mac (12,5), iOS (15, 0), NoMacCatalyst, TV (16,0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12,5), iOS (15, 0), NoMacCatalyst, NoTV, NoWatch] - [Abstract] -#else - [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] -#endif - -#else - [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (16, 0), NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif + [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; } @@ -2479,23 +2237,25 @@ partial interface MTLTexture : MTLResource { [Export ("newSharedTextureHandle")] MTLSharedTextureHandle CreateSharedTextureHandle (); + // @optional in macOS and Mac Catalyst #if NET && !__MACOS__ && !__MACCATALYST__ - [Abstract] + [Abstract (GenerateExtensionMethod = true)] #endif - [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("firstMipmapInTail")] nuint FirstMipmapInTail { get; } -#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS - [Abstract] + // @optional in macOS and Mac Catalyst +#if NET && !__MACOS__ && !__MACCATALYST__ + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("tailSizeInBytes")] nuint TailSizeInBytes { get; } -#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS - [Abstract] + // @optional in macOS and Mac Catalyst +#if NET && !__MACOS__ && !__MACCATALYST__ + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("isSparse")] @@ -2538,8 +2298,8 @@ partial interface MTLTexture : MTLResource { IMTLTexture CreateRemoteTexture (IMTLDevice device); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuResourceID")] MTLResourceId GpuResourceId { get; } @@ -2701,8 +2461,8 @@ partial interface MTLSamplerState { IMTLDevice Device { get; } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuResourceID")] MTLResourceId GpuResourceId { get; } @@ -2862,6 +2622,10 @@ partial interface MTLRenderPipelineDescriptor : NSCopying { [Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch] [NullAllowed, Export ("fragmentLinkedFunctions", ArgumentSemantic.Copy)] MTLLinkedFunctions FragmentLinkedFunctions { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("shaderValidation")] + MTLShaderValidation ShaderValidation { get; set; } } /// An array of objects. @@ -2936,76 +2700,35 @@ partial interface MTLRenderPipelineState { bool SupportIndirectCommandBuffers { get; } #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] -#endif [Export ("functionHandleWithFunction:stage:")] [return: NullAllowed] IMTLFunctionHandle FunctionHandleWithFunction (IMTLFunction function, MTLRenderStages stage); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (!6,0), NoWatch, MacCatalyst (15, 0)] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] -#endif [Export ("newVisibleFunctionTableWithDescriptor:stage:")] [return: NullAllowed] [return: Release] IMTLVisibleFunctionTable NewVisibleFunctionTableWithDescriptor (MTLVisibleFunctionTableDescriptor descriptor, MTLRenderStages stage); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] -#endif [Export ("newIntersectionFunctionTableWithDescriptor:stage:")] [return: NullAllowed] [return: Release] IMTLIntersectionFunctionTable NewIntersectionFunctionTableWithDescriptor (MTLIntersectionFunctionTableDescriptor descriptor, MTLRenderStages stage); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] -#endif [Export ("newRenderPipelineStateWithAdditionalBinaryFunctions:error:")] [return: NullAllowed] [return: Release] @@ -3027,25 +2750,30 @@ partial interface MTLRenderPipelineState { MTLResourceId GpuResourceId { get; } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("maxTotalThreadsPerMeshThreadgroup")] nuint MaxTotalThreadsPerMeshThreadgroup { get; } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("maxTotalThreadsPerObjectThreadgroup")] nuint MaxTotalThreadsPerObjectThreadgroup { get; } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("objectThreadExecutionWidth")] nuint ObjectThreadExecutionWidth { get; } + + [Abstract] + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("shaderValidation")] + MTLShaderValidation ShaderValidation { get; } } /// Configures how vertex and attribute data are fetched by a vertex shader function. @@ -3321,19 +3049,9 @@ partial interface MTLFunction { IMTLArgumentEncoder CreateArgumentEncoder (nuint bufferIndex, [NullAllowed] out MTLArgument reflection); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("options")] MTLFunctionOptions Options { get; } } @@ -3400,36 +3118,16 @@ partial interface MTLLibrary { // protocol, so no Async #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newIntersectionFunctionWithDescriptor:completionHandler:")] void CreateIntersectionFunction (MTLIntersectionFunctionDescriptor descriptor, Action completionHandler); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("newIntersectionFunctionWithDescriptor:error:")] [return: NullAllowed] [return: Release] @@ -3467,6 +3165,10 @@ partial interface MTLCompileOptions : NSCopying { NSDictionary PreprocessorMacros { get; set; } #endif + [Deprecated (PlatformName.iOS, 18, 0, message: "Use 'MathMode' instead.")] + [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use 'MathMode' instead.")] + [Deprecated (PlatformName.MacOSX, 15, 0, message: "Use 'MathMode' instead.")] + [Deprecated (PlatformName.TvOS, 18, 0, message: "Use 'MathMode' instead.")] [Export ("fastMathEnabled")] bool FastMathEnabled { get; set; } @@ -3509,6 +3211,18 @@ partial interface MTLCompileOptions : NSCopying { [Mac (13, 3), iOS (16, 4), MacCatalyst (16, 4), TV (16, 4)] [Export ("maxTotalThreadsPerThreadgroup")] nuint MaxTotalThreadsPerThreadgroup { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("mathMode")] + MTLMathMode MathMode { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("mathFloatingPointFunctions")] + MTLMathFloatingPointFunctions MathFloatingPointFunctions { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("enableLogging")] + bool EnableLogging { get; set; } } /// Configures a stencil test operation. @@ -4065,32 +3779,16 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset); #if NET - -#if MONOMAC || __MACCATALYST__ - [NoiOS, NoTV, MacCatalyst (15, 0)] - [Abstract] -#else - [iOS (16,0), TV (16,0), NoMacCatalyst, NoMac] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] -#endif [Export ("memoryBarrierWithScope:afterStages:beforeStages:")] void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before); #if NET - -#if MONOMAC || __MACCATALYST__ - [NoiOS, NoTV, MacCatalyst (15, 0)] - [Abstract] -#else - [iOS (16,0), TV (16,0), NoMacCatalyst, NoMac] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] -#endif [Export ("memoryBarrierWithResources:count:afterStages:beforeStages:")] void MemoryBarrier (IMTLResource [] resources, nuint count, MTLRenderStages after, MTLRenderStages before); @@ -4221,19 +3919,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetThreadgroupMemoryLength (nuint length, nuint offset, nuint index); #if NET -#if XAMCORE_5_0 - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] - [Abstract] -#elif !TVOS - [MacCatalyst (13, 4), NoTV, iOS (13, 0)] - [Abstract] -#else - [NoMacCatalyst, TV (16,0), NoiOS, NoMac] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] -#endif [Export ("setVertexAmplificationCount:viewMappings:")] void SetVertexAmplificationCount (nuint count, MTLVertexAmplificationViewMapping viewMappings); @@ -4282,459 +3970,303 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setVertexVisibleFunctionTable:atBufferIndex:")] void SetVertexVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setVertexVisibleFunctionTables:withBufferRange:")] void SetVertexVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setVertexIntersectionFunctionTable:atBufferIndex:")] void SetVertexIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setVertexIntersectionFunctionTables:withBufferRange:")] void SetVertexIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setVertexAccelerationStructure:atBufferIndex:")] void SetVertexAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setFragmentAccelerationStructure:atBufferIndex:")] void SetFragmentAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setFragmentIntersectionFunctionTable:atBufferIndex:")] void SetFragmentIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setFragmentIntersectionFunctionTables:withBufferRange:")] void SetFragmentIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setFragmentVisibleFunctionTable:atBufferIndex:")] void SetFragmentVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setFragmentVisibleFunctionTables:withBufferRange:")] void SetFragmentVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); #if NET - -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setTileAccelerationStructure:atBufferIndex:")] void SetTileAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setTileIntersectionFunctionTable:atBufferIndex:")] void SetTileIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setTileIntersectionFunctionTables:withBufferRange:")] void SetTileIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setTileVisibleFunctionTable:atBufferIndex:")] void SetTileVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); #if NET -#if XAMCORE_5_0 - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] - [Abstract] -#elif !TVOS - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] -#endif [Export ("setTileVisibleFunctionTables:withBufferRange:")] void SetTileVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setVertexBuffer:offset:attributeStride:atIndex:")] void SetVertexBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint stride, nuint index); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setVertexBuffers:offsets:attributeStrides:withRange:")] void SetVertexBuffers (IntPtr buffers, IntPtr offsets, IntPtr strides, NSRange range); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setVertexBufferOffset:attributeStride:atIndex:")] void SetVertexBufferOffset (nuint offset, nuint stride, nuint index); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setVertexBytes:length:attributeStride:atIndex:")] void SetVertexBytes (IntPtr bytes, nuint length, nuint stride, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreadgroups (IMTLBuffer indirectBuffer, nuint indirectBufferOffset, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreads (MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshBufferOffset:atIndex:")] void SetMeshBufferOffset (nuint offset, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshBuffers:offsets:withRange:")] void SetMeshBuffers (IntPtr buffers, IntPtr offsets, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshTexture:atIndex:")] void SetMeshTexture ([NullAllowed] IMTLTexture texture, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshTextures:withRange:")] void SetMeshTextures (IntPtr textures, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshSamplerState:atIndex:")] void SetMeshSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshSamplerStates:withRange:")] void SetMeshSamplerStates (IntPtr samplers, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex:")] void SetMeshSamplerState ([NullAllowed] IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] void SetMeshSamplerStates (IntPtr samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectBuffer:offset:atIndex:")] void SetObjectBuffer (IMTLBuffer buffer, nuint offset, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectBufferOffset:atIndex:")] void SetObjectBufferOffset (nuint offset, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectBuffers:offsets:withRange:")] void SetObjectBuffers (IntPtr buffers, IntPtr offsets, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectBytes:length:atIndex:")] void SetObjectBytes (IntPtr bytes, nuint length, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshBuffer:offset:atIndex:")] void SetMeshBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshBytes:length:atIndex:")] void SetMeshBytes (IntPtr bytes, nuint length, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectSamplerState:atIndex:")] void SetObjectSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex:")] void SetObjectSamplerState ([NullAllowed] IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] void SetObjectSamplerStates (IntPtr samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectSamplerStates:withRange:")] void SetObjectSamplerStates (IntPtr samplers, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectTexture:atIndex:")] void SetObjectTexture ([NullAllowed] IMTLTexture texture, nuint index); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectTextures:withRange:")] void SetObjectTextures (IntPtr textures, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectThreadgroupMemoryLength:atIndex:")] void SetObjectThreadgroupMemoryLength (nuint length, nuint index); @@ -5074,7 +4606,7 @@ interface MTLHeapDescriptor : NSCopying { [NoWatch] [MacCatalyst (13, 1)] [Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed - interface MTLHeap { + interface MTLHeap : MTLAllocation { [Abstract] [NullAllowed, Export ("label")] string Label { get; set; } @@ -5171,32 +4703,32 @@ interface MTLHeap { [return: Release] IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset); -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithSize:")] [return: NullAllowed, Release] IMTLAccelerationStructure CreateAccelerationStructure (nuint size); -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithDescriptor:")] [return: NullAllowed, Release] IMTLAccelerationStructure CreateAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithSize:offset:")] [return: NullAllowed, Release] IMTLAccelerationStructure CreateAccelerationStructure (nuint size, nuint offset); -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithDescriptor:offset:")] @@ -5213,7 +4745,7 @@ interface IMTLHeap { } /// [MacCatalyst (13, 1)] [Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed - partial interface MTLResource { + partial interface MTLResource : MTLAllocation { [Abstract, Export ("label")] string Label { get; set; } @@ -5271,7 +4803,7 @@ partial interface MTLResource { [Abstract] #endif [Export ("allocatedSize")] - nuint AllocatedSize { get; } + new nuint AllocatedSize { get; } #if NET [Abstract] @@ -5371,6 +4903,10 @@ interface MTLComputePipelineDescriptor : NSCopying { [Mac (12, 0), iOS (15, 0), TV (15, 0), NoWatch, MacCatalyst (15, 0)] [Export ("preloadedLibraries", ArgumentSemantic.Copy)] IMTLDynamicLibrary [] PreloadedLibraries { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("shaderValidation")] + MTLShaderValidation ShaderValidation { get; set; } } [NoWatch] @@ -5714,88 +5250,39 @@ interface MTLArgumentEncoder { void SetComputePipelineStates (IMTLComputePipelineState [] pipelines, NSRange range); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setAccelerationStructure:atIndex:")] void SetAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint index); #if NET - -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setVisibleFunctionTable:atIndex:")] void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable visibleFunctionTable, nuint index); #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setVisibleFunctionTables:withRange:")] void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range); + #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setIntersectionFunctionTable:atIndex:")] void SetIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint index); + #if NET -#if XAMCORE_5_0 - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] - [Abstract] -#elif !TVOS - [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] + [Abstract (GenerateExtensionMethod = true)] #endif - -#else [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] -#endif [Export ("setIntersectionFunctionTables:withRange:")] void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); @@ -5865,6 +5352,20 @@ interface MTLBinaryArchive { [Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch] [Export ("addFunctionWithDescriptor:library:error:")] bool AddFunctionWithDescriptor (MTLFunctionDescriptor descriptor, IMTLLibrary library, [NullAllowed] out NSError error); + +#if NET + [Abstract] +#endif + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("addMeshRenderPipelineFunctionsWithDescriptor:error:")] + bool AddMeshRenderPipelineFunctions (MTLMeshRenderPipelineDescriptor descriptor, out NSError error); + +#if NET + [Abstract] +#endif + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("addLibraryWithDescriptor:error:")] + bool AddLibrary (MTLStitchedLibraryDescriptor descriptor, out NSError error); } @@ -5920,6 +5421,10 @@ interface MTLTileRenderPipelineDescriptor : NSCopying { [Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch] [NullAllowed, Export ("linkedFunctions", ArgumentSemantic.Copy)] MTLLinkedFunctions LinkedFunctions { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("shaderValidation")] + MTLShaderValidation ShaderValidation { get; set; } } interface IMTLEvent { } @@ -6048,49 +5553,49 @@ interface MTLIndirectRenderCommand { [Export ("setVertexBuffer:offset:attributeStride:atIndex:")] void SetVertexBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectThreadgroupMemoryLength:atIndex:")] void SetObjectThreadgroupMemoryLength (nuint length, nuint index); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setObjectBuffer:offset:atIndex:")] void SetObjectBuffer (IMTLBuffer buffer, nuint offset, nuint index); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setMeshBuffer:offset:atIndex:")] void SetMeshBuffer (IMTLBuffer buffer, nuint offset, nuint index); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif [Export ("drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif [Export ("drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreads (MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setBarrier")] void SetBarrier (); - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] + [Mac (14, 0), iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if NET [Abstract (GenerateExtensionMethod = true)] #endif @@ -6177,8 +5682,8 @@ interface MTLIndirectCommandBuffer : MTLResource { IMTLIndirectComputeCommand GetIndirectComputeCommand (nuint commandIndex); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuResourceID")] MTLResourceId GpuResourceID { get; } @@ -6384,8 +5889,9 @@ interface MTLResourceStateCommandEncoder : MTLCommandEncoder { void Wait (IMTLFence fence); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] + // @optional in macOS and Mac Catalyst +#if NET && !__MACOS__ && !__MACCATALYST__ + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")] void MoveTextureMappings (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin); @@ -6456,8 +5962,8 @@ interface MTLIndirectComputeCommand { void SetImageblock (nuint width, nuint height); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setKernelBuffer:offset:attributeStride:atIndex:")] void SetKernelBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); @@ -6663,6 +6169,10 @@ interface MTLAccelerationStructureTriangleGeometryDescriptor { [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Export ("transformationMatrixBufferOffset")] nuint TransformationMatrixBufferOffset { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("transformationMatrixLayout")] + MTLMatrixLayout TransformationMatrixLayout { get; set; } } [Mac (11, 0), iOS (14, 0), TV (14, 0)] @@ -6723,6 +6233,11 @@ interface MTLCommandBufferDescriptor : NSCopying { [Export ("errorOptions", ArgumentSemantic.Assign)] MTLCommandBufferErrorOption ErrorOptions { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("logState", ArgumentSemantic.Retain), NullAllowed] + IMTLLogState LogState { get; set; } + } [Mac (11, 0), iOS (14, 0), TV (14, 0)] @@ -6831,6 +6346,18 @@ interface MTLInstanceAccelerationStructureDescriptor { [Mac (12, 0), iOS (15, 0), NoWatch, MacCatalyst (15, 0)] [Export ("motionTransformCount")] nuint MotionTransformCount { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("instanceTransformationMatrixLayout")] + MTLMatrixLayout InstanceTransformationMatrixLayout { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("motionTransformType")] + MTLTransformType MotionTransformType { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("motionTransformStride")] + nuint MotionTransformStride { get; set; } } [Mac (11, 0), iOS (14, 0), TV (16, 0)] @@ -7095,8 +6622,8 @@ interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder { void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset, MTLDataType sizeDataType); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options:")] void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, [NullAllowed] IMTLAccelerationStructure destinationAccelerationStructure, [NullAllowed] IMTLBuffer scratchBuffer, nuint scratchBufferOffset, MTLAccelerationStructureRefitOptions options); @@ -7118,8 +6645,8 @@ interface MTLVisibleFunctionTable : MTLResource { void SetFunctions (IMTLFunctionHandle [] functions, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuResourceID")] MTLResourceId GpuResourceId { get; } @@ -7163,21 +6690,21 @@ interface MTLIntersectionFunctionTable : MTLResource { [Export ("setVisibleFunctionTables:withBufferRange:")] void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange bufferRange); -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setOpaqueCurveIntersectionFunctionWithSignature:atIndex:")] void SetOpaqueCurveIntersectionFunction (MTLIntersectionFunctionSignature signature, nuint index); -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("setOpaqueCurveIntersectionFunctionWithSignature:withRange:")] void SetOpaqueCurveIntersectionFunction (MTLIntersectionFunctionSignature signature, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_5_0 - [Abstract] +#if NET + [Abstract (GenerateExtensionMethod = true)] #endif [Export ("gpuResourceID")] MTLResourceId GpuResourceId { get; } @@ -7230,7 +6757,7 @@ interface IMTLLogContainer { } [Mac (11, 0), iOS (14, 0), TV (14, 0)] [MacCatalyst (14, 0)] [Protocol] - interface MTLLogContainer { + interface MTLLogContainer : INSFastEnumeration { } @@ -7286,6 +6813,14 @@ interface MTLStitchedLibraryDescriptor : NSCopying { [Export ("functions", ArgumentSemantic.Copy)] IMTLFunction [] Functions { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("binaryArchives", ArgumentSemantic.Copy)] + IMTLBinaryArchive [] BinaryArchives { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("options")] + MTLStitchedLibraryOptions Options { get; set; } } [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] @@ -7350,7 +6885,7 @@ interface MTLFunctionStitchingGraph : NSCopying { [Export ("nodes", ArgumentSemantic.Copy)] MTLFunctionStitchingFunctionNode [] Nodes { get; set; } - [NullAllowed, Export ("outputNode", ArgumentSemantic.Copy)] + [NullAllowed, Export ("outputNode", ArgumentSemantic.Retain)] MTLFunctionStitchingFunctionNode OutputNode { get; set; } [Export ("attributes", ArgumentSemantic.Copy)] @@ -7413,6 +6948,10 @@ interface MTLAccelerationStructureMotionTriangleGeometryDescriptor { [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0)] [Export ("transformationMatrixBufferOffset")] nuint TransformationMatrixBufferOffset { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("transformationMatrixLayout")] + MTLMatrixLayout TransformationMatrixLayout { get; set; } } [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] @@ -7682,6 +7221,18 @@ interface MTLIndirectInstanceAccelerationStructureDescriptor { [Static] [Export ("descriptor")] MTLIndirectInstanceAccelerationStructureDescriptor GetDescriptor (); + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("instanceTransformationMatrixLayout")] + MTLMatrixLayout InstanceTransformationMatrixLayout { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("motionTransformType")] + MTLTransformType MotionTransformType { get; set; } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), NoTV] + [Export ("motionTransformStride")] + nuint MotionTransformStride { get; set; } } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] @@ -7768,6 +7319,14 @@ interface MTLMeshRenderPipelineDescriptor : NSCopying { [Export ("reset")] void Reset (); + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("binaryArchives", ArgumentSemantic.Copy), NullAllowed] + IMTLBinaryArchive [] BinaryArchives { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("shaderValidation")] + MTLShaderValidation ShaderValidation { get; set; } } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] @@ -7816,5 +7375,210 @@ interface MTLThreadgroupBinding : MTLBinding { nuint ThreadgroupMemoryDataSize { get; } } + [Native] + [Mac (15, 0), NoTV, iOS (18, 0), MacCatalyst (18, 0)] + enum MTLMatrixLayout : long { + ColumnMajor = 0, + RowMajor = 1, + } + + [Native] + [Mac (15, 0), NoTV, iOS (18, 0), MacCatalyst (18, 0)] + enum MTLTransformType : long { + PackedFloat4x3 = 0, + Component = 1, + } + + [Protocol (BackwardsCompatibleCodeGeneration = false)] + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + interface MTLAllocation { + [Abstract] + [Export ("allocatedSize")] + nuint AllocatedSize { get; } + } + + interface IMTLAllocation { } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + [BaseType (typeof (NSObject))] + interface MTLCommandQueueDescriptor : NSCopying { + [Export ("maxCommandBufferCount")] + nuint MaxCommandBufferCount { get; set; } + + [Export ("logState", ArgumentSemantic.Retain), NullAllowed] + IMTLLogState LogState { get; set; } + } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [BackingFieldType (typeof (nint))] + enum NSDeviceCertification { + [Field ("NSDeviceCertificationiPhonePerformanceGaming")] + iPhonePerformanceGaming, + } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [BackingFieldType (typeof (nint))] + enum NSProcessPerformanceProfile { + [Field ("NSProcessPerformanceProfileDefault")] + Default, + + [Field ("NSProcessPerformanceProfileSustained")] + Sustained, + } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Category] + [BaseType (typeof (NSProcessInfo))] + interface NSProcessInfo_NSDeviceCertification { + [Export ("isDeviceCertifiedFor:")] + bool IsDeviceCertifiedFor (NSDeviceCertification performanceTier); + + [Export ("hasPerformanceProfile:")] + bool HasPerformanceProfile (NSProcessPerformanceProfile performanceProfile); + } + + [Flags] + [Native] + [Mac (15, 0), TV (18, 0), iOS (18, 0), MacCatalyst (18, 0)] + enum MTLStitchedLibraryOptions : ulong { + None = 0, + FailOnBinaryArchiveMiss = 1 << 0, + StoreLibraryInMetalPipelinesScript = 1 << 1, + } + + [Native] + [Mac (15, 0), TV (18, 0), iOS (18, 0), MacCatalyst (18, 0)] + enum MTLMathMode : long { + Safe = 0, + Relaxed = 1, + Fast = 2, + } + + [Native] + [Mac (15, 0), TV (18, 0), iOS (18, 0), MacCatalyst (18, 0)] + enum MTLMathFloatingPointFunctions : long { + Fast = 0, + Precise = 1, + } + + [Native] + [Mac (15, 0), TV (18, 0), iOS (18, 0), MacCatalyst (18, 0)] + enum MTLLogLevel : long { + Undefined, + Debug, + Info, + Notice, + Error, + Fault, + } + + delegate void MTLLogStateLogHandler ([NullAllowed] string subSystem, [NullAllowed] string category, MTLLogLevel logLevel, string message); + + [Protocol (BackwardsCompatibleCodeGeneration = false)] + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + interface MTLLogState { + [Abstract] + [Export ("addLogHandler:")] + void AddLogHandler (MTLLogStateLogHandler handler); + } + + interface IMTLLogState { } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + [BaseType (typeof (NSObject))] + interface MTLLogStateDescriptor : NSCopying { + [Export ("level", ArgumentSemantic.Assign)] + MTLLogLevel Level { get; set; } + + [Export ("bufferSize", ArgumentSemantic.Assign)] + nint BufferSize { get; set; } + } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + [ErrorDomain ("MTLLogStateErrorDomain")] + [Native] + enum MTLLogStateError : ulong { + InvalidSize = 1, + Invalid = 2, + } + + [Native] + [Mac (15, 0), TV (18, 0), iOS (18, 0), MacCatalyst (18, 0)] + enum MTLShaderValidation : long { + Default = 0, + Enabled = 1, + Disabled = 2, + } + + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + [BaseType (typeof (NSObject))] + interface MTLResidencySetDescriptor : NSCopying { + [Export ("label", ArgumentSemantic.Copy), NullAllowed] + string Label { get; set; } + + [Export ("initialCapacity")] + nuint InitialCapacity { get; set; } + } + + [Protocol (BackwardsCompatibleCodeGeneration = false)] + [Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0), TV (18, 0)] + interface MTLResidencySet { + [Abstract] + [Export ("device")] + IMTLDevice Device { get; } + + [Abstract] + [Export ("label"), NullAllowed] + string Label { get; } + + [Abstract] + [Export ("allocatedSize")] + ulong AllocatedSize { get; } + + [Abstract] + [Export ("requestResidency")] + void RequestResidency (); + + [Abstract] + [Export ("endResidency")] + void EndResidency (); + + [Abstract] + [Export ("addAllocation:")] + void AddAllocation (IMTLAllocation allocation); + + [Abstract] + [Export ("addAllocations:count:")] + void AddAllocations (IntPtr allocations, nuint count); + + [Abstract] + [Export ("removeAllocation:")] + void RemoveAllocation (IMTLAllocation allocation); + + [Abstract] + [Export ("removeAllocations:count:")] + void RemoveAllocations (IntPtr allocations, nuint count); + + [Abstract] + [Export ("removeAllAllocations")] + void RemoveAllAllocations (); + + [Abstract] + [Export ("containsAllocation:")] + bool ContainsAllocation (IMTLAllocation allocation); + + [Abstract] + [Export ("allAllocations", ArgumentSemantic.Copy)] + IMTLAllocation [] AllAllocations { get; } + + [Abstract] + [Export ("allocationCount")] + nuint AllocationCount { get; } + + [Abstract] + [Export ("commit")] + void Commit (); + } + interface IMTLResidencySet { } } diff --git a/tests/cecil-tests/ApiTest.KnownFailures.cs b/tests/cecil-tests/ApiTest.KnownFailures.cs index c254e2d5bb92..e40b54ea044d 100644 --- a/tests/cecil-tests/ApiTest.KnownFailures.cs +++ b/tests/cecil-tests/ApiTest.KnownFailures.cs @@ -54,6 +54,7 @@ public partial class ApiTest { "The field 'Metal.MTLLanguageVersion Metal.MTLLanguageVersion::v2_4' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLLanguageVersion Metal.MTLLanguageVersion::v3_0' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLLanguageVersion Metal.MTLLanguageVersion::v3_1' has incorrect capitalization: first letter is not upper case.", + "The field 'Metal.MTLLanguageVersion Metal.MTLLanguageVersion::v3_2' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLTextureType Metal.MTLTextureType::k1D' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLTextureType Metal.MTLTextureType::k1DArray' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLTextureType Metal.MTLTextureType::k2D' has incorrect capitalization: first letter is not upper case.", @@ -64,6 +65,7 @@ public partial class ApiTest { "The field 'Metal.MTLTextureType Metal.MTLTextureType::kCube' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLTextureType Metal.MTLTextureType::kCubeArray' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLTextureType Metal.MTLTextureType::kTextureBuffer' has incorrect capitalization: first letter is not upper case.", + "The field 'Metal.NSDeviceCertification Metal.NSDeviceCertification::iPhonePerformanceGaming' has incorrect capitalization: first letter is not upper case.", "The field 'MetalPerformanceShadersGraph.MPSGraphDeploymentPlatform MetalPerformanceShadersGraph.MPSGraphDeploymentPlatform::iOS' has incorrect capitalization: first letter is not upper case.", "The field 'MetalPerformanceShadersGraph.MPSGraphDeploymentPlatform MetalPerformanceShadersGraph.MPSGraphDeploymentPlatform::macOS' has incorrect capitalization: first letter is not upper case.", "The field 'MetalPerformanceShadersGraph.MPSGraphDeploymentPlatform MetalPerformanceShadersGraph.MPSGraphDeploymentPlatform::tvOS' has incorrect capitalization: first letter is not upper case.", diff --git a/tests/cecil-tests/AttributeTest.cs b/tests/cecil-tests/AttributeTest.cs index ba399a76c344..c6775c47e9e0 100644 --- a/tests/cecil-tests/AttributeTest.cs +++ b/tests/cecil-tests/AttributeTest.cs @@ -288,8 +288,6 @@ static HashSet IgnoreElementsThatDoNotExistInThatAssembly { "SpriteKit.SKView.EncodeTo (Foundation.NSCoder)", // These methods have different optional/required semantics between platforms. - "Metal.MTLBlitCommandEncoder_Extensions.GetTextureAccessCounters (Metal.IMTLBlitCommandEncoder, Metal.IMTLTexture, Metal.MTLRegion, System.UIntPtr, System.UIntPtr, System.Boolean, Metal.IMTLBuffer, System.UIntPtr)", - "Metal.MTLBlitCommandEncoder_Extensions.ResetTextureAccessCounters (Metal.IMTLBlitCommandEncoder, Metal.IMTLTexture, Metal.MTLRegion, System.UIntPtr, System.UIntPtr)", "PassKit.PKPaymentAuthorizationControllerDelegate_Extensions.GetPresentationWindow (PassKit.IPKPaymentAuthorizationControllerDelegate, PassKit.PKPaymentAuthorizationController)", "Metal.MTLTextureWrapper.FirstMipmapInTail", "Metal.MTLTextureWrapper.IsSparse", diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index 035137e5eba5..983026462ad1 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -14368,7 +14368,9 @@ F:Metal.MTLFeatureSet.tvOS_GPUFamily2_v1 F:Metal.MTLFeatureSet.tvOS_GPUFamily2_v2 F:Metal.MTLFunctionLogType.Validation F:Metal.MTLFunctionOptions.CompileToBinary +F:Metal.MTLFunctionOptions.FailOnBinaryArchiveMiss F:Metal.MTLFunctionOptions.None +F:Metal.MTLFunctionOptions.StoreFunctionInMetalPipelinesScript F:Metal.MTLFunctionOptions.StoreFunctionInMetalScript F:Metal.MTLFunctionType.Fragment F:Metal.MTLFunctionType.Intersection @@ -14449,6 +14451,7 @@ F:Metal.MTLLanguageVersion.v2_3 F:Metal.MTLLanguageVersion.v2_4 F:Metal.MTLLanguageVersion.v3_0 F:Metal.MTLLanguageVersion.v3_1 +F:Metal.MTLLanguageVersion.v3_2 F:Metal.MTLLibraryError.CompileFailure F:Metal.MTLLibraryError.CompileWarning F:Metal.MTLLibraryError.FileNotFound @@ -14462,6 +14465,21 @@ F:Metal.MTLLibraryType.Executable F:Metal.MTLLoadAction.Clear F:Metal.MTLLoadAction.DontCare F:Metal.MTLLoadAction.Load +F:Metal.MTLLogLevel.Debug +F:Metal.MTLLogLevel.Error +F:Metal.MTLLogLevel.Fault +F:Metal.MTLLogLevel.Info +F:Metal.MTLLogLevel.Notice +F:Metal.MTLLogLevel.Undefined +F:Metal.MTLLogStateError.Invalid +F:Metal.MTLLogStateError.InvalidSize +F:Metal.MTLMathFloatingPointFunctions.Fast +F:Metal.MTLMathFloatingPointFunctions.Precise +F:Metal.MTLMathMode.Fast +F:Metal.MTLMathMode.Relaxed +F:Metal.MTLMathMode.Safe +F:Metal.MTLMatrixLayout.ColumnMajor +F:Metal.MTLMatrixLayout.RowMajor F:Metal.MTLMotionBorderMode.Clamp F:Metal.MTLMotionBorderMode.Vanish F:Metal.MTLMultisampleDepthResolveFilter.Max @@ -14479,6 +14497,7 @@ F:Metal.MTLPatchType.None F:Metal.MTLPatchType.Quad F:Metal.MTLPatchType.Triangle F:Metal.MTLPipelineOption.ArgumentInfo +F:Metal.MTLPipelineOption.BindingInfo F:Metal.MTLPipelineOption.BufferTypeInfo F:Metal.MTLPipelineOption.FailOnBinaryArchiveMiss F:Metal.MTLPipelineOption.None @@ -14678,6 +14697,9 @@ F:Metal.MTLScissorRect.Height F:Metal.MTLScissorRect.Width F:Metal.MTLScissorRect.X F:Metal.MTLScissorRect.Y +F:Metal.MTLShaderValidation.Default +F:Metal.MTLShaderValidation.Disabled +F:Metal.MTLShaderValidation.Enabled F:Metal.MTLSize.Depth F:Metal.MTLSize.Height F:Metal.MTLSize.Width @@ -14713,6 +14735,9 @@ F:Metal.MTLStepFunction.ThreadPositionInGridX F:Metal.MTLStepFunction.ThreadPositionInGridXIndexed F:Metal.MTLStepFunction.ThreadPositionInGridY F:Metal.MTLStepFunction.ThreadPositionInGridYIndexed +F:Metal.MTLStitchedLibraryOptions.FailOnBinaryArchiveMiss +F:Metal.MTLStitchedLibraryOptions.None +F:Metal.MTLStitchedLibraryOptions.StoreLibraryInMetalPipelinesScript F:Metal.MTLStorageMode.Managed F:Metal.MTLStorageMode.Memoryless F:Metal.MTLStorageMode.Private @@ -14765,6 +14790,8 @@ F:Metal.MTLTextureUsage.ShaderAtomic F:Metal.MTLTextureUsage.ShaderRead F:Metal.MTLTextureUsage.ShaderWrite F:Metal.MTLTextureUsage.Unknown +F:Metal.MTLTransformType.Component +F:Metal.MTLTransformType.PackedFloat4x3 F:Metal.MTLTriangleFillMode.Fill F:Metal.MTLTriangleFillMode.Lines F:Metal.MTLTriangleTessellationFactorsHalf.EdgeTessellationFactor @@ -14841,6 +14868,9 @@ F:Metal.MTLVisibilityResultMode.Counting F:Metal.MTLVisibilityResultMode.Disabled F:Metal.MTLWinding.Clockwise F:Metal.MTLWinding.CounterClockwise +F:Metal.NSDeviceCertification.iPhonePerformanceGaming +F:Metal.NSProcessPerformanceProfile.Default +F:Metal.NSProcessPerformanceProfile.Sustained F:MetalFX.MTLFXSpatialScalerColorProcessingMode.Hdr F:MetalFX.MTLFXSpatialScalerColorProcessingMode.Linear F:MetalFX.MTLFXSpatialScalerColorProcessingMode.Perceptual @@ -40338,6 +40368,8 @@ M:Metal.IMTLArgumentEncoder.SetVisibleFunctionTable(Metal.IMTLVisibleFunctionTab M:Metal.IMTLArgumentEncoder.SetVisibleFunctionTables(Metal.IMTLVisibleFunctionTable[],Foundation.NSRange) M:Metal.IMTLBinaryArchive.AddComputePipelineFunctions(Metal.MTLComputePipelineDescriptor,Foundation.NSError@) M:Metal.IMTLBinaryArchive.AddFunctionWithDescriptor(Metal.MTLFunctionDescriptor,Metal.IMTLLibrary,Foundation.NSError@) +M:Metal.IMTLBinaryArchive.AddLibrary(Metal.MTLStitchedLibraryDescriptor,Foundation.NSError@) +M:Metal.IMTLBinaryArchive.AddMeshRenderPipelineFunctions(Metal.MTLMeshRenderPipelineDescriptor,Foundation.NSError@) M:Metal.IMTLBinaryArchive.AddRenderPipelineFunctions(Metal.MTLRenderPipelineDescriptor,Foundation.NSError@) M:Metal.IMTLBinaryArchive.AddTileRenderPipelineFunctions(Metal.MTLTileRenderPipelineDescriptor,Foundation.NSError@) M:Metal.IMTLBinaryArchive.Serialize(Foundation.NSUrl,Foundation.NSError@) @@ -40392,16 +40424,22 @@ M:Metal.IMTLCommandBuffer.PresentDrawable(Metal.IMTLDrawable,System.Double) M:Metal.IMTLCommandBuffer.PresentDrawable(Metal.IMTLDrawable) M:Metal.IMTLCommandBuffer.PresentDrawableAfter(Metal.IMTLDrawable,System.Double) M:Metal.IMTLCommandBuffer.PushDebugGroup(System.String) +M:Metal.IMTLCommandBuffer.UseResidencySet(Metal.IMTLResidencySet) +M:Metal.IMTLCommandBuffer.UseResidencySets(System.IntPtr,System.UIntPtr) M:Metal.IMTLCommandBuffer.WaitUntilCompleted M:Metal.IMTLCommandBuffer.WaitUntilScheduled M:Metal.IMTLCommandEncoder.EndEncoding M:Metal.IMTLCommandEncoder.InsertDebugSignpost(System.String) M:Metal.IMTLCommandEncoder.PopDebugGroup M:Metal.IMTLCommandEncoder.PushDebugGroup(System.String) +M:Metal.IMTLCommandQueue.AddResidencySet(Metal.IMTLResidencySet) +M:Metal.IMTLCommandQueue.AddResidencySets(System.IntPtr,System.UIntPtr) M:Metal.IMTLCommandQueue.CommandBuffer M:Metal.IMTLCommandQueue.CommandBufferWithUnretainedReferences M:Metal.IMTLCommandQueue.CreateCommandBuffer(Metal.MTLCommandBufferDescriptor) M:Metal.IMTLCommandQueue.InsertDebugCaptureBoundary +M:Metal.IMTLCommandQueue.RemoveResidencySet(Metal.IMTLResidencySet) +M:Metal.IMTLCommandQueue.RemoveResidencySets(System.IntPtr,System.UIntPtr) M:Metal.IMTLComputeCommandEncoder.DispatchThreadgroups(Metal.IMTLBuffer,System.UIntPtr,Metal.MTLSize) M:Metal.IMTLComputeCommandEncoder.DispatchThreadgroups(Metal.MTLSize,Metal.MTLSize) M:Metal.IMTLComputeCommandEncoder.DispatchThreads(Metal.MTLSize,Metal.MTLSize) @@ -40459,6 +40497,7 @@ M:Metal.IMTLDevice.CreateBuffer(System.IntPtr,System.UIntPtr,Metal.MTLResourceOp M:Metal.IMTLDevice.CreateBuffer(System.UIntPtr,Metal.MTLResourceOptions) M:Metal.IMTLDevice.CreateBufferNoCopy(System.IntPtr,System.UIntPtr,Metal.MTLResourceOptions,Metal.MTLDeallocator) M:Metal.IMTLDevice.CreateCommandQueue +M:Metal.IMTLDevice.CreateCommandQueue(Metal.MTLCommandQueueDescriptor) M:Metal.IMTLDevice.CreateCommandQueue(System.UIntPtr) M:Metal.IMTLDevice.CreateComputePipelineState(Metal.IMTLFunction,Foundation.NSError@) M:Metal.IMTLDevice.CreateComputePipelineState(Metal.IMTLFunction,Metal.MTLPipelineOption,Metal.MTLComputePipelineReflection@,Foundation.NSError@) @@ -40494,6 +40533,7 @@ M:Metal.IMTLDevice.CreateRenderPipelineState(Metal.MTLRenderPipelineDescriptor,M M:Metal.IMTLDevice.CreateRenderPipelineState(Metal.MTLRenderPipelineDescriptor,System.Action{Metal.IMTLRenderPipelineState,Foundation.NSError}) M:Metal.IMTLDevice.CreateRenderPipelineState(Metal.MTLTileRenderPipelineDescriptor,Metal.MTLPipelineOption,Metal.MTLNewRenderPipelineStateWithReflectionCompletionHandler) M:Metal.IMTLDevice.CreateRenderPipelineState(Metal.MTLTileRenderPipelineDescriptor,Metal.MTLPipelineOption,Metal.MTLRenderPipelineReflection@,Foundation.NSError@) +M:Metal.IMTLDevice.CreateResidencySet(Metal.MTLResidencySetDescriptor,Foundation.NSError@) M:Metal.IMTLDevice.CreateSamplerState(Metal.MTLSamplerDescriptor) M:Metal.IMTLDevice.CreateSharedEvent M:Metal.IMTLDevice.CreateSharedEvent(Metal.MTLSharedEventHandle) @@ -40508,6 +40548,7 @@ M:Metal.IMTLDevice.GetHeapBufferSizeAndAlignWithLength(System.UIntPtr,Metal.MTLR M:Metal.IMTLDevice.GetHeapTextureSizeAndAlign(Metal.MTLTextureDescriptor) M:Metal.IMTLDevice.GetMinimumLinearTextureAlignment(Metal.MTLPixelFormat) M:Metal.IMTLDevice.GetMinimumTextureBufferAlignment(Metal.MTLPixelFormat) +M:Metal.IMTLDevice.GetNewLogState(Metal.MTLLogStateDescriptor,Foundation.NSError@) M:Metal.IMTLDevice.GetSampleTimestamps(System.UIntPtr,System.UIntPtr) M:Metal.IMTLDevice.GetSparseTileSize(Metal.MTLTextureType,Metal.MTLPixelFormat,System.UIntPtr,Metal.MTLSparsePageSize) M:Metal.IMTLDevice.GetSparseTileSize(Metal.MTLTextureType,Metal.MTLPixelFormat,System.UIntPtr) @@ -40583,6 +40624,7 @@ M:Metal.IMTLLibrary.CreateFunction(System.String) M:Metal.IMTLLibrary.CreateFunctionAsync(System.String,Metal.MTLFunctionConstantValues) M:Metal.IMTLLibrary.CreateIntersectionFunction(Metal.MTLIntersectionFunctionDescriptor,Foundation.NSError@) M:Metal.IMTLLibrary.CreateIntersectionFunction(Metal.MTLIntersectionFunctionDescriptor,System.Action{Metal.IMTLFunction,Foundation.NSError}) +M:Metal.IMTLLogState.AddLogHandler(Metal.MTLLogStateLogHandler) M:Metal.IMTLParallelRenderCommandEncoder.CreateRenderCommandEncoder M:Metal.IMTLParallelRenderCommandEncoder.SetColorStoreAction(Metal.MTLStoreAction,System.UIntPtr) M:Metal.IMTLParallelRenderCommandEncoder.SetColorStoreActionOptions(Metal.MTLStoreActionOptions,System.UIntPtr) @@ -40730,6 +40772,15 @@ M:Metal.IMTLRenderPipelineState.GetImageblockMemoryLength(Metal.MTLSize) M:Metal.IMTLRenderPipelineState.NewIntersectionFunctionTableWithDescriptor(Metal.MTLIntersectionFunctionTableDescriptor,Metal.MTLRenderStages) M:Metal.IMTLRenderPipelineState.NewRenderPipelineStateWithAdditionalBinaryFunctions(Metal.MTLRenderPipelineFunctionsDescriptor,Foundation.NSError@) M:Metal.IMTLRenderPipelineState.NewVisibleFunctionTableWithDescriptor(Metal.MTLVisibleFunctionTableDescriptor,Metal.MTLRenderStages) +M:Metal.IMTLResidencySet.AddAllocation(Metal.IMTLAllocation) +M:Metal.IMTLResidencySet.AddAllocations(System.IntPtr,System.UIntPtr) +M:Metal.IMTLResidencySet.Commit +M:Metal.IMTLResidencySet.ContainsAllocation(Metal.IMTLAllocation) +M:Metal.IMTLResidencySet.EndResidency +M:Metal.IMTLResidencySet.RemoveAllAllocations +M:Metal.IMTLResidencySet.RemoveAllocation(Metal.IMTLAllocation) +M:Metal.IMTLResidencySet.RemoveAllocations(System.IntPtr,System.UIntPtr) +M:Metal.IMTLResidencySet.RequestResidency M:Metal.IMTLResource.MakeAliasable M:Metal.IMTLResource.SetOwnerWithIdentity(System.UInt32) M:Metal.IMTLResource.SetPurgeableState(Metal.MTLPurgeableState) @@ -40786,6 +40837,7 @@ M:Metal.MTLCommandBuffer_Extensions.CreateAccelerationStructureCommandEncoder(Me M:Metal.MTLCommandBuffer_Extensions.CreateResourceStateCommandEncoder(Metal.IMTLCommandBuffer,Metal.MTLResourceStatePassDescriptor) M:Metal.MTLCommandBuffer_Extensions.GetResourceStateCommandEncoder(Metal.IMTLCommandBuffer) M:Metal.MTLCommandBufferDescriptor.Copy(Foundation.NSZone) +M:Metal.MTLCommandQueueDescriptor.Copy(Foundation.NSZone) M:Metal.MTLCompileOptions.Copy(Foundation.NSZone) M:Metal.MTLComputeCommandEncoder_Extensions.SetAccelerationStructure(Metal.IMTLComputeCommandEncoder,Metal.IMTLAccelerationStructure,System.UIntPtr) M:Metal.MTLComputeCommandEncoder_Extensions.SetBuffer(Metal.IMTLComputeCommandEncoder,Metal.IMTLBuffer,System.UIntPtr,System.UIntPtr,System.UIntPtr) @@ -40891,6 +40943,7 @@ M:Metal.MTLLibrary_Extensions.CreateFunctionAsync(Metal.IMTLLibrary,System.Strin M:Metal.MTLLibrary_Extensions.CreateIntersectionFunction(Metal.IMTLLibrary,Metal.MTLIntersectionFunctionDescriptor,Foundation.NSError@) M:Metal.MTLLibrary_Extensions.CreateIntersectionFunction(Metal.IMTLLibrary,Metal.MTLIntersectionFunctionDescriptor,System.Action{Metal.IMTLFunction,Foundation.NSError}) M:Metal.MTLLinkedFunctions.Copy(Foundation.NSZone) +M:Metal.MTLLogStateDescriptor.Copy(Foundation.NSZone) M:Metal.MTLMeshRenderPipelineDescriptor.Copy(Foundation.NSZone) M:Metal.MTLOrigin.#ctor(System.IntPtr,System.IntPtr,System.IntPtr) M:Metal.MTLOrigin.ToString @@ -40967,6 +41020,7 @@ M:Metal.MTLRenderPipelineState_Extensions.GetObjectThreadExecutionWidth(Metal.IM M:Metal.MTLRenderPipelineState_Extensions.NewIntersectionFunctionTableWithDescriptor(Metal.IMTLRenderPipelineState,Metal.MTLIntersectionFunctionTableDescriptor,Metal.MTLRenderStages) M:Metal.MTLRenderPipelineState_Extensions.NewRenderPipelineStateWithAdditionalBinaryFunctions(Metal.IMTLRenderPipelineState,Metal.MTLRenderPipelineFunctionsDescriptor,Foundation.NSError@) M:Metal.MTLRenderPipelineState_Extensions.NewVisibleFunctionTableWithDescriptor(Metal.IMTLRenderPipelineState,Metal.MTLVisibleFunctionTableDescriptor,Metal.MTLRenderStages) +M:Metal.MTLResidencySetDescriptor.Copy(Foundation.NSZone) M:Metal.MTLResourceStateCommandEncoder_Extensions.MoveTextureMappings(Metal.IMTLResourceStateCommandEncoder,Metal.IMTLTexture,System.UIntPtr,System.UIntPtr,Metal.MTLOrigin,Metal.MTLSize,Metal.IMTLTexture,System.UIntPtr,System.UIntPtr,Metal.MTLOrigin) M:Metal.MTLResourceStateCommandEncoder_Extensions.Update(Metal.IMTLResourceStateCommandEncoder,Metal.IMTLFence) M:Metal.MTLResourceStateCommandEncoder_Extensions.Update(Metal.IMTLResourceStateCommandEncoder,Metal.IMTLTexture,Metal.MTLSparseTextureMappingMode,Metal.IMTLBuffer,System.UIntPtr) @@ -41007,6 +41061,8 @@ M:Metal.MTLViewport.#ctor(System.Double,System.Double,System.Double,System.Doubl M:Metal.MTLViewport.ToString M:Metal.MTLVisibleFunctionTable_Extensions.GetGpuResourceId(Metal.IMTLVisibleFunctionTable) M:Metal.MTLVisibleFunctionTableDescriptor.Copy(Foundation.NSZone) +M:Metal.NSProcessInfo_NSDeviceCertification.HasPerformanceProfile(Foundation.NSProcessInfo,Metal.NSProcessPerformanceProfile) +M:Metal.NSProcessInfo_NSDeviceCertification.IsDeviceCertifiedFor(Foundation.NSProcessInfo,Metal.NSDeviceCertification) M:MetalFX.IMTLFXSpatialScaler.Encode(Metal.IMTLCommandBuffer) M:MetalFX.IMTLFXTemporalScaler.Encode(Metal.IMTLCommandBuffer) M:MetalFX.MTLFXSpatialScalerDescriptor.Create(Metal.IMTLDevice) @@ -41589,6 +41645,8 @@ M:MetalPerformanceShaders.MPSCommandBuffer.PresentDrawable(Metal.IMTLDrawable,Sy M:MetalPerformanceShaders.MPSCommandBuffer.PresentDrawable(Metal.IMTLDrawable) M:MetalPerformanceShaders.MPSCommandBuffer.PresentDrawableAfter(Metal.IMTLDrawable,System.Double) M:MetalPerformanceShaders.MPSCommandBuffer.PushDebugGroup(System.String) +M:MetalPerformanceShaders.MPSCommandBuffer.UseResidencySet(Metal.IMTLResidencySet) +M:MetalPerformanceShaders.MPSCommandBuffer.UseResidencySets(System.IntPtr,System.UIntPtr) M:MetalPerformanceShaders.MPSCommandBuffer.WaitUntilCompleted M:MetalPerformanceShaders.MPSCommandBuffer.WaitUntilScheduled M:MetalPerformanceShaders.MPSGRUDescriptor.Create(System.UIntPtr,System.UIntPtr) @@ -66421,6 +66479,7 @@ P:Foundation.NSPort.PortDidBecomeInvalidNotification P:Foundation.NSProcessInfo.IsiOSApplicationOnMac P:Foundation.NSProcessInfo.IsMacCatalystApplication P:Foundation.NSProcessInfo.LowPowerModeEnabled +P:Foundation.NSProcessInfo.PerformanceProfileDidChangeNotification P:Foundation.NSProcessInfo.PowerStateDidChangeNotification P:Foundation.NSProcessInfo.ThermalStateDidChangeNotification P:Foundation.NSProgress.Cancellable @@ -70752,6 +70811,7 @@ P:MessageUI.MFMessageComposeViewController.TextMessageAvailabilityKey P:MessageUI.MFMessageComposeViewController.WeakMessageComposeDelegate P:Metal.IMTLAccelerationStructure.GpuResourceId P:Metal.IMTLAccelerationStructure.Size +P:Metal.IMTLAllocation.AllocatedSize P:Metal.IMTLArgumentEncoder.Alignment P:Metal.IMTLArgumentEncoder.Device P:Metal.IMTLArgumentEncoder.EncodedLength @@ -70803,6 +70863,7 @@ P:Metal.IMTLComputePipelineState.Device P:Metal.IMTLComputePipelineState.GpuResourceId P:Metal.IMTLComputePipelineState.Label P:Metal.IMTLComputePipelineState.MaxTotalThreadsPerThreadgroup +P:Metal.IMTLComputePipelineState.ShaderValidation P:Metal.IMTLComputePipelineState.StaticThreadgroupMemoryLength P:Metal.IMTLComputePipelineState.SupportIndirectCommandBuffers P:Metal.IMTLComputePipelineState.ThreadExecutionWidth @@ -70924,8 +70985,14 @@ P:Metal.IMTLRenderPipelineState.MaxTotalThreadsPerObjectThreadgroup P:Metal.IMTLRenderPipelineState.MaxTotalThreadsPerThreadgroup P:Metal.IMTLRenderPipelineState.MeshThreadExecutionWidth P:Metal.IMTLRenderPipelineState.ObjectThreadExecutionWidth +P:Metal.IMTLRenderPipelineState.ShaderValidation P:Metal.IMTLRenderPipelineState.SupportIndirectCommandBuffers P:Metal.IMTLRenderPipelineState.ThreadgroupSizeMatchesTileSize +P:Metal.IMTLResidencySet.AllAllocations +P:Metal.IMTLResidencySet.AllocatedSize +P:Metal.IMTLResidencySet.AllocationCount +P:Metal.IMTLResidencySet.Device +P:Metal.IMTLResidencySet.Label P:Metal.IMTLResource.AllocatedSize P:Metal.IMTLResource.CpuCacheMode P:Metal.IMTLResource.Device @@ -83110,6 +83177,7 @@ T:MessageUI.MFMessageAvailabilityChangedEventArgs T:MessageUI.MFMessageComposeResultEventArgs T:Metal.IMTLAccelerationStructure T:Metal.IMTLAccelerationStructureCommandEncoder +T:Metal.IMTLAllocation T:Metal.IMTLBinaryArchive T:Metal.IMTLBinding T:Metal.IMTLBufferBinding @@ -83132,9 +83200,11 @@ T:Metal.IMTLIndirectComputeCommand T:Metal.IMTLIndirectRenderCommand T:Metal.IMTLIntersectionFunctionTable T:Metal.IMTLLogContainer +T:Metal.IMTLLogState T:Metal.IMTLObjectPayloadBinding T:Metal.IMTLRasterizationRateMap T:Metal.IMTLRenderCommandEncoder_Extensions +T:Metal.IMTLResidencySet T:Metal.IMTLResourceStateCommandEncoder T:Metal.IMTLSharedEvent T:Metal.IMTLTextureBinding @@ -83190,6 +83260,12 @@ T:Metal.MTLIOPriority T:Metal.MTLIOStatus T:Metal.MTLLibraryOptimizationLevel T:Metal.MTLLibraryType +T:Metal.MTLLogLevel +T:Metal.MTLLogStateError +T:Metal.MTLLogStateLogHandler +T:Metal.MTLMathFloatingPointFunctions +T:Metal.MTLMathMode +T:Metal.MTLMatrixLayout T:Metal.MTLMotionBorderMode T:Metal.MTLMultisampleStencilResolveFilter T:Metal.MTLNewComputePipelineStateWithReflectionCompletionHandler @@ -83205,6 +83281,7 @@ T:Metal.MTLResourceId T:Metal.MTLSamplePosition T:Metal.MTLSamplerBorderColor T:Metal.MTLScissorRect +T:Metal.MTLShaderValidation T:Metal.MTLSharedEventNotificationBlock T:Metal.MTLSize T:Metal.MTLSizeAndAlign @@ -83213,6 +83290,7 @@ T:Metal.MTLSparseTextureMappingMode T:Metal.MTLSparseTextureRegionAlignmentMode T:Metal.MTLStageInRegionIndirectArguments T:Metal.MTLStepFunction +T:Metal.MTLStitchedLibraryOptions T:Metal.MTLTessellationControlPointIndexType T:Metal.MTLTessellationFactorFormat T:Metal.MTLTessellationFactorStepFunction @@ -83220,10 +83298,14 @@ T:Metal.MTLTessellationPartitionMode T:Metal.MTLTextureCompressionType T:Metal.MTLTextureSwizzle T:Metal.MTLTextureSwizzleChannels +T:Metal.MTLTransformType T:Metal.MTLTriangleTessellationFactorsHalf T:Metal.MTLVertexAmplificationViewMapping T:Metal.MTLVertexFormatExtensions T:Metal.MTLViewport +T:Metal.NSDeviceCertification +T:Metal.NSProcessInfo_NSDeviceCertification +T:Metal.NSProcessPerformanceProfile T:MetalFX.IMTLFXSpatialScaler T:MetalFX.IMTLFXTemporalScaler T:MetalFX.MTLFXSpatialScalerColorProcessingMode diff --git a/tests/monotouch-test/Metal/MTLCommandBufferTests.cs b/tests/monotouch-test/Metal/MTLCommandBufferTests.cs new file mode 100644 index 000000000000..250144224e94 --- /dev/null +++ b/tests/monotouch-test/Metal/MTLCommandBufferTests.cs @@ -0,0 +1,52 @@ +#if !__WATCHOS__ +using System; +using System.IO; +using System.Runtime.InteropServices; + +using CoreFoundation; +using Foundation; +using ObjCRuntime; + +using Metal; + +using NUnit.Framework; + +namespace MonoTouchFixtures.Metal { + [Preserve (AllMembers = true)] + public class MTLCommandBufferTests { + [Test] + public void UseResidencySets () + { + TestRuntime.AssertXcodeVersion (16, 0); + + var device = MTLDevice.SystemDefault; + // some older hardware won't have a default + if (device is null) + Assert.Inconclusive ("Metal is not supported"); + + var supportsResidencySets = device.SupportsFamily (MTLGpuFamily.Apple6); + if (!supportsResidencySets) + Assert.Inconclusive ("Residency sets are not supported on this device."); + + using var commandQ = device.CreateCommandQueue (); + if (commandQ is null) // this happens on a simulator + Assert.Inconclusive ("Could not get the functions library for the device."); + + using var commandBuffer = commandQ.CommandBuffer (); + if (commandBuffer is null) // happens on sim + Assert.Inconclusive ("Could not get the command buffer for the device."); + + using var residencySetDescriptor = new MTLResidencySetDescriptor () { + Label = "Label", + InitialCapacity = 3 + }; + using var residencySet = device.CreateResidencySet (residencySetDescriptor, out var error); + Assert.IsNull (error, "Error #1"); + Assert.IsNotNull (residencySet, "ResidencySet #1"); + + commandBuffer.UseResidencySets (residencySet); + commandBuffer.UseResidencySets (new IMTLResidencySet [] { residencySet }); + } + } +} +#endif // !__WATCHOS__ diff --git a/tests/monotouch-test/Metal/MTLCommandQueueTests.cs b/tests/monotouch-test/Metal/MTLCommandQueueTests.cs new file mode 100644 index 000000000000..b1f66a0f9f02 --- /dev/null +++ b/tests/monotouch-test/Metal/MTLCommandQueueTests.cs @@ -0,0 +1,51 @@ +#if !__WATCHOS__ +using System; +using System.IO; +using System.Runtime.InteropServices; + +using CoreFoundation; +using Foundation; +using ObjCRuntime; + +using Metal; + +using NUnit.Framework; + +namespace MonoTouchFixtures.Metal { + [Preserve (AllMembers = true)] + public class MTLCommandQueueTests { + [Test] + public void AddOrRemoveResidencySets () + { + TestRuntime.AssertXcodeVersion (16, 0); + + var device = MTLDevice.SystemDefault; + // some older hardware won't have a default + if (device is null) + Assert.Inconclusive ("Metal is not supported"); + + var supportsResidencySets = device.SupportsFamily (MTLGpuFamily.Apple6); + if (!supportsResidencySets) + Assert.Inconclusive ("Residency sets are not supported on this device."); + + using var commandQ = device.CreateCommandQueue (); + if (commandQ is null) // this happens on a simulator + Assert.Inconclusive ("Could not get the functions library for the device."); + + using var residencySetDescriptor = new MTLResidencySetDescriptor () { + Label = "Label", + InitialCapacity = 3 + }; + using var residencySet = device.CreateResidencySet (residencySetDescriptor, out var error); + Assert.IsNull (error, "Error #1"); + Assert.IsNotNull (residencySet, "ResidencySet #1"); + + commandQ.AddResidencySets (residencySet); + commandQ.RemoveResidencySets (residencySet); + + commandQ.AddResidencySets (new IMTLResidencySet [] { residencySet }); + commandQ.RemoveResidencySets (new IMTLResidencySet [] { residencySet }); + } + } +} +#endif // !__WATCHOS__ diff --git a/tests/monotouch-test/Metal/MTLDeviceTests.cs b/tests/monotouch-test/Metal/MTLDeviceTests.cs index a05cc5ffd6f6..b09b53a5ea00 100644 --- a/tests/monotouch-test/Metal/MTLDeviceTests.cs +++ b/tests/monotouch-test/Metal/MTLDeviceTests.cs @@ -21,12 +21,13 @@ public void Setup () TestRuntime.AssertXcodeVersion (9, 0); } -#if __MACOS__ || __MACCATALYST__ [Test] public void GetAllDevicesTest () { #if __MACCATALYST__ TestRuntime.AssertXcodeVersion (13, 0); +#elif !__MACOS__ + TestRuntime.AssertXcodeVersion (16, 0); #endif NSObject refObj = new NSObject (); var devices = MTLDevice.GetAllDevices (); @@ -35,7 +36,6 @@ public void GetAllDevicesTest () // in which case we'll get an empty array of devices. Assert.IsNotNull (devices, "MTLDevices.GetAllDevices not null"); } -#endif #if __MACOS__ [Test] diff --git a/tests/monotouch-test/Metal/MTLResidencySetTests.cs b/tests/monotouch-test/Metal/MTLResidencySetTests.cs new file mode 100644 index 000000000000..910124298023 --- /dev/null +++ b/tests/monotouch-test/Metal/MTLResidencySetTests.cs @@ -0,0 +1,55 @@ +#if !__WATCHOS__ +using System; +using System.IO; +using System.Runtime.InteropServices; + +using CoreFoundation; +using Foundation; +using ObjCRuntime; + +using Metal; + +using NUnit.Framework; + +namespace MonoTouchFixtures.Metal { + [Preserve (AllMembers = true)] + public class MTLResidencySetTests { + [Test] + public void AddOrRemoveAllocations () + { + TestRuntime.AssertXcodeVersion (16, 0); + + var device = MTLDevice.SystemDefault; + // some older hardware won't have a default + if (device is null) + Assert.Inconclusive ("Metal is not supported"); + + var supportsResidencySets = device.SupportsFamily (MTLGpuFamily.Apple6); + if (!supportsResidencySets) + Assert.Inconclusive ("Residency sets are not supported on this device."); + + using var heapDescriptor = new MTLHeapDescriptor () { + Size = 1024, + }; + using var heap = device.CreateHeap (heapDescriptor); + using var residencySetDescriptor = new MTLResidencySetDescriptor () { + Label = "Label", + InitialCapacity = 3 + }; + using var residencySet = device.CreateResidencySet (residencySetDescriptor, out var error); + Assert.IsNull (error, "Error #1"); + Assert.IsNotNull (residencySet, "ResidencySet #1"); + + residencySet.AddAllocations (heap); + Assert.AreEqual (1, residencySet.AllocationCount, "AllocationCount #1"); + residencySet.RemoveAllocations (heap); + Assert.AreEqual (0, residencySet.AllocationCount, "AllocationCount #2"); + + residencySet.AddAllocations (new IMTLAllocation [] { heap }); + Assert.AreEqual (1, residencySet.AllocationCount, "AllocationCount #3"); + residencySet.RemoveAllocations (new IMTLAllocation [] { heap }); + Assert.AreEqual (0, residencySet.AllocationCount, "AllocationCount #4"); + } + } +} +#endif // !__WATCHOS__ diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Metal.ignore new file mode 100644 index 000000000000..4dc5421d375b --- /dev/null +++ b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Metal.ignore @@ -0,0 +1,6 @@ +!extra-enum-value! Managed value 0 for MTLFeatureSet.iOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not +!extra-enum-value! Managed value 1 for MTLFeatureSet.iOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not +!extra-enum-value! Managed value 2 for MTLFeatureSet.iOS_GPUFamily1_v2 is available for the current platform while the value in the native header is not +!extra-enum-value! Managed value 3 for MTLFeatureSet.iOS_GPUFamily2_v2 is available for the current platform while the value in the native header is not +!extra-enum-value! Managed value 30000 for MTLFeatureSet.tvOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not +!extra-enum-value! Managed value 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Metal.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Metal.todo deleted file mode 100644 index 943e28836654..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Metal.todo +++ /dev/null @@ -1,138 +0,0 @@ -!extra-enum-value! Managed value 0 for MTLFeatureSet.iOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not -!extra-enum-value! Managed value 1 for MTLFeatureSet.iOS_GPUFamily2_v1 is available for the current platform while the value in the native header is not -!extra-enum-value! Managed value 2 for MTLFeatureSet.iOS_GPUFamily1_v2 is available for the current platform while the value in the native header is not -!extra-enum-value! Managed value 3 for MTLFeatureSet.iOS_GPUFamily2_v2 is available for the current platform while the value in the native header is not -!extra-enum-value! Managed value 30000 for MTLFeatureSet.tvOS_GPUFamily1_v1 is available for the current platform while the value in the native header is not -!extra-enum-value! Managed value 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not -!missing-protocol-member! MTLDevice::areBarycentricCoordsSupported not found -!missing-protocol-member! MTLDevice::supportsShaderBarycentricCoordinates not found -!missing-protocol-member! MTLTexture::compressionType not found -!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIndirectCommandBuffer::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth is REQUIRED and should be abstract -!incorrect-protocol-member! MTLSamplerState::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::gpuResourceID is REQUIRED and should be abstract -!missing-protocol-member! MTLDevice::supportsBCTextureCompression not found -!unknown-native-enum! MTLArgumentAccess bound -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLMatrixLayout not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum! MTLTransformType not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore index 6b5ac5dc2014..97cc4ebb1f73 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore @@ -1,30 +1,9 @@ # MTLFunctionStitchingAttributeAlwaysInline is not documented and has no exposure !missing-type! MTLFunctionStitchingAttributeAlwaysInline not bound -# needs to wait for xamcore 5 -!incorrect-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::architecture is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIntersectionFunctionTable::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLVisibleFunctionTable::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputePipelineState::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: is REQUIRED and should be abstract - # added and removed without a release, so ignoring !missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found !missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!incorrect-protocol-member! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract # Ignore until we find a real usage for this APIs. At the moment of the writing they give problems # with the static registrar @@ -47,3 +26,6 @@ !missing-protocol! MTLIOFileHandle not bound !missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found !missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found + +## Removed in XAMCORE_5_0 +!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore deleted file mode 100644 index f6b3d5615be6..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore +++ /dev/null @@ -1,48 +0,0 @@ -## Adding it to the icebox until it is available on all platforms - -# has to wait for XAMCORE_5_0 -!incorrect-protocol-member! MTLResourceStateCommandEncoder::moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth is REQUIRED and should be abstract -!incorrect-protocol-member! MTLSamplerState::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIndirectCommandBuffer::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithResources:count:afterStages:beforeStages: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithScope:afterStages:beforeStages: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: is REQUIRED and should be abstract - -# deprecated but cannot be removed -!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.todo deleted file mode 100644 index 46f5ab46655e..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.todo +++ /dev/null @@ -1,89 +0,0 @@ -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLMatrixLayout not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum! MTLTransformType not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-pinvoke! MTLCopyAllDevices is not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore index e90578cb7d85..a87297042e8d 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore @@ -2,50 +2,3 @@ !missing-field! MTLDeviceRemovalRequestedNotification not bound !missing-field! MTLDeviceWasAddedNotification not bound !missing-field! MTLDeviceWasRemovedNotification not bound - -# has to wait for XAMCORE_5_0 -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth is REQUIRED and should be abstract -!incorrect-protocol-member! MTLSamplerState::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIndirectCommandBuffer::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::maximumConcurrentCompilationTaskCount is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::setShouldMaximizeConcurrentCompilation: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::shouldMaximizeConcurrentCompilation is REQUIRED and should be abstract -!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: is REQUIRED and should be abstract - -# deprecated but cannot be removed -!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.todo deleted file mode 100644 index 5e2154263d5a..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.todo +++ /dev/null @@ -1,95 +0,0 @@ -!missing-protocol-member! MTLIndirectRenderCommand::clearBarrier not found -!missing-protocol-member! MTLIndirectRenderCommand::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLIndirectRenderCommand::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLIndirectRenderCommand::setBarrier not found -!missing-protocol-member! MTLIndirectRenderCommand::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setObjectThreadgroupMemoryLength:atIndex: not found -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLMatrixLayout not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum! MTLTransformType not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore deleted file mode 100644 index 17f39e163b8f..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore +++ /dev/null @@ -1,108 +0,0 @@ -# has to wait for XAMCORE_5_0 -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth is REQUIRED and should be abstract -!incorrect-protocol-member! MTLSamplerState::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLIndirectCommandBuffer::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::gpuResourceID is REQUIRED and should be abstract -!incorrect-protocol-member! MTLResourceStateCommandEncoder::moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::isSparse is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::tailSizeInBytes is REQUIRED and should be abstract -!incorrect-protocol-member! MTLArgumentEncoder::setAccelerationStructure:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLArgumentEncoder::setIntersectionFunctionTable:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLArgumentEncoder::setIntersectionFunctionTables:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLArgumentEncoder::setVisibleFunctionTable:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLArgumentEncoder::setVisibleFunctionTables:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLBlitCommandEncoder::getTextureAccessCounters:region:mipLevel:slice:resetCounters:countersBuffer:countersBufferOffset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLBlitCommandEncoder::resetTextureAccessCounters:region:mipLevel:slice: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoder is REQUIRED and should be abstract -!incorrect-protocol-member! MTLCommandBuffer::resourceStateCommandEncoder is REQUIRED and should be abstract -!incorrect-protocol-member! MTLCommandBuffer::resourceStateCommandEncoderWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setAccelerationStructure:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setIntersectionFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setIntersectionFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setVisibleFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputeCommandEncoder::setVisibleFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputePipelineState::functionHandleWithFunction: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputePipelineState::newComputePipelineStateWithAdditionalBinaryFunctions:error: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputePipelineState::newIntersectionFunctionTableWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLComputePipelineState::newVisibleFunctionTableWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::accelerationStructureSizesWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newAccelerationStructureWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newAccelerationStructureWithSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newRasterizationRateMapWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::sparseTileSizeInBytes is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supports32BitFloatFiltering is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supports32BitMSAA is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsFunctionPointers is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsFunctionPointersFromRender is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsPrimitiveMotionBlur is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsQueryTextureLOD is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsRasterizationRateMapWithLayerCount: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsRaytracing is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsRaytracingFromRender is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsShaderBarycentricCoordinates is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::supportsVertexAmplificationCount: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setTileIntersectionFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setTileVisibleFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setTileVisibleFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexAccelerationStructure:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexAmplificationCount:viewMappings: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexIntersectionFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexVisibleFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexVisibleFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::functionHandleWithFunction:stage: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::newIntersectionFunctionTableWithDescriptor:stage: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::newRenderPipelineStateWithAdditionalBinaryFunctions:error: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderPipelineState::newVisibleFunctionTableWithDescriptor:stage: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLTexture::compressionType is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLLibrary::newIntersectionFunctionWithDescriptor:completionHandler: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLLibrary::newIntersectionFunctionWithDescriptor:error: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setFragmentAccelerationStructure:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setFragmentIntersectionFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setFragmentIntersectionFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setFragmentVisibleFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setFragmentVisibleFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setTileAccelerationStructure:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setTileIntersectionFunctionTable:atBufferIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexIntersectionFunctionTables:withBufferRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLFunction::options is REQUIRED and should be abstract -!incorrect-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithResources:count:afterStages:beforeStages: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithScope:afterStages:beforeStages: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: is REQUIRED and should be abstract - -# deprecated but cannot be removed -!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.todo deleted file mode 100644 index 01957d4e2c33..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.todo +++ /dev/null @@ -1,71 +0,0 @@ -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-pinvoke! MTLCopyAllDevices is not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound diff --git a/tests/xtro-sharpie/iOS-Metal.todo b/tests/xtro-sharpie/iOS-Metal.todo index 46f5ab46655e..1ff9920af9c1 100644 --- a/tests/xtro-sharpie/iOS-Metal.todo +++ b/tests/xtro-sharpie/iOS-Metal.todo @@ -1,89 +1,3 @@ -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLMatrixLayout not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum! MTLTransformType not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-pinvoke! MTLCopyAllDevices is not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound +!incorrect-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: is REQUIRED and should be abstract diff --git a/tests/xtro-sharpie/macOS-Metal.todo b/tests/xtro-sharpie/macOS-Metal.todo index 5e2154263d5a..52057bb3df8e 100644 --- a/tests/xtro-sharpie/macOS-Metal.todo +++ b/tests/xtro-sharpie/macOS-Metal.todo @@ -1,95 +1,10 @@ -!missing-protocol-member! MTLIndirectRenderCommand::clearBarrier not found -!missing-protocol-member! MTLIndirectRenderCommand::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLIndirectRenderCommand::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLIndirectRenderCommand::setBarrier not found -!missing-protocol-member! MTLIndirectRenderCommand::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setObjectThreadgroupMemoryLength:atIndex: not found -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLMatrixLayout not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum! MTLTransformType not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout not bound -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformType: not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound +!incorrect-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::clearBarrier is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::setBarrier is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::setMeshBuffer:offset:atIndex: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::setObjectBuffer:offset:atIndex: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectRenderCommand::setObjectThreadgroupMemoryLength:atIndex: is REQUIRED and should be abstract diff --git a/tests/xtro-sharpie/tvOS-Metal.todo b/tests/xtro-sharpie/tvOS-Metal.todo index 01957d4e2c33..1ff9920af9c1 100644 --- a/tests/xtro-sharpie/tvOS-Metal.todo +++ b/tests/xtro-sharpie/tvOS-Metal.todo @@ -1,71 +1,3 @@ -!deprecated-attribute-missing! MTLCompileOptions::fastMathEnabled missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLCompileOptions::setFastMathEnabled: missing a [Deprecated] attribute -!missing-enum! MTLLogLevel not bound -!missing-enum! MTLLogStateError not bound -!missing-enum! MTLMathFloatingPointFunctions not bound -!missing-enum! MTLMathMode not bound -!missing-enum! MTLShaderValidation not bound -!missing-enum! MTLStitchedLibraryOptions not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionFailOnBinaryArchiveMiss = 4 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_2 = 196610 not bound -!missing-field! MTLLogStateErrorDomain not bound -!missing-field! NSDeviceCertificationiPhonePerformanceGaming not bound -!missing-field! NSProcessInfoPerformanceProfileDidChangeNotification not bound -!missing-field! NSProcessPerformanceProfileDefault not bound -!missing-field! NSProcessPerformanceProfileSustained not bound -!missing-pinvoke! MTLCopyAllDevices is not bound -!missing-protocol! MTLAllocation not bound -!missing-protocol! MTLLogState not bound -!missing-protocol! MTLResidencySet not bound -!missing-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: not found -!missing-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySet: not found -!missing-protocol-member! MTLCommandBuffer::useResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::addResidencySet: not found -!missing-protocol-member! MTLCommandQueue::addResidencySets:count: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySet: not found -!missing-protocol-member! MTLCommandQueue::removeResidencySets:count: not found -!missing-protocol-member! MTLComputePipelineState::shaderValidation not found -!missing-protocol-member! MTLDevice::newCommandQueueWithDescriptor: not found -!missing-protocol-member! MTLDevice::newLogStateWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: not found -!missing-protocol-member! MTLRenderPipelineState::shaderValidation not found -!missing-selector! MTLCommandBufferDescriptor::logState not bound -!missing-selector! MTLCommandBufferDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::logState not bound -!missing-selector! MTLCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLCommandQueueDescriptor::setLogState: not bound -!missing-selector! MTLCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLCompileOptions::enableLogging not bound -!missing-selector! MTLCompileOptions::mathFloatingPointFunctions not bound -!missing-selector! MTLCompileOptions::mathMode not bound -!missing-selector! MTLCompileOptions::setEnableLogging: not bound -!missing-selector! MTLCompileOptions::setMathFloatingPointFunctions: not bound -!missing-selector! MTLCompileOptions::setMathMode: not bound -!missing-selector! MTLComputePipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLComputePipelineDescriptor::shaderValidation not bound -!missing-selector! MTLLogStateDescriptor::bufferSize not bound -!missing-selector! MTLLogStateDescriptor::level not bound -!missing-selector! MTLLogStateDescriptor::setBufferSize: not bound -!missing-selector! MTLLogStateDescriptor::setLevel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::binaryArchives not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setBinaryArchives: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! MTLResidencySetDescriptor::initialCapacity not bound -!missing-selector! MTLResidencySetDescriptor::label not bound -!missing-selector! MTLResidencySetDescriptor::setInitialCapacity: not bound -!missing-selector! MTLResidencySetDescriptor::setLabel: not bound -!missing-selector! MTLStitchedLibraryDescriptor::binaryArchives not bound -!missing-selector! MTLStitchedLibraryDescriptor::options not bound -!missing-selector! MTLStitchedLibraryDescriptor::setBinaryArchives: not bound -!missing-selector! MTLStitchedLibraryDescriptor::setOptions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setShaderValidation: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::shaderValidation not bound -!missing-selector! NSProcessInfo::hasPerformanceProfile: not bound -!missing-selector! NSProcessInfo::isDeviceCertifiedFor: not bound -!missing-type! MTLCommandQueueDescriptor not bound -!missing-type! MTLLogStateDescriptor not bound -!missing-type! MTLResidencySetDescriptor not bound +!incorrect-protocol-member! MTLBinaryArchive::addLibraryWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLBinaryArchive::addMeshRenderPipelineFunctionsWithDescriptor:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::newResidencySetWithDescriptor:error: is REQUIRED and should be abstract