如何在 Metal Shader Language 中将浮点指针转换为 uint8_t 指针?

问题描述

我正在尝试在 kernel void 函数内用 Metal Shading Language 编写以下 C 代码:

float f = 2.1;
uint8_t byteArray[sizeof(f)];
for (int a = 0; a < sizeof(f); a++) {
    byteArray[a] = ((uint8_t*)&f)[a];
}

该代码应该获取浮点值的字节数组。当我尝试用 Metal Shader Language 编写相同的代码时,出现以下构建时错误:

指针类型必须有明确的地址空间限定符

我知道 Metal 限制了指针的使用,并要求内核函数的参数提供显式地址空间属性,例如 deviceconstant 等。我将如何执行类型-用金属着色语言投射?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)