В Gallium-драйвере Radeon реализован механизм учета памяти и добавлен дизассемблер шейдеров
Разработчик Джером Глиссе (Gerome Glisse) представил набор патчей, реализующих базовый учет потребления памяти потоком команд (CS) при отрисовке, а также проверку наличия необходимой видеопамяти для выполнения запрошенного задания. В данный момент производится проверка того, что объем задания не превышает 70% объема памяти GTT + VRAM. Отмечается что 70% выбрано для того, чтобы была возможность работать в случаях, когда наблюдается фрагментация памяти.Общая идея состоит в том, чтобы грубо оценить требования памяти до начала отрисовки и потом узнать точный объем использованной памяти после завершения операции отрисовки. Такой подход приводит к тому, что какая-либо неопределенность относительно доступной памяти существует только в рамках одной операции отрисовки. На практике такой подход показал очень хороший результат, ошибаясь не более чем на +/-10%.
Кроме того, разработчик Вадим Гирлин (Vadim Girlin) добавил в Gallium-драйвер Radeon R600g патч, реализующий дизассемблер шейдеров. Ожидается что это поможет при отладке и оптимизации. Сам по себе патч является небольшим, основной объем занимают таблицы команд. Вывод отладочной информации включается через переменную окружения R600_DUMP_SHADERS.
© OpenNet