LINUX.ORG.RU
ФорумGames

AMD FSR в (почти) любой игре через Wine/Proton

 ,


0

3

AMD FSR теперь можно использовать почти в любой игре через Wine/Proton. Патчсет пока не принят в Proton, но я думаю рано или поздно примут. На данный момент работает только с Vulkan (включая DXVK и vkd3d).

Сравнение FSR в некоторых играх: The Witcher 3, Kingdom Come: Deliverance, Control. По мне так картинка выглядит заметно лучше чем без FSR.

p.s. FSR - технология масштабирования изображения от AMD.

★★★★★

Последнее исправление: Kron4ek (всего исправлений: 2)

технологии «апскейлинга + увеличение резкости» нынче патентуют, та же nvidia, дожили…

очень кстати полезная штука для Steam Deck, можно запускать игры 576p и апскейлить их до 800p лол

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

Изображение масштабируется с более низкого разрешения на нативное разрешение экрана, так что положительно влияет.

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

Крайне положительно, оно ради этого и создано что-бы делать из меньшего разрешения большее с потерями конечно. Но там где игра например давала тебе на твоём монике 45 прыгающих до 55 фпс тут позволит на тех же настройках графики получить 60 к примеру. Жертвуешь резкостью по сути картинки. Но это гораздо лучше выглядит чем просто понизить разрешение в игре и растянуть на весь экран просто так.

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

Приколько. Завтра попробую затестить.

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

Это не DLSS, оно с мелких разрешений плохо апскейлит.

Но это все равно лучше чем обычное билинейное масштабирование. Я пробовал с FSR разрешение в 3 раза меньше нативного (560x350 до 1680x1050), и это выглядело паршиво, но все же лучше чем без FSR.

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

Нет, его ни в каком Протоне пока нет. Но ты можешь вне Steam на какой-нибудь игре затестить, используя мою сборку Wine (6.13-staging-tkg). Ну или, как вариант, можешь свой Proton скомпилировать, применив этот Pull Request.

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

Понял. В гитхабе увидел ветку экспериментал, думал может добавили.

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

Вот 640x400, а вот 960x600. Затестил только в KCD, в The Witcher 3 затестить не получилось, так как игра не поддерживает разрешения ниже 1024x768, по крайней мере не в полноэкранном режиме.

Как видно, FSR тут приятнее смотрится, хотя картинка в любом случае плохо выглядит, слишком низкие разрешения.

p.s. FPS между 640x400 и 960x600 примерно одинаковый, так как игра у меня в процессор упирается.

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

У меня Arch. Проблема с sincos решается сборкой без mingw, configure нужно запустить с параметром --without-mingw.

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

Еще одна:

tools/winegcc/winegcc -o dlls/ddraw/tests/ddraw_test.exe --wine-objdir . -b i686-w64-mingw32 --lib-suffix=.cross.a -mno-cygwin \
  dlls/ddraw/tests/d3d.cross.o dlls/ddraw/tests/ddraw1.cross.o dlls/ddraw/tests/ddraw2.cross.o \
  dlls/ddraw/tests/ddraw4.cross.o dlls/ddraw/tests/ddraw7.cross.o \
  dlls/ddraw/tests/ddrawmodes.cross.o dlls/ddraw/tests/dsurface.cross.o \
  dlls/ddraw/tests/refcount.cross.o dlls/ddraw/tests/visual.cross.o \
  dlls/ddraw/tests/testlist.cross.o dlls/ddraw/libddraw.cross.a dlls/user32/libuser32.cross.a \
  dlls/gdi32/libgdi32.cross.a dlls/ole32/libole32.cross.a dlls/msvcrt/libmsvcrt.cross.a \
  
