LINUX.ORG.RU

Упала производительность r600

 ,


4

1

Ничего не предвещало беды, но давеча апдейтов накачали и теперь в печали. Внезапно упала производительность с драйвером r600 на соответствующих видеокартах. В большинстве игр на 5-10%, но в некоторых, например Tomb Raider 2013, драматически в 2-3 раза.

Полез в чейнджлоги мезы https://docs.mesa3d.org/relnotes/22.2.0.html и сразу наткнулся на

[Bisected] r600: Big performance regression on some games

Решил проблему соответственно откатом на 22.1.7 mesa и lib32-mesa.

Если отбросить несоответствующий разделу вопрос «Доколе?», то остается только «Как быть?». Т.е. есть ли решение, как вернуть прежнюю производительность без откатов и пересборок?

★★★★
Ответ на: комментарий от xDShot

Да спасибо, я видел эту тему еще вчера. Но почему-то упорно пытался использовать R600_DEBUG=use_tgsi, что не давало никаких изменений. Т.е. мне казалось, что раз NIR уже включен по умолчанию, то и дергать мне нужно именно TGSI.

Сейчас же попробовал R600_DEBUG=nir и о чудо, производительность вернулась к прежним значениям. А в том же Tomb Raider 2013 даже стала выше, чем со старой версией mesa: 71 фпс, против 62 фпс. А без включения R600_DEBUG=nir на актуальной mesa давала всего 26 фпс.

Radius ★★★★
() автор топика
Ответ на: комментарий от Radius

Я так понял там более трёх бекендов

  • просто NIR
  • просто TGSI
  • трансляция NIR в TGSI по умолчанию сейчас, этот бутерброд сделали для выявления проблем в NIR ибо если он везде будет корректно делать предобработку для TGSI который стабилен и надёжен то и сам NIR надёжен и стабилен (ну в целом). Короче испытывают его на практике.
  • ещё точно чего-то есть, но я не вникал уже.

По умолчанию включён не NIR, а бутерброд NIR->TGSI когда задаётся R600_DEBUG=nir то вместо бутера используется только NIR.

Но пока ещё такое себе, в некоторых местах и правда ух! А в некоторыйх например csgo оно мне систему раком поставило, началось дикое IO я даже не смог посмотреть iotop, ребутнул.

Впрочем я частично сам запутался куда там и чего, хотел в коде глянуть, в первый день вроде нашёл, на следующий там всё поменяли, тьфу блин, забил болт =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от iZEN

Должно быть да, вплоть до 23.3 (как обещают) хотя может минорно регрессию исправят на время ибо когдаааа там этот 23 ещё выйдет.

Но проблемы в целом вроде в частных случаях, массово ничего не ломается просто ну там софтинка, ну вот ещё и тут не очень себя сувствует. Я только пару раз нарвался. В игре (индюшатина кака-то) и в запуске демок с гитхабов. В сотальном тьфу тьфу проблем вроде нету

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от iZEN

Прямо сейчас все это тестировал на 22.2.3. Перед этим еще собирал 23.0.0 из гита и с ней ровно те же проблемы, правда R600_DEBUG=nir на ней не попробовал.

Radius ★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

На тестовой системе погонял csgo с R600_DEBUG=nir, очень даже бодро бегает, по ощущениям тоже прирост есть. Никаких проблем не зафиксировал. Снял логи.

https://flightlessmango.com/games/4777/logs/3421 https://flightlessmango.com/games/4777/logs/3422

Строка запуска следующая

R600_DEBUG=nir %command% -novid -gl

Принудительно Opengl потому, что перед этим тестировал 7ххх (gcn 1.0) с вулканом и оно работало крайне плохо, были жуткие лаги. Но в данном случае наверное не актуально.

А вот dota2 c R600_DEBUG=nir отказалась запускаться.

Radius ★★★★
() автор топика
Последнее исправление: Radius (всего исправлений: 2)
19 мая 2023 г.
Ответ на: комментарий от LINUX-ORG-RU

Если честно я так до конца и не понял. Последняя версия, на которой удалось получить нормальную производительность - 22.2, причем только с R600_DEBUG=nir.

