gpt4 book ai didi

glsl - Vulkan 特化常数可以用 GLSL 表示吗?

转载 作者:行者123 更新时间:2023-12-04 10:15:19 25 4
gpt4 key购买 nike

我已经使用 Vulkan 一段时间了,但我刚刚了解了特化常量。规范说:

Specialization constants are useful to allow a compute shader to have its local workgroup size changed at runtime by the user, for example.



整洁的!我想几乎完全那样做,我也想将这种不同的常量用于其他目的。但是 Vulkan 规范(目前为 1.0.34 版)中给出的特化常量示例似乎都是用 SPIR-V 写的,而不是用 GLSL 写的,而且我的着色器都是用 GLSL 写的。所以我想我可能无法使用这个不错的功能。 :(

我对吗?或者有没有办法通过 GLSL 使用特化常量,或者作为工作组大小常量,或者作为任意常量变量值,或者以其他方式?

最佳答案

当然,按照 GL_KHR_Vulkan,特化常量可以与 Vulkan 中的 GLSL 一起使用。 .

这是一个特殊的布局限定符,因此您的 GLSL 特化常量将如下所示:
layout (constant_id = 0) const int SSAO_KERNEL_SIZE = 64;
然后在管道创建时使用管道创建信息中使用的着色器阶段创建信息的 pSpecializationInfo 成员指定这些常量的值。

这也适用于例如计算着色器工作组大小。

关于glsl - Vulkan 特化常数可以用 GLSL 表示吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40773244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com