我想为纹理和采样器做单独的绑定。像下面的代码:
layout(set = 1, binding = 1) uniform texture2D SurfaceTexture;
layout(set = 1, binding = 2) uniform sampler SurfaceSampler;
但在链接着色器时出现以下错误:
error C7548: 'layout(set)' requires "#extension GL_KHR_vulkan_glsl : enable" before use
我正在尝试创建一个API不可知渲染器,它也将支持DX11-DX12和Vulkan,所以我应该在不同的插槽提交纹理和采样。
1条答案
按热度按时间qyyhg6bp1#
我想做纹理和采样器的单独绑定。
OpenGL不希望您这样做,所以您不能。
GL不允许你做单独的纹理/采样器的事情(甚至没有一个扩展)。D3 D * 要求 * 你做单独的纹理/采样器的事情。Vulkan会让你做任何一个。
所以你得选一边,或者你得让你的渲染器把一边翻译成另一边。
此外,OpenGL没有描述符集,因此
layout(set = #
没有意义。