Почему шейдеры HLSL моей программы не анализируются после того, как я собрал его с помощью CMake? - PullRequest
0 голосов
/ 11 февраля 2020

Я впервые задаю вопрос здесь, так что, если я что-то не так делаю, прости меня и скажи мне, чтобы я больше так не делал. И, конечно, спросите меня, если вам нужны дополнительные разъяснения.

Итак, я создал проект в Visual Studio 19, который создает 3D-сцену с трассировкой лучей. Для этого я использую Microsoft Fallback Layer .

Резервный уровень для тех, кто не знает, - это библиотека, которая эмулирует API-интерфейс DirectX Raytracing (DXR) на устройствах без встроенной поддержки драйверов и оборудования.

Сам по себе проект работает нормально, но мне пришлось добавить его в другой проект со многими подпроектами, написанными на openGL. Теперь этот проект мне нужно собрать с помощью cmake.

Проблема, с которой я столкнулся

После того, как я собрал его, шейдеры программы трассировки лучей не могут быть проанализированы. В режиме отладки продолжают появляться следующие ошибки:

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

Exception thrown at 0x00007FF8FC2EA839 in DXCube_Module.exe: Microsoft C++ exception: hlsl::Exception at memory location 0x0000008D38B9B160.

D3D12 Raytracing Fallback Error: State object creation failures due to:                             
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                      
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                        
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                        
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                        
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                        
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                        
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000                                        
Failed to parse DXILibrary.pShaderBytecode: 0000000000000000

Ошибки появляются, когда программа пытается создать объект состояния конвейера.

Примечание: У меня есть другой шейдер, который не имеет отношения к трассировке лучей и не создает никаких проблем. Все шейдеры .hlsl. Программа написана на DirectX 12.

...