The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Стабильный релиз Wine 9.0"
Отправлено Zenitur, 18-Янв-24 01:30 
> В Direct3D 10 реализована поддержка дополнительных эффектов.
> В классический бэкенд шейдеров OpenGL ARB добавлена поддержка определения теней при помощи расширения ARB_fragment_program_shadow.

Расскажу про свой опыт использования бэкенда шейдеров ARB.

В 2012 году я начал играть под Wine в игры, в которых было много шейдеров: Skyrim, StarCraft 2 и Portal 2. Была проблемка с фризами, которая решилась, как только я переключился с шейдеров GLSL - на ARB. Драйвер NVIDIA.

Если осуществлять трансляцию шейдеров HLSL в GLSL, то будет высокая совместимость. Не важно, какой у тебя драйвер: NVIDIA, ATi или Intel - игра будет одинаково работать на каждом из этих драйверов. А если транслировать в ARB - есть вероятность, что у тебя заработает больше игр. Так как трансляция высокоуровневого в низкоуровневое даётся разработчикам Wine просто. А вот высокоуровневое в высокоуровневое - сложно.

Так и живём. На NVIDIA можно смело включать трансляцию в ARB вместо GLSL, так как разработчики тестируют WINED3D в первую очередь на NVIDIA. На остальных картах - бывает, что ARB лечит игры, делая их работу лучше. А бывает что наоборот. Поэтому лучше оставить GLSL (включая ARB лишь иногда, чтобы узнать, как с ним ведёт та или иная игра, стало ли лучше или нет).

Игра Сталкер, например. На драйвере Catalyst (fglrx) при обновлении дров с 9.3 на 9.4 (2009 год, прикиньте), стала подклюкивать трава. А в какой-то момент, при обновлении Wine с версии 2.21 до версии 5.0 (это уже недавно), драйвер fglrx стал неюзабелен. Подозреваю, что из Wine удалили код для fglrx в связи с его устареванием. Хотя, может просто регрессия.

И есть один нюанс. Включать ARB стоит только если вы запускаете DirectX 9.0c игру (или для более старого DirectX). Если у вас DX10-игра или новее, то трансляция HLSL в ARB не будет работать. Причина в том, что ARB-шейдеры - это максимум OpenGL 2 (а это уровень Direct3D 9).

Так значит, надо держать в уме, что DX9-игру лучше всего запускать в ARB-режиме, а DX10 - в GLSL? Ну, на самом деле нет. DX10 не работает в Wine в принципе, ни с ARB, ни с GLSL. DX10 работает в DXVK работает, а в WINED3D - нет. WINED3D поддерживает DX10 и 11 лишь в зачаточном состоянии.

Поэтому я на своей NVIDIA Fermi (на которой нет Vulkan) прописал ARB, чтобы играть исключительно в DX9-игры, и не играть в DX10-игры. А на Kepler (на которой есть Vulkan) я установил DXVK, чтобы играть в DX9, 10 и 11-игры.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру