shaderc 选择与 Uniforms 和 Globals 相冲突的插槽。
作者: mcourteaux创建于 2026年2月13日更新于 2026年2月14日
描述错误
有一个着色器如下:
uniform vec4 u_some_param;
mat3 some_matrix = mtxFromRows(vec3(1), vec3(2), vec3(3));
然后使用 shaderc 编译为 spirv。在 Vulkan 后端中,当使用跟踪级别日志进行编译时,加载着色器时,您应该看到非唯一的寄存器槽。请注意,实际的 some_matrix 全局变量甚至没有标记为 uniform。这个错误是在 https://GitHub.com/bkaradzic/bgfx/pull/3536/changes 发布时暴露的,我必须将 mtxFromRows3 更改为 mtxFromRows。但是,这种新方法不再是常量表达式,因此我必须从全局声明中删除 const 限定符。
内容来源: bkaradzic/bgfx