繁体   English   中英

是否可以在OpenGL 4.5上的SPIR-V着色器中使用无绑定纹理?

[英]Is it possible to use bindless textures in SPIR-V shaders on OpenGL 4.5?

我正在尝试使用Windows上的LunarG Vulkan SDK 1.0.37.0编译以下着色器:

#version 450 core
#extension GL_ARB_bindless_texture : require

layout(std140, binding=1) uniform LightUbo
{
    vec3 lightDirectionVS;
};

layout(std140, binding=2) uniform TextureUBO
{
    sampler2D samplers[ 10 ];
};

in vec2 vUV;
in vec3 vNormalVS;
out vec4 fragColor;

void main()
{
    vec2 uv = vUV;
    uv.y = 1.0 - uv.y;
    fragColor = texture( samplers[ 0 ], uv ) * max( 0.2, dot( lightDirectionVS, vNormalVS ) );
}

编译命令:

\VulkanSDK\1.0.37.0\Bin\glslangValidator.exe -V assets\shader.frag -o assets\shader.frag.spv

编译器提供以下输出:

警告,版本450尚未完成; 大多数特定于版本的功能都存在,但有些功能缺失。

错误:assets \\ shader.frag:2:'#extended':不支持扩展名:GL_ARB_bindless_texture

错误:assets \\ shader.frag:2:'#extended':额外令牌 - 预期换行错误:assets \\ shader.frag:2:'':编译终止

有没有办法在OpenGL 4.5和SPIR-V着色器中使用无边框纹理?

SPIR-V无法进行无边框纹理处理。 因此,除非NVIDIA或ARB添加SPIR-V扩展以允许它,否则您将不得不使用实现的GLSL编译器,而不是glslang。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM