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