Что означает код HRESULT 0x8899000E (D2DERR_SHADER_COMPILE_FAILED)?

 
Предыдущий Следующий
D2DERR_TOO_MANY_SHADER_ELEMENTS D2DERR_MAX_TEXTURE_SIZE_EXCEEDED

D2DERR_SHADER_COMPILE_FAILED

Что означает D2DERR_SHADER_COMPILE_FAILED

D2DERR_SHADER_COMPILE_FAILED означает, что шейдер пользовательского эффекта Direct2D не прошёл компиляцию.

Что проверить

Сохраняйте не только HRESULT, но и исходный HLSL или байткод, точку входа, профиль шейдера и полный диагностический вывод компилятора. Ошибка может быть вызвана синтаксисом, неподдерживаемым профилем, несоответствием семантик или привязок ресурсов.

  • Скомпилируйте тот же шейдер отдельно тем же компилятором и с теми же параметрами.
  • Проверьте соответствие XML/описания эффекта фактическим входам и ресурсам шейдера.
  • После обновления SDK не подменяйте профиль шейдера автоматически, не проверив целевое оборудование.

Как подтвердить исправление

Создайте тот же эффект на том же устройстве и убедитесь, что Direct2D принимает шейдер, а debug layer не сообщает новый предшествующий отказ.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.