Skip to content

Commit 419c221

Browse files
authored
Removes redundant buffer zeroing in Metal.swift by using init(unsafeUninitializedCapacity:initializingWith:) (#30133)
* Removes redandant buffer zeroing * Fixes typo * Fix compile error
1 parent ee95b8b commit 419c221

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

stdlib/public/Darwin/Metal/Metal.swift

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,10 @@ extension MTLDevice {
9090

9191
@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)
9292
public func getDefaultSamplePositions(sampleCount: Int) -> [MTLSamplePosition] {
93-
var positions = [MTLSamplePosition](repeating: MTLSamplePosition(x: 0,y: 0), count: sampleCount)
94-
__getDefaultSamplePositions(&positions, count: sampleCount)
95-
return positions
93+
return [MTLSamplePosition](unsafeUninitializedCapacity: sampleCount) { buf, initializedCount in
94+
__getDefaultSamplePositions(buf.baseAddress!, count: sampleCount)
95+
initializedCount = sampleCount
96+
}
9697
}
9798
}
9899

@@ -263,9 +264,10 @@ extension MTLRenderPassDescriptor {
263264
@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)
264265
public func getSamplePositions() -> [MTLSamplePosition] {
265266
let numPositions = __getSamplePositions(nil, count: 0)
266-
var positions = [MTLSamplePosition](repeating: MTLSamplePosition(x: 0,y: 0), count: numPositions)
267-
__getSamplePositions(&positions, count: numPositions)
268-
return positions
267+
return [MTLSamplePosition](unsafeUninitializedCapacity: numPositions) { buf, initializedCount in
268+
__getSamplePositions(buf.baseAddress!, count: numPositions)
269+
initializedCount = numPositions
270+
}
269271
}
270272

271273
}

0 commit comments

Comments
 (0)