LINUX.ORG.RU

Divinity Original Sin Enhanced Edition @ Mesa r600g

 ,


20

4

Я таки заставил эту игру работать 😊

В процессе была куча сегфолтов и адовые артефакты.

По сути проблемы всего три (конкретно для r600g, в целом для месы – 2):

  1. Контекст OpenGL 4.2. Драйвер r600g рапортует версию 3.3, а движок игры, в свою очередь, работает по принципу segfault driven error handling. Решается просто:
    MESA_GL_VERSION_OVERRIDE=4.2 
    MESA_GLSL_VERSION_OVERRIDE=420
  2. Невалидные шейдеры. Тут сразу:
    • Во-первых, разрабы используют расширение ARB_shading_language_include, которое не поддерживается ничем кроме невидиевской проприетарщины. Но во имя амдшной проприетарщины они запилили в движок fallback режим, в котором это расширение реализуется прямо в движке на коленке, однако включается этот fallback режим (немного) через жопу – они (только) проверяют возвращаемое значение функции glXGetProcAddressARB на nullptr. А glXGetProcAddressARB не обязан возвращать nullptr, кроме адреса надо смотреть еще в список расширений, чего они не делают, а месовская реализация никогда не возвращает nullptr -> segfault driven error handling. Чинится этот баг подстановкой костыля в LD_PRELOAD.
    • Во-вторых, в шейдерах постобработки SMAA/FXAA у них где-то в дебрях кода обложенное ifdef'ами лежит включение очередного расширения, что, блджад, не правильно. После обнаружения этой фигни месовский GLSL компилятор совершенно справедливо прерывает компиляцию, а так как ребята не умеют в обработку ошибок — см. выше. Этот баг обходится с помощью месовского механизма подмены шейдеров в рантайме и костыля-решейпера их кода шейдеров. файла drirc, в который нужно добавить
      <application name='Divinity Original Sin Enhanced Edition' executable='EoCApp'>
          <option name='allow_glsl_extension_directive_midshader' value='true' />
      </application>
  3. Графические артефакты. У них в движке (насколько я понял) есть две принципиально разные ветки кода/рендеринга, которые разделяются по (внимание!) строке в GL_VENDOR: если в этой строке что угодно кроме "ATI Technologies Inc.", то активируется невидиевская ветвь, что на месе приводит к аду, если же доставить в LD_PRELOAD еще один костыль с этой строкой, то рендеринг становится мягким и шелковистым.

TL;DR: Gentoo, дефолтные кеды, ШГ, панелька с автоскрытием.

>>> Просмотр (1600x900, 1682 Kb)

★★★★★

Проверено: JB ()
Последнее исправление: DeadEye (всего исправлений: 6)

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

Вообще-то порт таки есть и я прошёл её. NVidia, естественно.

Evgueni ★★★★★
()

И запускай не под Кедами, скорости добавишь ;)

kedr
()

Эх, давно не видел таких постов, Уважел Спасибо

enep ★★★★★
()

Прошел за что-то около 90 часов в тактическом режиме, на geforce 980. Финал переделали, но он всё равно показался странным и не сложным.

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

Во, так заработало. А если просто переменную окружения указать, то не помогает.

Кстати, очень даже неплохо работает, включил счетчик кадров - 55-60 фпс, больше только в играх от Valve. Я ожидал слайдшоу 15-20 фпс как в остальных портах.

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

Рад за тебя :)

Кстати, очень даже неплохо работает, включил счетчик кадров - 55-60 фпс, больше только в играх от Valve. Я ожидал слайдшоу 15-20 фпс как в остальных портах.

Через костыль на питоне можно попробовать еще немного увеличить FPS. Яхз получится-ли, но попробовать можно) Если не лень – затести, если разница будет заметна – перепилю решейпер на сишечке и суну в LD_PRELOAD.

Stil ★★★★★
() автор топика

Вот это мощно! Хоть я и не АМД-юзер, но ТСу респект громаднейший!

TOPT
()
Ответ на: комментарий от Stil

Пробовал и так и эдак, разница на уровне погрешности. Но у меня медленный CPU (AMD Phenom II), одно ядро все время загружено на 100%. Наверное по этому дальше не пускает.

Khnazile ★★★★★
()

Меса-гит, ллвм-свн, игра последняя доступная на торрентах версии 2.2.0.4(2.0.119.430). видео 7950.

Novell-ch

Пробовал запускать как у тебя с

allow_glsl_extension_directive_midshader=true
glsl_zero_init=true
Падает до загрузки меню.

С пунктом 2 из стартового поста и allow_glsl_extension_directive_midshader=true игра запускается и работает(побегал пару минут).

Behem0th ★★★★★
()

Столько усилий, и все ради того, чтобы с артефактами через задний проход запустить *нативный* код? Жесть.

Deleted
()
Ответ на: комментарий от Thero

Нет смысла. По русскому гуглу тред и так в топе. Если писать, то на какой-нибудь Фороникс или реддит.

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

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

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

