3

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: '#extension': 拡張子はサポートされていません: GL_ARB_bindless_texture

エラー: assets\shader.frag:2: '#extension': 余分なトークン -- 予想される改行エラー: assets\shader.frag:2: '': コンパイルが終了しました

OpenGL 4.5 および SPIR-V シェーダーでバインドレス テクスチャを使用する方法はありますか?

4

1 に答える 1

4

SPIR-V には、バインドレス テクスチャ処理を行うための機能がありません。したがって、NVIDIA または ARB が SPIR-V 拡張機能を追加して許可しない限り、glslang ではなく、実装の GLSL コンパイラを使用する必要があります。

于 2017-01-11T16:18:48.250 に答える