spir-v

    -1热度

    1回答

    上需要用户输入/输出的位置我在我的电脑上安装了最新的Vulkan SDK,每当我想通过glslValidator.exe为我的着色器生成SPIR-V文件时,返回以下错误 ERROR: Shader.vert:17: 'location' : SPIR-V requires location for user input/output ERROR: 1 compilation errors. No

    0热度

    1回答

    我目前正在考虑将一些代码从OpenGL/GLSL移植到Vulkan/SPIR-V,并且部分代码会在运行时生成GLSL,所以我将不得不生成SPIR-V。我想知道的是,我应该如何关联生成的SPIR-V中的优化。 特别是,我无法真正找到任何有关驱动程序编译器的期望的信息。我是否应该期望它自己进行积极的优化,从而尽量保持SPIR-V代码的清洁并尽可能保留“原始意图”以供编译器查看?或者我应该指望它做相当简

    0热度

    2回答

    我正在修改D3D12中用于编译为SPIR-V的HLSL着色器,因为我想在Vulkan中使用相同的着色器代码。这里的着色器: #if !VULKAN #define layout(a) #else #define register(a) blank #endif struct VSOutput { float4 pos : SV_Position; float2 u

    1热度

    1回答

    具有相同 操作数参数的非结构类型(标量,向量,数组等)不能是类型别名。对于非结构, 两种类型<id>只匹配 - 如果类型匹配。 这是什么意思? #version 400 void main() { uint a = 4; uint b = 5; } 编译这个着色器glslang结果 ; SPIR-V ; Version: 1.0 ; Generator: Khr

    1热度

    1回答

    我想在我的C创建一个VkBool32 ++代码: VkBool32 myBool = VK_FALSE; ,并推动它通过推常量GLSL: vkCmdPushConstants(..., sizeof(myBool), &myBool); 这是由一个统一的存储类中的布尔收到: layout(push_constant) uniform PushConstants { bool m

    1热度

    1回答

    我想将我的GLSL着色器编译为SPIR-V二进制文件,并在我的OpenGL项目中使用它。 我发现glslang,使用我可以编译glsl着色器为spir-v。但我还没有找到关于如何在我的C++项目中使用它的任何教程。如何加载这些二进制文件并从它们创建着色器程序?

    0热度

    1回答

    我有一个算法,我试图在GLSL中为Vulkan实现。该算法使用FLT_MAX。 现在我可以将其定义为任意高浮点值,但我真的很想知道如何实际在GLSL中处理该运行时的值。