DirectX11 с Clang показывает черную текстуру (с Visual Studio это работает)

Услышав о Clang, я решил дать ему шанс и установил Clang на свои окна. С установкой он интегрировался и в мой VisualStudo2015. Все работало нормально, пока я не попытался скомпилировать небольшую программу DirectX11 с помощью clang.
Сначала у Clang возникли проблемы с заголовками DirectXMath — DirectX11. В то время как DirectX рассматривал SIMD-тип __m128 как объединение, clang использовал массив с плавающей точкой. Я решил удалить заголовки Clang и дал компилятору только заголовки Microsoft. Он скомпилирован без каких-либо предупреждений или ошибок.
Но когда я запустил программу, я просто увидел черную текстуру с правильным размером и в правильном положении. Перекомпиляция программы с помощью обычного VisualStudio-Compiler разрешена при правильном отображении текстуры, поэтому я думаю, что мой код правильный.

Может ли быть какой-нибудь способ помочь Clang? Я хочу больше работать с Clang под Windows, но я не хочу менять идею своего проекта.

Некоторые сведения (которые могут помочь):
1.) Я использую clang-cl со следующими дополнительными командами: -fms-compatibility -fms-extensions -Qunused-arguments
2.) Я использую заголовки Windows 8.1
3.) Рисование текстуры осуществляется с помощью DirectXTK.

0

Решение

Базовый синтаксис встроенных функций SSE определен Intel, но специфика того, как типы платформ __m128 Реализация варьируется от компилятора к компилятору. Похоже, проблема в нескольких местах, где я должен использовать V.m128_f32[i]; индексирование в DirectXMath. Похоже, что более новая версия Clang должна работать, если это V[i],

Я подозреваю, что вам придется строить все с символом препроцессора _XM_NO_INTRINSICS_ определяется, если Clang не будет собираться с DirectXMath. Я сомневаюсь, что встроенные заголовки Visual C ++ будут правильно работать с Clang.

Я лично не пытался работать с Clang, но если есть вещи, которые я могу сделать, чтобы улучшить DirectXMath или же DirectXTK Использование с Clang, дайте мне знать. Я подал вопрос отслеживать эту конкретную проблему.

Тем не менее, заголовки Windows SDK не полностью совместимы с Clang и, конечно, не в версии Windows 8.1 SDK.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]