ios - 指针(内存)在 Swift 中对齐到 16K 以创建 Metal 缓冲区

标签 ios swift metal

我想用 newBufferWithBytesNoCopy 创建一个 Metal 缓冲区让CPU和GPU共享内存和实践零拷贝数据传输的功能。

newBufferWithBytesNoCopy函数接受一个UnsafeMutablePointer类型的指针,指针需要对齐到16K(16384)字节。

谁能就如何在 Swift 中创建特定大小的对齐内存提供建议?

最佳答案

我相信这对你有用:

var memory:UnsafeMutablePointer<Void> = nil
var alignment:UInt = 0x4000 // 16K aligned
var size:UInt = bufferSize // bufferSize == your buffer size

posix_memalign(&memory, alignment, size)

供引用:

http://pubs.opengroup.org/onlinepubs/009695399/functions/posix_memalign.html

关于ios - 指针(内存)在 Swift 中对齐到 16K 以创建 Metal 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27365905/

相关文章:

ios - 转换变量以用作索引( Metal 着色语言)

xcode - 手动编译 Metal 着色器

ios - 绘制多条线时的 drawRect 性能

android - 如何在 Flutter 中对整个应用程序进行圆角处理?

ios - 在 UINavigationController 之上添加 View

iOS 初始化配置

ios - 如何在 Swift 中对对象进行 Nil

swift - Realm 不区分大小写的搜索语法

swift - 开启通用类型?

swift - 尝试手动将 2d 触摸转换为 spritekit 坐标时出现问题