Далее пробовал 22.3, 23.0 и в них даже с R600_DEBUG=nir производительность такая же низкая, как на 22.2 без его включения. Т.е. как будто все наоборот и этот чудесный NIR с аномально высокой производительностью в новых версиях вырезали.

Radius ★★★★
() автор топика
Последнее исправление: Radius (всего исправлений: 1)
Ответ на: комментарий от Radius

Ой, я уже не слежу у меня сейчас 22.3.6 TGSI как был сломан так и сломан сейчас, артефакты в issue для mesa (по ссылке выше) тестовый пример показывает 65 кадров для export R600_DEBUG=use_tgsi. Для export R600_DEBUG=nir без артефактов 75 кадров. Для export R600_DEBUG=nirsb без артефактов 85 кадров.

Такие дела. Дальше вникать у меня ума не хватает.

LINUX-ORG-RU ★★★★★
()

Кстати, для видеокарт HD6000 начали делать Vulkan драйвер для Linux: https://www.phoronix.com/news/Mesa-Terakan-R600-Vulkan-Driver ; Gitlab

Надеюсь доделают и смержат в main, а не как с Gallium11 будет.

robus ★★★★★
()
Последнее исправление: robus (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Наконец-то собрался и запилил сравнение Mesa 22.2 vs 23, правда получилось немного криво, т.к. логи mangohud оказывается пишет с интервалами, дискретными фпсу, а не времени…

Unigine Heaven
https://flightlessmango.com/games/24430/logs/4005
https://flightlessmango.com/games/24430/logs/4010

Tomb Raider
https://flightlessmango.com/games/23584/logs/4008
https://flightlessmango.com/games/23584/logs/4009

Ситуация теперь отчетливо вырисовывается: на 6000-й серии произвоидетльность практически не просела, а вот на 5000-й упала на 9% и 64%. Создается впечатление, что 5000-ю вообще никто не тестит. Куда вообще всё это репортить, чтобы обратили внимание?

Также прогнал тесты с последним блобом на дистрибутиве тех лет, здесь уже по понятной причине без mangohud, даже не стал пробовать собирать. Сравнивать буду с топовыми результатами от Mesa 22.2.4 с R600_DEBUG=nir.

5850 Heaven Low settings:
fglrx - 1854
mesa - 1647

6850 Heaven Low settings:
fglrx - 1649
mesa - 1580

5850 Valley High settings:
fglrx - 1546
mesa - 1298

6850 Valley High settings:
fglrx - 1233
mesa - 1081

Но здесь сразу же напомнила о себе глючность блоба, т.к. Heaven на высоких настройках работал с жуткой просадкой и выдал в итоге всего 300 попугаев, как раз поэтому пришлось тестировать на низких.

С R600_DEBUG=nirsb у меня черный экран.

Radius ★★★★
() автор топика
Последнее исправление: Radius (всего исправлений: 1)
Ответ на: комментарий от robus

Это было бы эпично, но боюсь не особо взлетит, т.к. у них нет аппаратной поддержки многих функций, например той же тесселяции, которая сейчас почти везде.

И опять почему-то HD5000 обижают, хотя между 6970 и 5870 не особо большая то и разница, около 25%. Даже 2-гиговая 5870 вроде существует, хотя вживую не видел.

Radius ★★★★
() автор топика
Ответ на: комментарий от Radius

Разумеется формально поддержка есть, но в HD5000 она крайне плохая, поэтому для упрощения я ей всегда пренебрегал.

Но стало интересно, сделал сравнение 5850 и 6850 с включенной тесселяцией и оказалось, что в сценах, где оная активно используется, разница в фпс почти в 2 раза в пользу 6850 и это при том, что 5850 сама по себе чуть быстрее. Кроме того, на обеих видяхах в тесте выпадают некоторые текстуры с тесселяцией. Впрочем их результаты одинаково плохи, если сравнивать с HD7000, где тесселяция работает практически без штрафа для производительности.

Тест опять же какой-то кривой получился https://flightlessmango.com/games/24430/logs/4011
Фактически результаты по среднему фпс 10,7 vs 14,8 в пользу 6850, т.е. разница почти 30%, а не 10%. Уже лень разбираться, что не так с этим mangohud.

Radius ★★★★
() автор топика
Последнее исправление: Radius (всего исправлений: 1)