В Gallium-драйвере для R600 исправлена проблема, приводившая к зависаниям GPU при попытке использования HyperZ

Представлены патчи для драйвера R600, устраняющие зависания GPU при попытке использования hyper-z. Как известно, некоторое время назад была реализована поддержка данной возможности и обнаружено, что GPU может попросту повиснуть, хотя все сделано в соответствии с документацией.

Изучение ситуации показало, что причиной является аппаратная ошибка, которая однако не описана в общедоступных errata. Более того, маловероятно, что даже те кто писал закрытый драйвер смогут вспомнить как именно они обходным путем решили эту проблему. В конечном итоге, разработчикам пришлось смотреть на то как генерирует потоки команд закрытый драйвер и смотреть в чем состоят отличия при генерации потока команд в открытом драйвере. В результате удалось привести генерацию потока команд открытым драйвером в форму, при которой GPU не зависает.

Представленный патч начинается предупреждением:

 /* !!! * To avoid GPU lockup registers must be emited in a specific order * (no kidding ...). The order below is important and have been * partialy infered from analyzing fglrx command stream. * * Don't reorder atom without carefully checking the effect (GPU lockup * or piglit regression). * !!! */ 


Источник:
http://www.opennet.ru/opennews/art.shtml?num=34848

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>