问题标签 [spir-v]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vulkan - 生成的 SPIR-V 代码有什么问题以及如何验证它?
我有一些生成的 SPIR-V 代码,我想与 vulkan API 一起使用。但是我
Exception thrown at 0x00007FFB68D933CB (nvoglv64.dll) in vulkanCompute.exe: 0xC0000005: Access violation reading location 0x0000000000000008.
在尝试使用vkCreateComputePipelines
.
API 调用应该没问题,因为相同的代码适用于使用glslangValidator编译的着色器。因此,我假设生成的 SPIR-V 代码一定是格式错误的。
我已经使用khronos 的验证器工具检查了 SPIR-V 代码,使用spirv-val --target-env vulkan1.1 mainV.spv
它退出时没有错误。无论如何,也知道这个工具仍然不完整。
我还尝试使用Radeon GPU Analyzer来编译我的 SPIR-V 代码,该代码也可以在着色器游乐场在线获得,并且该工具会抛出Error: Error: internal error: Bil::BilInstructionConvert::Create(60) Code Not Tested!
实际上没有帮助的错误,但鼓励假设代码格式错误。
不幸的是,SPIR-V 代码很长时间无法在此处发布,但它位于着色器操场的链接中。
有谁知道我的设置有什么问题,或者知道如何以更好的方式验证我的 SPIR-V 代码,而无需手动检查所有 700 行代码。
我认为问题不存在,但无论如何这里是 c++ 主机代码:
c++ - 伏尔甘;从 SPIR-V 着色器获取制服和属性列表
为此寻找 Vulkan 替代方案;在 OpenGL 中,有没有办法获取着色器程序使用的所有制服和属性的列表?
opengl - 我怎样才能简单地将 GLSL 编译为 SPIR-V?
所以我需要得到一些GLSL的SPIR-V代码
我能找到的关于该主题的每一个资源都涉及为图形等设置一个完整的环境。
在最简单的情况下,当我有一些 GLSL 代码并且我想获得 SPIR-V 代码时,最好的方法是什么?
glsl - 错误:“子组操作”:需要 SPIR-V 1.3
我正在使用以下命令将 GLSL 文件编译为 SPIR-V:
得到错误:
错误发生在第 32 行和第 45 行,它们都是sum = subgroupAdd(sum);
完整的GLSL 代码:
我有最新版本的 VulkanSDK。
opengl - GLSL / HLSL / SPIR-V 中的 _pdep_u32
我需要在将编译为 SPIR-V 的 GLSL 程序中交错*三个无符号整数的位。在 C 语言中,我会使用内在的 _pdep_u32 但我在 OpenGL 参考中找不到类似的东西。它是否以其他名称存在?或者,它是否存在于 HLSL 或原始 SPIR-V 中?我知道有一个工具可以将 LLVM IR 转换为 SPIR-V。是否可以使用它来生成 _pdep_u32 等效字节码?否则,这种行为能否以其他也非常快的方式实现?
*即 32 位整数 A、B 和 C 中的位必须按 ABCABC...等顺序出现
glsl - glslc - 即使使用 -fentry-point 也缺少入口点
使用glslc --targe-env="vulkan1.1" -fentry-point="mainColor" test.frag
时出现错误
test.frag 内容:
我究竟做错了什么 ?
如何修复此编译错误?
spir-v - 如何读取 SPIR-V 文件?
我在将一些 GLSL 代码编译为 SPIR-V 时遇到问题,因此我想检查 SPIR-V 代码。
我希望能够通读程序集。
我怎样才能做到这一点?
glsl - 获取“位置”:使用 glslang 时片段输出错误太大
我在我的代码中使用 glslang SDK 在线编译着色器程序,但是我的片段着色器出现以下错误:
GLSL 解析失败:Text.frag 错误:0:6:“位置”:片段输出太大错误:1 编译错误。没有生成代码。
GLSL 链接失败:Text.frag 错误:0:6:“位置”:片段输出太大错误:1 编译错误。没有生成代码。
断言失败:node->getOp(),文件 C:\projects\glslang\SPIRV\GlslangToSpv.cpp,第 2412 行
我的顶点着色器:
我的片段着色器
glsl - 如何将 uint64_t 转换为 sampler2D?
我想使用无绑定纹理,但 spirv 不支持它。我在这里找到:https : uint64_t
//www.khronos.org/opengl/wiki/Bindless_Texture 可以转换为sampler2D。
uint64_t 值可以使用构造函数转换为任何采样器或图像类型:sampler2DArray(some_uint64)。它们也可以转换回 64 位整数。
我认为我可以上传一个无绑定句柄作为 uint64_t,然后将其转换为 sampler2D。
spir-v 编译器给了我错误:
着色器代码
是否可以转换uint64_t
为sampler2D
?怎么做?