текущие драйвера OpenGL использовать скомпилированные кэш шейдеров находится в C:/Пользователи/имя/AppData/роуминг/AMD | NVIDIA/glcache/...как очистить кэш шейдеров OpenGL
, к сожалению, это вызывает сбой программы почти каждый раз, когда я меняю некоторые из шейдеров, которые я исправляю, вручную удаляя кеш шейдера.
вопрос в том, есть ли хороший способ очистки кеша, когда я отправляю новую версию программы? любое расширение opengl для управления кешированием? или какой-то волшебный api из операционной системы? или, по крайней мере, правильный способ найти папку?
Другой вопрос: какие ключи используют драйверы для идентификации отдельных шейдеров? так что я могу как-то менять ключ каждый раз, когда меняю шейдер.
Это случилось на моем компьютере (amd gpu) и на компьютере моего друга (nvidia), и еще один. таким образом, я предполагаю, что это не связано с os и драйвером. если это не распространенная проблема, как вы заявляете, это оставляет мне проблемы с моей загрузкой/компиляцией/ссылкой кода shader, правильно?я тщательно проверяю любые ошибки, также я тестирую его с помощью контекста отладки и обратного вызова ошибки, а также никаких ошибок. что бы вы предложили дальше? должен ли я изменить вопрос и добавить код загрузки? – Tomas
@ Томас: Да, ваш код загрузки шейдера поможет. Также backtrace разбитого состояния вашей программы поможет: Скомпилировать в режиме отладки и запустить с помощью отладчика. Visual Studio предлагает окно трассировки стека, в GDB вы можете использовать команду «backtrace». Вы не увидите, что происходит в драйвере, но вы можете увидеть, какие шаги предприняла ваша программа, которая привела к сбою. – datenwolf