А сам баг заключался в том что механизм кэширования шейдеров в библиотеке в определенных ситуациях возвращает шейдер с конвейером(pipeline) который еще выполняется на GPU и соответственно его еще нельзя изменять для следующего запуска. Такие ситуации возникают для шейдеров(вычислительных ядер) с динамическим размерном блока.
🛠️ Validation Layer — это не просто отладочная утилита, а критически важная часть инфраструктуры разработки под Vulkan, которая компенсирует отсутствие проверок в runtime и предотвращает трудноуловимые ошибки. Советую использовать также и с автоматическими тестами, для слоя можно включить исключения и соответственно увидеть проблемы в отчете.
Post #10
274
- 👍 2