2
我需要幫助來替換MTLBuffer的內容而不創建新內容。兩種情況下的內容都是浮動數組。更新金屬中MTLBuffer的內容
let vector:[Float] = [0,1,2,3,4,5,6,7,8,9]
let byteLength = arr1.count*MemoryLayout<Float>.size
let buffer = metalDevice.makeBuffer(bytes: &vector, length: byteLength, options: MTLResourceOptions())
let vector2:[Float] = [10,20,30,40,50,60,70,80,90]
我明白buffer.contents()給了我們一個UnsafeMutableRawPointer。我想從vector2創建一個新的UnsafeMutableRawPointer並替換緩衝區的內容。
在此先感謝!計算字節數組的長度時
buffer.contents().copyBytes(from: vector2, count: vector2.count * MemoryLayout<Float>.stride)
一般來說,喜歡stride
超過size
:
工作正常!非常感謝! – thewebmaker