From 1a715c0bb49f60434ad800086aea69acffb92fd2 Mon Sep 17 00:00:00 2001 From: Marius Horga Date: Fri, 26 May 2017 14:13:44 -0500 Subject: [PATCH] added memory --- memory_part_2.playground/Contents.swift | 34 ++++++++++++++++++ .../contents.xcplayground | 4 +++ .../contents.xcworkspacedata | 7 ++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 7518 bytes 4 files changed, 45 insertions(+) create mode 100644 memory_part_2.playground/Contents.swift create mode 100644 memory_part_2.playground/contents.xcplayground create mode 100644 memory_part_2.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 memory_part_2.playground/playground.xcworkspace/xcuserdata/mhorga.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/memory_part_2.playground/Contents.swift b/memory_part_2.playground/Contents.swift new file mode 100644 index 0000000..8c3ecbb --- /dev/null +++ b/memory_part_2.playground/Contents.swift @@ -0,0 +1,34 @@ + +import MetalKit + +guard let device = MTLCreateSystemDefaultDevice() else { fatalError() } + +let count = 2000 +let length = count * MemoryLayout< Float >.stride + +// 1. makeBuffer(length:) +// +//let myBuffer = device.makeBuffer(length: length, options: []) +//print(myBuffer.contents()) + +// 2. makeBuffer(bytes:) +// +//var myVector = [Float](repeating: 0, count: count) +//let myBuffer = device.makeBuffer(bytes: myVector, length: length, options: []) +//withUnsafePointer(to: &myVector) { print($0) } +//print(myBuffer.contents()) + +// 3. makeBuffer(bytesNoCopy:) +// +var memory: UnsafeMutableRawPointer? = nil +let alignment = 0x1000 +let allocationSize = (length + alignment - 1) & (~(alignment - 1)) +posix_memalign(&memory, alignment, allocationSize) +let myBuffer = device.makeBuffer(bytesNoCopy: memory!, + length: allocationSize, + options: [], + deallocator: { (pointer: UnsafeMutableRawPointer, _: Int) in + free(pointer) + }) +print(memory!) +print(myBuffer.contents()) diff --git a/memory_part_2.playground/contents.xcplayground b/memory_part_2.playground/contents.xcplayground new file mode 100644 index 0000000..63b6dd8 --- /dev/null +++ b/memory_part_2.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/memory_part_2.playground/playground.xcworkspace/contents.xcworkspacedata b/memory_part_2.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/memory_part_2.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/memory_part_2.playground/playground.xcworkspace/xcuserdata/mhorga.xcuserdatad/UserInterfaceState.xcuserstate b/memory_part_2.playground/playground.xcworkspace/xcuserdata/mhorga.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..3835f78a560b900752454864e58a8bc6c7f28254 GIT binary patch literal 7518 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 literal 0 HcmV?d00001