Что интересно, в вайне оно также жгет напалмом:

What works
Was using fedora 21 
1. first you need to be sure that you have GLX enabled in xorg, glxinfo should not trow errors, if yes install nvidia drivers
then
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
cp /etc/X11/nvidia-xorg.conf /etc/X11/xorg.conf
2. setsebool -P wine_mmap_zero_ignore=1 
3.  add to /etc/sysctl.conf this:
vm.mmap_min_addr = 0
reboot
4. install many things:
sudo yum install cabextract 
winetricks corefonts msxml3 d3dx9 vcrun2008
winetricks --force d3dx9_43 d3dcompiler_43
winetricks dotnet35 
4.  I copied GOG version of game from windows and I am running it this way
cd "/home/user/wine/original_sin/drive_c/GOG Games/Divinity - Original Sin/Shipping"
export WINEARCH=win32 
export WINEPREFIX=~/wine/original_sin 
wine32 EoCApp.exe
 5. turn off bloom in graphic settings, all other could be enabled, on nvidia 960 it works on high
steemandlinux ★★★★★
()
Ответ на: комментарий от Stil

слушай, я понял, ты ненавидишь nvidia и любишь секс с ati. я только не понял, что nvidia сделали не так. у них какое-то проприетарное расширение OpenGL? если УМВР, то что они не реализовали? короче, логику не понял.

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

Ты всё неправильно понял :)

любишь секс с ati

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

я только не понял, что nvidia сделали не так. у них какое-то проприетарное расширение OpenGL? если УМВР, то что они не реализовали? короче, логику не понял.

Нет, то что они запилили ARB_shading_language_include — это (наверное) хорошо. Плохо, что они кладут МПХ на спецификации, которые реализуют. См. пункт 2.2 из ОП. Включение расширений в коде шейдеров должно быть в начале файла, сразу после версии GLSL, но в невидии на это забили, а так как невидия доминирует на рынке это порождает толпы горе-УМВР-быдлокодеров, которые так же не читают стандарты. А это заставляет всех остальных учитывать дефолтное поведение невидии, вплоть до того, что в месе реализован встроенный костыль для совместимости с этим БАГОМ в драйверах невидии.

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

*нативный* код

Быдлокод - кроссплатформенная проблема.

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

Нуво у меня только на дохлом ноуте. Только на кактусе играл.

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

Я бы мог на нуво, только одолжил свой ноут. Через пару недель буду иметь дома. Тогда можно будет затестить.

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

Подтверждаю. Отлично запустилось и на ATI, и на intel. Никаких артефактов и слайд-шоу. Наконец я смогу поиграть в эту игру. Спасибо тебе большое!

Medar ★★★★★
()

жертвы MSDN.

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

ахаха дак это рюсске портише? тогда чего странного??? это же рабы 100 летних криво переведенных мануалов. те же индусы. с тем лишь отличием, что некоторые могут в математику, но так же не могут в технологии.

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

Тут отличная ролевая составляющая, неплохой сюжет, пространство для отыгрыша, крафт и графон. На высокой сложности бои очень даже.

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

тот неловкий момент, когда ты нихера не понял. и сам себя спалил на этом.

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

графон не нужен.
крафт признак скудоумия.

все остальное спорно.
про отыгрыш (а ролевая составляющая это что тогда?) поржал, не бывает на компе отыгрыша, если ты только не настолько отчаянный, что вбиваешь себе в голову иллюзии как отыгрываешь чего-то там против ИИ. Потом некоторые особо упоротые из подобных персонажей пишут солюшены от первого лица «как я отыгрывал роль».
Хочешь отыгрыша - вэлкам за стол. Или в самодеятельный театр.

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

ещё один раунд ремейка игры нетскейп против майкрософт.. увы..

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

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

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

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

Thero ★★★★★
()

Увидел DOS в заголовке окна и приподнял невидимые очки, ты не пугай так больше.

SjZ ★★★★★
()

Однако... Только сдаётся мне квест «Запусти Divinity Original Sin на ATI» будет поинтересней, чем сама игра.

WARNING ★★★★
()

«Два чая, этому господину!»(с)

pol01
()
Ответ на: комментарий от Medar

На высокой сложности бои очень даже.

Лучше чем в первом издании? Там чары сильно перекачивались и игра становилась все более изи.

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

пнятненько, ну экономически оно вообще никак не оправдано. надеюсь во второй части получим настоящую кроссплатформу -_-

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

Однако... Только сдаётся мне квест «Запусти Divinity Original Sin на нормальном OpenGL» будет поинтересней, чем сама игра.

починил

Novell-ch ★★★★★
()
Ответ на: комментарий от WARNING

Просто видимо некоторым в коробку с амд положили новояз и двоемыслие, вроде «сегфолтися через раз, а не каждый раз == ВСЁ РАБОТАЕТ» и они того же ожидают ото всех. Впрочем, конкретно с амд это не связано.

nvidia
()
Ответ на: комментарий от WARNING

Он теюе об этом:

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

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