assembly 是否有办法获得提供给vulkan的着色器的编译汇编代码

w3nuxt5m  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(142)

我真的很想知道当提交给Vulkan时,驱动程序为任何给定的着色器编译生成了什么样的汇编代码,显然是为了优化目的,我想在不使用任何外部工具的情况下这样做。
我找不到Vulkan关于这个主题的任何资源,而OpenGL有getBinary函数...

uttx8gqw

uttx8gqw1#

据我所知,Vulkan中没有架构化的方法来获得由 driver 编译的着色器代码。对于大多数专有驱动程序,在这一领域有很多IP,所有者可能不想公开。此外,这些代码可能是一些IR或其他格式,除非你有GPU的寄存器规范,否则这些格式不会有太大意义。
但是,Mali驱动程序沿着其DDK中具有something。其他供应商可能有其他类似的解决方案,但很可能需要使用他们的工具。
另一个选择是查看开源驱动程序,例如在梅萨中,看看他们是否有这样做或修改驱动程序以获得您所需要的选项。
使用Vulkan,您可以轻松访问的最低级别着色器代码是由高级着色器编译器生成的SPIR-V(例如glslangvalidator)。您可以在“提交”给Vulkan之前对其进行任意修改。有很多工具(SPIRV-Tools)可以处理这种格式。

相关问题