首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spir-V和OpenGL:入口点和管道级

Spir-V和OpenGL:入口点和管道级
EN

Stack Overflow用户
提问于 2022-10-02 15:07:05
回答 1查看 83关注 0票数 0

在OpenGL中是否有内置的方法来查找编译的spir着色器支持的入口点和着色器阶段,还是必须使用像https://github.com/KhronosGroup/SPIRV-Reflect这样的单独库?

编辑:我最后使用了SPIRV

我的资产管道将所有需要链接到程序中的阶段链接到一个二进制blob中,然后我使用

代码语言:javascript
复制
uint32_t                      GetEntryPointCount() const;
const char*                   GetEntryPointName(uint32_t index) const;
SpvReflectShaderStageFlagBits GetEntryPointShaderStage(uint32_t index) const;

若要枚举入口点并将相应的着色器附加到程序中,请执行以下操作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-02 15:30:23

OpenGL只有链接程序的自省设施。程序链接要求首先编译着色器对象。而SPIR加载产生的着色对象将“汇编”改为专门化.SPIR-V着色器的专业化要求知道您想使用的入口点。

所以不,OpenGL无法查看SPIR模块中有哪些入口点可用。再说,这也没什么用。SPIR只能加载到着色器对象中,而着色器对象是为特定的着色器阶段创建的。因此,除非在同一阶段有多个入口点,否则只有一个入口点可以供您寻找:它的阶段与着色器对象类型匹配。

因此,OpenGL已经希望您有一些与任何特定的SPIR模块加载操作相关联的附加信息。只需将入口点名称放入该附加信息中,或为特定着色器阶段的入口点名称建立约定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73926911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档