From 8142d0f2fc894af0c454a5b8abd7e2d3380ce679 Mon Sep 17 00:00:00 2001 From: Valeriy Van Date: Sat, 29 Feb 2020 00:05:55 +0100 Subject: [PATCH 1/3] Removes redandant buffer zeroing --- stdlib/public/Darwin/Metal/Metal.swift | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/stdlib/public/Darwin/Metal/Metal.swift b/stdlib/public/Darwin/Metal/Metal.swift index 479cd69e917fc..ea4276ce31b43 100644 --- a/stdlib/public/Darwin/Metal/Metal.swift +++ b/stdlib/public/Darwin/Metal/Metal.swift @@ -90,9 +90,10 @@ extension MTLDevice { @available(macOS 10.13, iOS 11.0, tvOS 11.0, *) public func getDefaultSamplePositions(sampleCount: Int) -> [MTLSamplePosition] { - var positions = [MTLSamplePosition](repeating: MTLSamplePosition(x: 0,y: 0), count: sampleCount) - __getDefaultSamplePositions(&positions, count: sampleCount) - return positions + return [MTLSamplePosition](unsafeUninitializedCapacity: sampleCount) { buf, initializedCount + __getDefaultSamplePositions(buf, count: sampleCount) + initializedCount = sampleCount + } } } @@ -263,9 +264,10 @@ extension MTLRenderPassDescriptor { @available(macOS 10.13, iOS 11.0, tvOS 11.0, *) public func getSamplePositions() -> [MTLSamplePosition] { let numPositions = __getSamplePositions(nil, count: 0) - var positions = [MTLSamplePosition](repeating: MTLSamplePosition(x: 0,y: 0), count: numPositions) - __getSamplePositions(&positions, count: numPositions) - return positions + return [MTLSamplePosition](unsafeUninitializedCapacity: numPositions) { buf, initializedCount + __getSamplePositions(buf, count: numPositions) + initializedCount = numPositions + } } } From cf95a2fafed135fb9730880f40a1d0e6ea32056d Mon Sep 17 00:00:00 2001 From: Valeriy Van Date: Sat, 29 Feb 2020 00:12:31 +0100 Subject: [PATCH 2/3] Fixes typo --- stdlib/public/Darwin/Metal/Metal.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/public/Darwin/Metal/Metal.swift b/stdlib/public/Darwin/Metal/Metal.swift index ea4276ce31b43..adf3e4b7b9d82 100644 --- a/stdlib/public/Darwin/Metal/Metal.swift +++ b/stdlib/public/Darwin/Metal/Metal.swift @@ -90,7 +90,7 @@ extension MTLDevice { @available(macOS 10.13, iOS 11.0, tvOS 11.0, *) public func getDefaultSamplePositions(sampleCount: Int) -> [MTLSamplePosition] { - return [MTLSamplePosition](unsafeUninitializedCapacity: sampleCount) { buf, initializedCount + return [MTLSamplePosition](unsafeUninitializedCapacity: sampleCount) { buf, initializedCount in __getDefaultSamplePositions(buf, count: sampleCount) initializedCount = sampleCount } @@ -264,7 +264,7 @@ extension MTLRenderPassDescriptor { @available(macOS 10.13, iOS 11.0, tvOS 11.0, *) public func getSamplePositions() -> [MTLSamplePosition] { let numPositions = __getSamplePositions(nil, count: 0) - return [MTLSamplePosition](unsafeUninitializedCapacity: numPositions) { buf, initializedCount + return [MTLSamplePosition](unsafeUninitializedCapacity: numPositions) { buf, initializedCount in __getSamplePositions(buf, count: numPositions) initializedCount = numPositions } From e755dec6dbe524942b2a4f1e09e5948c2e461130 Mon Sep 17 00:00:00 2001 From: Valeriy Van Date: Fri, 13 Mar 2020 08:11:50 +0100 Subject: [PATCH 3/3] Fix compile error --- stdlib/public/Darwin/Metal/Metal.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/public/Darwin/Metal/Metal.swift b/stdlib/public/Darwin/Metal/Metal.swift index adf3e4b7b9d82..c1dd0847c693c 100644 --- a/stdlib/public/Darwin/Metal/Metal.swift +++ b/stdlib/public/Darwin/Metal/Metal.swift @@ -91,7 +91,7 @@ extension MTLDevice { @available(macOS 10.13, iOS 11.0, tvOS 11.0, *) public func getDefaultSamplePositions(sampleCount: Int) -> [MTLSamplePosition] { return [MTLSamplePosition](unsafeUninitializedCapacity: sampleCount) { buf, initializedCount in - __getDefaultSamplePositions(buf, count: sampleCount) + __getDefaultSamplePositions(buf.baseAddress!, count: sampleCount) initializedCount = sampleCount } } @@ -265,7 +265,7 @@ extension MTLRenderPassDescriptor { public func getSamplePositions() -> [MTLSamplePosition] { let numPositions = __getSamplePositions(nil, count: 0) return [MTLSamplePosition](unsafeUninitializedCapacity: numPositions) { buf, initializedCount in - __getSamplePositions(buf, count: numPositions) + __getSamplePositions(buf.baseAddress!, count: numPositions) initializedCount = numPositions } }