我正在 Android Studio 中撰寫 Vulkan 計算著色器并在 Android 手機上啟動它。我遇到的問題是下一個 - 我不能使用任何子組操作,比如subgroupAddand subgroupElect。當我嘗試使用這些功能時,出現如下錯誤:
reduce_vec.comp:35: error: 'subgroup op' : requires SPIR-V 1.3
我已經檢查過 - 我的 Android 手機支持子組,并且我的著色器接受這樣的擴展:
#extension GL_KHR_shader_subgroup_arithmetic: enable
#extension GL_KHR_shader_subgroup_basic: enable
問題非常簡單,我需要更新我的 SPIR-V。但根據我的發現,Android studio 自帶的 SPIR-V 并不是我可以輕易更新的。
以前有人遇到過類似的問題嗎?你的解決方案是什么?提前致謝!
uj5u.com熱心網友回復:
安卓解決方案
您可以在 Gradle DSL 中將引數傳遞給 Android shaderc 編譯器:
https://developer.android.com/ndk/guides/graphics/shader-compilers
你需要glslcArgs包含--target-env=vulkan1.1
靈活的解決方案
構建您自己的編譯管道以從源代碼編譯到 SPIR-V,然后將 SPIR-V 二進制檔案直接包含到您的 Android 專案中。
有多種語言前端可以生成 SPIR-V,對于 GLSL,Khronos 工具在這里:
- https://github.com/KhronosGroup/glslang
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/424829.html
上一篇:如何找到勒讓德的符號?
