From 2e76ac8f34ec52cf0c60b724832400b5b8046134 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Wed, 4 Oct 2023 11:24:26 -0400 Subject: [PATCH 01/25] [Metal] Add support for Xcode15. This PR brings all the changes from the new Metal APIs. During the review pay special attention to the changes done in the Protocols in order to add tvOS support. The main problem we have had doing this PR is that tvOS was not done on time before the NET branching, that left us with a lot of memebers that were NOT added in tvOS that are abstract on dotnet, which has left use in a pickle. Lets use the following code as an example. Code found before this commit: ```csharp [Mac (11, 0), iOS (14, 0), NoTV] [MacCatalyst (14, 0)] [Abstract] [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); ``` A naive approach would be to add just the tvOS suppor as follows: ```csharp [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Abstract] [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); ``` The above change represents and API braking change on the donet tvOS dll because it adds a new Abstrtact members, so this is no an acceptable solution. There is a second naive approach we can take which is as follows: ```csharp [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Abstract] [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); ``` Yet again, the naive approach has an issue with it. In this case, all the extension methods that are generated for tvOS (something the generator writes when methods are not abstract) will be decorated with availability attributes for all the other platforms, which is incorrect and will make developers life worse. That leaves us with the following approach: ```csharp [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] [NoMac, NoiOS, TV (16,0), NoMacCatalyst] [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); ``` With the above change, we do not add an abstract method in tvOS and we only add the tvOS abailabity attribute to the extension methods, and use NoiOS etc for all the other platforms. The change had to be done to ALL methods that added tvOS support. The good news are that our cecil tests and our introspection tests catch the two naive approaces :) --- src/Metal/Defs.cs | 27 +- src/Metal/MTLEnums.cs | 226 +- src/Metal/MTLIOCompression.cs | 88 + src/frameworks.sources | 1 + src/metal.cs | 2126 +++++++++++++++-- tests/introspection/ApiCMAttachmentTest.cs | 2 + tests/introspection/iOS/iOSApiPInvokeTest.cs | 4 + tests/introspection/iOS/iOSApiProtocolTest.cs | 1 + .../Metal/MTLIOCompressionContextTest.cs | 53 + tests/monotouch-test/monotouch-test.csproj | 2 +- .../common-Metal.ignore | 27 + .../api-annotations-dotnet/iOS-Metal.ignore | 45 +- .../api-annotations-dotnet/iOS-Metal.todo | 361 --- .../api-annotations-dotnet/macOS-Metal.ignore | 39 + .../api-annotations-dotnet/macOS-Metal.todo | 346 --- .../api-annotations-dotnet/tvOS-Metal.ignore | 102 + .../api-annotations-dotnet/tvOS-Metal.todo | 592 ----- tests/xtro-sharpie/common-Metal.ignore | 33 +- tests/xtro-sharpie/iOS-Metal.ignore | 53 +- tests/xtro-sharpie/iOS-Metal.todo | 361 --- tests/xtro-sharpie/macOS-Metal.ignore | 44 + tests/xtro-sharpie/macOS-Metal.todo | 346 --- tests/xtro-sharpie/tvOS-Metal.ignore | 109 + tests/xtro-sharpie/tvOS-Metal.todo | 591 ----- 24 files changed, 2725 insertions(+), 2854 deletions(-) create mode 100644 src/Metal/MTLIOCompression.cs create mode 100644 tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.todo delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.todo create mode 100644 tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.todo delete mode 100644 tests/xtro-sharpie/iOS-Metal.todo delete mode 100644 tests/xtro-sharpie/macOS-Metal.todo delete mode 100644 tests/xtro-sharpie/tvOS-Metal.todo diff --git a/src/Metal/Defs.cs b/src/Metal/Defs.cs index b4b17a0c3161..976678601211 100644 --- a/src/Metal/Defs.cs +++ b/src/Metal/Defs.cs @@ -492,16 +492,18 @@ public struct MTLTextureSwizzleChannels { #endif } -#if IOS || MONOMAC || COREBUILD +#if IOS || MONOMAC || COREBUILD || TVOS #if NET [SupportedOSPlatform ("ios13.0")] [SupportedOSPlatform ("maccatalyst13.4")] [SupportedOSPlatform ("macos")] + [SupportedOSPlatform ("tvos16.0")] #else [Introduced (PlatformName.iOS, 13,0, PlatformArchitecture.All)] [Introduced (PlatformName.MacCatalyst, 13, 4)] [Introduced (PlatformName.MacOSX, 10, 15, 4)] + [Introduced (PlatformName.TvOS, 16, 0)] #endif [StructLayout (LayoutKind.Sequential)] public struct MTLVertexAmplificationViewMapping { @@ -514,10 +516,12 @@ public struct MTLVertexAmplificationViewMapping { [SupportedOSPlatform ("ios13.0")] [SupportedOSPlatform ("maccatalyst13.4")] [SupportedOSPlatform ("macos")] + [SupportedOSPlatform ("tvos17.0")] #else [Introduced (PlatformName.iOS, 13,0, PlatformArchitecture.All)] [Introduced (PlatformName.MacCatalyst, 13, 4)] [Introduced (PlatformName.MacOSX, 10, 15, 4)] + [Introduced (PlatformName.TvOS, 17,0)] #endif [StructLayout (LayoutKind.Sequential)] public struct MTLCoordinate2D { @@ -527,15 +531,13 @@ public struct MTLCoordinate2D { } #endif -#if !TVOS || !NET - +#if !TVOS #if NET [SupportedOSPlatform ("maccatalyst14.0")] [SupportedOSPlatform ("macos11.0")] [SupportedOSPlatform ("ios14.0")] - [UnsupportedOSPlatform ("tvos")] #else - [Introduced (PlatformName.MacCatalyst, 14, 0)] + [MacCatalyst (14, 0)] [Mac (11, 0)] [iOS (14, 0)] [NoTV] @@ -552,4 +554,19 @@ public struct MTLAccelerationStructureSizes { public nuint RefitScratchBufferSize; } #endif + +#if NET + [SupportedOSPlatform ("ios16.0")] + [SupportedOSPlatform ("maccatalyst16.0")] + [SupportedOSPlatform ("macos13.0")] + [SupportedOSPlatform ("tvos16.0")] +#else + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0), NoWatch] +#endif + [StructLayout (LayoutKind.Sequential)] + public struct MTLResourceId + { + public ulong Impl; + } + } diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index 7f62b8439f56..563112ada4fa 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -245,6 +245,11 @@ public enum MTLVertexFormat : ulong { [NoWatch] [MacCatalyst (13, 1)] Half = 53, + + [Mac (14,0), iOS (17,0), TV (17, 0), MacCatalyst (17,0)] + FloatRG11B10 = 54, + [Mac (14,0), iOS (17,0), TV (17, 0), MacCatalyst (17,0)] + FloatRGB9E5 = 55, } [MacCatalyst (13, 1)] @@ -563,6 +568,9 @@ public enum MTLFunctionType : ulong { [Mac (11, 0)] [MacCatalyst (14, 0)] Intersection = 6, + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + Mesh = 7, + Object = 8, } [Native] @@ -673,6 +681,9 @@ public enum MTLTextureUsage : ulong { Blit = 0x0008, #endif PixelFormatView = 0x0010, + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + ShaderAtomic = 0x20, } [MacCatalyst (13, 1)] @@ -858,6 +869,15 @@ public enum MTLDataType : ulong { [Mac (11, 0), iOS (14, 0), NoTV] PrimitiveAccelerationStructure = 117, [MacCatalyst (14, 0)] [Mac (11, 0), iOS (14, 0), NoTV] InstanceAccelerationStructure = 118, + + [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + BFloat = 121, + [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + BFloat2 = 122, + [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + BFloat3 = 123, + [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + BFloat4 = 124, } [Native] @@ -898,10 +918,16 @@ public enum MTLArgumentType : ulong { IntersectionFunctionTable = 27, } +#if !XAMCORE_5_0 + [Deprecated (PlatformName.MacOSX, 14, 0)] + [Deprecated (PlatformName.iOS, 17, 0)] + [Deprecated (PlatformName.TvOS, 17, 0)] + [Deprecated (PlatformName.MacCatalyst, 17, 0)] [Native] public enum MTLArgumentAccess : ulong { ReadOnly, ReadWrite, WriteOnly } +#endif [Native] [Flags] @@ -918,10 +944,15 @@ public enum MTLPipelineOption : ulong { [Native] public enum MTLFeatureSet : ulong { + [NoTV, NoMac] iOS_GPUFamily1_v1 = 0, + [NoTV, NoMac] iOS_GPUFamily1_v2 = 2, + [NoTV, NoMac] iOS_GPUFamily2_v1 = 1, + [NoTV, NoMac] iOS_GPUFamily2_v2 = 3, + [NoTV, NoMac] iOS_GPUFamily3_v1 = 4, [NoTV, NoWatch, NoMac, NoMacCatalyst] iOS_GPUFamily1_v3 = 5, @@ -992,6 +1023,7 @@ public enum MTLFeatureSet : ulong { TVOS_GPUFamily1_v1 = 30000, #endif + [NoiOS, NoWatch, NoMac] tvOS_GPUFamily1_v1 = 30000, [NoiOS, NoWatch, NoMac] @@ -1038,6 +1070,10 @@ public enum MTLLanguageVersion : ulong { v2_3 = (2 << 16) + 3, [iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), Mac (12, 0), NoWatch] v2_4 = (2uL << 16) + 4, + [iOS (16,0), TV (16,0), MacCatalyst (16,0), Mac (13,0), NoWatch] + v3_0 = (3uL << 16) + 0, + [iOS (17,0), TV (17,0), MacCatalyst (17,0), Mac (14,0), NoWatch] + v3_1 = (3uL << 16) + 1, } [MacCatalyst (13, 1)] @@ -1079,9 +1115,7 @@ public enum MTLMultisampleDepthResolveFilter : ulong { Sample0, Min, Max } -#if NET - [NoTV] -#endif + [TV (16,0)] [iOS (14, 0)] [MacCatalyst (14, 0)] [Native] @@ -1223,6 +1257,10 @@ public enum MTLAttributeFormat : ulong { [NoWatch] [MacCatalyst (13, 1)] Half = 53, + [Mac (14, 0), iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (17,0)] + FloatRG11B10 = 54, + [Mac (14, 0), iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (17,0)] + FloatRGB9E5 = 55, } [NoWatch] @@ -1248,6 +1286,11 @@ public enum MTLRenderStages : ulong { Fragment = (1 << 1), [iOS (15, 0), TV (15, 0), NoWatch, Mac (12, 0), MacCatalyst (15, 0)] Tile = (1uL << 2), + + [iOS (16, 0), TV (16, 0), NoWatch, Mac (13, 0), MacCatalyst (16, 0)] + Object = (1uL << 3), + [iOS (16, 0), TV (16, 0), NoWatch, Mac (13, 0), MacCatalyst (16, 0)] + Mesh = (1uL << 4), } [NoWatch] @@ -1330,6 +1373,10 @@ public enum MTLIndirectCommandType : ulong { [Mac (11, 0), iOS (13, 0), TV (13, 0)] [MacCatalyst (13, 1)] ConcurrentDispatchThreads = 1 << 6, + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17,0)] + DrawMeshThreadgroups = (1uL << 7), + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17,0)] + DrawMeshThreads = (1uL << 8), } [iOS (12, 0)] @@ -1342,7 +1389,7 @@ public enum MTLMultisampleStencilResolveFilter : ulong { } - [Flags, Mac (11, 0), NoTV, iOS (13, 0)] + [Flags, Mac (11, 0), TV (17,0), iOS (13, 0)] [MacCatalyst (13, 1)] [Native] public enum MTLSparseTextureRegionAlignmentMode : ulong { @@ -1350,7 +1397,7 @@ public enum MTLSparseTextureRegionAlignmentMode : ulong { Inward = 0x1, } - [Flags, Mac (11, 0), NoTV, iOS (13, 0)] + [Flags, Mac (11, 0), TV (17,0), iOS (13, 0)] [MacCatalyst (14, 0)] [Native] public enum MTLSparseTextureMappingMode : ulong { @@ -1392,6 +1439,9 @@ public enum MTLGpuFamily : long { [NoTV, Mac (11, 0), iOS (14, 0)] [MacCatalyst (14, 0)] Apple7 = 1007, + Apple8 = 1008, + [NoTV] + Apple9 = 1009, Mac1 = 2001, Mac2 = 2002, Common1 = 3001, @@ -1399,6 +1449,9 @@ public enum MTLGpuFamily : long { Common3 = 3003, iOSMac1 = 4001, iOSMac2 = 4002, + + [iOS (16, 0), TV (16, 0), MacCatalyst (16, 0), Mac (13, 0)] + Metal3 = 5001, } [TV (13, 0), iOS (13, 0)] @@ -1509,7 +1562,7 @@ public enum MTLAccelerationStructureInstanceOptions : uint { NonOpaque = (1u << 3), } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Flags] [Native] @@ -1530,6 +1583,7 @@ public enum MTLBinaryArchiveError : ulong { InvalidFile = 1, UnexpectedElement = 2, CompilationFailure = 3, + InternalError = 4, } [Mac (11, 0), iOS (14, 0), TV (14, 0)] @@ -1591,9 +1645,11 @@ public enum MTLFunctionOptions : ulong { [NoTV] [MacCatalyst (14, 0)] CompileToBinary = 1uL << 0, + [iOS (17,0), TV (17,0), MacCatalyst (17,0), Mac (14,0)] + StoreFunctionInMetalScript = 1uL << 1, } - [Flags, Mac (11, 0), iOS (14, 0), NoTV] + [Flags, Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Native] public enum MTLIntersectionFunctionSignature : ulong { @@ -1607,6 +1663,10 @@ public enum MTLIntersectionFunctionSignature : ulong { PrimitiveMotion = (1uL << 4), [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoWatch] ExtendedLimits = (1uL << 5), + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] + MaxLevels = (1uL << 6), + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] + CurveData = (1uL << 7), } [Mac (11, 0), iOS (14, 0), TV (14, 0)] @@ -1628,24 +1688,170 @@ public enum MTLTextureSwizzle : byte { Alpha = 5, } - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] public enum MTLMotionBorderMode : uint { Clamp = 0, Vanish = 1, } - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0), NoWatch] [Native] public enum MTLAccelerationStructureInstanceDescriptorType : ulong { Default = 0, UserID = 1, Motion = 2, + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17,0)] + Indirect = 3, + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17,0)] + IndirectMotion = 4, } - [NoMac, iOS (15, 0), NoMacCatalyst, NoTV, NoWatch] + [Mac (12,5), iOS (15, 0), NoMacCatalyst, TV (17,0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, Lossy = 1, } + + [Flags, Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLAccelerationStructureRefitOptions : ulong + { + VertexData = (1uL << 0), + PerPrimitiveData = (1uL << 1), + } + + [Mac (11,0), iOS (14,0), MacCatalyst (14,0), TV (14,0)] + [Native] + public enum MTLBindingType : long + { + Buffer = 0, + ThreadgroupMemory = 1, + Texture = 2, + Sampler = 3, + ImageblockData = 16, + Imageblock = 17, + VisibleFunctionTable = 24, + PrimitiveAccelerationStructure = 25, + InstanceAccelerationStructure = 26, + IntersectionFunctionTable = 27, + ObjectPayload = 34, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLIOCommandQueueType : long + { + Concurrent = 0, + Serial = 1, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLIOCompressionMethod : long + { + Zlib = 0, + Lzfse = 1, + Lz4 = 2, + Lzma = 3, + LZBitmap = 4 + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLIOCompressionStatus : long + { + Complete = 0, + Error = 1, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + [ErrorDomain ("MTLIOErrorDomain")] + public enum MTLIOError : long + { + UrlInvalid = 1, + Internal = 2, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLIOPriority : long + { + High = 0, + Normal = 1, + Low = 2, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLIOStatus : long + { + Pending = 0, + Cancelled = 1, + Error = 2, + Complete = 3, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLLibraryOptimizationLevel : long + { + Default = 0, + Size = 1, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLSparsePageSize : long + { + Size16 = 101, + Size64 = 102, + Size256 = 103, + } + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Native] + public enum MTLBindingAccess : long + { + ReadOnly = 0, + ReadWrite = 1, + WriteOnly = 2, + } + + [Mac (14,0), iOS (17,0), MacCatalyst (17,0), TV (17,0)] + [Native] + public enum MTLCurveType : long + { + Round = 0, + Flat = 1, + } + + [Mac (14,0), iOS (17,0), MacCatalyst (17,0), TV (17,0)] + [Native] + public enum MTLCurveBasis : long + { + BSpline = 0, + CatmullRom = 1, + Linear = 2, + Bezier = 3, + } + + [Mac (14,0), iOS (17,0), MacCatalyst (17,0), TV (17,0)] + [Native] + public enum MTLCurveEndCaps : long + { + None = 0, + Disk = 1, + Sphere = 2, + } + + [Mac (13,3), iOS (16,4), MacCatalyst (16,4), TV (16,4)] + [Native] + public enum MTLCompileSymbolVisibility : long + { + Default = 0, + Hidden = 1, + } + } diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs new file mode 100644 index 000000000000..4a1072824843 --- /dev/null +++ b/src/Metal/MTLIOCompression.cs @@ -0,0 +1,88 @@ +using System; +using System.ComponentModel; +using System.Runtime.InteropServices; + +using CoreFoundation; +using Foundation; +using ObjCRuntime; + +#nullable enable + +#if !NET +using NativeHandle = System.IntPtr; +#endif + +namespace Metal { + +#if NET + [SupportedOSPlatform ("ios16.0")] + [SupportedOSPlatform ("maccatalyst16.0")] + [SupportedOSPlatform ("macos13.0")] + [SupportedOSPlatform ("tvos16.0")] +#else + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#endif + public class MTLIOCompressionContext : DisposableObject { + + [Preserve (Conditional = true)] + MTLIOCompressionContext (NativeHandle handle, bool owns) : base (handle, owns) {} + + [DllImport (Constants.MetalLibrary)] + static extern unsafe void MTLIOCompressionContextAppendData (void* context, void* data, nuint size); + + unsafe void AppendData (void* data, nuint size) + => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); + + public void AppendData (byte[] data) + => AppendData (new ReadOnlySpan (data, 0, data.Length)); + + public void AppendData (ReadOnlySpan data) { + unsafe { + // Pass new bytes through deflater and write them too: + fixed (void* bufferPtr = &MemoryMarshal.GetReference (data)) { + AppendData (bufferPtr, (nuint) data.Length); + } + } + } + + public void AppendData (NSData data) { + unsafe { + AppendData ((void*)data.Bytes, data.Length); + } + } + + [DllImport (Constants.MetalLibrary)] + // [return: NullAllowed] + static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, nuint chunkSize); + + public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, nuint chunkSize) { + if (path is null) + ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (path)); + + using var pathPtr = new TransientString (path); + var handle = MTLIOCreateCompressionContext (pathPtr, (long) type, chunkSize); + if (handle == IntPtr.Zero) + return null; + return new MTLIOCompressionContext (handle, owns: true); + } + + protected override void Dispose (bool disposing) + { + if (Handle != NativeHandle.Zero) + FlushAndDestroy (); + base.Dispose (disposing); + } + + [DllImport (Constants.MetalLibrary)] + static extern long MTLIOFlushAndDestroyCompressionContext (IntPtr context); + + public MTLIOCompressionStatus FlushAndDestroy () + => (MTLIOCompressionStatus) MTLIOFlushAndDestroyCompressionContext (GetCheckedHandle ()); + + [DllImport (Constants.MetalLibrary)] + static extern nuint MTLIOCompressionContextDefaultChunkSize (); + + public static nuint DefaultChunkSize => MTLIOCompressionContextDefaultChunkSize (); + + } +} diff --git a/src/frameworks.sources b/src/frameworks.sources index 232f8ff66b39..a903451a74ab 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -1175,6 +1175,7 @@ METAL_SOURCES = \ Metal/MTLArgumentEncoder.cs \ Metal/MTLBlitPassSampleBufferAttachmentDescriptorArray.cs \ Metal/MTLCompat.cs \ + Metal/MTLIOCompression.cs \ Metal/MTLComputeCommandEncoder.cs \ Metal/MTLComputePassSampleBufferAttachmentDescriptorArray.cs \ Metal/MTLDevice.cs \ diff --git a/src/metal.cs b/src/metal.cs index 148da283c240..701ef00fa1a2 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -44,6 +44,10 @@ namespace Metal { interface IMTLCommandEncoder { } + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] [MacCatalyst (13, 1)] [BaseType (typeof (NSObject))] interface MTLArgument { @@ -218,6 +222,11 @@ partial interface MTLBuffer : MTLResource { [return: NullAllowed] [return: Release] IMTLBuffer CreateRemoteBuffer (IMTLDevice device); + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Abstract] + [Export ("gpuAddress")] + ulong GpuAddress { get; } } [NoWatch] @@ -392,11 +401,17 @@ partial interface MTLCommandBuffer { [Export ("popDebugGroup")] void PopDebugGroup (); -#if NET +#if NET +#if !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)] +#endif + +#else + [MacCatalyst (14, 0), Mac (11, 0), iOS (13, 0), TV (16,0)] #endif - [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), iOS (13, 0), NoTV] [NullAllowed, Export ("resourceStateCommandEncoder")] IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; } @@ -432,21 +447,40 @@ partial interface MTLCommandBuffer { [Export ("blitCommandEncoderWithDescriptor:")] IMTLBlitCommandEncoder CreateBlitCommandEncoder (MTLBlitPassDescriptor blitPassDescriptor); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("resourceStateCommandEncoderWithDescriptor:")] IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (MTLResourceStatePassDescriptor resourceStatePassDescriptor); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("accelerationStructureCommandEncoderWithDescriptor:")] + IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (MTLAccelerationStructurePassDescriptor descriptor); } interface IMTLCommandQueue { } @@ -493,6 +527,7 @@ interface IMTLComputeCommandEncoder { } [MacCatalyst (13, 1)] [Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed partial interface MTLComputeCommandEncoder : MTLCommandEncoder { + [iOS (12, 0), TV (12, 0)] [MacCatalyst (13, 1)] #if NET @@ -688,57 +723,126 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { void SampleCounters (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier); #endif - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] #if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET + +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("setVisibleFunctionTables:withBufferRange:")] void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("setIntersectionFunctionTables:withBufferRange:")] void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] #if NET + +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setBuffer:offset:attributeStride:atIndex:")] + 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] +#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] +#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] +#endif + [Export ("setBytes:length:attributeStride:atIndex:")] + void SetBytes (IntPtr bytes, nuint length, nuint stride, nuint index); + } [MacCatalyst (13, 1)] [BaseType (typeof (NSObject))] interface MTLComputePipelineReflection { + + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] [Export ("arguments")] #if NET MTLArgument [] Arguments { get; } #else NSObject [] Arguments { get; } #endif + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Export ("bindings")] + IMTLBinding[] Bindings { get; } } interface IMTLComputePipelineState { } @@ -787,40 +891,72 @@ partial interface MTLComputePipelineState { [Export ("supportIndirectCommandBuffers")] bool SupportIndirectCommandBuffers { get; } - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("functionHandleWithFunction:")] IMTLFunctionHandle CreateFunctionHandle (IMTLFunction function); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET + +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("newVisibleFunctionTableWithDescriptor:")] [return: Release] IMTLVisibleFunctionTable CreateVisibleFunctionTable (MTLVisibleFunctionTableDescriptor descriptor); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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] +#endif + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } } interface IMTLBlitCommandEncoder { } @@ -943,17 +1079,17 @@ partial interface MTLBlitCommandEncoder : MTLCommandEncoder { [Export ("optimizeIndirectCommandBuffer:withRange:")] void Optimize (IMTLIndirectCommandBuffer indirectCommandBuffer, NSRange range); -#if NET && !__MACOS__ && !__MACCATALYST__ +#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)] + [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__ +#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("resetTextureAccessCounters:region:mipLevel:slice:")] void ResetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice); @@ -1047,7 +1183,7 @@ partial interface MTLDevice { [Export ("headless")] bool Headless { [Bind ("isHeadless")] get; } - [NoiOS, NoTV, NoWatch, MacCatalyst (15, 0)] + [iOS (17,0), TV (17,0), NoWatch, MacCatalyst (15, 0)] #if NET [Abstract] #endif @@ -1473,55 +1609,90 @@ partial interface MTLDevice { [Export ("newRenderPipelineStateWithTileDescriptor:options:completionHandler:")] void CreateRenderPipelineState (MTLTileRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); -#if NET +#if NET + +#if !TVOS + [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] +#else + [NoMac, NoMacCatalyst, TV (16,0), NoiOS] +#endif + +#else + [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] #endif - [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] [Export ("supportsVertexAmplificationCount:")] bool SupportsVertexAmplification (nuint count); -#if NET +#if NET + +#if !TVOS + [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] +#else + [NoMac, NoMacCatalyst, TV (16,0), NoiOS] +#endif + +#else + [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] #endif - [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] [Export ("supportsRasterizationRateMapWithLayerCount:")] bool SupportsRasterizationRateMap (nuint layerCount); #if NET + +#if !TVOS + [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] [Abstract] +#else + [NoMacCatalyst, NoMac, TV (16,0), NoiOS] +#endif + +#else + [MacCatalyst (14, 0), Mac (11, 0), TV (16,0), iOS (13, 0)] #endif - [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), NoTV, iOS (13, 0)] [Export ("sparseTileSizeWithTextureType:pixelFormat:sampleCount:")] MTLSize GetSparseTileSize (MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount); -#if NET +#if NET + +#if !TVOS + [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] [Abstract] +#else + [NoMacCatalyst, NoMac, TV (16,0), NoiOS] +#endif + +#else + [MacCatalyst (14, 0), Mac (11, 0), TV (16,0), iOS (13, 0)] #endif - [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), NoTV, iOS (13, 0)] [Export ("sparseTileSizeInBytes")] nuint SparseTileSizeInBytes { get; } #if NET + +#if !TVOS + [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] +#else + [NoMac, NoMacCatalyst, TV (16,0), NoiOS] +#endif + +#else + [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] #endif - [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] [Export ("newRasterizationRateMapWithDescriptor:")] [return: NullAllowed] [return: Release] IMTLRasterizationRateMap CreateRasterizationRateMap (MTLRasterizationRateMapDescriptor descriptor); [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), NoTV, iOS (13, 0)] + [Mac (11, 0), TV (16,0), iOS (13, 0)] [Export ("convertSparseTileRegions:toPixelRegions:withTileSize:numRegions:")] void ConvertSparseTileRegions (IntPtr tileRegions, IntPtr pixelRegions, MTLSize tileSize, nuint numRegions); [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), NoTV, iOS (13, 0)] + [Mac (11, 0), TV (16,0), iOS (13, 0)] [Export ("convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions:")] void ConvertSparsePixelRegions (IntPtr pixelRegions, IntPtr tileRegions, MTLSize tileSize, MTLSparseTextureRegionAlignmentMode mode, nuint numRegions); @@ -1549,9 +1720,16 @@ partial interface MTLDevice { bool BarycentricCoordsSupported { [Bind ("areBarycentricCoordsSupported")] get; } #if NET +#if !TVOS + [iOS (14, 0), NoTV, NoMacCatalyst] [Abstract] +#else + [NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [iOS (14, 0), TV (16,0), NoMacCatalyst] #endif - [iOS (14, 0), NoTV, NoMacCatalyst] [Export ("supportsShaderBarycentricCoordinates")] bool SupportsShaderBarycentricCoordinates { get; } @@ -1639,25 +1817,35 @@ partial interface MTLDevice { [Export ("locationNumber")] nuint LocationNumber { get; } - [Mac (11, 0), NoTV] - [iOS (14, 5)] - [MacCatalyst (14, 5)] #if NET +#if !TVOS + [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] +#else + [NoMac, TV (16,0), NoiOS, NoMacCatalyst] +#endif + +#else + [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] #endif [Export ("supports32BitFloatFiltering")] bool Supports32BitFloatFiltering { get; } - [Mac (11, 0), NoTV] - [iOS (14, 5)] - [MacCatalyst (14, 5)] #if NET + +#if !TVOS + [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] +#else + [NoMac, TV (16,0), NoiOS, NoMacCatalyst] +#endif +#else + [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] #endif [Export ("supports32BitMSAA")] bool Supports32BitMsaa { get; } - [NoiOS, Mac (11, 0), NoTV] + [Mac (11, 0), iOS (16, 4), TV (16, 4), NoMacCatalyst] [NoMacCatalyst] #if NET [Abstract] @@ -1719,57 +1907,93 @@ partial interface MTLDevice { [return: Release] IMTLBinaryArchive CreateBinaryArchive (MTLBinaryArchiveDescriptor descriptor, [NullAllowed] out NSError error); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] #if NET + +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("supportsRaytracing")] bool SupportsRaytracing { get; } - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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 - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] #if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] #if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] #if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("supportsFunctionPointers")] bool SupportsFunctionPointers { get; } - [Mac (11, 0), NoTV] - [iOS (14, 5)] - [MacCatalyst (14, 5)] #if NET +#if !TVOS + [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] +#else + [NoMac, TV (16,0), NoiOS, NoMacCatalyst] +#endif + +#else + [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] #endif [Export ("supportsQueryTextureLOD")] bool SupportsQueryTextureLod { get; } @@ -1782,23 +2006,44 @@ partial interface MTLDevice { bool SupportsRenderDynamicLibraries { get; } #if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Abstract] +#else + [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] +#endif + +#else + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0)] #endif - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Export ("supportsRaytracingFromRender")] bool SupportsRaytracingFromRender { get; } #if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Abstract] +#else + [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] +#endif + +#else + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0)] #endif - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Export ("supportsPrimitiveMotionBlur")] bool SupportsPrimitiveMotionBlur { get; } #if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] [Abstract] +#else + [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] [Export ("supportsFunctionPointersFromRender")] bool SupportsFunctionPointersFromRender { get; } @@ -1818,6 +2063,102 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)] [Export ("newLibraryWithStitchedDescriptor:completionHandler:")] void CreateLibrary (MTLStitchedLibraryDescriptor descriptor, Action completionHandler); + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("architecture")] + MTLArchitecture Architecture { get; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("newIOFileHandleWithURL:error:")] + [return: NullAllowed] + IMTLIOFileHandle NewIOFileHandleWithURL (NSUrl url, [NullAllowed] out NSError error); + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("newIOFileHandleWithURL:compressionMethod:error:")] + [return: NullAllowed] + IMTLIOFileHandle NewIOFileHandleWithURL (NSUrl url, MTLIOCompressionMethod compressionMethod, [NullAllowed] out NSError error); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("heapAccelerationStructureSizeAndAlignWithDescriptor:")] + MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (MTLAccelerationStructureDescriptor descriptor); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("heapAccelerationStructureSizeAndAlignWithSize:")] + MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (nuint size); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("newArgumentEncoderWithBufferBinding:")] + IMTLArgumentEncoder NewArgumentEncoder (IMTLBufferBinding bufferBinding); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("newIOCommandQueueWithDescriptor:error:")] + [return: NullAllowed] + IMTLIOCommandQueue NewIOCommandQueue (MTLIOCommandQueueDescriptor descriptor, [NullAllowed] out NSError error); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("newRenderPipelineStateWithMeshDescriptor:options:reflection:error:")] + [return: NullAllowed] + IMTLRenderPipelineState NewRenderPipelineState (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] +#endif + [Export ("newRenderPipelineStateWithMeshDescriptor:options:completionHandler:")] + void NewRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("sparseTileSizeInBytesForSparsePageSize:")] + nuint GetSparseTileSizeInBytes (MTLSparsePageSize sparsePageSize); + + [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] +#if XAMCORE_5_0 + [Abstract] +#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] +#endif + [Export ("maximumConcurrentCompilationTaskCount")] + nuint MaximumConcurrentCompilationTaskCount { get; } + + [NoiOS, Mac (13, 3), NoTV, NoMacCatalyst] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("shouldMaximizeConcurrentCompilation")] + bool ShouldMaximizeConcurrentCompilation { get; set; } + } interface IMTLDrawable { } @@ -1941,6 +2282,10 @@ partial interface MTLTexture : MTLResource { [Abstract, Export ("mipmapLevelCount")] nuint MipmapLevelCount { get; } + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] [Abstract, Export ("sampleCount")] nuint SampleCount { get; } @@ -1958,9 +2303,16 @@ partial interface MTLTexture : MTLResource { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; } - [NoMac, iOS (15, 0), NoMacCatalyst, NoTV, NoWatch] #if NET +#if !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] #endif [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; } @@ -2038,21 +2390,21 @@ partial interface MTLTexture : MTLResource { [Abstract] #endif - [Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("firstMipmapInTail")] nuint FirstMipmapInTail { get; } -#if NET && !__MACOS__ && !__MACCATALYST__ +#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("tailSizeInBytes")] nuint TailSizeInBytes { get; } -#if NET && !__MACOS__ && !__MACCATALYST__ +#if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("isSparse")] bool IsSparse { get; } @@ -2091,6 +2443,13 @@ partial interface MTLTexture : MTLResource { [return: NullAllowed] [return: Release] IMTLTexture CreateRemoteTexture (IMTLDevice device); + + [Mac (13, 0), iOS (16, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } } @@ -2116,6 +2475,10 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("mipmapLevelCount")] nuint MipmapLevelCount { get; set; } + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] [Export ("sampleCount")] nuint SampleCount { get; set; } @@ -2153,7 +2516,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [NoMac, iOS (15, 0), NoMacCatalyst, NoTV, NoWatch] + [Mac (12,5), iOS (15, 0), NoMacCatalyst, TV (17,0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2207,7 +2570,7 @@ partial interface MTLSamplerDescriptor : NSCopying { [Export ("lodAverage")] bool LodAverage { get; set; } - [iOS (14, 0), NoTV, NoWatch] + [iOS (14, 0), TV (17,0), NoWatch] [MacCatalyst (14, 0)] [Export ("borderColor", ArgumentSemantic.Assign)] MTLSamplerBorderColor BorderColor { get; set; } @@ -2236,6 +2599,13 @@ partial interface MTLSamplerState { [Abstract, Export ("device")] IMTLDevice Device { get; } + + [Mac (13, 0), iOS (16, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } } [MacCatalyst (13, 1)] @@ -2258,6 +2628,10 @@ partial interface MTLRenderPipelineDescriptor : NSCopying { [NullAllowed] MTLVertexDescriptor VertexDescriptor { get; set; } + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] [Export ("sampleCount")] nuint SampleCount { get; set; } @@ -2345,7 +2719,7 @@ partial interface MTLRenderPipelineDescriptor : NSCopying { bool SupportIndirectCommandBuffers { get; set; } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (17,0), iOS (13, 0)] [Export ("maxVertexAmplificationCount")] nuint MaxVertexAmplificationCount { get; set; } @@ -2454,40 +2828,106 @@ partial interface MTLRenderPipelineState { [Export ("supportIndirectCommandBuffers")] bool SupportIndirectCommandBuffers { get; } -#if NET +#if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] #endif - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Export ("functionHandleWithFunction:stage:")] [return: NullAllowed] IMTLFunctionHandle FunctionHandleWithFunction (IMTLFunction function, MTLRenderStages stage); #if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] #endif - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Export ("newVisibleFunctionTableWithDescriptor:stage:")] [return: NullAllowed] [return: Release] IMTLVisibleFunctionTable NewVisibleFunctionTableWithDescriptor (MTLVisibleFunctionTableDescriptor descriptor, MTLRenderStages stage); #if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] #endif - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Export ("newIntersectionFunctionTableWithDescriptor:stage:")] [return: NullAllowed] [return: Release] IMTLIntersectionFunctionTable NewIntersectionFunctionTableWithDescriptor (MTLIntersectionFunctionTableDescriptor descriptor, MTLRenderStages stage); #if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] #endif - [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Export ("newRenderPipelineStateWithAdditionalBinaryFunctions:error:")] [return: NullAllowed] [return: Release] IMTLRenderPipelineState NewRenderPipelineStateWithAdditionalBinaryFunctions (MTLRenderPipelineFunctionsDescriptor additionalBinaryFunctions, [NullAllowed] out NSError error); + + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [Abstract] + [Export ("meshThreadExecutionWidth")] + nuint MeshThreadExecutionWidth { get; } + + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [Abstract] + [Export ("maxTotalThreadgroupsPerMeshGrid")] + nuint MaxTotalThreadgroupsPerMeshGrid { get; } + + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [Abstract] + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } + + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("maxTotalThreadsPerMeshThreadgroup")] + nuint MaxTotalThreadsPerMeshThreadgroup { get; } + + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("maxTotalThreadsPerObjectThreadgroup")] + nuint MaxTotalThreadsPerObjectThreadgroup { get; } + + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("objectThreadExecutionWidth")] + nuint ObjectThreadExecutionWidth { get; } } [MacCatalyst (13, 1)] @@ -2743,10 +3183,16 @@ partial interface MTLFunction { [return: Release] IMTLArgumentEncoder CreateArgumentEncoder (nuint bufferIndex, [NullAllowed] out MTLArgument reflection); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("options")] MTLFunctionOptions Options { get; } @@ -2812,18 +3258,30 @@ partial interface MTLLibrary { IMTLFunction CreateFunction (MTLFunctionDescriptor descriptor, [NullAllowed] out NSError error); // protocol, so no Async - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("newIntersectionFunctionWithDescriptor:completionHandler:")] void CreateIntersectionFunction (MTLIntersectionFunctionDescriptor descriptor, Action completionHandler); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("newIntersectionFunctionWithDescriptor:error:")] [return: NullAllowed] @@ -2885,6 +3343,22 @@ partial interface MTLCompileOptions : NSCopying { [Mac (11, 0), iOS (13, 0), TV (14, 0)] [Export ("preserveInvariance")] bool PreserveInvariance { get; set; } + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] + [Export ("optimizationLevel", ArgumentSemantic.Assign)] + MTLLibraryOptimizationLevel OptimizationLevel { get; set; } + + [Mac (13, 3), iOS (16, 4), MacCatalyst (16, 4), TV (16, 4)] + [Export ("compileSymbolVisibility", ArgumentSemantic.Assign)] + MTLCompileSymbolVisibility CompileSymbolVisibility { get; set; } + + [Mac (13, 3), iOS (16, 4), MacCatalyst (16, 4), TV (16, 4)] + [Export ("allowReferencingUndefinedSymbols")] + bool AllowReferencingUndefinedSymbols { get; set; } + + [Mac (13, 3), iOS (16, 4), MacCatalyst (16, 4), TV (16, 4)] + [Export ("maxTotalThreadsPerThreadgroup")] + nuint MaxTotalThreadsPerThreadgroup { get; set; } } [MacCatalyst (13, 1)] @@ -3421,14 +3895,14 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Export ("executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")] void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset); - [NoiOS, NoTV, MacCatalyst (15, 0)] + [iOS (16,0), TV (16,0), MacCatalyst (15, 0)] #if NET [Abstract] #endif [Export ("memoryBarrierWithScope:afterStages:beforeStages:")] void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before); - [NoiOS, NoTV, MacCatalyst (15, 0)] + [iOS (16,0), TV (16,0), MacCatalyst (15, 0)] #if NET [Abstract] #endif @@ -3561,11 +4035,17 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Export ("setThreadgroupMemoryLength:offset:atIndex:")] void SetThreadgroupMemoryLength (nuint length, nuint offset, nuint index); -#if NET +#if NET +#if !TVOS + [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] +#else + [NoMacCatalyst, TV (16,0), NoiOS] +#endif + +#else + [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] #endif - [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] [Export ("setVertexAmplificationCount:viewMappings:")] void SetVertexAmplificationCount (nuint count, MTLVertexAmplificationViewMapping viewMappings); @@ -3613,180 +4093,520 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SampleCounters (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier); #endif -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setVertexVisibleFunctionTable:atBufferIndex:")] void SetVertexVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setVertexVisibleFunctionTables:withBufferRange:")] void SetVertexVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setVertexIntersectionFunctionTable:atBufferIndex:")] void SetVertexIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setVertexIntersectionFunctionTables:withBufferRange:")] void SetVertexIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); -#if NET +#if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setVertexAccelerationStructure:atBufferIndex:")] void SetVertexAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); #if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setFragmentAccelerationStructure:atBufferIndex:")] void SetFragmentAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); #if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setFragmentIntersectionFunctionTable:atBufferIndex:")] void SetFragmentIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); -#if NET + +#if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setFragmentIntersectionFunctionTables:withBufferRange:")] void SetFragmentIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setFragmentVisibleFunctionTable:atBufferIndex:")] void SetFragmentVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); -#if NET +#if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setFragmentVisibleFunctionTables:withBufferRange:")] void SetFragmentVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); -#if NET +#if NET + +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setTileAccelerationStructure:atBufferIndex:")] void SetTileAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setTileIntersectionFunctionTable:atBufferIndex:")] void SetTileIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setTileIntersectionFunctionTables:withBufferRange:")] void SetTileIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setTileVisibleFunctionTable:atBufferIndex:")] void SetTileVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); -#if NET +#if NET +#if !TVOS + [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] +#endif + +#else + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] #endif - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Export ("setTileVisibleFunctionTables:withBufferRange:")] void SetTileVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); - } - [MacCatalyst (13, 1)] - [BaseType (typeof (NSObject))] - interface MTLRenderPipelineColorAttachmentDescriptor : NSCopying { + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] +#if NET + [Abstract] +#endif + [Export ("setVertexBuffer:offset:attributeStride:atIndex:")] + void SetVertexBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint stride, nuint index); - [Export ("pixelFormat", ArgumentSemantic.Assign)] - MTLPixelFormat PixelFormat { get; set; } + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] +#if NET + [Abstract] +#endif + [Export ("setVertexBuffers:offsets:attributeStrides:withRange:")] + void SetVertexBuffers (IMTLBuffer[] buffers, IntPtr offsets, IntPtr strides, NSRange range); - [Export ("blendingEnabled")] - bool BlendingEnabled { [Bind ("isBlendingEnabled")] get; set; } + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] +#if NET + [Abstract] +#endif + [Export ("setVertexBufferOffset:attributeStride:atIndex:")] + void SetVertexBufferOffset (nuint offset, nuint stride, nuint index); - [Export ("sourceRGBBlendFactor", ArgumentSemantic.Assign)] - MTLBlendFactor SourceRgbBlendFactor { get; set; } + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] +#if NET + [Abstract] +#endif + [Export ("setVertexBytes:length:attributeStride:atIndex:")] + void SetVertexBytes (IntPtr bytes, nuint length, nuint stride, nuint index); - [Export ("destinationRGBBlendFactor", ArgumentSemantic.Assign)] - MTLBlendFactor DestinationRgbBlendFactor { get; set; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] + void DrawMeshThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [Export ("rgbBlendOperation", ArgumentSemantic.Assign)] - MTLBlendOperation RgbBlendOperation { get; set; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] + void DrawMeshThreadgroups (IMTLBuffer indirectBuffer, nuint indirectBufferOffset, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [Export ("sourceAlphaBlendFactor", ArgumentSemantic.Assign)] - MTLBlendFactor SourceAlphaBlendFactor { get; set; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] + void DrawMeshThreads (MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [Export ("destinationAlphaBlendFactor", ArgumentSemantic.Assign)] - MTLBlendFactor DestinationAlphaBlendFactor { get; set; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshBufferOffset:atIndex:")] + void SetMeshBufferOffset (nuint offset, nuint index); - [Export ("alphaBlendOperation", ArgumentSemantic.Assign)] - MTLBlendOperation AlphaBlendOperation { get; set; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshBuffers:offsets:withRange:")] + void SetMeshBuffers (IMTLBuffer[] buffers, IntPtr offsets, NSRange range); - [Export ("writeMask", ArgumentSemantic.Assign)] - MTLColorWriteMask WriteMask { get; set; } - } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshTexture:atIndex:")] + void SetMeshTexture ([NullAllowed] IMTLTexture texture, nuint index); - [MacCatalyst (13, 1)] - [BaseType (typeof (NSObject))] - interface MTLRenderPipelineReflection { - [Export ("vertexArguments")] - [NullAllowed] -#if NET - MTLArgument [] VertexArguments { get; } -#else - NSObject [] VertexArguments { get; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] #endif + [Export ("setMeshTextures:withRange:")] + void SetMeshTextures (IMTLTexture[] textures, NSRange range); - [Export ("fragmentArguments")] - [NullAllowed] -#if NET - MTLArgument [] FragmentArguments { get; } -#else - NSObject [] FragmentArguments { get; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] #endif + [Export ("setMeshSamplerState:atIndex:")] + void SetMeshSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index); - [Mac (11, 0), NoWatch] - [TV (14, 5)] - [MacCatalyst (14, 0)] - [NullAllowed, Export ("tileArguments")] - MTLArgument [] TileArguments { get; } - } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshSamplerStates:withRange:")] + void SetMeshSamplerStates (IMTLSamplerState[] samplers, NSRange range); - [MacCatalyst (13, 1)] - [BaseType (typeof (NSObject))] - interface MTLRenderPassAttachmentDescriptor : NSCopying { + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex:")] + void SetMeshSamplerState ([NullAllowed] IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, nuint index); - [NullAllowed] // by default this property is null - [Export ("texture", ArgumentSemantic.Retain)] - IMTLTexture Texture { get; set; } + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] + void SetMeshSamplerStates (IMTLSamplerState[] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); - [Export ("level")] - nuint Level { get; set; } + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#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] +#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] +#endif + [Export ("setObjectBuffers:offsets:withRange:")] + void SetObjectBuffers (IMTLBuffer[] buffers, IntPtr offsets, NSRange range); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#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] +#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] +#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] +#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] +#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] +#endif + [Export ("setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] + void SetObjectSamplerStates (IMTLSamplerState[] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setObjectSamplerStates:withRange:")] + void SetObjectSamplerStates (IMTLSamplerState[] samplers, NSRange range); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#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] +#endif + [Export ("setObjectTextures:withRange:")] + void SetObjectTextures (IMTLTexture[] textures, NSRange range); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setObjectThreadgroupMemoryLength:atIndex:")] + void SetObjectThreadgroupMemoryLength (nuint length, nuint index); + } + + [MacCatalyst (13, 1)] + [BaseType (typeof (NSObject))] + interface MTLRenderPipelineColorAttachmentDescriptor : NSCopying { + + [Export ("pixelFormat", ArgumentSemantic.Assign)] + MTLPixelFormat PixelFormat { get; set; } + + [Export ("blendingEnabled")] + bool BlendingEnabled { [Bind ("isBlendingEnabled")] get; set; } + + [Export ("sourceRGBBlendFactor", ArgumentSemantic.Assign)] + MTLBlendFactor SourceRgbBlendFactor { get; set; } + + [Export ("destinationRGBBlendFactor", ArgumentSemantic.Assign)] + MTLBlendFactor DestinationRgbBlendFactor { get; set; } + + [Export ("rgbBlendOperation", ArgumentSemantic.Assign)] + MTLBlendOperation RgbBlendOperation { get; set; } + + [Export ("sourceAlphaBlendFactor", ArgumentSemantic.Assign)] + MTLBlendFactor SourceAlphaBlendFactor { get; set; } + + [Export ("destinationAlphaBlendFactor", ArgumentSemantic.Assign)] + MTLBlendFactor DestinationAlphaBlendFactor { get; set; } + + [Export ("alphaBlendOperation", ArgumentSemantic.Assign)] + MTLBlendOperation AlphaBlendOperation { get; set; } + + [Export ("writeMask", ArgumentSemantic.Assign)] + MTLColorWriteMask WriteMask { get; set; } + } + + [MacCatalyst (13, 1)] + [BaseType (typeof (NSObject))] + interface MTLRenderPipelineReflection { + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] + [Export ("vertexArguments")] + [NullAllowed] +#if NET + MTLArgument [] VertexArguments { get; } +#else + NSObject [] VertexArguments { get; } +#endif + + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] + [Export ("fragmentArguments")] + [NullAllowed] +#if NET + MTLArgument [] FragmentArguments { get; } +#else + NSObject [] FragmentArguments { get; } +#endif + + [Deprecated (PlatformName.MacOSX, 13, 0)] + [Deprecated (PlatformName.iOS, 16, 0)] + [Deprecated (PlatformName.TvOS, 16, 0)] + [Deprecated (PlatformName.MacCatalyst, 16, 0)] + [Mac (11, 0), NoWatch] + [TV (14, 5)] + [MacCatalyst (14, 0)] + [NullAllowed, Export ("tileArguments")] + MTLArgument [] TileArguments { get; } + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Export ("vertexBindings")] + IMTLBinding[] VertexBindings { get; } + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Export ("fragmentBindings")] + IMTLBinding[] FragmentBindings { get; } + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Export ("tileBindings")] + IMTLBinding[] TileBindings { get; } + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Export ("objectBindings")] + IMTLBinding[] ObjectBindings { get; } + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Export ("meshBindings")] + IMTLBinding[] MeshBindings { get; } + } + + [MacCatalyst (13, 1)] + [BaseType (typeof (NSObject))] + interface MTLRenderPassAttachmentDescriptor : NSCopying { + + [NullAllowed] // by default this property is null + [Export ("texture", ArgumentSemantic.Retain)] + IMTLTexture Texture { get; set; } + + [Export ("level")] + nuint Level { get; set; } [Export ("slice")] nuint Slice { get; set; } @@ -3951,7 +4771,7 @@ interface MTLRenderPassDescriptor : NSCopying { */ [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (17,0), iOS (13, 0)] [NullAllowed, Export ("rasterizationRateMap", ArgumentSemantic.Strong)] IMTLRasterizationRateMap RasterizationRateMap { get; set; } @@ -3988,6 +4808,10 @@ interface MTLHeapDescriptor : NSCopying { [Export ("type", ArgumentSemantic.Assign)] MTLHeapType Type { get; set; } + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Export ("sparsePageSize", ArgumentSemantic.Assign)] + MTLSparsePageSize SparsePageSize { get; set; } + } [NoWatch] @@ -4089,6 +4913,67 @@ interface MTLHeap { [return: NullAllowed] [return: Release] IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset); + +#if NET +#if !TVOS + [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] + [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#endif + [Export ("newAccelerationStructureWithSize:")] + [return: NullAllowed, Release] + IMTLAccelerationStructure NewAccelerationStructure (nuint size); + +#if NET + +#if !TVOS + [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] + [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#endif + [Export ("newAccelerationStructureWithDescriptor:")] + [return: NullAllowed, Release] + IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); + +#if NET +#if !TVOS + [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] + [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#endif + [Export ("newAccelerationStructureWithSize:offset:")] + [return: NullAllowed, Release] + IMTLAccelerationStructure NewAccelerationStructure (nuint size, nuint offset); + +#if NET +#if !TVOS + [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] + [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#endif + [Export ("newAccelerationStructureWithDescriptor:offset:")] + [return: NullAllowed, Release] + IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor, nuint offset); } interface IMTLResource { } @@ -4230,12 +5115,12 @@ interface MTLComputePipelineDescriptor : NSCopying { [NullAllowed, Export ("linkedFunctions", ArgumentSemantic.Copy)] MTLLinkedFunctions LinkedFunctions { get; set; } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (17,0)] [MacCatalyst (14, 0)] [Export ("supportAddingBinaryFunctions")] bool SupportAddingBinaryFunctions { get; set; } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (17,0)] [MacCatalyst (14, 0)] [Export ("maxCallStackDepth")] nuint MaxCallStackDepth { get; set; } @@ -4579,42 +5464,73 @@ interface MTLArgumentEncoder { [Export ("setComputePipelineStates:withRange:")] void SetComputePipelineStates (IMTLComputePipelineState [] pipelines, NSRange range); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET + +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("setVisibleFunctionTables:withRange:")] void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#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); - [Mac (11, 0), iOS (14, 0), NoTV] - [MacCatalyst (14, 0)] -#if NET +#if NET +#if !TVOS + [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] +#else + [NoMac, NoiOS, TV (16,0), NoMacCatalyst] +#endif + +#else + [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] #endif [Export ("setIntersectionFunctionTables:withRange:")] void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); @@ -4725,7 +5641,7 @@ interface MTLTileRenderPipelineDescriptor : NSCopying { [NullAllowed, Export ("binaryArchives", ArgumentSemantic.Copy)] IMTLBinaryArchive [] BinaryArchives { get; set; } - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] [Export ("supportAddingBinaryFunctions")] bool SupportAddingBinaryFunctions { get; set; } @@ -4733,7 +5649,7 @@ interface MTLTileRenderPipelineDescriptor : NSCopying { [Export ("preloadedLibraries", ArgumentSemantic.Copy)] IMTLDynamicLibrary [] PreloadedLibraries { get; set; } - [Mac (11, 0), iOS (14, 0), MacCatalyst (15, 0), NoTV, NoWatch] + [Mac (11, 0), iOS (14, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] [Export ("maxCallStackDepth")] nuint MaxCallStackDepth { get; set; } @@ -4853,6 +5769,62 @@ interface MTLIndirectRenderCommand { [Abstract] [Export ("reset")] void Reset (); + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setVertexBuffer:offset:attributeStride:atIndex:")] + void SetVertexBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setObjectThreadgroupMemoryLength:atIndex:")] + void SetObjectThreadgroupMemoryLength (nuint length, nuint index); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setObjectBuffer:offset:atIndex:")] + void SetObjectBuffer (IMTLBuffer buffer, nuint offset, nuint index); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setMeshBuffer:offset:atIndex:")] + void SetMeshBuffer (IMTLBuffer buffer, nuint offset, nuint index); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] + void DrawMeshThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] + void DrawMeshThreads (MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setBarrier")] + void SetBarrier (); + + [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("clearBarrier")] + void ClearBarrier (); } [iOS (12, 0), TV (12, 0)] @@ -4880,6 +5852,31 @@ interface MTLIndirectCommandBufferDescriptor : NSCopying { [MacCatalyst (14, 0)] [Export ("maxKernelBufferBindCount")] nuint MaxKernelBufferBindCount { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("maxKernelThreadgroupMemoryBindCount")] + nuint MaxKernelThreadgroupMemoryBindCount { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("maxObjectBufferBindCount")] + nuint MaxObjectBufferBindCount { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("maxMeshBufferBindCount")] + nuint MaxMeshBufferBindCount { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("maxObjectThreadgroupMemoryBindCount")] + nuint MaxObjectThreadgroupMemoryBindCount { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("supportDynamicAttributeStride")] + bool SupportDynamicAttributeStride { get; set; } + + [Mac (13, 0), iOS (16, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("supportRayTracing")] + bool SupportRayTracing { get; set; } + } interface IMTLIndirectCommandBuffer { } @@ -4907,6 +5904,13 @@ interface MTLIndirectCommandBuffer : MTLResource { [MacCatalyst (13, 1)] [Export ("indirectComputeCommandAtIndex:")] IMTLIndirectComputeCommand GetIndirectComputeCommand (nuint commandIndex); + + [Mac (13, 0), iOS (16, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("gpuResourceID")] + MTLResourceId GpuResourceID { get; } } [iOS (13, 0), TV (13, 0)] @@ -4922,7 +5926,7 @@ interface MTLSharedTextureHandle : NSSecureCoding { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (16,0), iOS (13, 0)] [BaseType (typeof (NSObject))] interface MTLRasterizationRateSampleArray { [Export ("objectAtIndexedSubscript:")] @@ -4933,7 +5937,7 @@ interface MTLRasterizationRateSampleArray { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (16,0), iOS (13, 0)] [BaseType (typeof (NSObject))] interface MTLRasterizationRateMapDescriptor : NSCopying { [Static] @@ -4973,7 +5977,7 @@ interface MTLRasterizationRateMapDescriptor : NSCopying { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (16,0), iOS (13, 0)] [BaseType (typeof (NSObject))] [DisableDefaultCtor] interface MTLRasterizationRateLayerDescriptor : NSCopying { @@ -5014,7 +6018,7 @@ interface MTLRasterizationRateLayerDescriptor : NSCopying { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (16,0), iOS (13, 0)] [BaseType (typeof (NSObject))] interface MTLRasterizationRateLayerArray { [Export ("objectAtIndexedSubscript:")] @@ -5028,7 +6032,7 @@ interface MTLRasterizationRateLayerArray { interface IMTLRasterizationRateMap { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [NoTV, iOS (13, 0)] + [TV (16,0), iOS (13, 0)] [Protocol] interface MTLRasterizationRateMap { [Abstract] @@ -5075,7 +6079,7 @@ interface MTLRasterizationRateMap { interface IMTLResourceStateCommandEncoder { } [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), iOS (13, 0), NoTV] + [Mac (11, 0), iOS (13, 0), TV (16,0)] [Protocol] interface MTLResourceStateCommandEncoder : MTLCommandEncoder { #if !MONOMAC && !__MACCATALYST__ @@ -5107,6 +6111,13 @@ interface MTLResourceStateCommandEncoder : MTLCommandEncoder { #endif [Export ("waitForFence:")] void Wait (IMTLFence fence); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")] + void MoveTextureMappingsFromTexture (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin); } [iOS (13, 0), TV (13, 0)] @@ -5172,6 +6183,13 @@ interface MTLIndirectComputeCommand { #endif [Export ("setImageblockWidth:height:")] void SetImageblock (nuint width, nuint height); + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] +#if NET + [Abstract] +#endif + [Export ("setKernelBuffer:offset:attributeStride:atIndex:")] + void SetKernelBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); } interface IMTLCounter { } @@ -5255,16 +6273,21 @@ interface MTLCounterSampleBufferDescriptor : NSCopying { [MacCatalyst (14, 0)] interface IMTLAccelerationStructure { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Protocol] interface MTLAccelerationStructure : MTLResource { [Abstract] [Export ("size")] nuint Size { get; } + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Abstract] + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] @@ -5286,15 +6309,16 @@ interface MTLAccelerationStructureBoundingBoxGeometryDescriptor { MTLAccelerationStructureBoundingBoxGeometryDescriptor Create (); } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLAccelerationStructureDescriptor : NSCopying { + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17,0)] [Export ("usage", ArgumentSemantic.Assign)] MTLAccelerationStructureUsage Usage { get; set; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLAccelerationStructureGeometryDescriptor : NSCopying { @@ -5310,9 +6334,25 @@ interface MTLAccelerationStructureGeometryDescriptor : NSCopying { [Mac (12, 0), iOS (15, 0), NoWatch, MacCatalyst (15, 0)] [NullAllowed, Export ("label")] string Label { get; set; } + + [Mac (13, 0), iOS (16, 0), NoWatch, MacCatalyst (16, 0)] + [NullAllowed, Export ("primitiveDataBuffer", ArgumentSemantic.Retain)] + IMTLBuffer PrimitiveDataBuffer { get; set; } + + [Mac (13, 0), iOS (16, 0), NoWatch, MacCatalyst (16, 0)] + [Export ("primitiveDataBufferOffset")] + nuint PrimitiveDataBufferOffset { get; set; } + + [Mac (13, 0), iOS (16, 0), NoWatch, MacCatalyst (16, 0)] + [Export ("primitiveDataStride")] + nuint PrimitiveDataStride { get; set; } + + [Mac (13, 0), iOS (16, 0), NoWatch, MacCatalyst (16, 0)] + [Export ("primitiveDataElementSize")] + nuint PrimitiveDataElementSize { get; set; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] interface MTLAccelerationStructureTriangleGeometryDescriptor { @@ -5340,6 +6380,18 @@ interface MTLAccelerationStructureTriangleGeometryDescriptor { [Static] [Export ("descriptor")] MTLAccelerationStructureTriangleGeometryDescriptor Create (); + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16,0)] + [Export ("vertexFormat", ArgumentSemantic.Assign)] + MTLAttributeFormat VertexFormat { get; set; } + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16,0)] + [NullAllowed, Export ("transformationMatrixBuffer", ArgumentSemantic.Retain)] + IMTLBuffer TransformationMatrixBuffer { get; set; } + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16,0)] + [Export ("transformationMatrixBufferOffset")] + nuint TransformationMatrixBufferOffset { get; set; } } [Mac (11, 0), iOS (14, 0), TV (14, 0)] @@ -5469,7 +6521,7 @@ interface MTLFunctionDescriptor : NSCopying { IMTLBinaryArchive [] BinaryArchives { get; set; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLAccelerationStructureDescriptor))] @@ -5493,7 +6545,7 @@ interface MTLInstanceAccelerationStructureDescriptor { [Export ("descriptor")] MTLInstanceAccelerationStructureDescriptor Create (); - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] [Export ("instanceDescriptorType", ArgumentSemantic.Assign)] MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; } @@ -5510,13 +6562,13 @@ interface MTLInstanceAccelerationStructureDescriptor { nuint MotionTransformCount { get; set; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLFunctionDescriptor))] interface MTLIntersectionFunctionDescriptor : NSCopying { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (NSObject))] @@ -5541,7 +6593,7 @@ interface MTLLinkedFunctions : NSCopying { [NullAllowed, Export ("functions", ArgumentSemantic.Copy)] IMTLFunction [] Functions { get; set; } - [NoTV] + [TV (17,0)] [MacCatalyst (13, 1)] [NullAllowed, Export ("binaryFunctions", ArgumentSemantic.Copy)] IMTLFunction [] BinaryFunctions { get; set; } @@ -5570,7 +6622,7 @@ interface MTLLinkedFunctions : NSCopying { nuint MotionTransformCount { get; set; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLAccelerationStructureDescriptor))] @@ -5635,7 +6687,7 @@ interface MTLRenderPassSampleBufferAttachmentDescriptorArray { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (NSObject))] @@ -5648,7 +6700,7 @@ interface MTLResourceStatePassDescriptor : NSCopying { MTLResourceStatePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLResourceStatePassSampleBufferAttachmentDescriptor : NSCopying { @@ -5662,7 +6714,7 @@ interface MTLResourceStatePassSampleBufferAttachmentDescriptor : NSCopying { nuint EndOfEncoderSampleIndex { get; set; } } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLResourceStatePassSampleBufferAttachmentDescriptorArray { @@ -5674,7 +6726,7 @@ interface MTLResourceStatePassSampleBufferAttachmentDescriptorArray { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (NSObject))] @@ -5689,7 +6741,7 @@ interface MTLVisibleFunctionTableDescriptor : NSCopying { interface IMTLFunctionHandle { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Protocol] interface MTLFunctionHandle { @@ -5708,7 +6760,7 @@ interface MTLFunctionHandle { interface IMTLAccelerationStructureCommandEncoder { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Protocol] interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder { @@ -5770,11 +6822,17 @@ interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoWatch] [Export ("writeCompactedAccelerationStructureSize:toBuffer:offset:sizeDataType:")] void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset, MTLDataType sizeDataType); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Abstract] + [Export ("refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options:")] + void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, [NullAllowed] IMTLAccelerationStructure destinationAccelerationStructure, [NullAllowed] IMTLBuffer scratchBuffer, nuint scratchBufferOffset, MTLAccelerationStructureRefitOptions options); + } interface IMTLVisibleFunctionTable { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16,0)] [MacCatalyst (14, 0)] [Protocol] interface MTLVisibleFunctionTable : MTLResource { @@ -5785,11 +6843,18 @@ interface MTLVisibleFunctionTable : MTLResource { [Abstract] [Export ("setFunctions:withRange:")] void SetFunctions (IMTLFunctionHandle [] functions, NSRange range); + + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } } interface IMTLIntersectionFunctionTable { } - [Mac (11, 0), iOS (14, 0), NoTV] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Protocol] interface MTLIntersectionFunctionTable : MTLResource { @@ -5824,9 +6889,28 @@ interface MTLIntersectionFunctionTable : MTLResource { [Abstract] [Export ("setVisibleFunctionTables:withBufferRange:")] void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange bufferRange); - } - [Mac (11, 0), iOS (14, 0), TV (14, 0)] +#if XAMCORE_5_0 + [Abstract] +#endif + [Export ("setOpaqueCurveIntersectionFunctionWithSignature:atIndex:")] + void SetOpaqueCurveIntersectionFunction (MTLIntersectionFunctionSignature signature, nuint index); + +#if XAMCORE_5_0 + [Abstract] +#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] +#endif + [Export ("gpuResourceID")] + MTLResourceId GpuResourceId { get; } + } + + [Mac (11, 0), iOS (14, 0), TV (14, 0)] [MacCatalyst (14, 0)] [Protocol] interface MTLCommandBufferEncoderInfo { @@ -5931,7 +7015,7 @@ interface MTLStitchedLibraryDescriptor : NSCopying { IMTLFunction [] Functions { get; set; } } - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (NSObject))] interface MTLRenderPipelineFunctionsDescriptor : NSCopying { [NullAllowed, Export ("vertexAdditionalBinaryFunctions", ArgumentSemantic.Copy)] @@ -5944,7 +7028,7 @@ interface MTLRenderPipelineFunctionsDescriptor : NSCopying { IMTLFunction [] TileAdditionalBinaryFunctions { get; set; } } - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (NSObject))] interface MTLMotionKeyframeData { [NullAllowed, Export ("buffer", ArgumentSemantic.Retain)] @@ -6020,7 +7104,7 @@ interface MTLFunctionStitchingFunctionNode : MTLFunctionStitchingNode { NativeHandle Constructor (string name, IMTLFunctionStitchingNode [] arguments, MTLFunctionStitchingFunctionNode [] controlDependencies); } - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] interface MTLAccelerationStructureMotionTriangleGeometryDescriptor { [Export ("vertexBuffers", ArgumentSemantic.Copy)] @@ -6044,9 +7128,21 @@ interface MTLAccelerationStructureMotionTriangleGeometryDescriptor { [Static] [Export ("descriptor")] MTLAccelerationStructureMotionTriangleGeometryDescriptor Create (); + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0)] + [Export ("vertexFormat", ArgumentSemantic.Assign)] + MTLAttributeFormat VertexFormat { get; set; } + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0)] + [NullAllowed, Export ("transformationMatrixBuffer", ArgumentSemantic.Retain)] + IMTLBuffer TransformationMatrixBuffer { get; set; } + + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0)] + [Export ("transformationMatrixBufferOffset")] + nuint TransformationMatrixBufferOffset { get; set; } } - [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] interface MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor { [Export ("boundingBoxBuffers", ArgumentSemantic.Copy)] @@ -6062,4 +7158,558 @@ interface MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor { [Export ("descriptor")] MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor Create (); } + + interface IMTLBinding {} + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLBinding + { + [Abstract] + [Export ("name")] + string Name { get; } + + [Abstract] + [Export ("type")] + MTLBindingType Type { get; } + + [Abstract] + [Export ("access")] + MTLBindingAccess Access { get; } + + [Abstract] + [Export ("index")] + nuint Index { get; } + + [Abstract] + [Export ("used")] + bool Used { [Bind ("isUsed")] get; } + + [Abstract] + [Export ("argument")] + bool Argument { [Bind ("isArgument")] get; } + } + + interface IMTLBufferBinding {} + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLBufferBinding : MTLBinding + { + [Abstract] + [Export ("bufferAlignment")] + nuint BufferAlignment { get; } + + [Abstract] + [Export ("bufferDataSize")] + nuint BufferDataSize { get; } + + [Abstract] + [Export ("bufferDataType")] + MTLDataType BufferDataType { get; } + + [Abstract] + [NullAllowed, Export ("bufferStructType")] + MTLStructType BufferStructType { get; } + + [Abstract] + [NullAllowed, Export ("bufferPointerType")] + MTLPointerType BufferPointerType { get; } + } + + interface IMTLIOFileHandle {} + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLIOFileHandle + { + // @required @property (copy, atomic) NSString * _Nullable label; + [Abstract] + [NullAllowed, Export ("label")] + string Label { get; set; } + } + + interface IMTLIOCommandBuffer {} + + delegate void MTLIOCommandBufferHandler (IMTLIOCommandBuffer buffer); + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLIOCommandBuffer + { + [Abstract] + [Export ("addCompletedHandler:")] + void AddCompletedHandler (MTLIOCommandBufferHandler handler); + + [Abstract] + [Export ("loadBytes:size:sourceHandle:sourceHandleOffset:")] + void LoadBytes (IntPtr bytes, nuint size, IMTLIOFileHandle sourceHandle, nuint sourceHandleOffset); + + [Abstract] + [Export ("loadBuffer:offset:size:sourceHandle:sourceHandleOffset:")] + void LoadBuffer (IMTLBuffer buffer, nuint offset, nuint size, IMTLIOFileHandle sourceHandle, nuint sourceHandleOffset); + + [Abstract] + [Export ("loadTexture:slice:level:size:sourceBytesPerRow:sourceBytesPerImage:destinationOrigin:sourceHandle:sourceHandleOffset:")] + void LoadTexture (IMTLTexture texture, nuint slice, nuint level, MTLSize size, nuint sourceBytesPerRow, nuint sourceBytesPerImage, MTLOrigin destinationOrigin, IMTLIOFileHandle sourceHandle, nuint sourceHandleOffset); + + [Abstract] + [Export ("copyStatusToBuffer:offset:")] + void CopyStatus (IMTLBuffer buffer, nuint offset); + + [Abstract] + [Export ("commit")] + void Commit (); + + [Abstract] + [Export ("waitUntilCompleted")] + void WaitUntilCompleted (); + + [Abstract] + [Export ("tryCancel")] + void TryCancel (); + + [Abstract] + [Export ("addBarrier")] + void AddBarrier (); + + [Abstract] + [Export ("pushDebugGroup:")] + void PushDebugGroup (string group); + + [Abstract] + [Export ("popDebugGroup")] + void PopDebugGroup (); + + [Abstract] + [Export ("enqueue")] + void Enqueue (); + + [Abstract] + [Export ("waitForEvent:value:")] + void WaitForEvent (IMTLSharedEvent @event, ulong value); + + [Abstract] + [Export ("signalEvent:value:")] + void SignalEvent (IMTLSharedEvent @event, ulong value); + + [Abstract] + [NullAllowed, Export ("label")] + string Label { get; set; } + + [Abstract] + [Export ("status")] + MTLIOStatus Status { get; } + + [Abstract] + [NullAllowed, Export ("error")] + NSError Error { get; } + } + + interface IMTLIOCommandQueue {} + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLIOCommandQueue + { + [Abstract] + [Export ("enqueueBarrier")] + void EnqueueBarrier (); + + [Abstract] + [Export ("commandBuffer")] + IMTLIOCommandBuffer CommandBuffer { get; } + + [Abstract] + [Export ("commandBufferWithUnretainedReferences")] + IMTLIOCommandBuffer CommandBufferWithUnretainedReferences { get; } + + [Abstract] + [NullAllowed, Export ("label")] + string Label { get; set; } + } + + interface IMTLIOScratchBuffer {} + + [Mac (13,0), iOS (16,0)] + [Protocol] + interface MTLIOScratchBuffer + { + [Abstract] + [Export ("buffer")] + IMTLBuffer Buffer { get; } + } + + interface IMTLIOScratchBufferAllocator {} + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLIOScratchBufferAllocator + { + [Abstract] + [Export ("newScratchBufferWithMinimumSize:")] + [return: NullAllowed, Release] + IMTLIOScratchBuffer Create (nuint minimumSize); + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLObjectPayloadBinding : MTLBinding + { + [Abstract] + [Export ("objectPayloadAlignment")] + nuint ObjectPayloadAlignment { get; } + + [Abstract] + [Export ("objectPayloadDataSize")] + nuint ObjectPayloadDataSize { get; } + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLTextureBinding : MTLBinding + { + [Abstract] + [Export ("textureType")] + MTLTextureType TextureType { get; } + + [Abstract] + [Export ("textureDataType")] + MTLDataType TextureDataType { get; } + + [Abstract] + [Export ("depthTexture")] + bool DepthTexture { [Bind ("isDepthTexture")] get; } + + [Abstract] + [Export ("arrayLength")] + nuint ArrayLength { get; } + } + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [BaseType (typeof(MTLAccelerationStructureGeometryDescriptor))] + interface MTLAccelerationStructureCurveGeometryDescriptor + { + [NullAllowed, Export ("controlPointBuffer", ArgumentSemantic.Retain)] + IMTLBuffer ControlPointBuffer { get; set; } + + [Export ("controlPointBufferOffset")] + nuint ControlPointBufferOffset { get; set; } + + [Export ("controlPointCount")] + nuint ControlPointCount { get; set; } + + [Export ("controlPointStride")] + nuint ControlPointStride { get; set; } + + [Export ("controlPointFormat", ArgumentSemantic.Assign)] + MTLAttributeFormat ControlPointFormat { get; set; } + + [NullAllowed, Export ("radiusBuffer", ArgumentSemantic.Retain)] + IMTLBuffer RadiusBuffer { get; set; } + + [Export ("radiusBufferOffset")] + nuint RadiusBufferOffset { get; set; } + + [Export ("radiusFormat", ArgumentSemantic.Assign)] + MTLAttributeFormat RadiusFormat { get; set; } + + [Export ("radiusStride")] + nuint RadiusStride { get; set; } + + [NullAllowed, Export ("indexBuffer", ArgumentSemantic.Retain)] + IMTLBuffer IndexBuffer { get; set; } + + [Export ("indexBufferOffset")] + nuint IndexBufferOffset { get; set; } + + [Export ("indexType", ArgumentSemantic.Assign)] + MTLIndexType IndexType { get; set; } + + [Export ("segmentCount")] + nuint SegmentCount { get; set; } + + [Export ("segmentControlPointCount")] + nuint SegmentControlPointCount { get; set; } + + [Export ("curveType", ArgumentSemantic.Assign)] + MTLCurveType CurveType { get; set; } + + [Export ("curveBasis", ArgumentSemantic.Assign)] + MTLCurveBasis CurveBasis { get; set; } + + [Export ("curveEndCaps", ArgumentSemantic.Assign)] + MTLCurveEndCaps CurveEndCaps { get; set; } + + [Static] + [Export ("descriptor")] + MTLAccelerationStructureCurveGeometryDescriptor GetDescriptor (); + } + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [BaseType (typeof(MTLAccelerationStructureGeometryDescriptor))] + interface MTLAccelerationStructureMotionCurveGeometryDescriptor + { + [Export ("controlPointBuffers", ArgumentSemantic.Copy)] + MTLMotionKeyframeData[] ControlPointBuffers { get; set; } + + [Export ("controlPointCount")] + nuint ControlPointCount { get; set; } + + [Export ("controlPointStride")] + nuint ControlPointStride { get; set; } + + [Export ("controlPointFormat", ArgumentSemantic.Assign)] + MTLAttributeFormat ControlPointFormat { get; set; } + + [Export ("radiusBuffers", ArgumentSemantic.Copy)] + MTLMotionKeyframeData[] RadiusBuffers { get; set; } + + [Export ("radiusFormat", ArgumentSemantic.Assign)] + MTLAttributeFormat RadiusFormat { get; set; } + + [Export ("radiusStride")] + nuint RadiusStride { get; set; } + + [NullAllowed, Export ("indexBuffer", ArgumentSemantic.Retain)] + IMTLBuffer IndexBuffer { get; set; } + + [Export ("indexBufferOffset")] + nuint IndexBufferOffset { get; set; } + + [Export ("indexType", ArgumentSemantic.Assign)] + MTLIndexType IndexType { get; set; } + + [Export ("segmentCount")] + nuint SegmentCount { get; set; } + + [Export ("segmentControlPointCount")] + nuint SegmentControlPointCount { get; set; } + + [Export ("curveType", ArgumentSemantic.Assign)] + MTLCurveType CurveType { get; set; } + + [Export ("curveBasis", ArgumentSemantic.Assign)] + MTLCurveBasis CurveBasis { get; set; } + + [Export ("curveEndCaps", ArgumentSemantic.Assign)] + MTLCurveEndCaps CurveEndCaps { get; set; } + + [Static] + [Export ("descriptor")] + MTLAccelerationStructureMotionCurveGeometryDescriptor GetDescriptor (); + } + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [BaseType (typeof(NSObject))] + interface MTLArchitecture : NSCopying + { + [Export ("name")] + string Name { get; } + } + + [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [BaseType (typeof(MTLAccelerationStructureDescriptor))] + interface MTLIndirectInstanceAccelerationStructureDescriptor + { + [NullAllowed, Export ("instanceDescriptorBuffer", ArgumentSemantic.Retain)] + IMTLBuffer InstanceDescriptorBuffer { get; set; } + + [Export ("instanceDescriptorBufferOffset")] + nuint InstanceDescriptorBufferOffset { get; set; } + + [Export ("instanceDescriptorStride")] + nuint InstanceDescriptorStride { get; set; } + + [Export ("maxInstanceCount")] + nuint MaxInstanceCount { get; set; } + + [NullAllowed, Export ("instanceCountBuffer", ArgumentSemantic.Retain)] + IMTLBuffer InstanceCountBuffer { get; set; } + + [Export ("instanceCountBufferOffset")] + nuint InstanceCountBufferOffset { get; set; } + + [Export ("instanceDescriptorType", ArgumentSemantic.Assign)] + MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; } + + [NullAllowed, Export ("motionTransformBuffer", ArgumentSemantic.Retain)] + IMTLBuffer MotionTransformBuffer { get; set; } + + [Export ("motionTransformBufferOffset")] + nuint MotionTransformBufferOffset { get; set; } + + [Export ("maxMotionTransformCount")] + nuint MaxMotionTransformCount { get; set; } + + [NullAllowed, Export ("motionTransformCountBuffer", ArgumentSemantic.Retain)] + IMTLBuffer MotionTransformCountBuffer { get; set; } + + [Export ("motionTransformCountBufferOffset")] + nuint MotionTransformCountBufferOffset { get; set; } + + [Static] + [Export ("descriptor")] + MTLIndirectInstanceAccelerationStructureDescriptor GetDescriptor (); + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [BaseType (typeof(NSObject))] + interface MTLMeshRenderPipelineDescriptor : NSCopying + { + [NullAllowed, Export ("label")] + string Label { get; set; } + + [NullAllowed, Export ("objectFunction", ArgumentSemantic.Strong)] + IMTLFunction ObjectFunction { get; set; } + + [NullAllowed, Export ("meshFunction", ArgumentSemantic.Strong)] + IMTLFunction MeshFunction { get; set; } + + [NullAllowed, Export ("fragmentFunction", ArgumentSemantic.Strong)] + IMTLFunction FragmentFunction { get; set; } + + [Export ("maxTotalThreadsPerObjectThreadgroup")] + nuint MaxTotalThreadsPerObjectThreadgroup { get; set; } + + [Export ("maxTotalThreadsPerMeshThreadgroup")] + nuint MaxTotalThreadsPerMeshThreadgroup { get; set; } + + [Export ("objectThreadgroupSizeIsMultipleOfThreadExecutionWidth")] + bool ObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth { get; set; } + + [Export ("meshThreadgroupSizeIsMultipleOfThreadExecutionWidth")] + bool MeshThreadgroupSizeIsMultipleOfThreadExecutionWidth { get; set; } + + [Export ("payloadMemoryLength")] + nuint PayloadMemoryLength { get; set; } + + [Export ("maxTotalThreadgroupsPerMeshGrid")] + nuint MaxTotalThreadgroupsPerMeshGrid { get; set; } + + [Export ("objectBuffers")] + MTLPipelineBufferDescriptorArray ObjectBuffers { get; } + + [Export ("meshBuffers")] + MTLPipelineBufferDescriptorArray MeshBuffers { get; } + + [Export ("fragmentBuffers")] + MTLPipelineBufferDescriptorArray FragmentBuffers { get; } + + [Export ("rasterSampleCount")] + nuint RasterSampleCount { get; set; } + + [Export ("alphaToCoverageEnabled")] + bool AlphaToCoverageEnabled { [Bind ("isAlphaToCoverageEnabled")] get; set; } + + [Export ("alphaToOneEnabled")] + bool AlphaToOneEnabled { [Bind ("isAlphaToOneEnabled")] get; set; } + + [Export ("rasterizationEnabled")] + bool RasterizationEnabled { [Bind ("isRasterizationEnabled")] get; set; } + + [Export ("maxVertexAmplificationCount")] + nuint MaxVertexAmplificationCount { get; set; } + + [Export ("colorAttachments")] + MTLRenderPipelineColorAttachmentDescriptorArray ColorAttachments { get; } + + [Export ("depthAttachmentPixelFormat", ArgumentSemantic.Assign)] + MTLPixelFormat DepthAttachmentPixelFormat { get; set; } + + [Export ("stencilAttachmentPixelFormat", ArgumentSemantic.Assign)] + MTLPixelFormat StencilAttachmentPixelFormat { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [Export ("supportIndirectCommandBuffers")] + bool SupportIndirectCommandBuffers { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [NullAllowed, Export ("objectLinkedFunctions", ArgumentSemantic.Copy)] + MTLLinkedFunctions ObjectLinkedFunctions { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [NullAllowed, Export ("meshLinkedFunctions", ArgumentSemantic.Copy)] + MTLLinkedFunctions MeshLinkedFunctions { get; set; } + + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [NullAllowed, Export ("fragmentLinkedFunctions", ArgumentSemantic.Copy)] + MTLLinkedFunctions FragmentLinkedFunctions { get; set; } + + [Export ("reset")] + void Reset (); + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [BaseType (typeof(NSObject))] + interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : NSCopying + { + [NullAllowed, Export ("sampleBuffer", ArgumentSemantic.Retain)] + IMTLCounterSampleBuffer SampleBuffer { get; set; } + + [Export ("startOfEncoderSampleIndex")] + nuint StartOfEncoderSampleIndex { get; set; } + + [Export ("endOfEncoderSampleIndex")] + nuint EndOfEncoderSampleIndex { get; set; } + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [BaseType (typeof(NSObject))] + interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray + { + [Export ("objectAtIndexedSubscript:")] + MTLAccelerationStructurePassSampleBufferAttachmentDescriptor ObjectAtIndexedSubscript (nuint attachmentIndex); + + [Export ("setObject:atIndexedSubscript:")] + void SetObject ([NullAllowed] MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex); + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface MTLIOCommandQueueDescriptor : NSCopying + { + [Export ("maxCommandBufferCount")] + nuint MaxCommandBufferCount { get; set; } + + [Export ("priority", ArgumentSemantic.Assign)] + MTLIOPriority Priority { get; set; } + + [Export ("type", ArgumentSemantic.Assign)] + MTLIOCommandQueueType Type { get; set; } + + [Export ("maxCommandsInFlight")] + nuint MaxCommandsInFlight { get; set; } + + [NullAllowed, Export ("scratchBufferAllocator", ArgumentSemantic.Retain)] + IMTLIOScratchBufferAllocator ScratchBufferAllocator { get; set; } + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [BaseType (typeof(NSObject))] + interface MTLAccelerationStructurePassDescriptor : NSCopying + { + [Static] + [Export ("accelerationStructurePassDescriptor")] + MTLAccelerationStructurePassDescriptor AccelerationStructurePassDescriptor { get; } + + [Export ("sampleBufferAttachments")] + MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; } + } + + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Protocol] + interface MTLThreadgroupBinding : MTLBinding + { + [Abstract] + [Export ("threadgroupMemoryAlignment")] + nuint ThreadgroupMemoryAlignment { get; } + + [Abstract] + [Export ("threadgroupMemoryDataSize")] + nuint ThreadgroupMemoryDataSize { get; } + } + + } diff --git a/tests/introspection/ApiCMAttachmentTest.cs b/tests/introspection/ApiCMAttachmentTest.cs index 487e224967ce..b84c923955bd 100644 --- a/tests/introspection/ApiCMAttachmentTest.cs +++ b/tests/introspection/ApiCMAttachmentTest.cs @@ -253,6 +253,8 @@ protected virtual bool Skip (string nativeName) return true; #endif return false; + case "MTLIOCompressionContext": + return true; default: return false; } diff --git a/tests/introspection/iOS/iOSApiPInvokeTest.cs b/tests/introspection/iOS/iOSApiPInvokeTest.cs index 4b93dc01c676..3713c6e0255a 100644 --- a/tests/introspection/iOS/iOSApiPInvokeTest.cs +++ b/tests/introspection/iOS/iOSApiPInvokeTest.cs @@ -47,6 +47,10 @@ protected override bool Skip (string symbolName) case "MTKModelIOVertexDescriptorFromMetal": case "MTKModelIOVertexFormatFromMetal": case "MTKMetalVertexFormatFromModelIO": + case "MTLIOCompressionContextAppendData": + case "MTLIOCreateCompressionContext": + case "MTLIOFlushAndDestroyCompressionContext": + case "MTLIOCompressionContextDefaultChunkSize": case "MPSImageBatchIncrementReadCount": case "MPSImageBatchSynchronize": case "MPSImageBatchResourceSize": diff --git a/tests/introspection/iOS/iOSApiProtocolTest.cs b/tests/introspection/iOS/iOSApiProtocolTest.cs index 47ef79c329df..1aafceecd09d 100644 --- a/tests/introspection/iOS/iOSApiProtocolTest.cs +++ b/tests/introspection/iOS/iOSApiProtocolTest.cs @@ -87,6 +87,7 @@ protected override bool Skip (Type type) case "CAMetalLayer": case "MTLFunctionConstantValues": case "MTLHeapDescriptor": + case "MTLIOCommandQueueDescriptor": case "SWCollaborationActionHandler": case "UISymbolEffectCompletionContext": // Symbol not available in simulator - but works on BigSur (others might too) diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs new file mode 100644 index 000000000000..46d8fb0e1412 --- /dev/null +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -0,0 +1,53 @@ +using System; +using System.IO; +using System.Linq; +using Foundation; +using Metal; + +using NUnit.Framework; + +namespace MonoTouchFixtures.Metal { + public class MTLIOCompressionContextTest { + + string outputPath = string.Empty; + [SetUp] + public void SetUp () + { + TestRuntime.AssertXcodeVersion (15, 0); + var paths = NSSearchPath.GetDirectories (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User); + + // Convert once + outputPath = Path.Combine (paths [0], "output1"); + } + + + [TearDown] + public void TearDown () + { + File.Delete (outputPath); + } + + [Test] + public void DefaultChunkSize () + { + TestRuntime.AssertNotSimulator (); // metal api no supported on the sim + Assert.AreNotEqual (-1, MTLIOCompressionContext.DefaultChunkSize); + } + + [Test] + public void CreateAndFlushTest () + { + TestRuntime.AssertNotSimulator (); // metal api no supported on the sim + // create and flush, test should simple pass, no need to asserts + using var compressIO = MTLIOCompressionContext.Create (outputPath, MTLIOCompressionMethod.Lzfse, + MTLIOCompressionContext.DefaultChunkSize); + Assert.NotNull (compressIO, "Null compress IO"); + // add data + var data = Enumerable.Repeat((byte)0x20, 20).ToArray(); + compressIO!.AppendData (data); + compressIO!.FlushAndDestroy (); + // ensure we do not have issues with a second flush and destroy + compressIO.Dispose (); + } + } +} diff --git a/tests/monotouch-test/monotouch-test.csproj b/tests/monotouch-test/monotouch-test.csproj index e559b25aed4a..49c6b2e3cbf0 100644 --- a/tests/monotouch-test/monotouch-test.csproj +++ b/tests/monotouch-test/monotouch-test.csproj @@ -352,7 +352,7 @@ - + diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore index 748aca2efc4b..8c2a3124ac76 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore @@ -1,2 +1,29 @@ # MTLFunctionStitchingAttributeAlwaysInline is not documented and has no exposure !missing-type! MTLFunctionStitchingAttributeAlwaysInline not bound + +# needs to wait for xamcore 5 +!incorrect-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract +!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! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::newIOFileHandleWithURL:error: 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::newIOCommandQueueWithDescriptor:error: 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 diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore index aeba6e760c9d..809453848cda 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore @@ -1,2 +1,45 @@ ## Adding it to the icebox until it is available on all platforms -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple8 = 1008 not bound + +# has to wait for XAMCORE_5_0 +!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 +!incorrect-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: 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! 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 + +# 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 dbbf84c92ba8..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.todo +++ /dev/null @@ -1,361 +0,0 @@ -!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 -!deprecated-attribute-missing! MTLArgument missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLComputePipelineReflection::arguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::sampleCount missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::setSampleCount: missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::fragmentArguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::vertexArguments missing a [Deprecated] attribute -!missing-enum! MTLAccelerationStructureRefitOptions not bound -!missing-enum! MTLBindingType not bound -!missing-enum! MTLIOCommandQueueType not bound -!missing-enum! MTLIOCompressionMethod not bound -!missing-enum! MTLIOCompressionStatus not bound -!missing-enum! MTLIOError not bound -!missing-enum! MTLIOPriority not bound -!missing-enum! MTLIOStatus not bound -!missing-enum! MTLLibraryOptimizationLevel not bound -!missing-enum! MTLSparsePageSize not bound -!missing-enum-value! MTLBinaryArchiveError native value MTLBinaryArchiveErrorInternalError = 4 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeMesh = 7 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeObject = 8 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyMetal3 = 5001 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_0 = 196608 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageMesh = 16 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageObject = 8 not bound -!missing-field! MTLIOErrorDomain not bound -!missing-pinvoke! MTLIOCompressionContextAppendData is not bound -!missing-pinvoke! MTLIOCreateCompressionContext is not bound -!missing-pinvoke! MTLIOFlushAndDestroyCompressionContext is not bound -!missing-protocol! MTLBinding not bound -!missing-protocol! MTLBufferBinding not bound -!missing-protocol! MTLIOCommandBuffer not bound -!missing-protocol! MTLIOCommandQueue not bound -!missing-protocol! MTLIOFileHandle not bound -!missing-protocol! MTLIOScratchBuffer not bound -!missing-protocol! MTLIOScratchBufferAllocator not bound -!missing-protocol! MTLObjectPayloadBinding not bound -!missing-protocol! MTLTextureBinding not bound -!missing-protocol! MTLThreadgroupBinding not bound -!missing-protocol-member! MTLAccelerationStructure::gpuResourceID not found -!missing-protocol-member! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: not found -!missing-protocol-member! MTLBuffer::gpuAddress not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLComputePipelineState::gpuResourceID not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: not found -!missing-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: not found -!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: not found -!missing-protocol-member! MTLIndirectCommandBuffer::gpuResourceID not found -!missing-protocol-member! MTLIntersectionFunctionTable::gpuResourceID not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithResources:count:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithScope:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: not found -!missing-protocol-member! MTLRenderPipelineState::gpuResourceID not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadgroupsPerMeshGrid not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::meshThreadExecutionWidth not found -!missing-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth not found -!missing-protocol-member! MTLSamplerState::gpuResourceID not found -!missing-protocol-member! MTLTexture::gpuResourceID not found -!missing-protocol-member! MTLVisibleFunctionTable::gpuResourceID not found -!missing-selector! +MTLAccelerationStructurePassDescriptor::accelerationStructurePassDescriptor not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBuffer not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBufferOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataElementSize not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataStride not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructurePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLCompileOptions::optimizationLevel not bound -!missing-selector! MTLCompileOptions::setOptimizationLevel: not bound -!missing-selector! MTLComputePipelineReflection::bindings not bound -!missing-selector! MTLHeapDescriptor::setSparsePageSize: not bound -!missing-selector! MTLHeapDescriptor::sparsePageSize not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportRayTracing: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportRayTracing not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound -!missing-selector! MTLIOCommandQueueDescriptor::priority not bound -!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound -!missing-selector! MTLIOCommandQueueDescriptor::type not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::colorAttachments not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::depthAttachmentPixelFormat not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToCoverageEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToOneEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isRasterizationEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::label not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::payloadMemoryLength not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::rasterSampleCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::reset not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToCoverageEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToOneEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setLabel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setPayloadMemoryLength: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterizationEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterSampleCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::stencilAttachmentPixelFormat not bound -!missing-selector! MTLRenderPipelineReflection::fragmentBindings not bound -!missing-selector! MTLRenderPipelineReflection::meshBindings not bound -!missing-selector! MTLRenderPipelineReflection::objectBindings not bound -!missing-selector! MTLRenderPipelineReflection::tileBindings not bound -!missing-selector! MTLRenderPipelineReflection::vertexBindings not bound -!missing-type! MTLAccelerationStructurePassDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLIOCommandQueueDescriptor not bound -!missing-type! MTLMeshRenderPipelineDescriptor not bound -!deprecated-attribute-missing! MTLRenderPipelineReflection::tileArguments missing a [Deprecated] attribute -!missing-pinvoke! MTLIOCompressionContextDefaultChunkSize is not bound -!missing-protocol-member! MTLResourceStateCommandEncoder::moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin: not found -!missing-enum! MTLCompileSymbolVisibility not bound -!missing-protocol-member! MTLDevice::supportsBCTextureCompression not found -!missing-selector! MTLCompileOptions::allowReferencingUndefinedSymbols not bound -!missing-selector! MTLCompileOptions::compileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::maxTotalThreadsPerThreadgroup not bound -!missing-selector! MTLCompileOptions::setAllowReferencingUndefinedSymbols: not bound -!missing-selector! MTLCompileOptions::setCompileSymbolVisibility: not bound -!missing-selector! MTLCompileOptions::setMaxTotalThreadsPerThreadgroup: not bound -!missing-enum! MTLBindingAccess not bound -!missing-enum! MTLCurveBasis not bound -!missing-enum! MTLCurveEndCaps not bound -!missing-enum! MTLCurveType not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirect = 3 not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirectMotion = 4 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRGB9E5 = 55 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat = 121 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat2 = 122 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat3 = 123 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat4 = 124 not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionStoreFunctionInMetalScript = 2 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureCurveData = 128 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureMaxLevels = 64 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_1 = 196609 not bound -!missing-enum-value! MTLTextureUsage native value MTLTextureUsageShaderAtomic = 32 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRGB9E5 = 55 not bound -!missing-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: not found -!missing-protocol-member! MTLDevice::architecture not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::recommendedMaxWorkingSetSize not found -!missing-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: not found -!missing-selector! +MTLAccelerationStructureCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLIndirectInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLArchitecture::name not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxKernelThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxKernelThreadgroupMemoryBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportDynamicAttributeStride: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportDynamicAttributeStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxInstanceCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectLinkedFunctions: not bound -!missing-type! MTLAccelerationStructureCurveGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionCurveGeometryDescriptor not bound -!missing-type! MTLArchitecture not bound -!missing-type! MTLIndirectInstanceAccelerationStructureDescriptor not bound -!unknown-native-enum! MTLArgumentAccess bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple9 = 1009 not bound -!missing-enum-value! MTLIndirectCommandType native value MTLIndirectCommandTypeDrawMeshThreadgroups = 128 not bound -!missing-enum-value! MTLIndirectCommandType native value MTLIndirectCommandTypeDrawMeshThreads = 256 not bound -!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 -!missing-selector! MTLIndirectCommandBufferDescriptor::maxMeshBufferBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxObjectBufferBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxObjectThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxMeshBufferBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxObjectBufferBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxObjectThreadgroupMemoryBindCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setSupportIndirectCommandBuffers: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::supportIndirectCommandBuffers 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 a87297042e8d..be3a2dd4d0bc 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore @@ -2,3 +2,42 @@ !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! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: 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! 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 + +# 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 ffd61dd6fa29..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.todo +++ /dev/null @@ -1,346 +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-enum! MTLAccelerationStructureRefitOptions not bound -!missing-enum! MTLBindingType not bound -!missing-enum! MTLIOCommandQueueType not bound -!missing-enum! MTLIOCompressionMethod not bound -!missing-enum! MTLIOCompressionStatus not bound -!missing-enum! MTLIOError not bound -!missing-enum! MTLIOPriority not bound -!missing-enum! MTLIOStatus not bound -!missing-enum! MTLLibraryOptimizationLevel not bound -!missing-enum! MTLSparsePageSize not bound -!missing-enum! MTLTextureCompressionType not bound -!missing-enum-value! MTLBinaryArchiveError native value MTLBinaryArchiveErrorInternalError = 4 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeMesh = 7 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeObject = 8 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple8 = 1008 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyMetal3 = 5001 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_0 = 196608 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageMesh = 16 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageObject = 8 not bound -!missing-field! MTLIOErrorDomain not bound -!missing-pinvoke! MTLIOCompressionContextAppendData is not bound -!missing-pinvoke! MTLIOCreateCompressionContext is not bound -!missing-pinvoke! MTLIOFlushAndDestroyCompressionContext is not bound -!missing-protocol! MTLBinding not bound -!missing-protocol! MTLBufferBinding not bound -!missing-protocol! MTLIOCommandBuffer not bound -!missing-protocol! MTLIOCommandQueue not bound -!missing-protocol! MTLIOFileHandle not bound -!missing-protocol! MTLIOScratchBuffer not bound -!missing-protocol! MTLIOScratchBufferAllocator not bound -!missing-protocol! MTLObjectPayloadBinding not bound -!missing-protocol! MTLTextureBinding not bound -!missing-protocol! MTLThreadgroupBinding not bound -!missing-protocol-member! MTLAccelerationStructure::gpuResourceID not found -!missing-protocol-member! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: not found -!missing-protocol-member! MTLBuffer::gpuAddress not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLComputePipelineState::gpuResourceID not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: not found -!missing-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: not found -!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: not found -!missing-protocol-member! MTLIndirectCommandBuffer::gpuResourceID not found -!missing-protocol-member! MTLIntersectionFunctionTable::gpuResourceID not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: not found -!missing-protocol-member! MTLRenderPipelineState::gpuResourceID not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadgroupsPerMeshGrid not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::meshThreadExecutionWidth not found -!missing-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth not found -!missing-protocol-member! MTLSamplerState::gpuResourceID not found -!missing-protocol-member! MTLTexture::compressionType not found -!missing-protocol-member! MTLTexture::gpuResourceID not found -!missing-protocol-member! MTLVisibleFunctionTable::gpuResourceID not found -!missing-selector! +MTLAccelerationStructurePassDescriptor::accelerationStructurePassDescriptor not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBuffer not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBufferOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataElementSize not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataStride not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructurePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLCompileOptions::optimizationLevel not bound -!missing-selector! MTLCompileOptions::setOptimizationLevel: not bound -!missing-selector! MTLComputePipelineReflection::bindings not bound -!missing-selector! MTLHeapDescriptor::setSparsePageSize: not bound -!missing-selector! MTLHeapDescriptor::sparsePageSize not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportRayTracing: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportRayTracing not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound -!missing-selector! MTLIOCommandQueueDescriptor::priority not bound -!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound -!missing-selector! MTLIOCommandQueueDescriptor::type not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::colorAttachments not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::depthAttachmentPixelFormat not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToCoverageEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToOneEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isRasterizationEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::label not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::payloadMemoryLength not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::rasterSampleCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::reset not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToCoverageEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToOneEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setLabel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setPayloadMemoryLength: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterizationEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterSampleCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::stencilAttachmentPixelFormat not bound -!missing-selector! MTLRenderPipelineReflection::fragmentBindings not bound -!missing-selector! MTLRenderPipelineReflection::meshBindings not bound -!missing-selector! MTLRenderPipelineReflection::objectBindings not bound -!missing-selector! MTLRenderPipelineReflection::tileBindings not bound -!missing-selector! MTLRenderPipelineReflection::vertexBindings not bound -!missing-selector! MTLTextureDescriptor::compressionType not bound -!missing-selector! MTLTextureDescriptor::setCompressionType: not bound -!missing-type! MTLAccelerationStructurePassDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLIOCommandQueueDescriptor not bound -!missing-type! MTLMeshRenderPipelineDescriptor not bound -!missing-pinvoke! MTLIOCompressionContextDefaultChunkSize is not bound -!missing-protocol-member! MTLResourceStateCommandEncoder::moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin: not found -!missing-enum! MTLCompileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::allowReferencingUndefinedSymbols not bound -!missing-selector! MTLCompileOptions::compileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::maxTotalThreadsPerThreadgroup not bound -!missing-selector! MTLCompileOptions::setAllowReferencingUndefinedSymbols: not bound -!missing-selector! MTLCompileOptions::setCompileSymbolVisibility: not bound -!missing-selector! MTLCompileOptions::setMaxTotalThreadsPerThreadgroup: not bound -!missing-protocol-member! MTLDevice::maximumConcurrentCompilationTaskCount not found -!missing-protocol-member! MTLDevice::setShouldMaximizeConcurrentCompilation: not found -!missing-protocol-member! MTLDevice::shouldMaximizeConcurrentCompilation not found -!missing-enum! MTLBindingAccess not bound -!missing-enum! MTLCurveBasis not bound -!missing-enum! MTLCurveEndCaps not bound -!missing-enum! MTLCurveType not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirect = 3 not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirectMotion = 4 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRGB9E5 = 55 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat = 121 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat2 = 122 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat3 = 123 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat4 = 124 not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionStoreFunctionInMetalScript = 2 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureCurveData = 128 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureMaxLevels = 64 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_1 = 196609 not bound -!missing-enum-value! MTLTextureUsage native value MTLTextureUsageShaderAtomic = 32 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRGB9E5 = 55 not bound -!missing-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: not found -!missing-protocol-member! MTLDevice::architecture not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found -!missing-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: not found -!missing-selector! +MTLAccelerationStructureCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLIndirectInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLArchitecture::name not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxKernelThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxKernelThreadgroupMemoryBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportDynamicAttributeStride: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportDynamicAttributeStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxInstanceCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectLinkedFunctions: not bound -!missing-type! MTLAccelerationStructureCurveGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionCurveGeometryDescriptor not bound -!missing-type! MTLArchitecture not bound -!missing-type! MTLIndirectInstanceAccelerationStructureDescriptor not bound -!unknown-native-enum! MTLArgumentAccess bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple9 = 1009 not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore new file mode 100644 index 000000000000..59888c6e44c8 --- /dev/null +++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore @@ -0,0 +1,102 @@ +# has to wait for XAMCORE_5_0 +!incorrect-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: 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! 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 + +# 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 69d1512e62fc..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.todo +++ /dev/null @@ -1,592 +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 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not -!deprecated-attribute-missing! MTLArgument missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLComputePipelineReflection::arguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::sampleCount missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::setSampleCount: missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::fragmentArguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::vertexArguments missing a [Deprecated] attribute -!missing-enum! MTLBindingType not bound -!missing-enum! MTLIOCommandQueueType not bound -!missing-enum! MTLIOCompressionMethod not bound -!missing-enum! MTLIOCompressionStatus not bound -!missing-enum! MTLIOError not bound -!missing-enum! MTLIOPriority not bound -!missing-enum! MTLIOStatus not bound -!missing-enum! MTLLibraryOptimizationLevel not bound -!missing-enum-value! MTLBinaryArchiveError native value MTLBinaryArchiveErrorInternalError = 4 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyMetal3 = 5001 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_0 = 196608 not bound -!missing-field! MTLIOErrorDomain not bound -!missing-pinvoke! MTLIOCompressionContextAppendData is not bound -!missing-pinvoke! MTLIOCreateCompressionContext is not bound -!missing-pinvoke! MTLIOFlushAndDestroyCompressionContext is not bound -!missing-protocol! MTLBinding not bound -!missing-protocol! MTLBufferBinding not bound -!missing-protocol! MTLIOCommandBuffer not bound -!missing-protocol! MTLIOCommandQueue not bound -!missing-protocol! MTLIOFileHandle not bound -!missing-protocol! MTLIOScratchBuffer not bound -!missing-protocol! MTLIOScratchBufferAllocator not bound -!missing-protocol! MTLTextureBinding not bound -!missing-protocol! MTLThreadgroupBinding not bound -!missing-protocol-member! MTLBuffer::gpuAddress not found -!missing-protocol-member! MTLComputePipelineState::gpuResourceID not found -!missing-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: not found -!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!missing-protocol-member! MTLIndirectCommandBuffer::gpuResourceID not found -!missing-protocol-member! MTLRenderPipelineState::gpuResourceID not found -!missing-protocol-member! MTLSamplerState::gpuResourceID not found -!missing-protocol-member! MTLTexture::gpuResourceID not found -!missing-selector! MTLCompileOptions::optimizationLevel not bound -!missing-selector! MTLCompileOptions::setOptimizationLevel: not bound -!missing-selector! MTLComputePipelineReflection::bindings not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound -!missing-selector! MTLIOCommandQueueDescriptor::priority not bound -!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound -!missing-selector! MTLIOCommandQueueDescriptor::type not bound -!missing-selector! MTLRenderPipelineReflection::fragmentBindings not bound -!missing-selector! MTLRenderPipelineReflection::tileBindings not bound -!missing-selector! MTLRenderPipelineReflection::vertexBindings not bound -!missing-type! MTLIOCommandQueueDescriptor not bound -!deprecated-attribute-missing! MTLRenderPipelineReflection::tileArguments missing a [Deprecated] attribute -!missing-pinvoke! MTLIOCompressionContextDefaultChunkSize is not bound -!missing-enum! MTLAccelerationStructureInstanceDescriptorType not bound -!missing-enum! MTLAccelerationStructureRefitOptions not bound -!missing-enum! MTLAccelerationStructureUsage not bound -!missing-enum! MTLIntersectionFunctionSignature not bound -!missing-enum! MTLMotionBorderMode not bound -!missing-enum! MTLSamplerBorderColor not bound -!missing-enum! MTLSparsePageSize not bound -!missing-enum! MTLSparseTextureMappingMode not bound -!missing-enum! MTLSparseTextureRegionAlignmentMode not bound -!missing-enum! MTLTextureCompressionType not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeMesh = 7 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeObject = 8 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple8 = 1008 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageMesh = 16 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageObject = 8 not bound -!missing-protocol! MTLAccelerationStructure not bound -!missing-protocol! MTLAccelerationStructureCommandEncoder not bound -!missing-protocol! MTLFunctionHandle not bound -!missing-protocol! MTLIntersectionFunctionTable not bound -!missing-protocol! MTLObjectPayloadBinding not bound -!missing-protocol! MTLRasterizationRateMap not bound -!missing-protocol! MTLResourceStateCommandEncoder not bound -!missing-protocol! MTLVisibleFunctionTable not bound -!missing-protocol-member! MTLArgumentEncoder::setAccelerationStructure:atIndex: not found -!missing-protocol-member! MTLArgumentEncoder::setIntersectionFunctionTable:atIndex: not found -!missing-protocol-member! MTLArgumentEncoder::setIntersectionFunctionTables:withRange: not found -!missing-protocol-member! MTLArgumentEncoder::setVisibleFunctionTable:atIndex: not found -!missing-protocol-member! MTLArgumentEncoder::setVisibleFunctionTables:withRange: not found -!missing-protocol-member! MTLBlitCommandEncoder::getTextureAccessCounters:region:mipLevel:slice:resetCounters:countersBuffer:countersBufferOffset: not found -!missing-protocol-member! MTLBlitCommandEncoder::resetTextureAccessCounters:region:mipLevel:slice: not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoder not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLCommandBuffer::resourceStateCommandEncoder not found -!missing-protocol-member! MTLCommandBuffer::resourceStateCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLComputeCommandEncoder::setAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLComputePipelineState::functionHandleWithFunction: not found -!missing-protocol-member! MTLComputePipelineState::newComputePipelineStateWithAdditionalBinaryFunctions:error: not found -!missing-protocol-member! MTLComputePipelineState::newIntersectionFunctionTableWithDescriptor: not found -!missing-protocol-member! MTLComputePipelineState::newVisibleFunctionTableWithDescriptor: not found -!missing-protocol-member! MTLDevice::accelerationStructureSizesWithDescriptor: not found -!missing-protocol-member! MTLDevice::convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions: not found -!missing-protocol-member! MTLDevice::convertSparseTileRegions:toPixelRegions:withTileSize:numRegions: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: not found -!missing-protocol-member! MTLDevice::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLDevice::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLDevice::newRasterizationRateMapWithDescriptor: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytes not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: not found -!missing-protocol-member! MTLDevice::supports32BitFloatFiltering not found -!missing-protocol-member! MTLDevice::supports32BitMSAA not found -!missing-protocol-member! MTLDevice::supportsFunctionPointers not found -!missing-protocol-member! MTLDevice::supportsFunctionPointersFromRender not found -!missing-protocol-member! MTLDevice::supportsPrimitiveMotionBlur not found -!missing-protocol-member! MTLDevice::supportsQueryTextureLOD not found -!missing-protocol-member! MTLDevice::supportsRasterizationRateMapWithLayerCount: not found -!missing-protocol-member! MTLDevice::supportsRaytracing not found -!missing-protocol-member! MTLDevice::supportsRaytracingFromRender not found -!missing-protocol-member! MTLDevice::supportsShaderBarycentricCoordinates not found -!missing-protocol-member! MTLDevice::supportsVertexAmplificationCount: not found -!missing-protocol-member! MTLFunction::options not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: not found -!missing-protocol-member! MTLLibrary::newIntersectionFunctionWithDescriptor:completionHandler: not found -!missing-protocol-member! MTLLibrary::newIntersectionFunctionWithDescriptor:error: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithResources:count:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithScope:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexAmplificationCount:viewMappings: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderPipelineState::functionHandleWithFunction:stage: not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadgroupsPerMeshGrid not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::meshThreadExecutionWidth not found -!missing-protocol-member! MTLRenderPipelineState::newIntersectionFunctionTableWithDescriptor:stage: not found -!missing-protocol-member! MTLRenderPipelineState::newRenderPipelineStateWithAdditionalBinaryFunctions:error: not found -!missing-protocol-member! MTLRenderPipelineState::newVisibleFunctionTableWithDescriptor:stage: not found -!missing-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth not found -!missing-protocol-member! MTLTexture::compressionType not found -!missing-protocol-member! MTLTexture::firstMipmapInTail not found -!missing-protocol-member! MTLTexture::isSparse not found -!missing-protocol-member! MTLTexture::tailSizeInBytes not found -!missing-selector! +MTLAccelerationStructureBoundingBoxGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionTriangleGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructurePassDescriptor::accelerationStructurePassDescriptor not bound -!missing-selector! +MTLAccelerationStructureTriangleGeometryDescriptor::descriptor not bound -!missing-selector! +MTLInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! +MTLIntersectionFunctionTableDescriptor::intersectionFunctionTableDescriptor not bound -!missing-selector! +MTLMotionKeyframeData::data not bound -!missing-selector! +MTLPrimitiveAccelerationStructureDescriptor::descriptor not bound -!missing-selector! +MTLRasterizationRateMapDescriptor::rasterizationRateMapDescriptorWithScreenSize: not bound -!missing-selector! +MTLRasterizationRateMapDescriptor::rasterizationRateMapDescriptorWithScreenSize:layer: not bound -!missing-selector! +MTLRasterizationRateMapDescriptor::rasterizationRateMapDescriptorWithScreenSize:layerCount:layers: not bound -!missing-selector! +MTLResourceStatePassDescriptor::resourceStatePassDescriptor not bound -!missing-selector! +MTLVisibleFunctionTableDescriptor::visibleFunctionTableDescriptor not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBuffer not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBufferOffset not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxCount not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxStride not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBuffer: not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBufferOffset: not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxCount: not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxStride: not bound -!missing-selector! MTLAccelerationStructureDescriptor::setUsage: not bound -!missing-selector! MTLAccelerationStructureDescriptor::usage not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::allowDuplicateIntersectionFunctionInvocation not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::intersectionFunctionTableOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::label not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::opaque not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBuffer not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBufferOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataElementSize not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataStride not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setAllowDuplicateIntersectionFunctionInvocation: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setIntersectionFunctionTableOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setLabel: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setOpaque: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataStride: not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxBuffers not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxCount not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxStride not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxCount: not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTriangleCount: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::triangleCount not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexBuffers not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexStride not bound -!missing-selector! MTLAccelerationStructurePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTriangleCount: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexStride: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::triangleCount not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexStride not bound -!missing-selector! MTLComputePipelineDescriptor::maxCallStackDepth not bound -!missing-selector! MTLComputePipelineDescriptor::setMaxCallStackDepth: not bound -!missing-selector! MTLComputePipelineDescriptor::setSupportAddingBinaryFunctions: not bound -!missing-selector! MTLComputePipelineDescriptor::supportAddingBinaryFunctions not bound -!missing-selector! MTLHeapDescriptor::setSparsePageSize: not bound -!missing-selector! MTLHeapDescriptor::sparsePageSize not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportRayTracing: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportRayTracing not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceCount not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instancedAccelerationStructures not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformCount not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceCount: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstancedAccelerationStructures: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformCount: not bound -!missing-selector! MTLIntersectionFunctionTableDescriptor::functionCount not bound -!missing-selector! MTLIntersectionFunctionTableDescriptor::setFunctionCount: not bound -!missing-selector! MTLLinkedFunctions::binaryFunctions not bound -!missing-selector! MTLLinkedFunctions::setBinaryFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::colorAttachments not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::depthAttachmentPixelFormat not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToCoverageEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToOneEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isRasterizationEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::label not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::payloadMemoryLength not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::rasterSampleCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::reset not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToCoverageEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToOneEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setLabel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setPayloadMemoryLength: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterizationEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterSampleCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::stencilAttachmentPixelFormat not bound -!missing-selector! MTLMotionKeyframeData::buffer not bound -!missing-selector! MTLMotionKeyframeData::offset not bound -!missing-selector! MTLMotionKeyframeData::setBuffer: not bound -!missing-selector! MTLMotionKeyframeData::setOffset: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::geometryDescriptors not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionEndBorderMode not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionEndTime not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionKeyframeCount not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionStartBorderMode not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionStartTime not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setGeometryDescriptors: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionEndBorderMode: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionEndTime: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionKeyframeCount: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionStartBorderMode: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionStartTime: not bound -!missing-selector! MTLRasterizationRateLayerArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLRasterizationRateLayerArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::horizontal not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::horizontalSampleStorage not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::initWithSampleCount: not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::initWithSampleCount:horizontal:vertical: not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::maxSampleCount not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::sampleCount not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::vertical not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::verticalSampleStorage not bound -!missing-selector! MTLRasterizationRateLayerDescriptorMTLRasterizationRateLayerDescriptor::setSampleCount: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::label not bound -!missing-selector! MTLRasterizationRateMapDescriptor::layerAtIndex: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::layerCount not bound -!missing-selector! MTLRasterizationRateMapDescriptor::layers not bound -!missing-selector! MTLRasterizationRateMapDescriptor::screenSize not bound -!missing-selector! MTLRasterizationRateMapDescriptor::setLabel: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::setLayer:atIndex: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::setScreenSize: not bound -!missing-selector! MTLRasterizationRateSampleArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLRasterizationRateSampleArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLRenderPassDescriptor::rasterizationRateMap not bound -!missing-selector! MTLRenderPassDescriptor::setRasterizationRateMap: not bound -!missing-selector! MTLRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::fragmentAdditionalBinaryFunctions not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::setFragmentAdditionalBinaryFunctions: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::setTileAdditionalBinaryFunctions: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::setVertexAdditionalBinaryFunctions: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::tileAdditionalBinaryFunctions not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::vertexAdditionalBinaryFunctions not bound -!missing-selector! MTLRenderPipelineReflection::meshBindings not bound -!missing-selector! MTLRenderPipelineReflection::objectBindings not bound -!missing-selector! MTLResourceStatePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLSamplerDescriptor::borderColor not bound -!missing-selector! MTLSamplerDescriptor::setBorderColor: not bound -!missing-selector! MTLTextureDescriptor::compressionType not bound -!missing-selector! MTLTextureDescriptor::setCompressionType: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::maxCallStackDepth not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setMaxCallStackDepth: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setSupportAddingBinaryFunctions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::supportAddingBinaryFunctions not bound -!missing-selector! MTLVisibleFunctionTableDescriptor::functionCount not bound -!missing-selector! MTLVisibleFunctionTableDescriptor::setFunctionCount: not bound -!missing-type! MTLAccelerationStructureBoundingBoxGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureDescriptor not bound -!missing-type! MTLAccelerationStructureGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionTriangleGeometryDescriptor not bound -!missing-type! MTLAccelerationStructurePassDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLAccelerationStructureTriangleGeometryDescriptor not bound -!missing-type! MTLInstanceAccelerationStructureDescriptor not bound -!missing-type! MTLIntersectionFunctionDescriptor not bound -!missing-type! MTLIntersectionFunctionTableDescriptor not bound -!missing-type! MTLMeshRenderPipelineDescriptor not bound -!missing-type! MTLMotionKeyframeData not bound -!missing-type! MTLPrimitiveAccelerationStructureDescriptor not bound -!missing-type! MTLRasterizationRateLayerArray not bound -!missing-type! MTLRasterizationRateLayerDescriptor not bound -!missing-type! MTLRasterizationRateMapDescriptor not bound -!missing-type! MTLRasterizationRateSampleArray not bound -!missing-type! MTLRenderPipelineFunctionsDescriptor not bound -!missing-type! MTLResourceStatePassDescriptor not bound -!missing-type! MTLResourceStatePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLResourceStatePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLVisibleFunctionTableDescriptor not bound -!missing-enum! MTLCompileSymbolVisibility not bound -!missing-protocol-member! MTLDevice::supportsBCTextureCompression not found -!missing-selector! MTLCompileOptions::allowReferencingUndefinedSymbols not bound -!missing-selector! MTLCompileOptions::compileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::maxTotalThreadsPerThreadgroup not bound -!missing-selector! MTLCompileOptions::setAllowReferencingUndefinedSymbols: not bound -!missing-selector! MTLCompileOptions::setCompileSymbolVisibility: not bound -!missing-selector! MTLCompileOptions::setMaxTotalThreadsPerThreadgroup: not bound -!missing-enum! MTLBindingAccess not bound -!missing-enum! MTLCurveBasis not bound -!missing-enum! MTLCurveEndCaps not bound -!missing-enum! MTLCurveType not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRGB9E5 = 55 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat = 121 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat2 = 122 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat3 = 123 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat4 = 124 not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionStoreFunctionInMetalScript = 2 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_1 = 196609 not bound -!missing-enum-value! MTLTextureUsage native value MTLTextureUsageShaderAtomic = 32 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRGB9E5 = 55 not bound -!missing-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: not found -!missing-protocol-member! MTLDevice::architecture not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::recommendedMaxWorkingSetSize not found -!missing-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: not found -!missing-selector! +MTLAccelerationStructureCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLIndirectInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLArchitecture::name not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxKernelThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxKernelThreadgroupMemoryBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportDynamicAttributeStride: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportDynamicAttributeStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxInstanceCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectLinkedFunctions: not bound -!missing-type! MTLAccelerationStructureCurveGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionCurveGeometryDescriptor not bound -!missing-type! MTLArchitecture not bound -!missing-type! MTLIndirectInstanceAccelerationStructureDescriptor not bound -!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/common-Metal.ignore b/tests/xtro-sharpie/common-Metal.ignore index 1f5e5101e1fd..3bc7e1f73f37 100644 --- a/tests/xtro-sharpie/common-Metal.ignore +++ b/tests/xtro-sharpie/common-Metal.ignore @@ -163,11 +163,42 @@ !incorrect-protocol-member! MTLRenderPipelineState::imageblockSampleLength is REQUIRED and should be abstract !incorrect-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerThreadgroup is REQUIRED and should be abstract !incorrect-protocol-member! MTLRenderPipelineState::threadgroupSizeMatchesTileSize is REQUIRED and should be abstract - +!incorrect-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract +!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! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::newIOFileHandleWithURL:error: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: 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! 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! MTLBinaryArchive::addFunctionWithDescriptor:library:error: is REQUIRED and should be abstract !incorrect-protocol-member! MTLDevice::newLibraryWithStitchedDescriptor:completionHandler: is REQUIRED and should be abstract !incorrect-protocol-member! MTLDevice::newLibraryWithStitchedDescriptor:error: is REQUIRED and should be abstract !incorrect-protocol-member! MTLDevice::supportsRenderDynamicLibraries is REQUIRED and should be abstract +!incorrect-protocol-member! MTLIntersectionFunctionTable::gpuResourceID 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 # MTLFunctionStitchingAttributeAlwaysInline is not documented and has no exposure !missing-type! MTLFunctionStitchingAttributeAlwaysInline not bound + +# to be fixed in XAMCORE_5_0 +!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::newIOCommandQueueWithDescriptor:error: 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 diff --git a/tests/xtro-sharpie/iOS-Metal.ignore b/tests/xtro-sharpie/iOS-Metal.ignore index f666496e7f32..fdcbd398ad3d 100644 --- a/tests/xtro-sharpie/iOS-Metal.ignore +++ b/tests/xtro-sharpie/iOS-Metal.ignore @@ -106,7 +106,6 @@ !incorrect-protocol-member! MTLTexture::compressionType is REQUIRED and should be abstract ## Adding it to the icebox until it is available on all platforms -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple8 = 1008 not bound !incorrect-protocol-member! MTLIndirectRenderCommand::setRenderPipelineState: 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 @@ -134,3 +133,55 @@ !incorrect-protocol-member! MTLDevice::supportsRaytracingFromRender 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 + +# has to wait for XAMCORE_5_0 +!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 +!incorrect-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::recommendedMaxWorkingSetSize is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::supportsBCTextureCompression 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! 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::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::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 + +# deprecated but cannot be removed +!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/iOS-Metal.todo b/tests/xtro-sharpie/iOS-Metal.todo deleted file mode 100644 index dbbf84c92ba8..000000000000 --- a/tests/xtro-sharpie/iOS-Metal.todo +++ /dev/null @@ -1,361 +0,0 @@ -!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 -!deprecated-attribute-missing! MTLArgument missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLComputePipelineReflection::arguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::sampleCount missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::setSampleCount: missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::fragmentArguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::vertexArguments missing a [Deprecated] attribute -!missing-enum! MTLAccelerationStructureRefitOptions not bound -!missing-enum! MTLBindingType not bound -!missing-enum! MTLIOCommandQueueType not bound -!missing-enum! MTLIOCompressionMethod not bound -!missing-enum! MTLIOCompressionStatus not bound -!missing-enum! MTLIOError not bound -!missing-enum! MTLIOPriority not bound -!missing-enum! MTLIOStatus not bound -!missing-enum! MTLLibraryOptimizationLevel not bound -!missing-enum! MTLSparsePageSize not bound -!missing-enum-value! MTLBinaryArchiveError native value MTLBinaryArchiveErrorInternalError = 4 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeMesh = 7 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeObject = 8 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyMetal3 = 5001 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_0 = 196608 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageMesh = 16 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageObject = 8 not bound -!missing-field! MTLIOErrorDomain not bound -!missing-pinvoke! MTLIOCompressionContextAppendData is not bound -!missing-pinvoke! MTLIOCreateCompressionContext is not bound -!missing-pinvoke! MTLIOFlushAndDestroyCompressionContext is not bound -!missing-protocol! MTLBinding not bound -!missing-protocol! MTLBufferBinding not bound -!missing-protocol! MTLIOCommandBuffer not bound -!missing-protocol! MTLIOCommandQueue not bound -!missing-protocol! MTLIOFileHandle not bound -!missing-protocol! MTLIOScratchBuffer not bound -!missing-protocol! MTLIOScratchBufferAllocator not bound -!missing-protocol! MTLObjectPayloadBinding not bound -!missing-protocol! MTLTextureBinding not bound -!missing-protocol! MTLThreadgroupBinding not bound -!missing-protocol-member! MTLAccelerationStructure::gpuResourceID not found -!missing-protocol-member! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: not found -!missing-protocol-member! MTLBuffer::gpuAddress not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLComputePipelineState::gpuResourceID not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: not found -!missing-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: not found -!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: not found -!missing-protocol-member! MTLIndirectCommandBuffer::gpuResourceID not found -!missing-protocol-member! MTLIntersectionFunctionTable::gpuResourceID not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithResources:count:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithScope:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: not found -!missing-protocol-member! MTLRenderPipelineState::gpuResourceID not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadgroupsPerMeshGrid not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::meshThreadExecutionWidth not found -!missing-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth not found -!missing-protocol-member! MTLSamplerState::gpuResourceID not found -!missing-protocol-member! MTLTexture::gpuResourceID not found -!missing-protocol-member! MTLVisibleFunctionTable::gpuResourceID not found -!missing-selector! +MTLAccelerationStructurePassDescriptor::accelerationStructurePassDescriptor not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBuffer not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBufferOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataElementSize not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataStride not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructurePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLCompileOptions::optimizationLevel not bound -!missing-selector! MTLCompileOptions::setOptimizationLevel: not bound -!missing-selector! MTLComputePipelineReflection::bindings not bound -!missing-selector! MTLHeapDescriptor::setSparsePageSize: not bound -!missing-selector! MTLHeapDescriptor::sparsePageSize not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportRayTracing: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportRayTracing not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound -!missing-selector! MTLIOCommandQueueDescriptor::priority not bound -!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound -!missing-selector! MTLIOCommandQueueDescriptor::type not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::colorAttachments not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::depthAttachmentPixelFormat not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToCoverageEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToOneEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isRasterizationEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::label not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::payloadMemoryLength not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::rasterSampleCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::reset not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToCoverageEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToOneEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setLabel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setPayloadMemoryLength: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterizationEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterSampleCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::stencilAttachmentPixelFormat not bound -!missing-selector! MTLRenderPipelineReflection::fragmentBindings not bound -!missing-selector! MTLRenderPipelineReflection::meshBindings not bound -!missing-selector! MTLRenderPipelineReflection::objectBindings not bound -!missing-selector! MTLRenderPipelineReflection::tileBindings not bound -!missing-selector! MTLRenderPipelineReflection::vertexBindings not bound -!missing-type! MTLAccelerationStructurePassDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLIOCommandQueueDescriptor not bound -!missing-type! MTLMeshRenderPipelineDescriptor not bound -!deprecated-attribute-missing! MTLRenderPipelineReflection::tileArguments missing a [Deprecated] attribute -!missing-pinvoke! MTLIOCompressionContextDefaultChunkSize is not bound -!missing-protocol-member! MTLResourceStateCommandEncoder::moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin: not found -!missing-enum! MTLCompileSymbolVisibility not bound -!missing-protocol-member! MTLDevice::supportsBCTextureCompression not found -!missing-selector! MTLCompileOptions::allowReferencingUndefinedSymbols not bound -!missing-selector! MTLCompileOptions::compileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::maxTotalThreadsPerThreadgroup not bound -!missing-selector! MTLCompileOptions::setAllowReferencingUndefinedSymbols: not bound -!missing-selector! MTLCompileOptions::setCompileSymbolVisibility: not bound -!missing-selector! MTLCompileOptions::setMaxTotalThreadsPerThreadgroup: not bound -!missing-enum! MTLBindingAccess not bound -!missing-enum! MTLCurveBasis not bound -!missing-enum! MTLCurveEndCaps not bound -!missing-enum! MTLCurveType not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirect = 3 not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirectMotion = 4 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRGB9E5 = 55 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat = 121 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat2 = 122 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat3 = 123 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat4 = 124 not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionStoreFunctionInMetalScript = 2 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureCurveData = 128 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureMaxLevels = 64 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_1 = 196609 not bound -!missing-enum-value! MTLTextureUsage native value MTLTextureUsageShaderAtomic = 32 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRGB9E5 = 55 not bound -!missing-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: not found -!missing-protocol-member! MTLDevice::architecture not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::recommendedMaxWorkingSetSize not found -!missing-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: not found -!missing-selector! +MTLAccelerationStructureCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLIndirectInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLArchitecture::name not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxKernelThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxKernelThreadgroupMemoryBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportDynamicAttributeStride: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportDynamicAttributeStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxInstanceCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectLinkedFunctions: not bound -!missing-type! MTLAccelerationStructureCurveGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionCurveGeometryDescriptor not bound -!missing-type! MTLArchitecture not bound -!missing-type! MTLIndirectInstanceAccelerationStructureDescriptor not bound -!unknown-native-enum! MTLArgumentAccess bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple9 = 1009 not bound -!missing-enum-value! MTLIndirectCommandType native value MTLIndirectCommandTypeDrawMeshThreadgroups = 128 not bound -!missing-enum-value! MTLIndirectCommandType native value MTLIndirectCommandTypeDrawMeshThreads = 256 not bound -!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 -!missing-selector! MTLIndirectCommandBufferDescriptor::maxMeshBufferBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxObjectBufferBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxObjectThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxMeshBufferBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxObjectBufferBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxObjectThreadgroupMemoryBindCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setSupportIndirectCommandBuffers: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::supportIndirectCommandBuffers not bound diff --git a/tests/xtro-sharpie/macOS-Metal.ignore b/tests/xtro-sharpie/macOS-Metal.ignore index 590149e1aa1e..e8974578f83a 100644 --- a/tests/xtro-sharpie/macOS-Metal.ignore +++ b/tests/xtro-sharpie/macOS-Metal.ignore @@ -150,3 +150,47 @@ !incorrect-protocol-member! MTLDevice::supportsRaytracingFromRender 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 + +# has to wait for XAMCORE_5_0 +!incorrect-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: 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::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! MTLTexture::compressionType is REQUIRED and should be abstract + +# deprecated but cannot be removed +!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/macOS-Metal.todo b/tests/xtro-sharpie/macOS-Metal.todo deleted file mode 100644 index ffd61dd6fa29..000000000000 --- a/tests/xtro-sharpie/macOS-Metal.todo +++ /dev/null @@ -1,346 +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-enum! MTLAccelerationStructureRefitOptions not bound -!missing-enum! MTLBindingType not bound -!missing-enum! MTLIOCommandQueueType not bound -!missing-enum! MTLIOCompressionMethod not bound -!missing-enum! MTLIOCompressionStatus not bound -!missing-enum! MTLIOError not bound -!missing-enum! MTLIOPriority not bound -!missing-enum! MTLIOStatus not bound -!missing-enum! MTLLibraryOptimizationLevel not bound -!missing-enum! MTLSparsePageSize not bound -!missing-enum! MTLTextureCompressionType not bound -!missing-enum-value! MTLBinaryArchiveError native value MTLBinaryArchiveErrorInternalError = 4 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeMesh = 7 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeObject = 8 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple8 = 1008 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyMetal3 = 5001 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_0 = 196608 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageMesh = 16 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageObject = 8 not bound -!missing-field! MTLIOErrorDomain not bound -!missing-pinvoke! MTLIOCompressionContextAppendData is not bound -!missing-pinvoke! MTLIOCreateCompressionContext is not bound -!missing-pinvoke! MTLIOFlushAndDestroyCompressionContext is not bound -!missing-protocol! MTLBinding not bound -!missing-protocol! MTLBufferBinding not bound -!missing-protocol! MTLIOCommandBuffer not bound -!missing-protocol! MTLIOCommandQueue not bound -!missing-protocol! MTLIOFileHandle not bound -!missing-protocol! MTLIOScratchBuffer not bound -!missing-protocol! MTLIOScratchBufferAllocator not bound -!missing-protocol! MTLObjectPayloadBinding not bound -!missing-protocol! MTLTextureBinding not bound -!missing-protocol! MTLThreadgroupBinding not bound -!missing-protocol-member! MTLAccelerationStructure::gpuResourceID not found -!missing-protocol-member! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: not found -!missing-protocol-member! MTLBuffer::gpuAddress not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLComputePipelineState::gpuResourceID not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: not found -!missing-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: not found -!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: not found -!missing-protocol-member! MTLIndirectCommandBuffer::gpuResourceID not found -!missing-protocol-member! MTLIntersectionFunctionTable::gpuResourceID not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: not found -!missing-protocol-member! MTLRenderPipelineState::gpuResourceID not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadgroupsPerMeshGrid not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::meshThreadExecutionWidth not found -!missing-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth not found -!missing-protocol-member! MTLSamplerState::gpuResourceID not found -!missing-protocol-member! MTLTexture::compressionType not found -!missing-protocol-member! MTLTexture::gpuResourceID not found -!missing-protocol-member! MTLVisibleFunctionTable::gpuResourceID not found -!missing-selector! +MTLAccelerationStructurePassDescriptor::accelerationStructurePassDescriptor not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBuffer not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBufferOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataElementSize not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataStride not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructurePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLCompileOptions::optimizationLevel not bound -!missing-selector! MTLCompileOptions::setOptimizationLevel: not bound -!missing-selector! MTLComputePipelineReflection::bindings not bound -!missing-selector! MTLHeapDescriptor::setSparsePageSize: not bound -!missing-selector! MTLHeapDescriptor::sparsePageSize not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportRayTracing: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportRayTracing not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound -!missing-selector! MTLIOCommandQueueDescriptor::priority not bound -!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound -!missing-selector! MTLIOCommandQueueDescriptor::type not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::colorAttachments not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::depthAttachmentPixelFormat not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToCoverageEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToOneEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isRasterizationEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::label not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::payloadMemoryLength not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::rasterSampleCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::reset not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToCoverageEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToOneEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setLabel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setPayloadMemoryLength: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterizationEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterSampleCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::stencilAttachmentPixelFormat not bound -!missing-selector! MTLRenderPipelineReflection::fragmentBindings not bound -!missing-selector! MTLRenderPipelineReflection::meshBindings not bound -!missing-selector! MTLRenderPipelineReflection::objectBindings not bound -!missing-selector! MTLRenderPipelineReflection::tileBindings not bound -!missing-selector! MTLRenderPipelineReflection::vertexBindings not bound -!missing-selector! MTLTextureDescriptor::compressionType not bound -!missing-selector! MTLTextureDescriptor::setCompressionType: not bound -!missing-type! MTLAccelerationStructurePassDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLIOCommandQueueDescriptor not bound -!missing-type! MTLMeshRenderPipelineDescriptor not bound -!missing-pinvoke! MTLIOCompressionContextDefaultChunkSize is not bound -!missing-protocol-member! MTLResourceStateCommandEncoder::moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin: not found -!missing-enum! MTLCompileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::allowReferencingUndefinedSymbols not bound -!missing-selector! MTLCompileOptions::compileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::maxTotalThreadsPerThreadgroup not bound -!missing-selector! MTLCompileOptions::setAllowReferencingUndefinedSymbols: not bound -!missing-selector! MTLCompileOptions::setCompileSymbolVisibility: not bound -!missing-selector! MTLCompileOptions::setMaxTotalThreadsPerThreadgroup: not bound -!missing-protocol-member! MTLDevice::maximumConcurrentCompilationTaskCount not found -!missing-protocol-member! MTLDevice::setShouldMaximizeConcurrentCompilation: not found -!missing-protocol-member! MTLDevice::shouldMaximizeConcurrentCompilation not found -!missing-enum! MTLBindingAccess not bound -!missing-enum! MTLCurveBasis not bound -!missing-enum! MTLCurveEndCaps not bound -!missing-enum! MTLCurveType not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirect = 3 not bound -!missing-enum-value! MTLAccelerationStructureInstanceDescriptorType native value MTLAccelerationStructureInstanceDescriptorTypeIndirectMotion = 4 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRGB9E5 = 55 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat = 121 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat2 = 122 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat3 = 123 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat4 = 124 not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionStoreFunctionInMetalScript = 2 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureCurveData = 128 not bound -!missing-enum-value! MTLIntersectionFunctionSignature native value MTLIntersectionFunctionSignatureMaxLevels = 64 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_1 = 196609 not bound -!missing-enum-value! MTLTextureUsage native value MTLTextureUsageShaderAtomic = 32 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRGB9E5 = 55 not bound -!missing-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: not found -!missing-protocol-member! MTLDevice::architecture not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found -!missing-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:atIndex: not found -!missing-protocol-member! MTLIntersectionFunctionTable::setOpaqueCurveIntersectionFunctionWithSignature:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: not found -!missing-selector! +MTLAccelerationStructureCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLIndirectInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLArchitecture::name not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxKernelThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxKernelThreadgroupMemoryBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportDynamicAttributeStride: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportDynamicAttributeStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxInstanceCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectLinkedFunctions: not bound -!missing-type! MTLAccelerationStructureCurveGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionCurveGeometryDescriptor not bound -!missing-type! MTLArchitecture not bound -!missing-type! MTLIndirectInstanceAccelerationStructureDescriptor not bound -!unknown-native-enum! MTLArgumentAccess bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple9 = 1009 not bound diff --git a/tests/xtro-sharpie/tvOS-Metal.ignore b/tests/xtro-sharpie/tvOS-Metal.ignore index 13fdee2f0640..5d910f675e2d 100644 --- a/tests/xtro-sharpie/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/tvOS-Metal.ignore @@ -67,3 +67,112 @@ !incorrect-protocol-member! MTLIndirectRenderCommand::drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride: is REQUIRED and should be abstract !incorrect-protocol-member! MTLIndirectRenderCommand::drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride: is REQUIRED and should be abstract !incorrect-protocol-member! MTLIndirectRenderCommand::setRenderPipelineState: is REQUIRED and should be abstract + +# has to wait for XAMCORE_5_0 +!incorrect-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::recommendedMaxWorkingSetSize is REQUIRED and should be abstract +!incorrect-protocol-member! MTLAccelerationStructureCommandEncoder::writeCompactedAccelerationStructureSize:toBuffer:offset:sizeDataType: is REQUIRED and should be abstract +!incorrect-protocol-member! MTLDevice::supportsBCTextureCompression 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::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::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! 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! 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! MTLTexture::firstMipmapInTail 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! 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! 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 + +# deprecated but cannot be removed +!unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/tvOS-Metal.todo b/tests/xtro-sharpie/tvOS-Metal.todo deleted file mode 100644 index d47a161a019c..000000000000 --- a/tests/xtro-sharpie/tvOS-Metal.todo +++ /dev/null @@ -1,591 +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 4 for MTLFeatureSet.iOS_GPUFamily3_v1 is available for the current platform while the value in the native header is not -!deprecated-attribute-missing! MTLArgument missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLComputePipelineReflection::arguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::sampleCount missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineDescriptor::setSampleCount: missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::fragmentArguments missing a [Deprecated] attribute -!deprecated-attribute-missing! MTLRenderPipelineReflection::vertexArguments missing a [Deprecated] attribute -!missing-enum! MTLBindingType not bound -!missing-enum! MTLIOCommandQueueType not bound -!missing-enum! MTLIOCompressionMethod not bound -!missing-enum! MTLIOCompressionStatus not bound -!missing-enum! MTLIOError not bound -!missing-enum! MTLIOPriority not bound -!missing-enum! MTLIOStatus not bound -!missing-enum! MTLLibraryOptimizationLevel not bound -!missing-enum-value! MTLBinaryArchiveError native value MTLBinaryArchiveErrorInternalError = 4 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyMetal3 = 5001 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_0 = 196608 not bound -!missing-field! MTLIOErrorDomain not bound -!missing-pinvoke! MTLIOCompressionContextAppendData is not bound -!missing-pinvoke! MTLIOCreateCompressionContext is not bound -!missing-pinvoke! MTLIOFlushAndDestroyCompressionContext is not bound -!missing-protocol! MTLBinding not bound -!missing-protocol! MTLBufferBinding not bound -!missing-protocol! MTLIOCommandBuffer not bound -!missing-protocol! MTLIOCommandQueue not bound -!missing-protocol! MTLIOFileHandle not bound -!missing-protocol! MTLIOScratchBuffer not bound -!missing-protocol! MTLIOScratchBufferAllocator not bound -!missing-protocol! MTLTextureBinding not bound -!missing-protocol! MTLThreadgroupBinding not bound -!missing-protocol-member! MTLBuffer::gpuAddress not found -!missing-protocol-member! MTLComputePipelineState::gpuResourceID not found -!missing-protocol-member! MTLDevice::newArgumentEncoderWithBufferBinding: not found -!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOHandleWithURL:error: not found -!missing-protocol-member! MTLIndirectCommandBuffer::gpuResourceID not found -!missing-protocol-member! MTLRenderPipelineState::gpuResourceID not found -!missing-protocol-member! MTLSamplerState::gpuResourceID not found -!missing-protocol-member! MTLTexture::gpuResourceID not found -!missing-selector! MTLCompileOptions::optimizationLevel not bound -!missing-selector! MTLCompileOptions::setOptimizationLevel: not bound -!missing-selector! MTLComputePipelineReflection::bindings not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound -!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound -!missing-selector! MTLIOCommandQueueDescriptor::priority not bound -!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound -!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound -!missing-selector! MTLIOCommandQueueDescriptor::type not bound -!missing-selector! MTLRenderPipelineReflection::fragmentBindings not bound -!missing-selector! MTLRenderPipelineReflection::tileBindings not bound -!missing-selector! MTLRenderPipelineReflection::vertexBindings not bound -!missing-type! MTLIOCommandQueueDescriptor not bound -!deprecated-attribute-missing! MTLRenderPipelineReflection::tileArguments missing a [Deprecated] attribute -!missing-pinvoke! MTLIOCompressionContextDefaultChunkSize is not bound -!missing-enum! MTLAccelerationStructureInstanceDescriptorType not bound -!missing-enum! MTLAccelerationStructureRefitOptions not bound -!missing-enum! MTLAccelerationStructureUsage not bound -!missing-enum! MTLIntersectionFunctionSignature not bound -!missing-enum! MTLMotionBorderMode not bound -!missing-enum! MTLSparsePageSize not bound -!missing-enum! MTLSparseTextureMappingMode not bound -!missing-enum! MTLSparseTextureRegionAlignmentMode not bound -!missing-enum! MTLTextureCompressionType not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeMesh = 7 not bound -!missing-enum-value! MTLFunctionType native value MTLFunctionTypeObject = 8 not bound -!missing-enum-value! MTLGpuFamily native value MTLGPUFamilyApple8 = 1008 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageMesh = 16 not bound -!missing-enum-value! MTLRenderStages native value MTLRenderStageObject = 8 not bound -!missing-protocol! MTLAccelerationStructure not bound -!missing-protocol! MTLAccelerationStructureCommandEncoder not bound -!missing-protocol! MTLFunctionHandle not bound -!missing-protocol! MTLIntersectionFunctionTable not bound -!missing-protocol! MTLObjectPayloadBinding not bound -!missing-protocol! MTLRasterizationRateMap not bound -!missing-protocol! MTLResourceStateCommandEncoder not bound -!missing-protocol! MTLVisibleFunctionTable not bound -!missing-protocol-member! MTLArgumentEncoder::setAccelerationStructure:atIndex: not found -!missing-protocol-member! MTLArgumentEncoder::setIntersectionFunctionTable:atIndex: not found -!missing-protocol-member! MTLArgumentEncoder::setIntersectionFunctionTables:withRange: not found -!missing-protocol-member! MTLArgumentEncoder::setVisibleFunctionTable:atIndex: not found -!missing-protocol-member! MTLArgumentEncoder::setVisibleFunctionTables:withRange: not found -!missing-protocol-member! MTLBlitCommandEncoder::getTextureAccessCounters:region:mipLevel:slice:resetCounters:countersBuffer:countersBufferOffset: not found -!missing-protocol-member! MTLBlitCommandEncoder::resetTextureAccessCounters:region:mipLevel:slice: not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoder not found -!missing-protocol-member! MTLCommandBuffer::accelerationStructureCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLCommandBuffer::resourceStateCommandEncoder not found -!missing-protocol-member! MTLCommandBuffer::resourceStateCommandEncoderWithDescriptor: not found -!missing-protocol-member! MTLComputeCommandEncoder::setAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLComputePipelineState::functionHandleWithFunction: not found -!missing-protocol-member! MTLComputePipelineState::newComputePipelineStateWithAdditionalBinaryFunctions:error: not found -!missing-protocol-member! MTLComputePipelineState::newIntersectionFunctionTableWithDescriptor: not found -!missing-protocol-member! MTLComputePipelineState::newVisibleFunctionTableWithDescriptor: not found -!missing-protocol-member! MTLDevice::accelerationStructureSizesWithDescriptor: not found -!missing-protocol-member! MTLDevice::convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions: not found -!missing-protocol-member! MTLDevice::convertSparseTileRegions:toPixelRegions:withTileSize:numRegions: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithDescriptor: not found -!missing-protocol-member! MTLDevice::heapAccelerationStructureSizeAndAlignWithSize: not found -!missing-protocol-member! MTLDevice::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLDevice::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLDevice::newRasterizationRateMapWithDescriptor: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:completionHandler: not found -!missing-protocol-member! MTLDevice::newRenderPipelineStateWithMeshDescriptor:options:reflection:error: not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytes not found -!missing-protocol-member! MTLDevice::sparseTileSizeInBytesForSparsePageSize: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount: not found -!missing-protocol-member! MTLDevice::sparseTileSizeWithTextureType:pixelFormat:sampleCount:sparsePageSize: not found -!missing-protocol-member! MTLDevice::supports32BitFloatFiltering not found -!missing-protocol-member! MTLDevice::supports32BitMSAA not found -!missing-protocol-member! MTLDevice::supportsFunctionPointers not found -!missing-protocol-member! MTLDevice::supportsFunctionPointersFromRender not found -!missing-protocol-member! MTLDevice::supportsPrimitiveMotionBlur not found -!missing-protocol-member! MTLDevice::supportsQueryTextureLOD not found -!missing-protocol-member! MTLDevice::supportsRasterizationRateMapWithLayerCount: not found -!missing-protocol-member! MTLDevice::supportsRaytracing not found -!missing-protocol-member! MTLDevice::supportsRaytracingFromRender not found -!missing-protocol-member! MTLDevice::supportsShaderBarycentricCoordinates not found -!missing-protocol-member! MTLDevice::supportsVertexAmplificationCount: not found -!missing-protocol-member! MTLFunction::options not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithDescriptor:offset: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize: not found -!missing-protocol-member! MTLHeap::newAccelerationStructureWithSize:offset: not found -!missing-protocol-member! MTLLibrary::newIntersectionFunctionWithDescriptor:completionHandler: not found -!missing-protocol-member! MTLLibrary::newIntersectionFunctionWithDescriptor:error: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithResources:count:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::memoryBarrierWithScope:afterStages:beforeStages: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setFragmentVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setMeshTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffer:offset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBufferOffset:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBuffers:offsets:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectBytes:length:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectSamplerStates:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTexture:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectTextures:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setObjectThreadgroupMemoryLength:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setTileVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexAccelerationStructure:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexAmplificationCount:viewMappings: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexIntersectionFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexIntersectionFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexVisibleFunctionTable:atBufferIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexVisibleFunctionTables:withBufferRange: not found -!missing-protocol-member! MTLRenderPipelineState::functionHandleWithFunction:stage: not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadgroupsPerMeshGrid not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerMeshThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::maxTotalThreadsPerObjectThreadgroup not found -!missing-protocol-member! MTLRenderPipelineState::meshThreadExecutionWidth not found -!missing-protocol-member! MTLRenderPipelineState::newIntersectionFunctionTableWithDescriptor:stage: not found -!missing-protocol-member! MTLRenderPipelineState::newRenderPipelineStateWithAdditionalBinaryFunctions:error: not found -!missing-protocol-member! MTLRenderPipelineState::newVisibleFunctionTableWithDescriptor:stage: not found -!missing-protocol-member! MTLRenderPipelineState::objectThreadExecutionWidth not found -!missing-protocol-member! MTLTexture::compressionType not found -!missing-protocol-member! MTLTexture::firstMipmapInTail not found -!missing-protocol-member! MTLTexture::isSparse not found -!missing-protocol-member! MTLTexture::tailSizeInBytes not found -!missing-selector! +MTLAccelerationStructureBoundingBoxGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionTriangleGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructurePassDescriptor::accelerationStructurePassDescriptor not bound -!missing-selector! +MTLAccelerationStructureTriangleGeometryDescriptor::descriptor not bound -!missing-selector! +MTLInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! +MTLIntersectionFunctionTableDescriptor::intersectionFunctionTableDescriptor not bound -!missing-selector! +MTLMotionKeyframeData::data not bound -!missing-selector! +MTLPrimitiveAccelerationStructureDescriptor::descriptor not bound -!missing-selector! +MTLRasterizationRateMapDescriptor::rasterizationRateMapDescriptorWithScreenSize: not bound -!missing-selector! +MTLRasterizationRateMapDescriptor::rasterizationRateMapDescriptorWithScreenSize:layer: not bound -!missing-selector! +MTLRasterizationRateMapDescriptor::rasterizationRateMapDescriptorWithScreenSize:layerCount:layers: not bound -!missing-selector! +MTLResourceStatePassDescriptor::resourceStatePassDescriptor not bound -!missing-selector! +MTLVisibleFunctionTableDescriptor::visibleFunctionTableDescriptor not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBuffer not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBufferOffset not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxCount not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxStride not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBuffer: not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBufferOffset: not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxCount: not bound -!missing-selector! MTLAccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxStride: not bound -!missing-selector! MTLAccelerationStructureDescriptor::setUsage: not bound -!missing-selector! MTLAccelerationStructureDescriptor::usage not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::allowDuplicateIntersectionFunctionInvocation not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::intersectionFunctionTableOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::label not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::opaque not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBuffer not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataBufferOffset not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataElementSize not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::primitiveDataStride not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setAllowDuplicateIntersectionFunctionInvocation: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setIntersectionFunctionTableOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setLabel: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setOpaque: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize: not bound -!missing-selector! MTLAccelerationStructureGeometryDescriptor::setPrimitiveDataStride: not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxBuffers not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxCount not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxStride not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxCount: not bound -!missing-selector! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setTriangleCount: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::setVertexStride: not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::triangleCount not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexBuffers not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructureMotionTriangleGeometryDescriptor::vertexStride not bound -!missing-selector! MTLAccelerationStructurePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setTriangleCount: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexBuffer: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexFormat: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::setVertexStride: not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::triangleCount not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexBuffer not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexBufferOffset not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexFormat not bound -!missing-selector! MTLAccelerationStructureTriangleGeometryDescriptor::vertexStride not bound -!missing-selector! MTLComputePipelineDescriptor::maxCallStackDepth not bound -!missing-selector! MTLComputePipelineDescriptor::setMaxCallStackDepth: not bound -!missing-selector! MTLComputePipelineDescriptor::setSupportAddingBinaryFunctions: not bound -!missing-selector! MTLComputePipelineDescriptor::supportAddingBinaryFunctions not bound -!missing-selector! MTLHeapDescriptor::setSparsePageSize: not bound -!missing-selector! MTLHeapDescriptor::sparsePageSize not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportRayTracing: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportRayTracing not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceCount not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instancedAccelerationStructures not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::motionTransformCount not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceCount: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstancedAccelerationStructures: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLInstanceAccelerationStructureDescriptor::setMotionTransformCount: not bound -!missing-selector! MTLIntersectionFunctionTableDescriptor::functionCount not bound -!missing-selector! MTLIntersectionFunctionTableDescriptor::setFunctionCount: not bound -!missing-selector! MTLLinkedFunctions::binaryFunctions not bound -!missing-selector! MTLLinkedFunctions::setBinaryFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::colorAttachments not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::depthAttachmentPixelFormat not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToCoverageEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isAlphaToOneEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::isRasterizationEnabled not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::label not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadgroupsPerMeshGrid not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerMeshThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxTotalThreadsPerObjectThreadgroup not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectBuffers not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectFunction not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::payloadMemoryLength not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::rasterSampleCount not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::reset not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToCoverageEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setAlphaToOneEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setDepthAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setLabel: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadgroupsPerMeshGrid: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerMeshThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxTotalThreadsPerObjectThreadgroup: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectFunction: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setPayloadMemoryLength: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterizationEnabled: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setRasterSampleCount: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setStencilAttachmentPixelFormat: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::stencilAttachmentPixelFormat not bound -!missing-selector! MTLMotionKeyframeData::buffer not bound -!missing-selector! MTLMotionKeyframeData::offset not bound -!missing-selector! MTLMotionKeyframeData::setBuffer: not bound -!missing-selector! MTLMotionKeyframeData::setOffset: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::geometryDescriptors not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionEndBorderMode not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionEndTime not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionKeyframeCount not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionStartBorderMode not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::motionStartTime not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setGeometryDescriptors: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionEndBorderMode: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionEndTime: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionKeyframeCount: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionStartBorderMode: not bound -!missing-selector! MTLPrimitiveAccelerationStructureDescriptor::setMotionStartTime: not bound -!missing-selector! MTLRasterizationRateLayerArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLRasterizationRateLayerArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::horizontal not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::horizontalSampleStorage not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::initWithSampleCount: not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::initWithSampleCount:horizontal:vertical: not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::maxSampleCount not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::sampleCount not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::vertical not bound -!missing-selector! MTLRasterizationRateLayerDescriptor::verticalSampleStorage not bound -!missing-selector! MTLRasterizationRateLayerDescriptorMTLRasterizationRateLayerDescriptor::setSampleCount: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::label not bound -!missing-selector! MTLRasterizationRateMapDescriptor::layerAtIndex: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::layerCount not bound -!missing-selector! MTLRasterizationRateMapDescriptor::layers not bound -!missing-selector! MTLRasterizationRateMapDescriptor::screenSize not bound -!missing-selector! MTLRasterizationRateMapDescriptor::setLabel: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::setLayer:atIndex: not bound -!missing-selector! MTLRasterizationRateMapDescriptor::setScreenSize: not bound -!missing-selector! MTLRasterizationRateSampleArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLRasterizationRateSampleArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLRenderPassDescriptor::rasterizationRateMap not bound -!missing-selector! MTLRenderPassDescriptor::setRasterizationRateMap: not bound -!missing-selector! MTLRenderPipelineDescriptor::maxVertexAmplificationCount not bound -!missing-selector! MTLRenderPipelineDescriptor::setMaxVertexAmplificationCount: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::fragmentAdditionalBinaryFunctions not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::setFragmentAdditionalBinaryFunctions: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::setTileAdditionalBinaryFunctions: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::setVertexAdditionalBinaryFunctions: not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::tileAdditionalBinaryFunctions not bound -!missing-selector! MTLRenderPipelineFunctionsDescriptor::vertexAdditionalBinaryFunctions not bound -!missing-selector! MTLRenderPipelineReflection::meshBindings not bound -!missing-selector! MTLRenderPipelineReflection::objectBindings not bound -!missing-selector! MTLResourceStatePassDescriptor::sampleBufferAttachments not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::endOfEncoderSampleIndex not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::sampleBuffer not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::setEndOfEncoderSampleIndex: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::setSampleBuffer: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::setStartOfEncoderSampleIndex: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptor::startOfEncoderSampleIndex not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptorArray::objectAtIndexedSubscript: not bound -!missing-selector! MTLResourceStatePassSampleBufferAttachmentDescriptorArray::setObject:atIndexedSubscript: not bound -!missing-selector! MTLSamplerDescriptor::borderColor not bound -!missing-selector! MTLSamplerDescriptor::setBorderColor: not bound -!missing-selector! MTLTextureDescriptor::compressionType not bound -!missing-selector! MTLTextureDescriptor::setCompressionType: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::maxCallStackDepth not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setMaxCallStackDepth: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::setSupportAddingBinaryFunctions: not bound -!missing-selector! MTLTileRenderPipelineDescriptor::supportAddingBinaryFunctions not bound -!missing-selector! MTLVisibleFunctionTableDescriptor::functionCount not bound -!missing-selector! MTLVisibleFunctionTableDescriptor::setFunctionCount: not bound -!missing-type! MTLAccelerationStructureBoundingBoxGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureDescriptor not bound -!missing-type! MTLAccelerationStructureGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionTriangleGeometryDescriptor not bound -!missing-type! MTLAccelerationStructurePassDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLAccelerationStructureTriangleGeometryDescriptor not bound -!missing-type! MTLInstanceAccelerationStructureDescriptor not bound -!missing-type! MTLIntersectionFunctionDescriptor not bound -!missing-type! MTLIntersectionFunctionTableDescriptor not bound -!missing-type! MTLMeshRenderPipelineDescriptor not bound -!missing-type! MTLMotionKeyframeData not bound -!missing-type! MTLPrimitiveAccelerationStructureDescriptor not bound -!missing-type! MTLRasterizationRateLayerArray not bound -!missing-type! MTLRasterizationRateLayerDescriptor not bound -!missing-type! MTLRasterizationRateMapDescriptor not bound -!missing-type! MTLRasterizationRateSampleArray not bound -!missing-type! MTLRenderPipelineFunctionsDescriptor not bound -!missing-type! MTLResourceStatePassDescriptor not bound -!missing-type! MTLResourceStatePassSampleBufferAttachmentDescriptor not bound -!missing-type! MTLResourceStatePassSampleBufferAttachmentDescriptorArray not bound -!missing-type! MTLVisibleFunctionTableDescriptor not bound -!missing-enum! MTLCompileSymbolVisibility not bound -!missing-protocol-member! MTLDevice::supportsBCTextureCompression not found -!missing-selector! MTLCompileOptions::allowReferencingUndefinedSymbols not bound -!missing-selector! MTLCompileOptions::compileSymbolVisibility not bound -!missing-selector! MTLCompileOptions::maxTotalThreadsPerThreadgroup not bound -!missing-selector! MTLCompileOptions::setAllowReferencingUndefinedSymbols: not bound -!missing-selector! MTLCompileOptions::setCompileSymbolVisibility: not bound -!missing-selector! MTLCompileOptions::setMaxTotalThreadsPerThreadgroup: not bound -!missing-enum! MTLBindingAccess not bound -!missing-enum! MTLCurveBasis not bound -!missing-enum! MTLCurveEndCaps not bound -!missing-enum! MTLCurveType not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLAttributeFormat native value MTLAttributeFormatFloatRGB9E5 = 55 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat = 121 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat2 = 122 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat3 = 123 not bound -!missing-enum-value! MTLDataType native value MTLDataTypeBFloat4 = 124 not bound -!missing-enum-value! MTLFunctionOptions native value MTLFunctionOptionStoreFunctionInMetalScript = 2 not bound -!missing-enum-value! MTLLanguageVersion native value MTLLanguageVersion3_1 = 196609 not bound -!missing-enum-value! MTLTextureUsage native value MTLTextureUsageShaderAtomic = 32 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRG11B10 = 54 not bound -!missing-enum-value! MTLVertexFormat native value MTLVertexFormatFloatRGB9E5 = 55 not bound -!missing-protocol-member! MTLComputeCommandEncoder::setBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLComputeCommandEncoder::setBytes:length:attributeStride:atIndex: not found -!missing-protocol-member! MTLDevice::architecture not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found -!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found -!missing-protocol-member! MTLDevice::recommendedMaxWorkingSetSize not found -!missing-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLIndirectRenderCommand::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffer:offset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBufferOffset:attributeStride:atIndex: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBuffers:offsets:attributeStrides:withRange: not found -!missing-protocol-member! MTLRenderCommandEncoder::setVertexBytes:length:attributeStride:atIndex: not found -!missing-selector! +MTLAccelerationStructureCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLAccelerationStructureMotionCurveGeometryDescriptor::descriptor not bound -!missing-selector! +MTLIndirectInstanceAccelerationStructureDescriptor::descriptor not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBuffer not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusBufferOffset not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBuffer: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::controlPointStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveBasis not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::curveType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBuffer not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::indexType not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusFormat not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::radiusStride not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::segmentCount not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setCurveType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setIndexType: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount: not bound -!missing-selector! MTLAccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount: not bound -!missing-selector! MTLArchitecture::name not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::maxKernelThreadgroupMemoryBindCount not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setMaxKernelThreadgroupMemoryBindCount: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::setSupportDynamicAttributeStride: not bound -!missing-selector! MTLIndirectCommandBufferDescriptor::supportDynamicAttributeStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxInstanceCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer: not bound -!missing-selector! MTLIndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::fragmentLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::meshLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::objectLinkedFunctions not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setFragmentLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setMeshLinkedFunctions: not bound -!missing-selector! MTLMeshRenderPipelineDescriptor::setObjectLinkedFunctions: not bound -!missing-type! MTLAccelerationStructureCurveGeometryDescriptor not bound -!missing-type! MTLAccelerationStructureMotionCurveGeometryDescriptor not bound -!missing-type! MTLArchitecture not bound -!missing-type! MTLIndirectInstanceAccelerationStructureDescriptor not bound -!unknown-native-enum! MTLArgumentAccess bound From 56c580785d3b008a4840936b6ea76b520e5d0ad8 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Wed, 1 Nov 2023 16:27:32 -0400 Subject: [PATCH 02/25] Add missing attrs. --- src/Metal/MTLEnums.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index 563112ada4fa..bbb96e9fdeaa 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -570,6 +570,7 @@ public enum MTLFunctionType : ulong { Intersection = 6, [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] Mesh = 7, + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] Object = 8, } From 90fb766720be0fb0074ef7e5eda569ebaf1c4540 Mon Sep 17 00:00:00 2001 From: GitHub Actions Autoformatter Date: Wed, 1 Nov 2023 20:29:35 +0000 Subject: [PATCH 03/25] Auto-format source code --- src/Metal/Defs.cs | 5 +- src/Metal/MTLEnums.cs | 127 ++-- src/Metal/MTLIOCompression.cs | 21 +- src/metal.cs | 605 +++++++++--------- .../Metal/MTLIOCompressionContextTest.cs | 8 +- 5 files changed, 367 insertions(+), 399 deletions(-) diff --git a/src/Metal/Defs.cs b/src/Metal/Defs.cs index 976678601211..42e3b7f525d5 100644 --- a/src/Metal/Defs.cs +++ b/src/Metal/Defs.cs @@ -561,11 +561,10 @@ public struct MTLAccelerationStructureSizes { [SupportedOSPlatform ("macos13.0")] [SupportedOSPlatform ("tvos16.0")] #else - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0), NoWatch] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0), NoWatch] #endif [StructLayout (LayoutKind.Sequential)] - public struct MTLResourceId - { + public struct MTLResourceId { public ulong Impl; } diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index bbb96e9fdeaa..1b27520d2c53 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -246,9 +246,9 @@ public enum MTLVertexFormat : ulong { [MacCatalyst (13, 1)] Half = 53, - [Mac (14,0), iOS (17,0), TV (17, 0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] FloatRG11B10 = 54, - [Mac (14,0), iOS (17,0), TV (17, 0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] FloatRGB9E5 = 55, } @@ -683,7 +683,7 @@ public enum MTLTextureUsage : ulong { #endif PixelFormatView = 0x0010, - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] ShaderAtomic = 0x20, } @@ -871,13 +871,13 @@ public enum MTLDataType : ulong { [MacCatalyst (14, 0)] [Mac (11, 0), iOS (14, 0), NoTV] InstanceAccelerationStructure = 118, - [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] BFloat = 121, - [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] BFloat2 = 122, - [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] BFloat3 = 123, - [iOS (17,0), TV (17,0), Mac (14,0), MacCatalyst (17,0)] + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] BFloat4 = 124, } @@ -1071,9 +1071,9 @@ public enum MTLLanguageVersion : ulong { v2_3 = (2 << 16) + 3, [iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), Mac (12, 0), NoWatch] v2_4 = (2uL << 16) + 4, - [iOS (16,0), TV (16,0), MacCatalyst (16,0), Mac (13,0), NoWatch] + [iOS (16, 0), TV (16, 0), MacCatalyst (16, 0), Mac (13, 0), NoWatch] v3_0 = (3uL << 16) + 0, - [iOS (17,0), TV (17,0), MacCatalyst (17,0), Mac (14,0), NoWatch] + [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0), NoWatch] v3_1 = (3uL << 16) + 1, } @@ -1116,7 +1116,7 @@ public enum MTLMultisampleDepthResolveFilter : ulong { Sample0, Min, Max } - [TV (16,0)] + [TV (16, 0)] [iOS (14, 0)] [MacCatalyst (14, 0)] [Native] @@ -1258,9 +1258,9 @@ public enum MTLAttributeFormat : ulong { [NoWatch] [MacCatalyst (13, 1)] Half = 53, - [Mac (14, 0), iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (17, 0)] FloatRG11B10 = 54, - [Mac (14, 0), iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (17, 0)] FloatRGB9E5 = 55, } @@ -1374,9 +1374,9 @@ public enum MTLIndirectCommandType : ulong { [Mac (11, 0), iOS (13, 0), TV (13, 0)] [MacCatalyst (13, 1)] ConcurrentDispatchThreads = 1 << 6, - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] DrawMeshThreadgroups = (1uL << 7), - [NoMac, iOS (17, 0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] DrawMeshThreads = (1uL << 8), } @@ -1390,7 +1390,7 @@ public enum MTLMultisampleStencilResolveFilter : ulong { } - [Flags, Mac (11, 0), TV (17,0), iOS (13, 0)] + [Flags, Mac (11, 0), TV (17, 0), iOS (13, 0)] [MacCatalyst (13, 1)] [Native] public enum MTLSparseTextureRegionAlignmentMode : ulong { @@ -1398,7 +1398,7 @@ public enum MTLSparseTextureRegionAlignmentMode : ulong { Inward = 0x1, } - [Flags, Mac (11, 0), TV (17,0), iOS (13, 0)] + [Flags, Mac (11, 0), TV (17, 0), iOS (13, 0)] [MacCatalyst (14, 0)] [Native] public enum MTLSparseTextureMappingMode : ulong { @@ -1563,7 +1563,7 @@ public enum MTLAccelerationStructureInstanceOptions : uint { NonOpaque = (1u << 3), } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Flags] [Native] @@ -1646,11 +1646,11 @@ public enum MTLFunctionOptions : ulong { [NoTV] [MacCatalyst (14, 0)] CompileToBinary = 1uL << 0, - [iOS (17,0), TV (17,0), MacCatalyst (17,0), Mac (14,0)] + [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0)] StoreFunctionInMetalScript = 1uL << 1, } - [Flags, Mac (11, 0), iOS (14, 0), TV (16,0)] + [Flags, Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Native] public enum MTLIntersectionFunctionSignature : ulong { @@ -1664,9 +1664,9 @@ public enum MTLIntersectionFunctionSignature : ulong { PrimitiveMotion = (1uL << 4), [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoWatch] ExtendedLimits = (1uL << 5), - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] MaxLevels = (1uL << 6), - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] CurveData = (1uL << 7), } @@ -1689,43 +1689,41 @@ public enum MTLTextureSwizzle : byte { Alpha = 5, } - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] public enum MTLMotionBorderMode : uint { Clamp = 0, Vanish = 1, } - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0), NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0), NoWatch] [Native] public enum MTLAccelerationStructureInstanceDescriptorType : ulong { Default = 0, UserID = 1, Motion = 2, - [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17,0)] + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17, 0)] Indirect = 3, - [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17,0)] + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17, 0)] IndirectMotion = 4, } - [Mac (12,5), iOS (15, 0), NoMacCatalyst, TV (17,0), NoWatch] + [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, Lossy = 1, } - [Flags, Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Flags, Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLAccelerationStructureRefitOptions : ulong - { + public enum MTLAccelerationStructureRefitOptions : ulong { VertexData = (1uL << 0), PerPrimitiveData = (1uL << 1), } - [Mac (11,0), iOS (14,0), MacCatalyst (14,0), TV (14,0)] + [Mac (11, 0), iOS (14, 0), MacCatalyst (14, 0), TV (14, 0)] [Native] - public enum MTLBindingType : long - { + public enum MTLBindingType : long { Buffer = 0, ThreadgroupMemory = 1, Texture = 2, @@ -1739,18 +1737,16 @@ public enum MTLBindingType : long ObjectPayload = 34, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLIOCommandQueueType : long - { + public enum MTLIOCommandQueueType : long { Concurrent = 0, Serial = 1, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLIOCompressionMethod : long - { + public enum MTLIOCompressionMethod : long { Zlib = 0, Lzfse = 1, Lz4 = 2, @@ -1758,99 +1754,88 @@ public enum MTLIOCompressionMethod : long LZBitmap = 4 } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLIOCompressionStatus : long - { + public enum MTLIOCompressionStatus : long { Complete = 0, Error = 1, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] [ErrorDomain ("MTLIOErrorDomain")] - public enum MTLIOError : long - { + public enum MTLIOError : long { UrlInvalid = 1, Internal = 2, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLIOPriority : long - { + public enum MTLIOPriority : long { High = 0, Normal = 1, Low = 2, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLIOStatus : long - { + public enum MTLIOStatus : long { Pending = 0, Cancelled = 1, Error = 2, Complete = 3, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLLibraryOptimizationLevel : long - { + public enum MTLLibraryOptimizationLevel : long { Default = 0, Size = 1, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLSparsePageSize : long - { + public enum MTLSparsePageSize : long { Size16 = 101, Size64 = 102, Size256 = 103, } - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Native] - public enum MTLBindingAccess : long - { + public enum MTLBindingAccess : long { ReadOnly = 0, ReadWrite = 1, WriteOnly = 2, } - [Mac (14,0), iOS (17,0), MacCatalyst (17,0), TV (17,0)] + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17, 0)] [Native] - public enum MTLCurveType : long - { + public enum MTLCurveType : long { Round = 0, Flat = 1, } - [Mac (14,0), iOS (17,0), MacCatalyst (17,0), TV (17,0)] + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17, 0)] [Native] - public enum MTLCurveBasis : long - { + public enum MTLCurveBasis : long { BSpline = 0, CatmullRom = 1, Linear = 2, Bezier = 3, } - [Mac (14,0), iOS (17,0), MacCatalyst (17,0), TV (17,0)] + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17, 0)] [Native] - public enum MTLCurveEndCaps : long - { + public enum MTLCurveEndCaps : long { None = 0, Disk = 1, Sphere = 2, } - [Mac (13,3), iOS (16,4), MacCatalyst (16,4), TV (16,4)] + [Mac (13, 3), iOS (16, 4), MacCatalyst (16, 4), TV (16, 4)] [Native] - public enum MTLCompileSymbolVisibility : long - { + public enum MTLCompileSymbolVisibility : long { Default = 0, Hidden = 1, } diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index 4a1072824843..22cf6a57bc7f 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -20,23 +20,24 @@ namespace Metal { [SupportedOSPlatform ("macos13.0")] [SupportedOSPlatform ("tvos16.0")] #else - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #endif public class MTLIOCompressionContext : DisposableObject { [Preserve (Conditional = true)] - MTLIOCompressionContext (NativeHandle handle, bool owns) : base (handle, owns) {} + MTLIOCompressionContext (NativeHandle handle, bool owns) : base (handle, owns) { } [DllImport (Constants.MetalLibrary)] static extern unsafe void MTLIOCompressionContextAppendData (void* context, void* data, nuint size); - unsafe void AppendData (void* data, nuint size) - => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); + unsafe void AppendData (void* data, nuint size) + => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); - public void AppendData (byte[] data) + public void AppendData (byte [] data) => AppendData (new ReadOnlySpan (data, 0, data.Length)); - public void AppendData (ReadOnlySpan data) { + public void AppendData (ReadOnlySpan data) + { unsafe { // Pass new bytes through deflater and write them too: fixed (void* bufferPtr = &MemoryMarshal.GetReference (data)) { @@ -45,9 +46,10 @@ public void AppendData (ReadOnlySpan data) { } } - public void AppendData (NSData data) { + public void AppendData (NSData data) + { unsafe { - AppendData ((void*)data.Bytes, data.Length); + AppendData ((void*) data.Bytes, data.Length); } } @@ -55,7 +57,8 @@ public void AppendData (NSData data) { // [return: NullAllowed] static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, nuint chunkSize); - public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, nuint chunkSize) { + public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, nuint chunkSize) + { if (path is null) ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (path)); diff --git a/src/metal.cs b/src/metal.cs index 701ef00fa1a2..535c13ca7251 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -223,7 +223,7 @@ partial interface MTLBuffer : MTLResource { [return: Release] IMTLBuffer CreateRemoteBuffer (IMTLDevice device); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Abstract] [Export ("gpuAddress")] ulong GpuAddress { get; } @@ -401,7 +401,7 @@ partial interface MTLCommandBuffer { [Export ("popDebugGroup")] void PopDebugGroup (); -#if NET +#if NET #if !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 @@ -410,7 +410,7 @@ partial interface MTLCommandBuffer { #endif #else - [MacCatalyst (14, 0), Mac (11, 0), iOS (13, 0), TV (16,0)] + [MacCatalyst (14, 0), Mac (11, 0), iOS (13, 0), TV (16, 0)] #endif [NullAllowed, Export ("resourceStateCommandEncoder")] IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; } @@ -447,7 +447,7 @@ partial interface MTLCommandBuffer { [Export ("blitCommandEncoderWithDescriptor:")] IMTLBlitCommandEncoder CreateBlitCommandEncoder (MTLBlitPassDescriptor blitPassDescriptor); -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -456,12 +456,12 @@ partial interface MTLCommandBuffer { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("resourceStateCommandEncoderWithDescriptor:")] IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (MTLResourceStatePassDescriptor resourceStatePassDescriptor); -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -470,12 +470,12 @@ partial interface MTLCommandBuffer { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); - [Mac (13,0), iOS (16,0)] + [Mac (13, 0), iOS (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -732,12 +732,12 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] @@ -747,12 +747,12 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -761,12 +761,12 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -775,7 +775,7 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("setIntersectionFunctionTables:withBufferRange:")] void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); @@ -789,34 +789,34 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif -#else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] +#else + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("setAccelerationStructure:atBufferIndex:")] void SetAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setBuffer:offset:attributeStride:atIndex:")] void SetBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -840,9 +840,9 @@ interface MTLComputePipelineReflection { NSObject [] Arguments { get; } #endif - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("bindings")] - IMTLBinding[] Bindings { get; } + IMTLBinding [] Bindings { get; } } interface IMTLComputePipelineState { } @@ -891,7 +891,7 @@ partial interface MTLComputePipelineState { [Export ("supportIndirectCommandBuffers")] bool SupportIndirectCommandBuffers { get; } -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -900,12 +900,12 @@ partial interface MTLComputePipelineState { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("functionHandleWithFunction:")] IMTLFunctionHandle CreateFunctionHandle (IMTLFunction function); -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] @@ -915,13 +915,13 @@ partial interface MTLComputePipelineState { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -930,13 +930,13 @@ partial interface MTLComputePipelineState { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("newVisibleFunctionTableWithDescriptor:")] [return: Release] IMTLVisibleFunctionTable CreateVisibleFunctionTable (MTLVisibleFunctionTableDescriptor descriptor); -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -945,13 +945,13 @@ partial interface MTLComputePipelineState { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -1082,14 +1082,14 @@ partial interface MTLBlitCommandEncoder : MTLCommandEncoder { #if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] + [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] #endif - [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("resetTextureAccessCounters:region:mipLevel:slice:")] void ResetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice); @@ -1183,7 +1183,7 @@ partial interface MTLDevice { [Export ("headless")] bool Headless { [Bind ("isHeadless")] get; } - [iOS (17,0), TV (17,0), NoWatch, MacCatalyst (15, 0)] + [iOS (17, 0), TV (17, 0), NoWatch, MacCatalyst (15, 0)] #if NET [Abstract] #endif @@ -1609,7 +1609,7 @@ partial interface MTLDevice { [Export ("newRenderPipelineStateWithTileDescriptor:options:completionHandler:")] void CreateRenderPipelineState (MTLTileRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); -#if NET +#if NET #if !TVOS [MacCatalyst (13, 4), NoTV, iOS (13, 0)] @@ -1619,12 +1619,12 @@ partial interface MTLDevice { #endif #else - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] + [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] #endif [Export ("supportsVertexAmplificationCount:")] bool SupportsVertexAmplification (nuint count); -#if NET +#if NET #if !TVOS [MacCatalyst (13, 4), NoTV, iOS (13, 0)] @@ -1634,7 +1634,7 @@ partial interface MTLDevice { #endif #else - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] + [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] #endif [Export ("supportsRasterizationRateMapWithLayerCount:")] bool SupportsRasterizationRateMap (nuint layerCount); @@ -1649,12 +1649,12 @@ partial interface MTLDevice { #endif #else - [MacCatalyst (14, 0), Mac (11, 0), TV (16,0), iOS (13, 0)] + [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 NET #if !TVOS [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] @@ -1664,7 +1664,7 @@ partial interface MTLDevice { #endif #else - [MacCatalyst (14, 0), Mac (11, 0), TV (16,0), iOS (13, 0)] + [MacCatalyst (14, 0), Mac (11, 0), TV (16, 0), iOS (13, 0)] #endif [Export ("sparseTileSizeInBytes")] nuint SparseTileSizeInBytes { get; } @@ -1674,12 +1674,12 @@ partial interface MTLDevice { #if !TVOS [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] -#else +#else [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif #else - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] + [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] #endif [Export ("newRasterizationRateMapWithDescriptor:")] [return: NullAllowed] @@ -1687,12 +1687,12 @@ partial interface MTLDevice { IMTLRasterizationRateMap CreateRasterizationRateMap (MTLRasterizationRateMapDescriptor descriptor); [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), TV (16,0), iOS (13, 0)] + [Mac (11, 0), TV (16, 0), iOS (13, 0)] [Export ("convertSparseTileRegions:toPixelRegions:withTileSize:numRegions:")] void ConvertSparseTileRegions (IntPtr tileRegions, IntPtr pixelRegions, MTLSize tileSize, nuint numRegions); [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), TV (16,0), iOS (13, 0)] + [Mac (11, 0), TV (16, 0), iOS (13, 0)] [Export ("convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions:")] void ConvertSparsePixelRegions (IntPtr pixelRegions, IntPtr tileRegions, MTLSize tileSize, MTLSparseTextureRegionAlignmentMode mode, nuint numRegions); @@ -1728,7 +1728,7 @@ partial interface MTLDevice { #endif #else - [iOS (14, 0), TV (16,0), NoMacCatalyst] + [iOS (14, 0), TV (16, 0), NoMacCatalyst] #endif [Export ("supportsShaderBarycentricCoordinates")] bool SupportsShaderBarycentricCoordinates { get; } @@ -1826,7 +1826,7 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] + [Mac (11, 0), TV (16, 0), iOS (14, 5), MacCatalyst (14, 5)] #endif [Export ("supports32BitFloatFiltering")] bool Supports32BitFloatFiltering { get; } @@ -1840,7 +1840,7 @@ partial interface MTLDevice { [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif #else - [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] + [Mac (11, 0), TV (16, 0), iOS (14, 5), MacCatalyst (14, 5)] #endif [Export ("supports32BitMSAA")] bool Supports32BitMsaa { get; } @@ -1917,12 +1917,12 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("supportsRaytracing")] bool SupportsRaytracing { get; } -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -1931,7 +1931,7 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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.' @@ -1947,7 +1947,7 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("newAccelerationStructureWithSize:")] [return: NullAllowed] @@ -1963,7 +1963,7 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("newAccelerationStructureWithDescriptor:")] [return: NullAllowed] @@ -1979,7 +1979,7 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("supportsFunctionPointers")] bool SupportsFunctionPointers { get; } @@ -1993,7 +1993,7 @@ partial interface MTLDevice { #endif #else - [Mac (11, 0), TV (16,0), iOS (14, 5), MacCatalyst (14, 5)] + [Mac (11, 0), TV (16, 0), iOS (14, 5), MacCatalyst (14, 5)] #endif [Export ("supportsQueryTextureLOD")] bool SupportsQueryTextureLod { get; } @@ -2014,7 +2014,7 @@ partial interface MTLDevice { #endif #else - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0)] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0)] #endif [Export ("supportsRaytracingFromRender")] bool SupportsRaytracingFromRender { get; } @@ -2028,7 +2028,7 @@ partial interface MTLDevice { #endif #else - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0)] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0)] #endif [Export ("supportsPrimitiveMotionBlur")] bool SupportsPrimitiveMotionBlur { get; } @@ -2042,7 +2042,7 @@ partial interface MTLDevice { #endif #else - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16,0), NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (16, 0), NoWatch] #endif [Export ("supportsFunctionPointersFromRender")] bool SupportsFunctionPointersFromRender { get; } @@ -2087,28 +2087,28 @@ partial interface MTLDevice { [return: NullAllowed] IMTLIOFileHandle NewIOFileHandleWithURL (NSUrl url, MTLIOCompressionMethod compressionMethod, [NullAllowed] out NSError error); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("heapAccelerationStructureSizeAndAlignWithDescriptor:")] MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (MTLAccelerationStructureDescriptor descriptor); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("heapAccelerationStructureSizeAndAlignWithSize:")] MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (nuint size); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("newArgumentEncoderWithBufferBinding:")] IMTLArgumentEncoder NewArgumentEncoder (IMTLBufferBinding bufferBinding); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2116,7 +2116,7 @@ partial interface MTLDevice { [return: NullAllowed] IMTLIOCommandQueue NewIOCommandQueue (MTLIOCommandQueueDescriptor descriptor, [NullAllowed] out NSError error); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2124,21 +2124,21 @@ partial interface MTLDevice { [return: NullAllowed] IMTLRenderPipelineState NewRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, [NullAllowed] out MTLRenderPipelineReflection reflection, [NullAllowed] out NSError error); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("newRenderPipelineStateWithMeshDescriptor:options:completionHandler:")] void NewRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("sparseTileSizeInBytesForSparsePageSize:")] nuint GetSparseTileSizeInBytes (MTLSparsePageSize sparsePageSize); - [Mac (13,0), iOS (16,0), MacCatalyst (16,0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2312,7 +2312,7 @@ partial interface MTLTexture : MTLResource { #endif #else - [Mac (12,5), iOS (15, 0), NoMacCatalyst, TV (16,0), NoWatch] + [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (16, 0), NoWatch] #endif [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; } @@ -2390,21 +2390,21 @@ partial interface MTLTexture : MTLResource { [Abstract] #endif - [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("firstMipmapInTail")] nuint FirstMipmapInTail { get; } #if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("tailSizeInBytes")] nuint TailSizeInBytes { get; } #if NET && !__MACOS__ && !__MACCATALYST__ && !TVOS [Abstract] #endif - [Mac (11, 0), TV (16,0), iOS (13, 0), MacCatalyst (15, 0)] + [Mac (11, 0), TV (16, 0), iOS (13, 0), MacCatalyst (15, 0)] [Export ("isSparse")] bool IsSparse { get; } @@ -2516,7 +2516,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [Mac (12,5), iOS (15, 0), NoMacCatalyst, TV (17,0), NoWatch] + [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2570,7 +2570,7 @@ partial interface MTLSamplerDescriptor : NSCopying { [Export ("lodAverage")] bool LodAverage { get; set; } - [iOS (14, 0), TV (17,0), NoWatch] + [iOS (14, 0), TV (17, 0), NoWatch] [MacCatalyst (14, 0)] [Export ("borderColor", ArgumentSemantic.Assign)] MTLSamplerBorderColor BorderColor { get; set; } @@ -2719,7 +2719,7 @@ partial interface MTLRenderPipelineDescriptor : NSCopying { bool SupportIndirectCommandBuffers { get; set; } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (17,0), iOS (13, 0)] + [TV (17, 0), iOS (13, 0)] [Export ("maxVertexAmplificationCount")] nuint MaxVertexAmplificationCount { get; set; } @@ -2828,7 +2828,7 @@ partial interface MTLRenderPipelineState { [Export ("supportIndirectCommandBuffers")] bool SupportIndirectCommandBuffers { get; } -#if NET +#if NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] @@ -2838,7 +2838,7 @@ partial interface MTLRenderPipelineState { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] + [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] #endif [Export ("functionHandleWithFunction:stage:")] [return: NullAllowed] @@ -2853,7 +2853,7 @@ partial interface MTLRenderPipelineState { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] + [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] #endif [Export ("newVisibleFunctionTableWithDescriptor:stage:")] [return: NullAllowed] @@ -2870,7 +2870,7 @@ partial interface MTLRenderPipelineState { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] + [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] #endif [Export ("newIntersectionFunctionTableWithDescriptor:stage:")] [return: NullAllowed] @@ -2886,7 +2886,7 @@ partial interface MTLRenderPipelineState { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), NoWatch, MacCatalyst (15, 0)] + [Mac (12, 0), iOS (15, 0), TV (16, 0), NoWatch, MacCatalyst (15, 0)] #endif [Export ("newRenderPipelineStateWithAdditionalBinaryFunctions:error:")] [return: NullAllowed] @@ -3183,7 +3183,7 @@ partial interface MTLFunction { [return: Release] IMTLArgumentEncoder CreateArgumentEncoder (nuint bufferIndex, [NullAllowed] out MTLArgument reflection); -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -3192,7 +3192,7 @@ partial interface MTLFunction { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("options")] MTLFunctionOptions Options { get; } @@ -3258,7 +3258,7 @@ partial interface MTLLibrary { IMTLFunction CreateFunction (MTLFunctionDescriptor descriptor, [NullAllowed] out NSError error); // protocol, so no Async -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -3267,12 +3267,12 @@ partial interface MTLLibrary { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -3281,7 +3281,7 @@ partial interface MTLLibrary { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("newIntersectionFunctionWithDescriptor:error:")] [return: NullAllowed] @@ -3895,14 +3895,14 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Export ("executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")] void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset); - [iOS (16,0), TV (16,0), MacCatalyst (15, 0)] + [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] #if NET [Abstract] #endif [Export ("memoryBarrierWithScope:afterStages:beforeStages:")] void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before); - [iOS (16,0), TV (16,0), MacCatalyst (15, 0)] + [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] #if NET [Abstract] #endif @@ -4035,7 +4035,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Export ("setThreadgroupMemoryLength:offset:atIndex:")] void SetThreadgroupMemoryLength (nuint length, nuint offset, nuint index); -#if NET +#if NET #if !TVOS [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] @@ -4044,7 +4044,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [MacCatalyst (13, 4), TV (16,0), iOS (13, 0)] + [MacCatalyst (13, 4), TV (16, 0), iOS (13, 0)] #endif [Export ("setVertexAmplificationCount:viewMappings:")] void SetVertexAmplificationCount (nuint count, MTLVertexAmplificationViewMapping viewMappings); @@ -4093,7 +4093,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SampleCounters (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier); #endif -#if NET +#if NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4102,12 +4102,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4116,12 +4116,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4130,12 +4130,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4144,22 +4144,22 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] -#else +#else [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] #endif [Export ("setVertexAccelerationStructure:atBufferIndex:")] void SetVertexAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); @@ -4174,7 +4174,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] #endif [Export ("setFragmentAccelerationStructure:atBufferIndex:")] void SetFragmentAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); @@ -4189,13 +4189,13 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] @@ -4205,12 +4205,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4219,12 +4219,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] @@ -4234,12 +4234,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] @@ -4249,12 +4249,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4263,12 +4263,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4277,12 +4277,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4291,12 +4291,12 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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 NET #if !TVOS [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] @@ -4305,201 +4305,201 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [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] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] #if NET [Abstract] #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] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] #if NET [Abstract] #endif [Export ("setVertexBuffers:offsets:attributeStrides:withRange:")] - void SetVertexBuffers (IMTLBuffer[] buffers, IntPtr offsets, IntPtr strides, NSRange range); + void SetVertexBuffers (IMTLBuffer [] buffers, IntPtr offsets, IntPtr strides, NSRange range); - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0), NoWatch] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] #if NET [Abstract] #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] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] #if NET [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshBufferOffset:atIndex:")] void SetMeshBufferOffset (nuint offset, nuint index); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshBuffers:offsets:withRange:")] - void SetMeshBuffers (IMTLBuffer[] buffers, IntPtr offsets, NSRange range); + void SetMeshBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshTexture:atIndex:")] void SetMeshTexture ([NullAllowed] IMTLTexture texture, nuint index); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshTextures:withRange:")] - void SetMeshTextures (IMTLTexture[] textures, NSRange range); + void SetMeshTextures (IMTLTexture [] textures, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshSamplerState:atIndex:")] void SetMeshSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshSamplerStates:withRange:")] - void SetMeshSamplerStates (IMTLSamplerState[] samplers, NSRange range); + void SetMeshSamplerStates (IMTLSamplerState [] samplers, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] - void SetMeshSamplerStates (IMTLSamplerState[] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); + void SetMeshSamplerStates (IMTLSamplerState [] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectBufferOffset:atIndex:")] void SetObjectBufferOffset (nuint offset, nuint index); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectBuffers:offsets:withRange:")] - void SetObjectBuffers (IMTLBuffer[] buffers, IntPtr offsets, NSRange range); + void SetObjectBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectSamplerState:atIndex:")] void SetObjectSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #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)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] - void SetObjectSamplerStates (IMTLSamplerState[] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); + void SetObjectSamplerStates (IMTLSamplerState [] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectSamplerStates:withRange:")] - void SetObjectSamplerStates (IMTLSamplerState[] samplers, NSRange range); + void SetObjectSamplerStates (IMTLSamplerState [] samplers, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectTexture:atIndex:")] void SetObjectTexture ([NullAllowed] IMTLTexture texture, nuint index); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectTextures:withRange:")] - void SetObjectTextures (IMTLTexture[] textures, NSRange range); + void SetObjectTextures (IMTLTexture [] textures, NSRange range); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -4576,25 +4576,25 @@ interface MTLRenderPipelineReflection { [NullAllowed, Export ("tileArguments")] MTLArgument [] TileArguments { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("vertexBindings")] - IMTLBinding[] VertexBindings { get; } + IMTLBinding [] VertexBindings { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("fragmentBindings")] - IMTLBinding[] FragmentBindings { get; } + IMTLBinding [] FragmentBindings { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("tileBindings")] - IMTLBinding[] TileBindings { get; } + IMTLBinding [] TileBindings { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("objectBindings")] - IMTLBinding[] ObjectBindings { get; } + IMTLBinding [] ObjectBindings { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("meshBindings")] - IMTLBinding[] MeshBindings { get; } + IMTLBinding [] MeshBindings { get; } } [MacCatalyst (13, 1)] @@ -4771,7 +4771,7 @@ interface MTLRenderPassDescriptor : NSCopying { */ [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (17,0), iOS (13, 0)] + [TV (17, 0), iOS (13, 0)] [NullAllowed, Export ("rasterizationRateMap", ArgumentSemantic.Strong)] IMTLRasterizationRateMap RasterizationRateMap { get; set; } @@ -4808,7 +4808,7 @@ interface MTLHeapDescriptor : NSCopying { [Export ("type", ArgumentSemantic.Assign)] MTLHeapType Type { get; set; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("sparsePageSize", ArgumentSemantic.Assign)] MTLSparsePageSize SparsePageSize { get; set; } @@ -4914,7 +4914,7 @@ interface MTLHeap { [return: Release] IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset); -#if NET +#if NET #if !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] @@ -4923,13 +4923,13 @@ interface MTLHeap { #endif #else - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #endif [Export ("newAccelerationStructureWithSize:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (nuint size); -#if NET +#if NET #if !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] @@ -4939,28 +4939,28 @@ interface MTLHeap { #endif #else - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #endif [Export ("newAccelerationStructureWithDescriptor:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); -#if NET +#if NET #if !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else [NoMac, NoiOS, TV (16,0), NoMacCatalyst] -#endif +#endif #else - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #endif [Export ("newAccelerationStructureWithSize:offset:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (nuint size, nuint offset); -#if NET +#if NET #if !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] @@ -4969,7 +4969,7 @@ interface MTLHeap { #endif #else - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #endif [Export ("newAccelerationStructureWithDescriptor:offset:")] [return: NullAllowed, Release] @@ -5115,12 +5115,12 @@ interface MTLComputePipelineDescriptor : NSCopying { [NullAllowed, Export ("linkedFunctions", ArgumentSemantic.Copy)] MTLLinkedFunctions LinkedFunctions { get; set; } - [Mac (11, 0), iOS (14, 0), TV (17,0)] + [Mac (11, 0), iOS (14, 0), TV (17, 0)] [MacCatalyst (14, 0)] [Export ("supportAddingBinaryFunctions")] bool SupportAddingBinaryFunctions { get; set; } - [Mac (11, 0), iOS (14, 0), TV (17,0)] + [Mac (11, 0), iOS (14, 0), TV (17, 0)] [MacCatalyst (14, 0)] [Export ("maxCallStackDepth")] nuint MaxCallStackDepth { get; set; } @@ -5464,21 +5464,21 @@ interface MTLArgumentEncoder { [Export ("setComputePipelineStates:withRange:")] void SetComputePipelineStates (IMTLComputePipelineState [] pipelines, NSRange range); -#if NET +#if NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else [NoMac, NoiOS, TV (16,0), NoMacCatalyst] -#endif +#endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] @@ -5488,12 +5488,12 @@ interface MTLArgumentEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -5502,12 +5502,12 @@ interface MTLArgumentEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -5516,12 +5516,12 @@ interface MTLArgumentEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [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 NET #if !TVOS [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] @@ -5530,7 +5530,7 @@ interface MTLArgumentEncoder { #endif #else - [Mac (11, 0), iOS (14, 0), TV (16,0), MacCatalyst (14, 0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0), MacCatalyst (14, 0)] #endif [Export ("setIntersectionFunctionTables:withRange:")] void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); @@ -5641,7 +5641,7 @@ interface MTLTileRenderPipelineDescriptor : NSCopying { [NullAllowed, Export ("binaryArchives", ArgumentSemantic.Copy)] IMTLBinaryArchive [] BinaryArchives { get; set; } - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Export ("supportAddingBinaryFunctions")] bool SupportAddingBinaryFunctions { get; set; } @@ -5649,7 +5649,7 @@ interface MTLTileRenderPipelineDescriptor : NSCopying { [Export ("preloadedLibraries", ArgumentSemantic.Copy)] IMTLDynamicLibrary [] PreloadedLibraries { get; set; } - [Mac (11, 0), iOS (14, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] + [Mac (11, 0), iOS (14, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Export ("maxCallStackDepth")] nuint MaxCallStackDepth { get; set; } @@ -5770,56 +5770,56 @@ interface MTLIndirectRenderCommand { [Export ("reset")] void Reset (); - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setVertexBuffer:offset:attributeStride:atIndex:")] void SetVertexBuffer (IMTLBuffer buffer, nuint offset, nuint stride, nuint index); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectThreadgroupMemoryLength:atIndex:")] void SetObjectThreadgroupMemoryLength (nuint length, nuint index); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setObjectBuffer:offset:atIndex:")] void SetObjectBuffer (IMTLBuffer buffer, nuint offset, nuint index); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setMeshBuffer:offset:atIndex:")] void SetMeshBuffer (IMTLBuffer buffer, nuint offset, nuint index); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")] void DrawMeshThreads (MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif [Export ("setBarrier")] void SetBarrier (); - [NoMac, iOS (17,0), NoTV, MacCatalyst (17,0)] + [NoMac, iOS (17, 0), NoTV, MacCatalyst (17, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -5926,7 +5926,7 @@ interface MTLSharedTextureHandle : NSSecureCoding { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (16,0), iOS (13, 0)] + [TV (16, 0), iOS (13, 0)] [BaseType (typeof (NSObject))] interface MTLRasterizationRateSampleArray { [Export ("objectAtIndexedSubscript:")] @@ -5937,7 +5937,7 @@ interface MTLRasterizationRateSampleArray { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (16,0), iOS (13, 0)] + [TV (16, 0), iOS (13, 0)] [BaseType (typeof (NSObject))] interface MTLRasterizationRateMapDescriptor : NSCopying { [Static] @@ -5977,7 +5977,7 @@ interface MTLRasterizationRateMapDescriptor : NSCopying { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (16,0), iOS (13, 0)] + [TV (16, 0), iOS (13, 0)] [BaseType (typeof (NSObject))] [DisableDefaultCtor] interface MTLRasterizationRateLayerDescriptor : NSCopying { @@ -6018,7 +6018,7 @@ interface MTLRasterizationRateLayerDescriptor : NSCopying { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (16,0), iOS (13, 0)] + [TV (16, 0), iOS (13, 0)] [BaseType (typeof (NSObject))] interface MTLRasterizationRateLayerArray { [Export ("objectAtIndexedSubscript:")] @@ -6032,7 +6032,7 @@ interface MTLRasterizationRateLayerArray { interface IMTLRasterizationRateMap { } [Introduced (PlatformName.MacCatalyst, 13, 4)] - [TV (16,0), iOS (13, 0)] + [TV (16, 0), iOS (13, 0)] [Protocol] interface MTLRasterizationRateMap { [Abstract] @@ -6079,7 +6079,7 @@ interface MTLRasterizationRateMap { interface IMTLResourceStateCommandEncoder { } [Introduced (PlatformName.MacCatalyst, 14, 0)] - [Mac (11, 0), iOS (13, 0), TV (16,0)] + [Mac (11, 0), iOS (13, 0), TV (16, 0)] [Protocol] interface MTLResourceStateCommandEncoder : MTLCommandEncoder { #if !MONOMAC && !__MACCATALYST__ @@ -6112,7 +6112,7 @@ interface MTLResourceStateCommandEncoder : MTLCommandEncoder { [Export ("waitForFence:")] void Wait (IMTLFence fence); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -6184,7 +6184,7 @@ interface MTLIndirectComputeCommand { [Export ("setImageblockWidth:height:")] void SetImageblock (nuint width, nuint height); - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if NET [Abstract] #endif @@ -6273,7 +6273,7 @@ interface MTLCounterSampleBufferDescriptor : NSCopying { [MacCatalyst (14, 0)] interface IMTLAccelerationStructure { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Protocol] interface MTLAccelerationStructure : MTLResource { @@ -6281,13 +6281,13 @@ interface MTLAccelerationStructure : MTLResource { [Export ("size")] nuint Size { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Abstract] [Export ("gpuResourceID")] MTLResourceId GpuResourceId { get; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] @@ -6309,16 +6309,16 @@ interface MTLAccelerationStructureBoundingBoxGeometryDescriptor { MTLAccelerationStructureBoundingBoxGeometryDescriptor Create (); } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLAccelerationStructureDescriptor : NSCopying { - [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17,0)] + [Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0), TV (17, 0)] [Export ("usage", ArgumentSemantic.Assign)] MTLAccelerationStructureUsage Usage { get; set; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLAccelerationStructureGeometryDescriptor : NSCopying { @@ -6352,7 +6352,7 @@ interface MTLAccelerationStructureGeometryDescriptor : NSCopying { nuint PrimitiveDataElementSize { get; set; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] interface MTLAccelerationStructureTriangleGeometryDescriptor { @@ -6381,15 +6381,15 @@ interface MTLAccelerationStructureTriangleGeometryDescriptor { [Export ("descriptor")] MTLAccelerationStructureTriangleGeometryDescriptor Create (); - [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Export ("vertexFormat", ArgumentSemantic.Assign)] MTLAttributeFormat VertexFormat { get; set; } - [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [NullAllowed, Export ("transformationMatrixBuffer", ArgumentSemantic.Retain)] IMTLBuffer TransformationMatrixBuffer { get; set; } - [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16,0)] + [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] [Export ("transformationMatrixBufferOffset")] nuint TransformationMatrixBufferOffset { get; set; } } @@ -6521,7 +6521,7 @@ interface MTLFunctionDescriptor : NSCopying { IMTLBinaryArchive [] BinaryArchives { get; set; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLAccelerationStructureDescriptor))] @@ -6545,7 +6545,7 @@ interface MTLInstanceAccelerationStructureDescriptor { [Export ("descriptor")] MTLInstanceAccelerationStructureDescriptor Create (); - [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17,0), NoWatch] + [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Export ("instanceDescriptorType", ArgumentSemantic.Assign)] MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; } @@ -6562,13 +6562,13 @@ interface MTLInstanceAccelerationStructureDescriptor { nuint MotionTransformCount { get; set; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLFunctionDescriptor))] interface MTLIntersectionFunctionDescriptor : NSCopying { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (NSObject))] @@ -6593,7 +6593,7 @@ interface MTLLinkedFunctions : NSCopying { [NullAllowed, Export ("functions", ArgumentSemantic.Copy)] IMTLFunction [] Functions { get; set; } - [TV (17,0)] + [TV (17, 0)] [MacCatalyst (13, 1)] [NullAllowed, Export ("binaryFunctions", ArgumentSemantic.Copy)] IMTLFunction [] BinaryFunctions { get; set; } @@ -6622,7 +6622,7 @@ interface MTLLinkedFunctions : NSCopying { nuint MotionTransformCount { get; set; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (MTLAccelerationStructureDescriptor))] @@ -6687,7 +6687,7 @@ interface MTLRenderPassSampleBufferAttachmentDescriptorArray { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (NSObject))] @@ -6700,7 +6700,7 @@ interface MTLResourceStatePassDescriptor : NSCopying { MTLResourceStatePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLResourceStatePassSampleBufferAttachmentDescriptor : NSCopying { @@ -6714,7 +6714,7 @@ interface MTLResourceStatePassSampleBufferAttachmentDescriptor : NSCopying { nuint EndOfEncoderSampleIndex { get; set; } } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [BaseType (typeof (NSObject))] interface MTLResourceStatePassSampleBufferAttachmentDescriptorArray { @@ -6726,7 +6726,7 @@ interface MTLResourceStatePassSampleBufferAttachmentDescriptorArray { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [DisableDefaultCtor] [BaseType (typeof (NSObject))] @@ -6741,7 +6741,7 @@ interface MTLVisibleFunctionTableDescriptor : NSCopying { interface IMTLFunctionHandle { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Protocol] interface MTLFunctionHandle { @@ -6760,7 +6760,7 @@ interface MTLFunctionHandle { interface IMTLAccelerationStructureCommandEncoder { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Protocol] interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder { @@ -6823,7 +6823,7 @@ interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder { [Export ("writeCompactedAccelerationStructureSize:toBuffer:offset:sizeDataType:")] void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset, MTLDataType sizeDataType); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Abstract] [Export ("refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options:")] void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, [NullAllowed] IMTLAccelerationStructure destinationAccelerationStructure, [NullAllowed] IMTLBuffer scratchBuffer, nuint scratchBufferOffset, MTLAccelerationStructureRefitOptions options); @@ -6832,7 +6832,7 @@ interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder { interface IMTLVisibleFunctionTable { } - [Mac (11, 0), iOS (14, 0), TV (16,0)] + [Mac (11, 0), iOS (14, 0), TV (16, 0)] [MacCatalyst (14, 0)] [Protocol] interface MTLVisibleFunctionTable : MTLResource { @@ -6844,7 +6844,7 @@ interface MTLVisibleFunctionTable : MTLResource { [Export ("setFunctions:withRange:")] void SetFunctions (IMTLFunctionHandle [] functions, NSRange range); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -6902,7 +6902,7 @@ interface MTLIntersectionFunctionTable : MTLResource { [Export ("setOpaqueCurveIntersectionFunctionWithSignature:withRange:")] void SetOpaqueCurveIntersectionFunction (MTLIntersectionFunctionSignature signature, NSRange range); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -7015,7 +7015,7 @@ interface MTLStitchedLibraryDescriptor : NSCopying { IMTLFunction [] Functions { get; set; } } - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (NSObject))] interface MTLRenderPipelineFunctionsDescriptor : NSCopying { [NullAllowed, Export ("vertexAdditionalBinaryFunctions", ArgumentSemantic.Copy)] @@ -7028,7 +7028,7 @@ interface MTLRenderPipelineFunctionsDescriptor : NSCopying { IMTLFunction [] TileAdditionalBinaryFunctions { get; set; } } - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (NSObject))] interface MTLMotionKeyframeData { [NullAllowed, Export ("buffer", ArgumentSemantic.Retain)] @@ -7104,7 +7104,7 @@ interface MTLFunctionStitchingFunctionNode : MTLFunctionStitchingNode { NativeHandle Constructor (string name, IMTLFunctionStitchingNode [] arguments, MTLFunctionStitchingFunctionNode [] controlDependencies); } - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] interface MTLAccelerationStructureMotionTriangleGeometryDescriptor { [Export ("vertexBuffers", ArgumentSemantic.Copy)] @@ -7142,7 +7142,7 @@ interface MTLAccelerationStructureMotionTriangleGeometryDescriptor { nuint TransformationMatrixBufferOffset { get; set; } } - [Mac (12, 0), iOS (15, 0), TV (16,0), MacCatalyst (15, 0), NoWatch] + [Mac (12, 0), iOS (15, 0), TV (16, 0), MacCatalyst (15, 0), NoWatch] [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] interface MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor { [Export ("boundingBoxBuffers", ArgumentSemantic.Copy)] @@ -7159,12 +7159,11 @@ interface MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor { MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor Create (); } - interface IMTLBinding {} + interface IMTLBinding { } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLBinding - { + interface MTLBinding { [Abstract] [Export ("name")] string Name { get; } @@ -7190,12 +7189,11 @@ interface MTLBinding bool Argument { [Bind ("isArgument")] get; } } - interface IMTLBufferBinding {} + interface IMTLBufferBinding { } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLBufferBinding : MTLBinding - { + interface MTLBufferBinding : MTLBinding { [Abstract] [Export ("bufferAlignment")] nuint BufferAlignment { get; } @@ -7217,26 +7215,24 @@ interface MTLBufferBinding : MTLBinding MTLPointerType BufferPointerType { get; } } - interface IMTLIOFileHandle {} + interface IMTLIOFileHandle { } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLIOFileHandle - { + interface MTLIOFileHandle { // @required @property (copy, atomic) NSString * _Nullable label; [Abstract] [NullAllowed, Export ("label")] string Label { get; set; } } - interface IMTLIOCommandBuffer {} + interface IMTLIOCommandBuffer { } delegate void MTLIOCommandBufferHandler (IMTLIOCommandBuffer buffer); - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLIOCommandBuffer - { + interface MTLIOCommandBuffer { [Abstract] [Export ("addCompletedHandler:")] void AddCompletedHandler (MTLIOCommandBufferHandler handler); @@ -7306,12 +7302,11 @@ interface MTLIOCommandBuffer NSError Error { get; } } - interface IMTLIOCommandQueue {} + interface IMTLIOCommandQueue { } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLIOCommandQueue - { + interface MTLIOCommandQueue { [Abstract] [Export ("enqueueBarrier")] void EnqueueBarrier (); @@ -7329,33 +7324,30 @@ interface MTLIOCommandQueue string Label { get; set; } } - interface IMTLIOScratchBuffer {} + interface IMTLIOScratchBuffer { } - [Mac (13,0), iOS (16,0)] + [Mac (13, 0), iOS (16, 0)] [Protocol] - interface MTLIOScratchBuffer - { + interface MTLIOScratchBuffer { [Abstract] [Export ("buffer")] IMTLBuffer Buffer { get; } } - interface IMTLIOScratchBufferAllocator {} + interface IMTLIOScratchBufferAllocator { } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLIOScratchBufferAllocator - { + interface MTLIOScratchBufferAllocator { [Abstract] [Export ("newScratchBufferWithMinimumSize:")] [return: NullAllowed, Release] IMTLIOScratchBuffer Create (nuint minimumSize); } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLObjectPayloadBinding : MTLBinding - { + interface MTLObjectPayloadBinding : MTLBinding { [Abstract] [Export ("objectPayloadAlignment")] nuint ObjectPayloadAlignment { get; } @@ -7365,10 +7357,9 @@ interface MTLObjectPayloadBinding : MTLBinding nuint ObjectPayloadDataSize { get; } } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLTextureBinding : MTLBinding - { + interface MTLTextureBinding : MTLBinding { [Abstract] [Export ("textureType")] MTLTextureType TextureType { get; } @@ -7386,10 +7377,9 @@ interface MTLTextureBinding : MTLBinding nuint ArrayLength { get; } } - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] - [BaseType (typeof(MTLAccelerationStructureGeometryDescriptor))] - interface MTLAccelerationStructureCurveGeometryDescriptor - { + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] + interface MTLAccelerationStructureCurveGeometryDescriptor { [NullAllowed, Export ("controlPointBuffer", ArgumentSemantic.Retain)] IMTLBuffer ControlPointBuffer { get; set; } @@ -7446,12 +7436,11 @@ interface MTLAccelerationStructureCurveGeometryDescriptor MTLAccelerationStructureCurveGeometryDescriptor GetDescriptor (); } - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] - [BaseType (typeof(MTLAccelerationStructureGeometryDescriptor))] - interface MTLAccelerationStructureMotionCurveGeometryDescriptor - { + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))] + interface MTLAccelerationStructureMotionCurveGeometryDescriptor { [Export ("controlPointBuffers", ArgumentSemantic.Copy)] - MTLMotionKeyframeData[] ControlPointBuffers { get; set; } + MTLMotionKeyframeData [] ControlPointBuffers { get; set; } [Export ("controlPointCount")] nuint ControlPointCount { get; set; } @@ -7463,7 +7452,7 @@ interface MTLAccelerationStructureMotionCurveGeometryDescriptor MTLAttributeFormat ControlPointFormat { get; set; } [Export ("radiusBuffers", ArgumentSemantic.Copy)] - MTLMotionKeyframeData[] RadiusBuffers { get; set; } + MTLMotionKeyframeData [] RadiusBuffers { get; set; } [Export ("radiusFormat", ArgumentSemantic.Assign)] MTLAttributeFormat RadiusFormat { get; set; } @@ -7500,18 +7489,16 @@ interface MTLAccelerationStructureMotionCurveGeometryDescriptor MTLAccelerationStructureMotionCurveGeometryDescriptor GetDescriptor (); } - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] - [BaseType (typeof(NSObject))] - interface MTLArchitecture : NSCopying - { + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [BaseType (typeof (NSObject))] + interface MTLArchitecture : NSCopying { [Export ("name")] string Name { get; } } - [Mac (14,0), iOS (17,0), TV (17,0), MacCatalyst (17,0)] - [BaseType (typeof(MTLAccelerationStructureDescriptor))] - interface MTLIndirectInstanceAccelerationStructureDescriptor - { + [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] + [BaseType (typeof (MTLAccelerationStructureDescriptor))] + interface MTLIndirectInstanceAccelerationStructureDescriptor { [NullAllowed, Export ("instanceDescriptorBuffer", ArgumentSemantic.Retain)] IMTLBuffer InstanceDescriptorBuffer { get; set; } @@ -7553,10 +7540,9 @@ interface MTLIndirectInstanceAccelerationStructureDescriptor MTLIndirectInstanceAccelerationStructureDescriptor GetDescriptor (); } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [BaseType (typeof(NSObject))] - interface MTLMeshRenderPipelineDescriptor : NSCopying - { + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [BaseType (typeof (NSObject))] + interface MTLMeshRenderPipelineDescriptor : NSCopying { [NullAllowed, Export ("label")] string Label { get; set; } @@ -7640,10 +7626,9 @@ interface MTLMeshRenderPipelineDescriptor : NSCopying void Reset (); } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [BaseType (typeof(NSObject))] - interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : NSCopying - { + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [BaseType (typeof (NSObject))] + interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : NSCopying { [NullAllowed, Export ("sampleBuffer", ArgumentSemantic.Retain)] IMTLCounterSampleBuffer SampleBuffer { get; set; } @@ -7654,10 +7639,9 @@ interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : NSCopyi nuint EndOfEncoderSampleIndex { get; set; } } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [BaseType (typeof(NSObject))] - interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray - { + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [BaseType (typeof (NSObject))] + interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray { [Export ("objectAtIndexedSubscript:")] MTLAccelerationStructurePassSampleBufferAttachmentDescriptor ObjectAtIndexedSubscript (nuint attachmentIndex); @@ -7665,11 +7649,10 @@ interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray void SetObject ([NullAllowed] MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex); } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [BaseType (typeof(NSObject))] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [BaseType (typeof (NSObject))] [DisableDefaultCtor] - interface MTLIOCommandQueueDescriptor : NSCopying - { + interface MTLIOCommandQueueDescriptor : NSCopying { [Export ("maxCommandBufferCount")] nuint MaxCommandBufferCount { get; set; } @@ -7686,10 +7669,9 @@ interface MTLIOCommandQueueDescriptor : NSCopying IMTLIOScratchBufferAllocator ScratchBufferAllocator { get; set; } } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [BaseType (typeof(NSObject))] - interface MTLAccelerationStructurePassDescriptor : NSCopying - { + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [BaseType (typeof (NSObject))] + interface MTLAccelerationStructurePassDescriptor : NSCopying { [Static] [Export ("accelerationStructurePassDescriptor")] MTLAccelerationStructurePassDescriptor AccelerationStructurePassDescriptor { get; } @@ -7698,10 +7680,9 @@ interface MTLAccelerationStructurePassDescriptor : NSCopying MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; } } - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] - interface MTLThreadgroupBinding : MTLBinding - { + interface MTLThreadgroupBinding : MTLBinding { [Abstract] [Export ("threadgroupMemoryAlignment")] nuint ThreadgroupMemoryAlignment { get; } diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs index 46d8fb0e1412..e630ef4f8277 100644 --- a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -15,11 +15,11 @@ public void SetUp () { TestRuntime.AssertXcodeVersion (15, 0); var paths = NSSearchPath.GetDirectories (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User); - + // Convert once outputPath = Path.Combine (paths [0], "output1"); } - + [TearDown] public void TearDown () @@ -38,12 +38,12 @@ public void DefaultChunkSize () public void CreateAndFlushTest () { TestRuntime.AssertNotSimulator (); // metal api no supported on the sim - // create and flush, test should simple pass, no need to asserts + // create and flush, test should simple pass, no need to asserts using var compressIO = MTLIOCompressionContext.Create (outputPath, MTLIOCompressionMethod.Lzfse, MTLIOCompressionContext.DefaultChunkSize); Assert.NotNull (compressIO, "Null compress IO"); // add data - var data = Enumerable.Repeat((byte)0x20, 20).ToArray(); + var data = Enumerable.Repeat ((byte) 0x20, 20).ToArray (); compressIO!.AppendData (data); compressIO!.FlushAndDestroy (); // ensure we do not have issues with a second flush and destroy From ee94815a7b005bde11fdd014328b0a39ae0c9d32 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Thu, 2 Nov 2023 09:22:41 -0400 Subject: [PATCH 04/25] Apply suggestions from code review Co-authored-by: Rolf Bjarne Kvinge Co-authored-by: Haritha Mohan --- src/Metal/MTLEnums.cs | 4 ++-- src/metal.cs | 21 +++++++++---------- .../Metal/MTLIOCompressionContextTest.cs | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index 1b27520d2c53..df6632cd5b31 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -249,7 +249,7 @@ public enum MTLVertexFormat : ulong { [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] FloatRG11B10 = 54, [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] - FloatRGB9E5 = 55, + FloatRgb9E5 = 55, } [MacCatalyst (13, 1)] @@ -1751,7 +1751,7 @@ public enum MTLIOCompressionMethod : long { Lzfse = 1, Lz4 = 2, Lzma = 3, - LZBitmap = 4 + LzBitmap = 4 } [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] diff --git a/src/metal.cs b/src/metal.cs index 535c13ca7251..5f94855b27ad 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -4322,7 +4322,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setVertexBuffers:offsets:attributeStrides:withRange:")] - void SetVertexBuffers (IMTLBuffer [] buffers, IntPtr offsets, IntPtr strides, NSRange range); + void SetVertexBuffers (IntPtr buffers, IntPtr offsets, IntPtr strides, NSRange range); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] #if NET @@ -4371,7 +4371,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setMeshBuffers:offsets:withRange:")] - void SetMeshBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range); + void SetMeshBuffers (IntPtr buffers, IntPtr offsets, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 @@ -4385,7 +4385,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setMeshTextures:withRange:")] - void SetMeshTextures (IMTLTexture [] textures, NSRange range); + void SetMeshTextures (IntPtr textures, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 @@ -4399,7 +4399,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setMeshSamplerStates:withRange:")] - void SetMeshSamplerStates (IMTLSamplerState [] samplers, NSRange range); + void SetMeshSamplerStates (IntPtr samplers, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 @@ -4413,7 +4413,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] - void SetMeshSamplerStates (IMTLSamplerState [] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); + 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 @@ -4434,7 +4434,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setObjectBuffers:offsets:withRange:")] - void SetObjectBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range); + void SetObjectBuffers (IntPtr buffers, IntPtr offsets, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 @@ -4476,14 +4476,14 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange:")] - void SetObjectSamplerStates (IMTLSamplerState [] samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, NSRange range); + 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] #endif [Export ("setObjectSamplerStates:withRange:")] - void SetObjectSamplerStates (IMTLSamplerState [] samplers, NSRange range); + void SetObjectSamplerStates (IntPtr samplers, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 @@ -4497,7 +4497,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("setObjectTextures:withRange:")] - void SetObjectTextures (IMTLTexture [] textures, NSRange range); + void SetObjectTextures (IntPtr textures, NSRange range); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 @@ -6117,7 +6117,7 @@ interface MTLResourceStateCommandEncoder : MTLCommandEncoder { [Abstract] #endif [Export ("moveTextureMappingsFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")] - void MoveTextureMappingsFromTexture (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin); + void MoveTextureMappings (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin); } [iOS (13, 0), TV (13, 0)] @@ -7220,7 +7220,6 @@ interface IMTLIOFileHandle { } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] interface MTLIOFileHandle { - // @required @property (copy, atomic) NSString * _Nullable label; [Abstract] [NullAllowed, Export ("label")] string Label { get; set; } diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs index e630ef4f8277..c1b95a705436 100644 --- a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -17,7 +17,7 @@ public void SetUp () var paths = NSSearchPath.GetDirectories (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User); // Convert once - outputPath = Path.Combine (paths [0], "output1"); + outputPath = Path.Combine (paths [0], $"monotouch-test-MTLIOCompressinoContextTest-output{System.Diagnostics.Process.GetCurrentProcess ().Id}"); } From cf8a68353f8a6c866e3bac0c0f04701443d46333 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Fri, 3 Nov 2023 12:22:02 -0400 Subject: [PATCH 05/25] Address the following after reviews: 1. Add missing attrs for catalyst. 2. Add missing null checks. 3. Take into account XAMCORE_5_0 on tvOS 4. Make sure we do not break API adding a new abstract method. --- src/Metal/MTLEnums.cs | 2 +- src/Metal/MTLIOCompression.cs | 13 +- src/metal.cs | 204 +++++++++++++++++- .../api-annotations-dotnet/iOS-Metal.ignore | 1 + .../api-annotations-dotnet/macOS-Metal.ignore | 1 + .../api-annotations-dotnet/tvOS-Metal.ignore | 1 + tests/xtro-sharpie/iOS-Metal.ignore | 1 + tests/xtro-sharpie/macOS-Metal.ignore | 1 + tests/xtro-sharpie/tvOS-Metal.ignore | 1 + 9 files changed, 215 insertions(+), 10 deletions(-) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index df6632cd5b31..19c761449b02 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -1707,7 +1707,7 @@ public enum MTLAccelerationStructureInstanceDescriptorType : ulong { IndirectMotion = 4, } - [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index 22cf6a57bc7f..d8bfa02eb957 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -33,8 +33,11 @@ public class MTLIOCompressionContext : DisposableObject { unsafe void AppendData (void* data, nuint size) => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); - public void AppendData (byte [] data) - => AppendData (new ReadOnlySpan (data, 0, data.Length)); + public void AppendData (byte [] data) { + if (data is null) + ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); + AppendData (new ReadOnlySpan (data, 0, data.Length)); + } public void AppendData (ReadOnlySpan data) { @@ -48,6 +51,8 @@ public void AppendData (ReadOnlySpan data) public void AppendData (NSData data) { + if (data is null) + ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); unsafe { AppendData ((void*) data.Bytes, data.Length); } @@ -55,9 +60,9 @@ public void AppendData (NSData data) [DllImport (Constants.MetalLibrary)] // [return: NullAllowed] - static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, nuint chunkSize); + static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, long chunkSize); - public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, nuint chunkSize) + public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, long chunkSize) { if (path is null) ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (path)); diff --git a/src/metal.cs b/src/metal.cs index 5f94855b27ad..b3c7df88f8de 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -224,7 +224,9 @@ partial interface MTLBuffer : MTLResource { IMTLBuffer CreateRemoteBuffer (IMTLDevice device); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] +#if XAMCORE_r54_0 [Abstract] +#endif [Export ("gpuAddress")] ulong GpuAddress { get; } } @@ -406,7 +408,15 @@ partial interface MTLCommandBuffer { [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 +#if XAMCORE_5_0 + [Abstract] +#endif [NoMacCatalyst, NoMac, NoiOS, TV (16,0)] + +#if XAMCORE_5_0 + [Abstract] +#endif + #endif #else @@ -452,6 +462,9 @@ partial interface MTLCommandBuffer { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -466,6 +479,9 @@ partial interface MTLCommandBuffer { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -475,7 +491,7 @@ partial interface MTLCommandBuffer { [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif @@ -728,6 +744,9 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -743,6 +762,9 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -757,6 +779,9 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -771,6 +796,9 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -786,6 +814,9 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -896,6 +927,9 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -911,6 +945,9 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -926,6 +963,9 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -941,6 +981,9 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1615,6 +1658,9 @@ partial interface MTLDevice { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif @@ -1630,6 +1676,9 @@ partial interface MTLDevice { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif @@ -1645,6 +1694,9 @@ partial interface MTLDevice { [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMacCatalyst, NoMac, TV (16,0), NoiOS] #endif @@ -1660,6 +1712,9 @@ partial interface MTLDevice { [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMacCatalyst, NoMac, TV (16,0), NoiOS] #endif @@ -1675,6 +1730,9 @@ partial interface MTLDevice { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif @@ -1724,6 +1782,9 @@ partial interface MTLDevice { [iOS (14, 0), NoTV, NoMacCatalyst] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1822,6 +1883,9 @@ partial interface MTLDevice { [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif @@ -1837,6 +1901,9 @@ partial interface MTLDevice { [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif #else @@ -1913,6 +1980,9 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1927,6 +1997,9 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1943,6 +2016,9 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1959,6 +2035,9 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1975,6 +2054,9 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1989,6 +2071,9 @@ partial interface MTLDevice { [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif @@ -2010,6 +2095,9 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] #endif @@ -2024,6 +2112,9 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] #endif @@ -2038,6 +2129,9 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] #endif @@ -2308,6 +2402,9 @@ partial interface MTLTexture : MTLResource { [Mac (12,5), iOS (15, 0), NoMacCatalyst, NoTV, NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] #endif @@ -2444,7 +2541,7 @@ partial interface MTLTexture : MTLResource { [return: Release] IMTLTexture CreateRemoteTexture (IMTLDevice device); - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2516,7 +2613,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2600,7 +2697,7 @@ partial interface MTLSamplerState { [Abstract, Export ("device")] IMTLDevice Device { get; } - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2834,6 +2931,9 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -2849,6 +2949,9 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -2866,6 +2969,9 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -2882,6 +2988,9 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -3188,6 +3297,9 @@ partial interface MTLFunction { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -3263,6 +3375,9 @@ partial interface MTLLibrary { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -3277,6 +3392,9 @@ partial interface MTLLibrary { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -4040,7 +4158,11 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else - [NoMacCatalyst, TV (16,0), NoiOS] + +#if XAMCORE_5_0 + [Abstract] +#endif + [NoMacCatalyst, TV (16,0), NoiOS, NoMac] #endif #else @@ -4098,6 +4220,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4112,6 +4237,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4126,6 +4254,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4140,6 +4271,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4155,6 +4289,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4170,6 +4307,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4185,6 +4325,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4201,6 +4344,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4215,6 +4361,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4230,6 +4379,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4245,6 +4397,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4259,6 +4414,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4273,6 +4431,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4287,6 +4448,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4301,6 +4465,9 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4919,6 +5086,9 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -4935,6 +5105,9 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -4950,6 +5123,9 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -4965,6 +5141,9 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5469,6 +5648,9 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5484,6 +5666,9 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5498,6 +5683,9 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5512,6 +5700,9 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5526,6 +5717,9 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else +#if XAMCORE_5_0 + [Abstract] +#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore index 809453848cda..72f9cf93b0db 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore @@ -40,6 +40,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore index be3a2dd4d0bc..813d503e6bb9 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore @@ -38,6 +38,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore index 59888c6e44c8..d530d769e73b 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore @@ -97,6 +97,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/iOS-Metal.ignore b/tests/xtro-sharpie/iOS-Metal.ignore index fdcbd398ad3d..7aa8fa80a80f 100644 --- a/tests/xtro-sharpie/iOS-Metal.ignore +++ b/tests/xtro-sharpie/iOS-Metal.ignore @@ -182,6 +182,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/macOS-Metal.ignore b/tests/xtro-sharpie/macOS-Metal.ignore index e8974578f83a..57e444f928b3 100644 --- a/tests/xtro-sharpie/macOS-Metal.ignore +++ b/tests/xtro-sharpie/macOS-Metal.ignore @@ -191,6 +191,7 @@ !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! MTLTexture::compressionType is REQUIRED and should be abstract +!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/tvOS-Metal.ignore b/tests/xtro-sharpie/tvOS-Metal.ignore index 5d910f675e2d..b7f3ce9c5d74 100644 --- a/tests/xtro-sharpie/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/tvOS-Metal.ignore @@ -173,6 +173,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound From 6d14d666b8573799f6b0de49643aaece768c9858 Mon Sep 17 00:00:00 2001 From: GitHub Actions Autoformatter Date: Fri, 3 Nov 2023 16:26:38 +0000 Subject: [PATCH 06/25] Auto-format source code --- src/Metal/MTLEnums.cs | 2 +- src/Metal/MTLIOCompression.cs | 3 ++- src/metal.cs | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index 19c761449b02..d0e9a993d76c 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -1707,7 +1707,7 @@ public enum MTLAccelerationStructureInstanceDescriptorType : ulong { IndirectMotion = 4, } - [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index d8bfa02eb957..f664f373a5da 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -33,7 +33,8 @@ public class MTLIOCompressionContext : DisposableObject { unsafe void AppendData (void* data, nuint size) => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); - public void AppendData (byte [] data) { + public void AppendData (byte [] data) + { if (data is null) ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); AppendData (new ReadOnlySpan (data, 0, data.Length)); diff --git a/src/metal.cs b/src/metal.cs index b3c7df88f8de..d0ce42b3f401 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -491,7 +491,7 @@ partial interface MTLCommandBuffer { [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2541,7 +2541,7 @@ partial interface MTLTexture : MTLResource { [return: Release] IMTLTexture CreateRemoteTexture (IMTLDevice device); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2613,7 +2613,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2697,7 +2697,7 @@ partial interface MTLSamplerState { [Abstract, Export ("device")] IMTLDevice Device { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif From fe75d758412fb3e81d70d13d10118d2392b6cb9b Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Mon, 6 Nov 2023 10:32:20 -0500 Subject: [PATCH 07/25] Revert "Auto-format source code" This reverts commit 352b7066658cc1024aaafc448c7d611536b0885b. --- src/Metal/MTLEnums.cs | 2 +- src/Metal/MTLIOCompression.cs | 3 +-- src/metal.cs | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index d0e9a993d76c..19c761449b02 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -1707,7 +1707,7 @@ public enum MTLAccelerationStructureInstanceDescriptorType : ulong { IndirectMotion = 4, } - [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index f664f373a5da..d8bfa02eb957 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -33,8 +33,7 @@ public class MTLIOCompressionContext : DisposableObject { unsafe void AppendData (void* data, nuint size) => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); - public void AppendData (byte [] data) - { + public void AppendData (byte [] data) { if (data is null) ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); AppendData (new ReadOnlySpan (data, 0, data.Length)); diff --git a/src/metal.cs b/src/metal.cs index d0ce42b3f401..b3c7df88f8de 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -491,7 +491,7 @@ partial interface MTLCommandBuffer { [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2541,7 +2541,7 @@ partial interface MTLTexture : MTLResource { [return: Release] IMTLTexture CreateRemoteTexture (IMTLDevice device); - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2613,7 +2613,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2697,7 +2697,7 @@ partial interface MTLSamplerState { [Abstract, Export ("device")] IMTLDevice Device { get; } - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif From 1a66dd7ce15914c29bce6976d7b483f0d5797ef5 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Mon, 6 Nov 2023 10:32:33 -0500 Subject: [PATCH 08/25] Revert "Address the following after reviews:" This reverts commit 9c931cb35b022253fa9d7ab950006bfc52d3eabb. --- src/Metal/MTLEnums.cs | 2 +- src/Metal/MTLIOCompression.cs | 13 +- src/metal.cs | 204 +----------------- .../api-annotations-dotnet/iOS-Metal.ignore | 1 - .../api-annotations-dotnet/macOS-Metal.ignore | 1 - .../api-annotations-dotnet/tvOS-Metal.ignore | 1 - tests/xtro-sharpie/iOS-Metal.ignore | 1 - tests/xtro-sharpie/macOS-Metal.ignore | 1 - tests/xtro-sharpie/tvOS-Metal.ignore | 1 - 9 files changed, 10 insertions(+), 215 deletions(-) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index 19c761449b02..df6632cd5b31 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -1707,7 +1707,7 @@ public enum MTLAccelerationStructureInstanceDescriptorType : ulong { IndirectMotion = 4, } - [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index d8bfa02eb957..22cf6a57bc7f 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -33,11 +33,8 @@ public class MTLIOCompressionContext : DisposableObject { unsafe void AppendData (void* data, nuint size) => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); - public void AppendData (byte [] data) { - if (data is null) - ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); - AppendData (new ReadOnlySpan (data, 0, data.Length)); - } + public void AppendData (byte [] data) + => AppendData (new ReadOnlySpan (data, 0, data.Length)); public void AppendData (ReadOnlySpan data) { @@ -51,8 +48,6 @@ public void AppendData (ReadOnlySpan data) public void AppendData (NSData data) { - if (data is null) - ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); unsafe { AppendData ((void*) data.Bytes, data.Length); } @@ -60,9 +55,9 @@ public void AppendData (NSData data) [DllImport (Constants.MetalLibrary)] // [return: NullAllowed] - static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, long chunkSize); + static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, nuint chunkSize); - public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, long chunkSize) + public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, nuint chunkSize) { if (path is null) ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (path)); diff --git a/src/metal.cs b/src/metal.cs index b3c7df88f8de..5f94855b27ad 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -224,9 +224,7 @@ partial interface MTLBuffer : MTLResource { IMTLBuffer CreateRemoteBuffer (IMTLDevice device); [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#if XAMCORE_r54_0 [Abstract] -#endif [Export ("gpuAddress")] ulong GpuAddress { get; } } @@ -408,15 +406,7 @@ partial interface MTLCommandBuffer { [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 -#if XAMCORE_5_0 - [Abstract] -#endif [NoMacCatalyst, NoMac, NoiOS, TV (16,0)] - -#if XAMCORE_5_0 - [Abstract] -#endif - #endif #else @@ -462,9 +452,6 @@ partial interface MTLCommandBuffer { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -479,9 +466,6 @@ partial interface MTLCommandBuffer { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -491,7 +475,7 @@ partial interface MTLCommandBuffer { [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -744,9 +728,6 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -762,9 +743,6 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -779,9 +757,6 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -796,9 +771,6 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -814,9 +786,6 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -927,9 +896,6 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -945,9 +911,6 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -963,9 +926,6 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -981,9 +941,6 @@ partial interface MTLComputePipelineState { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1658,9 +1615,6 @@ partial interface MTLDevice { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif @@ -1676,9 +1630,6 @@ partial interface MTLDevice { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif @@ -1694,9 +1645,6 @@ partial interface MTLDevice { [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMacCatalyst, NoMac, TV (16,0), NoiOS] #endif @@ -1712,9 +1660,6 @@ partial interface MTLDevice { [MacCatalyst (14, 0), Mac (11, 0), NoTV, iOS (13, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMacCatalyst, NoMac, TV (16,0), NoiOS] #endif @@ -1730,9 +1675,6 @@ partial interface MTLDevice { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoMacCatalyst, TV (16,0), NoiOS] #endif @@ -1782,9 +1724,6 @@ partial interface MTLDevice { [iOS (14, 0), NoTV, NoMacCatalyst] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1883,9 +1822,6 @@ partial interface MTLDevice { [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif @@ -1901,9 +1837,6 @@ partial interface MTLDevice { [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif #else @@ -1980,9 +1913,6 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -1997,9 +1927,6 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -2016,9 +1943,6 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -2035,9 +1959,6 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -2054,9 +1975,6 @@ partial interface MTLDevice { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -2071,9 +1989,6 @@ partial interface MTLDevice { [Mac (11, 0), NoTV, iOS (14, 5), MacCatalyst (14, 5)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, TV (16,0), NoiOS, NoMacCatalyst] #endif @@ -2095,9 +2010,6 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] #endif @@ -2112,9 +2024,6 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0)] #endif @@ -2129,9 +2038,6 @@ partial interface MTLDevice { [Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] #endif @@ -2402,9 +2308,6 @@ partial interface MTLTexture : MTLResource { [Mac (12,5), iOS (15, 0), NoMacCatalyst, NoTV, NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, NoMacCatalyst, TV (16,0), NoWatch] #endif @@ -2541,7 +2444,7 @@ partial interface MTLTexture : MTLResource { [return: Release] IMTLTexture CreateRemoteTexture (IMTLDevice device); - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2613,7 +2516,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [Mac (12, 5), iOS (15, 0), MacCatalyst (15,0), TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2697,7 +2600,7 @@ partial interface MTLSamplerState { [Abstract, Export ("device")] IMTLDevice Device { get; } - [Mac (13, 0), iOS (16, 0), TV (16,0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2931,9 +2834,6 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -2949,9 +2849,6 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -2969,9 +2866,6 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -2988,9 +2882,6 @@ partial interface MTLRenderPipelineState { [Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoWatch, NoMacCatalyst] #endif @@ -3297,9 +3188,6 @@ partial interface MTLFunction { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -3375,9 +3263,6 @@ partial interface MTLLibrary { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -3392,9 +3277,6 @@ partial interface MTLLibrary { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -4158,11 +4040,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [MacCatalyst (13, 4), NoTV, iOS (13, 0)] [Abstract] #else - -#if XAMCORE_5_0 - [Abstract] -#endif - [NoMacCatalyst, TV (16,0), NoiOS, NoMac] + [NoMacCatalyst, TV (16,0), NoiOS] #endif #else @@ -4220,9 +4098,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4237,9 +4112,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4254,9 +4126,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4271,9 +4140,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4289,9 +4155,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4307,9 +4170,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4325,9 +4185,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4344,9 +4201,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4361,9 +4215,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4379,9 +4230,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4397,9 +4245,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4414,9 +4259,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4431,9 +4273,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4448,9 +4287,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -4465,9 +4301,6 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst, NoWatch] #endif @@ -5086,9 +4919,6 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5105,9 +4935,6 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5123,9 +4950,6 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5141,9 +4965,6 @@ interface MTLHeap { [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5648,9 +5469,6 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5666,9 +5484,6 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5683,9 +5498,6 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5700,9 +5512,6 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif @@ -5717,9 +5526,6 @@ interface MTLArgumentEncoder { [Mac (11, 0), iOS (14, 0), NoTV, MacCatalyst (14, 0)] [Abstract] #else -#if XAMCORE_5_0 - [Abstract] -#endif [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore index 72f9cf93b0db..809453848cda 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore @@ -40,7 +40,6 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore index 813d503e6bb9..be3a2dd4d0bc 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore @@ -38,7 +38,6 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore index d530d769e73b..59888c6e44c8 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore @@ -97,7 +97,6 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/iOS-Metal.ignore b/tests/xtro-sharpie/iOS-Metal.ignore index 7aa8fa80a80f..fdcbd398ad3d 100644 --- a/tests/xtro-sharpie/iOS-Metal.ignore +++ b/tests/xtro-sharpie/iOS-Metal.ignore @@ -182,7 +182,6 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/macOS-Metal.ignore b/tests/xtro-sharpie/macOS-Metal.ignore index 57e444f928b3..e8974578f83a 100644 --- a/tests/xtro-sharpie/macOS-Metal.ignore +++ b/tests/xtro-sharpie/macOS-Metal.ignore @@ -191,7 +191,6 @@ !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! MTLTexture::compressionType is REQUIRED and should be abstract -!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/tvOS-Metal.ignore b/tests/xtro-sharpie/tvOS-Metal.ignore index b7f3ce9c5d74..5d910f675e2d 100644 --- a/tests/xtro-sharpie/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/tvOS-Metal.ignore @@ -173,7 +173,6 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound From 32548bceeb93331bbf2813267d8d74ba814d6bec Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Mon, 6 Nov 2023 12:03:58 -0500 Subject: [PATCH 09/25] Fix all the same issues as commit adddb22 We changed the way we deal with the preprocessors. --- src/Metal/MTLEnums.cs | 2 +- src/Metal/MTLIOCompression.cs | 12 +- src/metal.cs | 332 ++++++++++++++---- .../api-annotations-dotnet/iOS-Metal.ignore | 1 + .../api-annotations-dotnet/macOS-Metal.ignore | 1 + .../api-annotations-dotnet/tvOS-Metal.ignore | 1 + tests/xtro-sharpie/iOS-Metal.ignore | 1 + tests/xtro-sharpie/macOS-Metal.ignore | 1 + tests/xtro-sharpie/tvOS-Metal.ignore | 1 + 9 files changed, 271 insertions(+), 81 deletions(-) diff --git a/src/Metal/MTLEnums.cs b/src/Metal/MTLEnums.cs index df6632cd5b31..d0e9a993d76c 100644 --- a/src/Metal/MTLEnums.cs +++ b/src/Metal/MTLEnums.cs @@ -1707,7 +1707,7 @@ public enum MTLAccelerationStructureInstanceDescriptorType : ulong { IndirectMotion = 4, } - [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Native] public enum MTLTextureCompressionType : long { Lossless = 0, diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index 22cf6a57bc7f..f664f373a5da 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -34,7 +34,11 @@ unsafe void AppendData (void* data, nuint size) => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); public void AppendData (byte [] data) - => AppendData (new ReadOnlySpan (data, 0, data.Length)); + { + if (data is null) + ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); + AppendData (new ReadOnlySpan (data, 0, data.Length)); + } public void AppendData (ReadOnlySpan data) { @@ -48,6 +52,8 @@ public void AppendData (ReadOnlySpan data) public void AppendData (NSData data) { + if (data is null) + ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (data)); unsafe { AppendData ((void*) data.Bytes, data.Length); } @@ -55,9 +61,9 @@ public void AppendData (NSData data) [DllImport (Constants.MetalLibrary)] // [return: NullAllowed] - static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, nuint chunkSize); + static extern IntPtr MTLIOCreateCompressionContext (IntPtr path, long type, long chunkSize); - public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, nuint chunkSize) + public static MTLIOCompressionContext? Create (string path, MTLIOCompressionMethod type, long chunkSize) { if (path is null) ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (path)); diff --git a/src/metal.cs b/src/metal.cs index 5f94855b27ad..7251e6da8210 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -224,7 +224,9 @@ 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] +#endif [Export ("gpuAddress")] ulong GpuAddress { get; } } @@ -402,7 +404,10 @@ partial interface MTLCommandBuffer { void PopDebugGroup (); #if NET -#if !TVOS +#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 @@ -448,7 +453,10 @@ partial interface MTLCommandBuffer { IMTLBlitCommandEncoder CreateBlitCommandEncoder (MTLBlitPassDescriptor blitPassDescriptor); #if NET -#if !TVOS +#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 @@ -462,7 +470,10 @@ partial interface MTLCommandBuffer { IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (MTLResourceStatePassDescriptor resourceStatePassDescriptor); #if NET -#if !TVOS +#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 @@ -475,7 +486,7 @@ partial interface MTLCommandBuffer { [Export ("accelerationStructureCommandEncoder")] IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (); - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -724,7 +735,10 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { #endif #if NET -#if !TVOS +#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 @@ -738,8 +752,10 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable visibleFunctionTable, nuint bufferIndex); #if NET - -#if !TVOS +#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 @@ -753,7 +769,10 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range); #if NET -#if !TVOS +#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 @@ -767,7 +786,10 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { void SetIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET -#if !TVOS +#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 @@ -781,8 +803,10 @@ partial interface MTLComputeCommandEncoder : MTLCommandEncoder { void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range); #if NET - -#if !TVOS +#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 @@ -892,7 +916,10 @@ partial interface MTLComputePipelineState { bool SupportIndirectCommandBuffers { get; } #if NET -#if !TVOS +#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 @@ -907,7 +934,10 @@ partial interface MTLComputePipelineState { #if NET -#if !TVOS +#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 @@ -922,7 +952,10 @@ partial interface MTLComputePipelineState { IMTLComputePipelineState CreateComputePipelineState (IMTLFunction [] functions, [NullAllowed] out NSError error); #if NET -#if !TVOS +#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 @@ -937,7 +970,10 @@ partial interface MTLComputePipelineState { IMTLVisibleFunctionTable CreateVisibleFunctionTable (MTLVisibleFunctionTableDescriptor descriptor); #if NET -#if !TVOS +#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 @@ -1610,8 +1646,10 @@ partial interface MTLDevice { void CreateRenderPipelineState (MTLTileRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler); #if NET - -#if !TVOS +#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 @@ -1625,8 +1663,10 @@ partial interface MTLDevice { bool SupportsVertexAmplification (nuint count); #if NET - -#if !TVOS +#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 @@ -1640,8 +1680,10 @@ partial interface MTLDevice { bool SupportsRasterizationRateMap (nuint layerCount); #if NET - -#if !TVOS +#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 @@ -1655,8 +1697,10 @@ partial interface MTLDevice { MTLSize GetSparseTileSize (MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount); #if NET - -#if !TVOS +#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 @@ -1670,8 +1714,10 @@ partial interface MTLDevice { nuint SparseTileSizeInBytes { get; } #if NET - -#if !TVOS +#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 @@ -1720,7 +1766,10 @@ partial interface MTLDevice { bool BarycentricCoordsSupported { [Bind ("areBarycentricCoordsSupported")] get; } #if NET -#if !TVOS +#if XAMCORE_5_0 + [iOS (14, 0), TV (16,0), NoMacCatalyst] + [Abstract] +#elif !TVOS [iOS (14, 0), NoTV, NoMacCatalyst] [Abstract] #else @@ -1818,7 +1867,10 @@ partial interface MTLDevice { nuint LocationNumber { get; } #if NET -#if !TVOS +#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 @@ -1832,8 +1884,10 @@ partial interface MTLDevice { bool Supports32BitFloatFiltering { get; } #if NET - -#if !TVOS +#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 @@ -1908,8 +1962,10 @@ partial interface MTLDevice { IMTLBinaryArchive CreateBinaryArchive (MTLBinaryArchiveDescriptor descriptor, [NullAllowed] out NSError error); #if NET - -#if !TVOS +#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 @@ -1923,7 +1979,10 @@ partial interface MTLDevice { bool SupportsRaytracing { get; } #if NET -#if !TVOS +#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 @@ -1939,7 +1998,10 @@ partial interface MTLDevice { #pragma warning restore #if NET -#if !TVOS +#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 @@ -1955,7 +2017,10 @@ partial interface MTLDevice { IMTLAccelerationStructure CreateAccelerationStructure (nuint size); #if NET -#if !TVOS +#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 @@ -1971,7 +2036,10 @@ partial interface MTLDevice { IMTLAccelerationStructure CreateAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); #if NET -#if !TVOS +#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 @@ -1985,7 +2053,10 @@ partial interface MTLDevice { bool SupportsFunctionPointers { get; } #if NET -#if !TVOS +#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 @@ -2006,7 +2077,10 @@ partial interface MTLDevice { bool SupportsRenderDynamicLibraries { get; } #if NET -#if !TVOS +#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 @@ -2020,7 +2094,10 @@ partial interface MTLDevice { bool SupportsRaytracingFromRender { get; } #if NET -#if !TVOS +#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 @@ -2034,7 +2111,10 @@ partial interface MTLDevice { bool SupportsPrimitiveMotionBlur { get; } #if NET -#if !TVOS +#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 @@ -2304,7 +2384,10 @@ partial interface MTLTexture : MTLResource { bool AllowGpuOptimizedContents { get; } #if NET -#if !TVOS +#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 @@ -2444,7 +2527,7 @@ partial interface MTLTexture : MTLResource { [return: Release] IMTLTexture CreateRemoteTexture (IMTLDevice device); - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2516,7 +2599,7 @@ partial interface MTLTextureDescriptor : NSCopying { [Export ("allowGPUOptimizedContents")] bool AllowGpuOptimizedContents { get; set; } - [Mac (12, 5), iOS (15, 0), NoMacCatalyst, TV (17, 0), NoWatch] + [Mac (12, 5), iOS (15, 0), MacCatalyst (15, 0), TV (17, 0), NoWatch] [Export ("compressionType")] MTLTextureCompressionType CompressionType { get; set; } @@ -2600,7 +2683,7 @@ partial interface MTLSamplerState { [Abstract, Export ("device")] IMTLDevice Device { get; } - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif @@ -2830,7 +2913,10 @@ partial interface MTLRenderPipelineState { #if NET -#if !TVOS +#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 @@ -2845,7 +2931,10 @@ partial interface MTLRenderPipelineState { IMTLFunctionHandle FunctionHandleWithFunction (IMTLFunction function, MTLRenderStages stage); #if NET -#if !TVOS +#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 @@ -2861,8 +2950,10 @@ partial interface MTLRenderPipelineState { IMTLVisibleFunctionTable NewVisibleFunctionTableWithDescriptor (MTLVisibleFunctionTableDescriptor descriptor, MTLRenderStages stage); #if NET - -#if !TVOS +#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 @@ -2878,7 +2969,10 @@ partial interface MTLRenderPipelineState { IMTLIntersectionFunctionTable NewIntersectionFunctionTableWithDescriptor (MTLIntersectionFunctionTableDescriptor descriptor, MTLRenderStages stage); #if NET -#if !TVOS +#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 @@ -3184,7 +3278,10 @@ partial interface MTLFunction { IMTLArgumentEncoder CreateArgumentEncoder (nuint bufferIndex, [NullAllowed] out MTLArgument reflection); #if NET -#if !TVOS +#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 @@ -3259,7 +3356,10 @@ partial interface MTLLibrary { // protocol, so no Async #if NET -#if !TVOS +#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 @@ -3273,7 +3373,10 @@ partial interface MTLLibrary { void CreateIntersectionFunction (MTLIntersectionFunctionDescriptor descriptor, Action completionHandler); #if NET -#if !TVOS +#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 @@ -4036,11 +4139,14 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetThreadgroupMemoryLength (nuint length, nuint offset, nuint index); #if NET -#if !TVOS +#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] + [NoMacCatalyst, TV (16,0), NoiOS, NoMac] #endif #else @@ -4094,7 +4200,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #if NET -#if !TVOS +#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 @@ -4108,7 +4217,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetVertexVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); #if NET -#if !TVOS +#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 @@ -4122,7 +4234,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetVertexVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); #if NET -#if !TVOS +#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 @@ -4136,7 +4251,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetVertexIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET -#if !TVOS +#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 @@ -4151,7 +4269,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #if NET -#if !TVOS +#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 @@ -4166,7 +4287,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #if NET -#if !TVOS +#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 @@ -4181,7 +4305,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #if NET -#if !TVOS +#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 @@ -4197,7 +4324,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #if NET -#if !TVOS +#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 @@ -4211,7 +4341,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetFragmentIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); #if NET -#if !TVOS +#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 @@ -4226,7 +4359,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #if NET -#if !TVOS +#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 @@ -4241,7 +4377,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #if NET -#if !TVOS +#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 @@ -4255,7 +4394,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetTileAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); #if NET -#if !TVOS +#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 @@ -4269,7 +4411,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetTileIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); #if NET -#if !TVOS +#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 @@ -4283,7 +4428,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetTileIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range); #if NET -#if !TVOS +#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 @@ -4297,7 +4445,10 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetTileVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex); #if NET -#if !TVOS +#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 @@ -4915,7 +5066,10 @@ interface MTLHeap { IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset); #if NET -#if !TVOS +#if XAMCORE_5_0 + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Abstract] +#elif !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else @@ -4931,7 +5085,10 @@ interface MTLHeap { #if NET -#if !TVOS +#if XAMCORE_5_0 + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Abstract] +#elif !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else @@ -4946,7 +5103,10 @@ interface MTLHeap { IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); #if NET -#if !TVOS +#if XAMCORE_5_0 + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Abstract] +#elif !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else @@ -4961,7 +5121,10 @@ interface MTLHeap { IMTLAccelerationStructure NewAccelerationStructure (nuint size, nuint offset); #if NET -#if !TVOS +#if XAMCORE_5_0 + [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] + [Abstract] +#elif !TVOS [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] #else @@ -5465,7 +5628,10 @@ interface MTLArgumentEncoder { void SetComputePipelineStates (IMTLComputePipelineState [] pipelines, NSRange range); #if NET -#if !TVOS +#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 @@ -5480,7 +5646,10 @@ interface MTLArgumentEncoder { #if NET -#if !TVOS +#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 @@ -5494,7 +5663,10 @@ interface MTLArgumentEncoder { void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable visibleFunctionTable, nuint index); #if NET -#if !TVOS +#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 @@ -5508,7 +5680,10 @@ interface MTLArgumentEncoder { void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range); #if NET -#if !TVOS +#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 @@ -5522,7 +5697,10 @@ interface MTLArgumentEncoder { void SetIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint index); #if NET -#if !TVOS +#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 diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore index 809453848cda..72f9cf93b0db 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore @@ -40,6 +40,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore index be3a2dd4d0bc..813d503e6bb9 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore @@ -38,6 +38,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore index 59888c6e44c8..d530d769e73b 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore @@ -97,6 +97,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/iOS-Metal.ignore b/tests/xtro-sharpie/iOS-Metal.ignore index fdcbd398ad3d..7aa8fa80a80f 100644 --- a/tests/xtro-sharpie/iOS-Metal.ignore +++ b/tests/xtro-sharpie/iOS-Metal.ignore @@ -182,6 +182,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/macOS-Metal.ignore b/tests/xtro-sharpie/macOS-Metal.ignore index e8974578f83a..57e444f928b3 100644 --- a/tests/xtro-sharpie/macOS-Metal.ignore +++ b/tests/xtro-sharpie/macOS-Metal.ignore @@ -191,6 +191,7 @@ !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! MTLTexture::compressionType is REQUIRED and should be abstract +!incorrect-protocol-member! MTLBuffer::gpuAddress is REQUIRED and should be abstract # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound diff --git a/tests/xtro-sharpie/tvOS-Metal.ignore b/tests/xtro-sharpie/tvOS-Metal.ignore index 5d910f675e2d..b7f3ce9c5d74 100644 --- a/tests/xtro-sharpie/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/tvOS-Metal.ignore @@ -173,6 +173,7 @@ !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 # deprecated but cannot be removed !unknown-native-enum! MTLArgumentAccess bound From 5631e8f9d21167496bf2b34b50669c715a2fd6a6 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Thu, 9 Nov 2023 16:54:52 -0500 Subject: [PATCH 10/25] Fix issues with the MTLIOCompression Dispose. --- src/Metal/MTLIOCompression.cs | 25 +++++++++++++------ .../Metal/MTLIOCompressionContextTest.cs | 6 +++-- tests/monotouch-test/monotouch-test.csproj | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index f664f373a5da..dbee7c3f061b 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -70,28 +70,39 @@ public void AppendData (NSData data) using var pathPtr = new TransientString (path); var handle = MTLIOCreateCompressionContext (pathPtr, (long) type, chunkSize); - if (handle == IntPtr.Zero) + if (handle == NativeHandle.Zero) { return null; + } return new MTLIOCompressionContext (handle, owns: true); } protected override void Dispose (bool disposing) { - if (Handle != NativeHandle.Zero) + // only call th eparent if the user did not call FlushAndDestroy + if (disposing && Handle != NativeHandle.Zero && Owns) { FlushAndDestroy (); - base.Dispose (disposing); + } + base.Dispose (false); } [DllImport (Constants.MetalLibrary)] static extern long MTLIOFlushAndDestroyCompressionContext (IntPtr context); - public MTLIOCompressionStatus FlushAndDestroy () - => (MTLIOCompressionStatus) MTLIOFlushAndDestroyCompressionContext (GetCheckedHandle ()); + public MTLIOCompressionStatus FlushAndDestroy () { + var result = (MTLIOCompressionStatus) MTLIOFlushAndDestroyCompressionContext (GetCheckedHandle ()); +#if NET + Class.ThrowOnInitFailure = false; + Handle = NativeHandle.Zero; +#else + ClearHandle (); +#endif + return result; + } [DllImport (Constants.MetalLibrary)] - static extern nuint MTLIOCompressionContextDefaultChunkSize (); + static extern long MTLIOCompressionContextDefaultChunkSize (); - public static nuint DefaultChunkSize => MTLIOCompressionContextDefaultChunkSize (); + public static long DefaultChunkSize => MTLIOCompressionContextDefaultChunkSize (); } } diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs index c1b95a705436..b8d089bec1ab 100644 --- a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Diagnostics; using System.Linq; using Foundation; using Metal; @@ -7,6 +8,7 @@ using NUnit.Framework; namespace MonoTouchFixtures.Metal { + [Preserve (AllMembers = true)] public class MTLIOCompressionContextTest { string outputPath = string.Empty; @@ -17,7 +19,7 @@ public void SetUp () var paths = NSSearchPath.GetDirectories (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User); // Convert once - outputPath = Path.Combine (paths [0], $"monotouch-test-MTLIOCompressinoContextTest-output{System.Diagnostics.Process.GetCurrentProcess ().Id}"); + outputPath = Path.Combine (paths [0], $"monotouch-test-MTLIOCompressinoContextTest-output{Process.GetCurrentProcess ().Id}"); } @@ -39,7 +41,7 @@ public void CreateAndFlushTest () { TestRuntime.AssertNotSimulator (); // metal api no supported on the sim // create and flush, test should simple pass, no need to asserts - using var compressIO = MTLIOCompressionContext.Create (outputPath, MTLIOCompressionMethod.Lzfse, + var compressIO = MTLIOCompressionContext.Create (outputPath, MTLIOCompressionMethod.Lzfse, MTLIOCompressionContext.DefaultChunkSize); Assert.NotNull (compressIO, "Null compress IO"); // add data diff --git a/tests/monotouch-test/monotouch-test.csproj b/tests/monotouch-test/monotouch-test.csproj index 49c6b2e3cbf0..e559b25aed4a 100644 --- a/tests/monotouch-test/monotouch-test.csproj +++ b/tests/monotouch-test/monotouch-test.csproj @@ -352,7 +352,7 @@ - + From ca499ec04fe91cec91d0e1400597af3e4326f6c5 Mon Sep 17 00:00:00 2001 From: GitHub Actions Autoformatter Date: Fri, 10 Nov 2023 04:41:04 +0000 Subject: [PATCH 11/25] Auto-format source code --- src/Metal/MTLIOCompression.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index dbee7c3f061b..e4f1117034ee 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -88,7 +88,8 @@ protected override void Dispose (bool disposing) [DllImport (Constants.MetalLibrary)] static extern long MTLIOFlushAndDestroyCompressionContext (IntPtr context); - public MTLIOCompressionStatus FlushAndDestroy () { + public MTLIOCompressionStatus FlushAndDestroy () + { var result = (MTLIOCompressionStatus) MTLIOFlushAndDestroyCompressionContext (GetCheckedHandle ()); #if NET Class.ThrowOnInitFailure = false; From 05199b28e5015a19bb2672f5599ab8361f024ef8 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Fri, 10 Nov 2023 13:11:48 -0500 Subject: [PATCH 12/25] Fix tests. --- src/Metal/MTLIOCompression.cs | 1 + .../Metal/MTLIOCompressionContextTest.cs | 36 ++++++++----------- .../ObjCRuntime/DisposableObjectTest.cs | 1 + 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index dbee7c3f061b..8ab175e35853 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -93,6 +93,7 @@ public MTLIOCompressionStatus FlushAndDestroy () { #if NET Class.ThrowOnInitFailure = false; Handle = NativeHandle.Zero; + Class.ThrowOnInitFailure = true; #else ClearHandle (); #endif diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs index b8d089bec1ab..37c7500d0cdb 100644 --- a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -11,24 +11,13 @@ namespace MonoTouchFixtures.Metal { [Preserve (AllMembers = true)] public class MTLIOCompressionContextTest { - string outputPath = string.Empty; [SetUp] public void SetUp () { TestRuntime.AssertXcodeVersion (15, 0); - var paths = NSSearchPath.GetDirectories (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User); - - // Convert once - outputPath = Path.Combine (paths [0], $"monotouch-test-MTLIOCompressinoContextTest-output{Process.GetCurrentProcess ().Id}"); } - [TearDown] - public void TearDown () - { - File.Delete (outputPath); - } - [Test] public void DefaultChunkSize () { @@ -40,16 +29,21 @@ public void DefaultChunkSize () public void CreateAndFlushTest () { TestRuntime.AssertNotSimulator (); // metal api no supported on the sim - // create and flush, test should simple pass, no need to asserts - var compressIO = MTLIOCompressionContext.Create (outputPath, MTLIOCompressionMethod.Lzfse, - MTLIOCompressionContext.DefaultChunkSize); - Assert.NotNull (compressIO, "Null compress IO"); - // add data - var data = Enumerable.Repeat ((byte) 0x20, 20).ToArray (); - compressIO!.AppendData (data); - compressIO!.FlushAndDestroy (); - // ensure we do not have issues with a second flush and destroy - compressIO.Dispose (); + var outputPath = Path.GetTempFileName (); + try { + // create and flush, test should simple pass, no need to asserts + var compressIO = MTLIOCompressionContext.Create (outputPath, MTLIOCompressionMethod.Lzfse, + MTLIOCompressionContext.DefaultChunkSize); + Assert.NotNull (compressIO, "Null compress IO"); + // add data + var data = Enumerable.Repeat ((byte) 0x20, 20).ToArray (); + compressIO!.AppendData (data); + compressIO!.FlushAndDestroy (); + // ensure we do not have issues with a second flush and destroy + compressIO.Dispose (); + } finally { + File.Delete (outputPath); + } } } } diff --git a/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs b/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs index 7cb853aafccc..dccfd977a1f1 100644 --- a/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs +++ b/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs @@ -66,6 +66,7 @@ public void CtorOwns () public void CtorOwnsVerify () { var obj = new Subclassed (NativeHandle.Zero, true, false); + Console.WriteLine ($"Handle is {obj.Handle}"); Assert.AreEqual (NativeHandle.Zero, obj.Handle, "Handle 1"); Assert.AreEqual (true, obj.Owns, "Owns 1"); Assert.Throws (() => obj.GetCheckedHandle (), "GetCheckedHandle 1"); From 3d622d5a928308938b8d890e6ec203db2aa4ed24 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Wed, 15 Nov 2023 16:20:04 -0500 Subject: [PATCH 13/25] Update src/Metal/MTLIOCompression.cs Co-authored-by: Alex Soto --- src/Metal/MTLIOCompression.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index 8e184d2bbeaa..d9077fc8b74d 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -78,7 +78,7 @@ public void AppendData (NSData data) protected override void Dispose (bool disposing) { - // only call th eparent if the user did not call FlushAndDestroy + // only call the parent if the user did not call FlushAndDestroy if (disposing && Handle != NativeHandle.Zero && Owns) { FlushAndDestroy (); } From 159e00485861fa2cffb98f9c8116817a797bbf41 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Thu, 16 Nov 2023 12:02:04 -0500 Subject: [PATCH 14/25] Fix the API changes on dotnet. --- src/metal.cs | 57 +++---------------- .../common-Metal.ignore | 3 + .../api-annotations-dotnet/iOS-Metal.ignore | 10 ++++ .../api-annotations-dotnet/macOS-Metal.ignore | 8 +++ .../api-annotations-dotnet/tvOS-Metal.ignore | 6 ++ tests/xtro-sharpie/common-Metal.ignore | 2 + 6 files changed, 38 insertions(+), 48 deletions(-) diff --git a/src/metal.cs b/src/metal.cs index 7251e6da8210..953ca46eff0e 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -3999,14 +3999,14 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset); [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] -#if NET +#if NET && (MONOMAC || __MACCATALYST__) [Abstract] #endif [Export ("memoryBarrierWithScope:afterStages:beforeStages:")] void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before); [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] -#if NET +#if NET && (MONOMAC || __MACCATALYST__) [Abstract] #endif [Export ("memoryBarrierWithResources:count:afterStages:beforeStages:")] @@ -4462,28 +4462,28 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { void SetTileVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), NoWatch] -#if NET +#if XAMCORE_5_0 [Abstract] #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 NET +#if XAMCORE_5_0 [Abstract] #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 NET +#if XAMCORE_5_0 [Abstract] #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 NET +#if XAMCORE_5_0 [Abstract] #endif [Export ("setVertexBytes:length:attributeStride:atIndex:")] @@ -5065,75 +5065,34 @@ interface MTLHeap { [return: Release] IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset); -#if NET #if XAMCORE_5_0 - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [Abstract] -#elif !TVOS - [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif - -#else [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#endif [Export ("newAccelerationStructureWithSize:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (nuint size); -#if NET - #if XAMCORE_5_0 - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [Abstract] -#elif !TVOS - [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif - -#else [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#endif [Export ("newAccelerationStructureWithDescriptor:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); -#if NET #if XAMCORE_5_0 - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] - [Abstract] -#elif !TVOS - [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif - -#else [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#endif [Export ("newAccelerationStructureWithSize:offset:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (nuint size, nuint offset); -#if NET #if XAMCORE_5_0 - [Mac (13,0), iOS (16,0), TV (16,0), MacCatalyst (16,0)] [Abstract] -#elif !TVOS - [Mac (13,0), iOS (16,0), NoTV, MacCatalyst (16,0)] - [Abstract] -#else - [NoMac, NoiOS, TV (16,0), NoMacCatalyst] #endif - -#else [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] -#endif [Export ("newAccelerationStructureWithDescriptor:offset:")] [return: NullAllowed, Release] IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor, nuint offset); @@ -6363,7 +6322,7 @@ interface MTLIndirectComputeCommand { void SetImageblock (nuint width, nuint height); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if NET +#if XAMCORE_5_0 [Abstract] #endif [Export ("setKernelBuffer:offset:attributeStride:atIndex:")] @@ -7002,7 +6961,9 @@ 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] +#endif [Export ("refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options:")] void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, [NullAllowed] IMTLAccelerationStructure destinationAccelerationStructure, [NullAllowed] IMTLBuffer scratchBuffer, nuint scratchBufferOffset, MTLAccelerationStructureRefitOptions options); diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore index 8c2a3124ac76..bb6eea0d7324 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore @@ -27,3 +27,6 @@ # 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! 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 diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore index 72f9cf93b0db..6cf9960e4dab 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Metal.ignore @@ -41,6 +41,16 @@ !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/macOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore index 813d503e6bb9..687dd4434894 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Metal.ignore @@ -39,6 +39,14 @@ !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/tvOS-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore index d530d769e73b..8739c627f403 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Metal.ignore @@ -98,6 +98,12 @@ !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/common-Metal.ignore b/tests/xtro-sharpie/common-Metal.ignore index 3bc7e1f73f37..7956c5455db1 100644 --- a/tests/xtro-sharpie/common-Metal.ignore +++ b/tests/xtro-sharpie/common-Metal.ignore @@ -202,3 +202,5 @@ # 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! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: is REQUIRED and should be abstract From 6855ca759229cbe1f55c427453546d8dd2c8ffaa Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Thu, 16 Nov 2023 13:01:48 -0500 Subject: [PATCH 15/25] Adress review. --- src/Metal/Defs.cs | 8 ++------ .../api-annotations-dotnet/common-Metal.ignore | 1 - tests/xtro-sharpie/common-Metal.ignore | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/Metal/Defs.cs b/src/Metal/Defs.cs index 42e3b7f525d5..5e42e3446a85 100644 --- a/src/Metal/Defs.cs +++ b/src/Metal/Defs.cs @@ -531,19 +531,16 @@ public struct MTLCoordinate2D { } #endif -#if !TVOS #if NET [SupportedOSPlatform ("maccatalyst14.0")] [SupportedOSPlatform ("macos11.0")] [SupportedOSPlatform ("ios14.0")] + [SupportedOSPlatform ("tvos16.1")] #else [MacCatalyst (14, 0)] [Mac (11, 0)] [iOS (14, 0)] - [NoTV] -#if TVOS - [Obsolete ("This API is not available on this platform.")] -#endif + [TV (16, 1)] #endif [StructLayout (LayoutKind.Sequential)] public struct MTLAccelerationStructureSizes { @@ -553,7 +550,6 @@ public struct MTLAccelerationStructureSizes { public nuint RefitScratchBufferSize; } -#endif #if NET [SupportedOSPlatform ("ios16.0")] diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore index bb6eea0d7324..c07c220654b1 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore @@ -28,5 +28,4 @@ !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! 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 diff --git a/tests/xtro-sharpie/common-Metal.ignore b/tests/xtro-sharpie/common-Metal.ignore index 7956c5455db1..81a1f1e9e7d2 100644 --- a/tests/xtro-sharpie/common-Metal.ignore +++ b/tests/xtro-sharpie/common-Metal.ignore @@ -203,4 +203,3 @@ !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! MTLAccelerationStructureCommandEncoder::refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:options: is REQUIRED and should be abstract From c3b5fb6b13bf5195d78ea1880a6d5777882f77a2 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Fri, 17 Nov 2023 13:53:59 -0500 Subject: [PATCH 16/25] Apply suggestions from code review Co-authored-by: Rolf Bjarne Kvinge --- src/metal.cs | 24 +++++++++---------- .../Metal/MTLIOCompressionContextTest.cs | 4 ++-- .../ObjCRuntime/DisposableObjectTest.cs | 1 - 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/metal.cs b/src/metal.cs index 953ca46eff0e..0447d2609d8c 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -2157,7 +2157,7 @@ partial interface MTLDevice { #endif [Export ("newIOFileHandleWithURL:error:")] [return: NullAllowed] - IMTLIOFileHandle NewIOFileHandleWithURL (NSUrl url, [NullAllowed] out NSError error); + IMTLIOFileHandle CreateIOFileHandle (NSUrl url, [NullAllowed] out NSError error); [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] #if XAMCORE_5_0 @@ -2165,7 +2165,7 @@ partial interface MTLDevice { #endif [Export ("newIOFileHandleWithURL:compressionMethod:error:")] [return: NullAllowed] - IMTLIOFileHandle NewIOFileHandleWithURL (NSUrl url, MTLIOCompressionMethod compressionMethod, [NullAllowed] out NSError error); + IMTLIOFileHandle CreateIOFileHandle (NSUrl url, MTLIOCompressionMethod compressionMethod, [NullAllowed] out NSError error); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 @@ -2186,7 +2186,7 @@ partial interface MTLDevice { [Abstract] #endif [Export ("newArgumentEncoderWithBufferBinding:")] - IMTLArgumentEncoder NewArgumentEncoder (IMTLBufferBinding bufferBinding); + IMTLArgumentEncoder CreateArgumentEncoder (IMTLBufferBinding bufferBinding); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 @@ -2194,7 +2194,7 @@ partial interface MTLDevice { #endif [Export ("newIOCommandQueueWithDescriptor:error:")] [return: NullAllowed] - IMTLIOCommandQueue NewIOCommandQueue (MTLIOCommandQueueDescriptor descriptor, [NullAllowed] out NSError error); + IMTLIOCommandQueue CreateIOCommandQueue (MTLIOCommandQueueDescriptor descriptor, [NullAllowed] out NSError error); [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 @@ -2202,14 +2202,14 @@ partial interface MTLDevice { #endif [Export ("newRenderPipelineStateWithMeshDescriptor:options:reflection:error:")] [return: NullAllowed] - IMTLRenderPipelineState NewRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, [NullAllowed] out MTLRenderPipelineReflection reflection, [NullAllowed] out NSError error); + 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] #endif [Export ("newRenderPipelineStateWithMeshDescriptor:options:completionHandler:")] - void NewRenderPipelineState (MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler 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 @@ -5071,7 +5071,7 @@ interface MTLHeap { [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithSize:")] [return: NullAllowed, Release] - IMTLAccelerationStructure NewAccelerationStructure (nuint size); + IMTLAccelerationStructure CreateAccelerationStructure (nuint size); #if XAMCORE_5_0 [Abstract] @@ -5079,7 +5079,7 @@ interface MTLHeap { [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithDescriptor:")] [return: NullAllowed, Release] - IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); + IMTLAccelerationStructure CreateAccelerationStructure (MTLAccelerationStructureDescriptor descriptor); #if XAMCORE_5_0 [Abstract] @@ -5087,7 +5087,7 @@ interface MTLHeap { [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithSize:offset:")] [return: NullAllowed, Release] - IMTLAccelerationStructure NewAccelerationStructure (nuint size, nuint offset); + IMTLAccelerationStructure CreateAccelerationStructure (nuint size, nuint offset); #if XAMCORE_5_0 [Abstract] @@ -5095,7 +5095,7 @@ interface MTLHeap { [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Export ("newAccelerationStructureWithDescriptor:offset:")] [return: NullAllowed, Release] - IMTLAccelerationStructure NewAccelerationStructure (MTLAccelerationStructureDescriptor descriptor, nuint offset); + IMTLAccelerationStructure CreateAccelerationStructure (MTLAccelerationStructureDescriptor descriptor, nuint offset); } interface IMTLResource { } @@ -6042,7 +6042,7 @@ interface MTLIndirectCommandBuffer : MTLResource { [Export ("indirectComputeCommandAtIndex:")] IMTLIndirectComputeCommand GetIndirectComputeCommand (nuint commandIndex); - [Mac (13, 0), iOS (16, 0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16,0)] #if XAMCORE_5_0 [Abstract] #endif @@ -7781,7 +7781,7 @@ interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : NSCopyi [BaseType (typeof (NSObject))] interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray { [Export ("objectAtIndexedSubscript:")] - MTLAccelerationStructurePassSampleBufferAttachmentDescriptor ObjectAtIndexedSubscript (nuint attachmentIndex); + MTLAccelerationStructurePassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex); [Export ("setObject:atIndexedSubscript:")] void SetObject ([NullAllowed] MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex); diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs index 37c7500d0cdb..4dc6a42b4bb4 100644 --- a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -21,14 +21,14 @@ public void SetUp () [Test] public void DefaultChunkSize () { - TestRuntime.AssertNotSimulator (); // metal api no supported on the sim + TestRuntime.AssertNotSimulator (); // metal api not supported on the sim Assert.AreNotEqual (-1, MTLIOCompressionContext.DefaultChunkSize); } [Test] public void CreateAndFlushTest () { - TestRuntime.AssertNotSimulator (); // metal api no supported on the sim + TestRuntime.AssertNotSimulator (); // metal api not supported on the sim var outputPath = Path.GetTempFileName (); try { // create and flush, test should simple pass, no need to asserts diff --git a/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs b/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs index dccfd977a1f1..7cb853aafccc 100644 --- a/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs +++ b/tests/monotouch-test/ObjCRuntime/DisposableObjectTest.cs @@ -66,7 +66,6 @@ public void CtorOwns () public void CtorOwnsVerify () { var obj = new Subclassed (NativeHandle.Zero, true, false); - Console.WriteLine ($"Handle is {obj.Handle}"); Assert.AreEqual (NativeHandle.Zero, obj.Handle, "Handle 1"); Assert.AreEqual (true, obj.Owns, "Owns 1"); Assert.Throws (() => obj.GetCheckedHandle (), "GetCheckedHandle 1"); From e1250f49aa60511831567bf48f2a976156efac5b Mon Sep 17 00:00:00 2001 From: GitHub Actions Autoformatter Date: Fri, 17 Nov 2023 18:57:23 +0000 Subject: [PATCH 17/25] Auto-format source code --- src/metal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/metal.cs b/src/metal.cs index 0447d2609d8c..70878f2832cf 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -6042,7 +6042,7 @@ interface MTLIndirectCommandBuffer : MTLResource { [Export ("indirectComputeCommandAtIndex:")] IMTLIndirectComputeCommand GetIndirectComputeCommand (nuint commandIndex); - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16,0)] + [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #if XAMCORE_5_0 [Abstract] #endif From ce7f59dd0a60bab3a34d9bad58d3b37214bfa152 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Mon, 20 Nov 2023 16:04:39 -0500 Subject: [PATCH 18/25] Fix cecil test due to typo. --- tests/cecil-tests/ApiTest.KnownFailures.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cecil-tests/ApiTest.KnownFailures.cs b/tests/cecil-tests/ApiTest.KnownFailures.cs index dece34e0329e..9d188ccbbe33 100644 --- a/tests/cecil-tests/ApiTest.KnownFailures.cs +++ b/tests/cecil-tests/ApiTest.KnownFailures.cs @@ -52,6 +52,8 @@ public partial class ApiTest { "The field 'Metal.MTLLanguageVersion Metal.MTLLanguageVersion::v2_2' has incorrect capitalization: first letter is not upper case.", "The field 'Metal.MTLLanguageVersion Metal.MTLLanguageVersion::v2_3' has incorrect capitalization: first letter is not upper case.", "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.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.", From 7f971bb25f2da09ce68ef5a6ce68db81a478328f Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Mon, 27 Nov 2023 19:26:58 -0500 Subject: [PATCH 19/25] Fix cecil and api changes. --- src/metal.cs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/metal.cs b/src/metal.cs index 70878f2832cf..beaa2831ab35 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -3998,16 +3998,32 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { [Export ("executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")] void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset); - [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] -#if NET && (MONOMAC || __MACCATALYST__) +#if NET + +#if MONOMAC || __MACCATALYST__ + [NoiOS, NoTV, MacCatalyst (15, 0)] [Abstract] +#else + [iOS (16,0), TV (16,0), NoMacCatalyst, NoMac] +#endif + +#else + [iOS (16,0), TV (16,0), MacCatalyst (15,0)] #endif [Export ("memoryBarrierWithScope:afterStages:beforeStages:")] void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before); - [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] -#if NET && (MONOMAC || __MACCATALYST__) +#if NET + +#if MONOMAC || __MACCATALYST__ + [NoiOS, NoTV, MacCatalyst (15, 0)] [Abstract] +#else + [iOS (16,0), TV (16,0), NoMacCatalyst, NoMac] +#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); From 046fc63e47428567b6635b526db8a936efb18847 Mon Sep 17 00:00:00 2001 From: GitHub Actions Autoformatter Date: Tue, 28 Nov 2023 00:30:14 +0000 Subject: [PATCH 20/25] Auto-format source code --- src/metal.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/metal.cs b/src/metal.cs index beaa2831ab35..96fda2b064c0 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -4008,7 +4008,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [iOS (16,0), TV (16,0), MacCatalyst (15,0)] + [iOS (16, 0), TV (16, 0), MacCatalyst (15, 0)] #endif [Export ("memoryBarrierWithScope:afterStages:beforeStages:")] void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before); @@ -4023,7 +4023,7 @@ partial interface MTLRenderCommandEncoder : MTLCommandEncoder { #endif #else - [iOS (16,0), TV (16,0), MacCatalyst (15,0)] + [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); From b69058441c6b1676991182ff3debdab41525778c Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Tue, 28 Nov 2023 12:07:35 -0500 Subject: [PATCH 21/25] Address reviews. --- src/Metal/MTLIOCompression.cs | 11 +++-------- src/ObjCRuntime/DisposableObject.cs | 3 +-- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index d9077fc8b74d..46a52fcfb311 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -91,20 +91,15 @@ protected override void Dispose (bool disposing) public MTLIOCompressionStatus FlushAndDestroy () { var result = (MTLIOCompressionStatus) MTLIOFlushAndDestroyCompressionContext (GetCheckedHandle ()); -#if NET - Class.ThrowOnInitFailure = false; - Handle = NativeHandle.Zero; - Class.ThrowOnInitFailure = true; -#else + ClearHandle (); -#endif return result; } [DllImport (Constants.MetalLibrary)] - static extern long MTLIOCompressionContextDefaultChunkSize (); + static extern nint MTLIOCompressionContextDefaultChunkSize (); - public static long DefaultChunkSize => MTLIOCompressionContextDefaultChunkSize (); + public static nint DefaultChunkSize => MTLIOCompressionContextDefaultChunkSize (); } } diff --git a/src/ObjCRuntime/DisposableObject.cs b/src/ObjCRuntime/DisposableObject.cs index 54d52b51a60c..a4f71d8435e1 100644 --- a/src/ObjCRuntime/DisposableObject.cs +++ b/src/ObjCRuntime/DisposableObject.cs @@ -68,12 +68,11 @@ protected virtual void Dispose (bool disposing) handle = NativeHandle.Zero; } -#if !NET protected void ClearHandle () { handle = NativeHandle.Zero; } -#endif + void InitializeHandle (NativeHandle handle, bool verify) { #if !COREBUILD From be87e0a02e9aff5f35808fcf2ee89ad1386ac1f1 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Wed, 29 Nov 2023 12:03:23 -0500 Subject: [PATCH 22/25] Apply suggestions from code review Co-authored-by: Rolf Bjarne Kvinge --- src/Metal/MTLIOCompression.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Metal/MTLIOCompression.cs b/src/Metal/MTLIOCompression.cs index 46a52fcfb311..0805544a3744 100644 --- a/src/Metal/MTLIOCompression.cs +++ b/src/Metal/MTLIOCompression.cs @@ -28,10 +28,10 @@ public class MTLIOCompressionContext : DisposableObject { MTLIOCompressionContext (NativeHandle handle, bool owns) : base (handle, owns) { } [DllImport (Constants.MetalLibrary)] - static extern unsafe void MTLIOCompressionContextAppendData (void* context, void* data, nuint size); + static extern unsafe void MTLIOCompressionContextAppendData (IntPtr context, void* data, nuint size); unsafe void AppendData (void* data, nuint size) - => MTLIOCompressionContextAppendData ((void*) GetCheckedHandle (), data, size); + => MTLIOCompressionContextAppendData (GetCheckedHandle (), data, size); public void AppendData (byte [] data) { @@ -79,10 +79,10 @@ public void AppendData (NSData data) protected override void Dispose (bool disposing) { // only call the parent if the user did not call FlushAndDestroy - if (disposing && Handle != NativeHandle.Zero && Owns) { + if (Handle != NativeHandle.Zero && Owns) { FlushAndDestroy (); } - base.Dispose (false); + base.Dispose (disposing); } [DllImport (Constants.MetalLibrary)] @@ -92,6 +92,7 @@ public MTLIOCompressionStatus FlushAndDestroy () { var result = (MTLIOCompressionStatus) MTLIOFlushAndDestroyCompressionContext (GetCheckedHandle ()); + // clear the handle no matter what so that we do not try to call the flush a second time in the Dipose. ClearHandle (); return result; } From 535ba434d685307a898415d901df6b8701654d0b Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Sat, 9 Dec 2023 19:05:13 -0500 Subject: [PATCH 23/25] Remove those types that give issues compiling the static registrar. --- src/metal.cs | 172 ------------------ .../common-Metal.ignore | 25 ++- tests/xtro-sharpie/common-Metal.ignore | 25 ++- 3 files changed, 44 insertions(+), 178 deletions(-) diff --git a/src/metal.cs b/src/metal.cs index 96fda2b064c0..69486116853b 100644 --- a/src/metal.cs +++ b/src/metal.cs @@ -2151,22 +2151,6 @@ partial interface MTLDevice { [Export ("architecture")] MTLArchitecture Architecture { get; } - [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] -#endif - [Export ("newIOFileHandleWithURL:error:")] - [return: NullAllowed] - IMTLIOFileHandle CreateIOFileHandle (NSUrl url, [NullAllowed] out NSError error); - - [Mac (14, 0), iOS (17, 0), TV (17, 0), MacCatalyst (17, 0)] -#if XAMCORE_5_0 - [Abstract] -#endif - [Export ("newIOFileHandleWithURL:compressionMethod:error:")] - [return: NullAllowed] - IMTLIOFileHandle CreateIOFileHandle (NSUrl url, MTLIOCompressionMethod compressionMethod, [NullAllowed] out NSError error); - [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] @@ -2188,14 +2172,6 @@ partial interface MTLDevice { [Export ("newArgumentEncoderWithBufferBinding:")] IMTLArgumentEncoder CreateArgumentEncoder (IMTLBufferBinding bufferBinding); - [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] -#if XAMCORE_5_0 - [Abstract] -#endif - [Export ("newIOCommandQueueWithDescriptor:error:")] - [return: NullAllowed] - IMTLIOCommandQueue CreateIOCommandQueue (MTLIOCommandQueueDescriptor descriptor, [NullAllowed] out NSError error); - [Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), TV (16, 0)] #if XAMCORE_5_0 [Abstract] @@ -7370,134 +7346,6 @@ interface MTLBufferBinding : MTLBinding { MTLPointerType BufferPointerType { get; } } - interface IMTLIOFileHandle { } - - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] - [Protocol] - interface MTLIOFileHandle { - [Abstract] - [NullAllowed, Export ("label")] - string Label { get; set; } - } - - interface IMTLIOCommandBuffer { } - - delegate void MTLIOCommandBufferHandler (IMTLIOCommandBuffer buffer); - - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] - [Protocol] - interface MTLIOCommandBuffer { - [Abstract] - [Export ("addCompletedHandler:")] - void AddCompletedHandler (MTLIOCommandBufferHandler handler); - - [Abstract] - [Export ("loadBytes:size:sourceHandle:sourceHandleOffset:")] - void LoadBytes (IntPtr bytes, nuint size, IMTLIOFileHandle sourceHandle, nuint sourceHandleOffset); - - [Abstract] - [Export ("loadBuffer:offset:size:sourceHandle:sourceHandleOffset:")] - void LoadBuffer (IMTLBuffer buffer, nuint offset, nuint size, IMTLIOFileHandle sourceHandle, nuint sourceHandleOffset); - - [Abstract] - [Export ("loadTexture:slice:level:size:sourceBytesPerRow:sourceBytesPerImage:destinationOrigin:sourceHandle:sourceHandleOffset:")] - void LoadTexture (IMTLTexture texture, nuint slice, nuint level, MTLSize size, nuint sourceBytesPerRow, nuint sourceBytesPerImage, MTLOrigin destinationOrigin, IMTLIOFileHandle sourceHandle, nuint sourceHandleOffset); - - [Abstract] - [Export ("copyStatusToBuffer:offset:")] - void CopyStatus (IMTLBuffer buffer, nuint offset); - - [Abstract] - [Export ("commit")] - void Commit (); - - [Abstract] - [Export ("waitUntilCompleted")] - void WaitUntilCompleted (); - - [Abstract] - [Export ("tryCancel")] - void TryCancel (); - - [Abstract] - [Export ("addBarrier")] - void AddBarrier (); - - [Abstract] - [Export ("pushDebugGroup:")] - void PushDebugGroup (string group); - - [Abstract] - [Export ("popDebugGroup")] - void PopDebugGroup (); - - [Abstract] - [Export ("enqueue")] - void Enqueue (); - - [Abstract] - [Export ("waitForEvent:value:")] - void WaitForEvent (IMTLSharedEvent @event, ulong value); - - [Abstract] - [Export ("signalEvent:value:")] - void SignalEvent (IMTLSharedEvent @event, ulong value); - - [Abstract] - [NullAllowed, Export ("label")] - string Label { get; set; } - - [Abstract] - [Export ("status")] - MTLIOStatus Status { get; } - - [Abstract] - [NullAllowed, Export ("error")] - NSError Error { get; } - } - - interface IMTLIOCommandQueue { } - - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] - [Protocol] - interface MTLIOCommandQueue { - [Abstract] - [Export ("enqueueBarrier")] - void EnqueueBarrier (); - - [Abstract] - [Export ("commandBuffer")] - IMTLIOCommandBuffer CommandBuffer { get; } - - [Abstract] - [Export ("commandBufferWithUnretainedReferences")] - IMTLIOCommandBuffer CommandBufferWithUnretainedReferences { get; } - - [Abstract] - [NullAllowed, Export ("label")] - string Label { get; set; } - } - - interface IMTLIOScratchBuffer { } - - [Mac (13, 0), iOS (16, 0)] - [Protocol] - interface MTLIOScratchBuffer { - [Abstract] - [Export ("buffer")] - IMTLBuffer Buffer { get; } - } - - interface IMTLIOScratchBufferAllocator { } - - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] - [Protocol] - interface MTLIOScratchBufferAllocator { - [Abstract] - [Export ("newScratchBufferWithMinimumSize:")] - [return: NullAllowed, Release] - IMTLIOScratchBuffer Create (nuint minimumSize); - } [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [Protocol] @@ -7803,26 +7651,6 @@ interface MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray { void SetObject ([NullAllowed] MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex); } - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] - [BaseType (typeof (NSObject))] - [DisableDefaultCtor] - interface MTLIOCommandQueueDescriptor : NSCopying { - [Export ("maxCommandBufferCount")] - nuint MaxCommandBufferCount { get; set; } - - [Export ("priority", ArgumentSemantic.Assign)] - MTLIOPriority Priority { get; set; } - - [Export ("type", ArgumentSemantic.Assign)] - MTLIOCommandQueueType Type { get; set; } - - [Export ("maxCommandsInFlight")] - nuint MaxCommandsInFlight { get; set; } - - [NullAllowed, Export ("scratchBufferAllocator", ArgumentSemantic.Retain)] - IMTLIOScratchBufferAllocator ScratchBufferAllocator { get; set; } - } - [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] [BaseType (typeof (NSObject))] interface MTLAccelerationStructurePassDescriptor : NSCopying { diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore index c07c220654b1..2d892c98a8e3 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-Metal.ignore @@ -7,8 +7,6 @@ !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! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newIOFileHandleWithURL:error: 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 @@ -18,7 +16,6 @@ !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::newIOCommandQueueWithDescriptor:error: 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 @@ -29,3 +26,25 @@ !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 +!missing-protocol! MTLIOCommandBuffer not bound +!missing-protocol! MTLIOCommandQueue not bound +!missing-protocol! MTLIOScratchBuffer not bound +!missing-protocol! MTLIOScratchBufferAllocator not bound +!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found +!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound +!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound +!missing-selector! MTLIOCommandQueueDescriptor::priority not bound +!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound +!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound +!missing-selector! MTLIOCommandQueueDescriptor::type not bound +!missing-type! MTLIOCommandQueueDescriptor not bound +!missing-protocol! MTLIOFileHandle not bound +!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found +!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found diff --git a/tests/xtro-sharpie/common-Metal.ignore b/tests/xtro-sharpie/common-Metal.ignore index 81a1f1e9e7d2..c57a3d514727 100644 --- a/tests/xtro-sharpie/common-Metal.ignore +++ b/tests/xtro-sharpie/common-Metal.ignore @@ -168,8 +168,6 @@ !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! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: is REQUIRED and should be abstract -!incorrect-protocol-member! MTLDevice::newIOFileHandleWithURL:error: is REQUIRED and should be abstract !incorrect-protocol-member! MTLIndirectComputeCommand::setKernelBuffer:offset:attributeStride:atIndex: 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 @@ -193,7 +191,6 @@ !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::newIOCommandQueueWithDescriptor:error: 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 @@ -203,3 +200,25 @@ !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 + +# Ignore until we find a real usage for this APIs. At the moment of the writing they give problems +# with the static registrar +!missing-protocol! MTLIOCommandBuffer not bound +!missing-protocol! MTLIOCommandQueue not bound +!missing-protocol! MTLIOScratchBuffer not bound +!missing-protocol! MTLIOScratchBufferAllocator not bound +!missing-protocol-member! MTLDevice::newIOCommandQueueWithDescriptor:error: not found +!missing-selector! MTLIOCommandQueueDescriptor::maxCommandBufferCount not bound +!missing-selector! MTLIOCommandQueueDescriptor::maxCommandsInFlight not bound +!missing-selector! MTLIOCommandQueueDescriptor::priority not bound +!missing-selector! MTLIOCommandQueueDescriptor::scratchBufferAllocator not bound +!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandBufferCount: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setMaxCommandsInFlight: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setPriority: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setScratchBufferAllocator: not bound +!missing-selector! MTLIOCommandQueueDescriptor::setType: not bound +!missing-selector! MTLIOCommandQueueDescriptor::type not bound +!missing-type! MTLIOCommandQueueDescriptor not bound +!missing-protocol! MTLIOFileHandle not bound +!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:compressionMethod:error: not found +!missing-protocol-member! MTLDevice::newIOFileHandleWithURL:error: not found From 2dd8eb16b845282e82b7f77f0b0ee409f3d072d2 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Mon, 11 Dec 2023 09:14:33 -0500 Subject: [PATCH 24/25] Fix tests on watchOS. --- tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs index 4dc6a42b4bb4..1792c3a64e78 100644 --- a/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs +++ b/tests/monotouch-test/Metal/MTLIOCompressionContextTest.cs @@ -1,3 +1,4 @@ +#if !__WATCHOS__ using System; using System.IO; using System.Diagnostics; @@ -47,3 +48,4 @@ public void CreateAndFlushTest () } } } +#endif From f6a59cfb08b2fcad527c83bf3b8f758d3c6c74d1 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Tue, 12 Dec 2023 09:38:58 -0500 Subject: [PATCH 25/25] Provide correct native name. --- src/Metal/Defs.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Metal/Defs.cs b/src/Metal/Defs.cs index 5e42e3446a85..b6f721214170 100644 --- a/src/Metal/Defs.cs +++ b/src/Metal/Defs.cs @@ -559,6 +559,7 @@ public struct MTLAccelerationStructureSizes { #else [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0), NoWatch] #endif + [NativeName ("MTLResourceID")] [StructLayout (LayoutKind.Sequential)] public struct MTLResourceId { public ulong Impl;