/usr/lib/gcc/i686-w64-mingw32/11.1.0/../../../../i686-w64-mingw32/bin/ld: dlls/ddraw/tests/ddraw4.cross.o: in function `test_texture_wrong_caps':
/home/mjok/dev/misc/wine-proton/dlls/ddraw/tests/ddraw4.c:18366: undefined reference to `create_device_ex'
/usr/lib/gcc/i686-w64-mingw32/11.1.0/../../../../i686-w64-mingw32/bin/ld: dlls/ddraw/tests/ddraw7.cross.o: in function `test_texture_wrong_caps':
/home/mjok/dev/misc/wine-proton/dlls/ddraw/tests/ddraw7.c:18609: undefined reference to `create_device_ex'

Пока без тестов соберу.

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

Это тоже должно решиться отключением mingw. Однако все равно будет еще одна ошибка во время компиляции, связанная с widl - ее можно решить, накатив этот коммит.

Ах да, и тесты нужно отключать.

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

У куртки пафосно названный «нейросетью» алгоритм

Поправил тебя.

Что там эта сеть и на основании чего считает - никто толком не знает. Нет никаких причин считать её чем-то принципиально отличным от амудешного алгоритма шарпинга, тем более, что результат один и тот же.

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

У куртки во второй итерации их чёрной коробки результат получше будет.

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

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

Поправил тебя.

Там для каждой игры нужно поипаться с внедрением этого ДЛСС. Обучать их проприетарную сетку на своей игре, а потом результаты ее жизнедеятельности внедрять в свою игру. Вот по этому так мало игр с ее поддержкой, ну и еще оно работате только на нескольких картах.

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

Там для каждой игры нужно поипаться с внедрением этого ДЛСС.

Да.

Обучать их проприетарную сетку на своей игре

А вот это - уже малодостоверная гипотеза. В презе ясно говорили, что сетка обучается на нескольких последних кадрах (что имеет смысл), т.е. вся игра ей нахер не нужна. Максимум, что там делают - тюнят некоторые параметры алгоритма под конкретную игру, в зависимости от блюра и прочих шейдеров. Возможно, динамически в зависимости от текущей сцены.

результаты ее жизнедеятельности внедрять в свою игру

В игру линкуют либу, которая даёт нужый API для управления и подменяет выдачу отрендеренденного D3D Surface в DXGI на свой апскейл.

LamerOk ★★★★★
()

Так а что с переменной WINE_VULKAN_BIAS_ALL_SAMPLERS=?

Надо/не надо и сколько ставить для 1080p?

Еще непонятно как настраивать качество fsr (вот эти вот ultra, balance, performens).

И еще, я правильно понимаю что при выставленном разрешении равном разрешению экрана fsr отключается несмотря на переменную WINE_FULLSCREEN_FSR=1?

Vochatrak-az-ezm ★★
()
Последнее исправление: Vochatrak-az-ezm (всего исправлений: 1)

> Изображение масштабируется с более низкого разрешения на нативное разрешение экрана, так что положительно влияет.

Хм, но по-моему растягивать изображение аппаратно мог даже ImageMagick при помощи OpenGL

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от Vochatrak-az-ezm

Так а что с переменной WINE_VULKAN_BIAS_ALL_SAMPLERS=? Надо/не надо и сколько ставить для 1080p?

Не знаю, я вообще без понятия, что она делает и в каких случаях ее нужно включать.

Еще непонятно как настраивать качество fsr (вот эти вот ultra, balance, performens).

Качество FSR выбирается изменением разрешения в игре на нужное. Эти пресеты качества - это просто разные разрешения рендеринга.

Performance - это 2x апскейлинг, Quality - 1.5x, Ultra Quality - 1.3x. Так что если ты хочешь, например, Quality, просто выбери в игре разрешение в 1.5 раза ниже нативного. Информация отсюда.

И еще, я правильно понимаю что при выставленном разрешении равном разрешению экрана fsr отключается несмотря на переменную?

Именно так. Апскейлинг работает, только если в игре выбрано разрешение ниже нативного.

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

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

Vochatrak-az-ezm ★★
()

А нельзя его только к 3D миру применять, например рендерить все в сурфейс с FSR, который выводить в нативное разрешение с нативным 2D худом, а то тексту плохо прям

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

Не знаю, я вообще без понятия, что она делает и в каких случаях ее нужно включать.

Ну тут - https://github.com/ValveSoftware/wine/pull/116 пишут мол:

AMD also recommends a negative LOD bias, which is not possible in a generic way without problems.

И далее:

I added another commit for a negative mip bias env var, you can use WINE_VULKAN_NEGATIVE_MIP_BIAS=N for a bias of N/100. For 1080p -> 1440p upscaling AMD recommends a negative bias between 0.38 and 0.58, so something like WINE_VULKAN_NEGATIVE_MIP_BIAS=45. By default, this is only applied to samplers with anisotropic filtering enabled, you can use WINE_VULKAN_BIAS_ALL_SAMPLERS=1 to force it for all samplers.

Do note that forcing a mip bias can break game graphics!
Vochatrak-az-ezm ★★
()
Ответ на: комментарий от SR_team

Нет, оно работает как fx-шейдер и обрабатывает уже «запеченный» кадр.

Для того что бы ХУД не корежило, нужно что бы разрабы конкретной игры добавили эту штуку до рендеринга ХУДа.

Vochatrak-az-ezm ★★
()
Ответ на: комментарий от bhfq

технологии «апскейлинга + увеличение резкости» нынче патентуют

  • сглаживание после увеличения резкости
SR_team ★★★★★
()
Ответ на: комментарий от Vochatrak-az-ezm

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

UPD: херню пишу, тогда же будет другая проблема - как сообщить игре, что теперь мы используем другое разрешение, не дергая reset девайса

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

что сетка обучается на нескольких последних кадрах

Нет, сетка обучается на куче кадрах игры, а во время работы последние несколько кадров используются для восстановления изображения в текущем кадре

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

Все новое - хорошо забытое старое. Невидия этим мылом грешила еще на заре времен.

Помнится, сравнивали радеоны и жифорсы, у первых картинка кристальная, у вторых - ацкое мыло, но зато фпс выше.

Колесо Сансары сделало оборот и теперь амуде демонстрирует пыльные фокусы

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

Конечно забытое, вернее не забытое просто народу это представили как нечто новое. Так то подобная хрень много где и так уже есть и каждый изобретает по своему. Дело в алгоритмах и идеях, как я понимаю (не смотрел ещё) там просто хорошо продумали как и не зашакалить всё растянув картинку и шапнув её по резкости.

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

Кстати, ты не знаешь, в СтимОС 3 будет поддержка case insensitive директорий? А то многие моды под линуксом отваливаются из-за этого.

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

Ты в курсе, что для того, чтобы обратно распространить ошибку по глубинной сети даже с одного кадра, нужно его сперва отрендерить в нативном разрешении, потом сделать деконволюцию из существующих фильтров, сравнить с этим исходным изображением, разницу переносить на каждый из слоев, и потенциально выбросить результат, если он окажется хуже существующего или не подойдет для следующего кадра? Ни один человек в здравом уме не будет онлайн обучение делать для такой технологии в продакшне, ну или я не шарю и у них суперэффективное обучение прямо во время игры. Куда более вероятно (в отсутствие документальных фактов в моем распоряжении), что разрабы делают перенос обучения для футажей из своих игорей, а на выходе имеется набор модифицированных весов для фильтров в виде фрагментного шейдера, или что-то в этом духе…

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

Неа, никаких ТХ не заявлено. Тут линукс не причём, в нём не нужен похнарегистр (хотя для EXT4 фича есть мож ещё где есть). А вот в протоне ака вайн оно же вроде как по дефолту case insensitive не? От этой хрени одни проблемы https://github.com/ValveSoftware/steam-for-linux/issues/6052 и ещё если в винде/протоне/вайне включён режим как в линуксе типа всё регострозависимое то последние при наличии abc.exe и ABC.exe выдадут только 1 из вариантов и если он не тот то отвал. Тебе просто надо найти какие файлы в моде конфликтуют по именам с другими файлами.

А что за моды?

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

Я имею ввиду нечувствительность только для дистрибутива конкретных игр, а не для всей системы.

BceM_IIpuBeT ★★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.