Bug 111467 - WOLF RPG Editor + Gallium Nine Standalone: Rendering issue when using Iris driver
Summary: WOLF RPG Editor + Gallium Nine Standalone: Rendering issue when using Iris dr...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/Iris (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Danylo
QA Contact: Intel 3D Bugs Mailing List
URL: http://www.silversecond.com/WolfRPGEd...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-22 14:09 UTC by Masanori Kakura
Modified: 2019-09-12 14:21 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Actual rendering (Gallium Nine Standalone) (186.54 KB, image/png)
2019-08-22 14:09 UTC, Masanori Kakura
Details
Expected rendering (wined3d) (80.23 KB, image/png)
2019-08-22 14:10 UTC, Masanori Kakura
Details
corrupted_image_Denys (168.50 KB, image/png)
2019-08-23 15:12 UTC, Denis
Details
apitrace.trace (8.77 MB, application/octet-stream)
2019-08-29 16:08 UTC, Denis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Masanori Kakura 2019-08-22 14:09:08 UTC
Created attachment 145134 [details]
Actual rendering (Gallium Nine Standalone)

When Iris driver is used, rendering is incorrect. Interestingly, the rendering is the same as D9VK: https://github.com/Joshua-Ashton/d9vk/issues/190

Steps to reproduce:
 1. Download WOLF RPG Editor (e.g. "WolfRPGEditor_210.zip") from http://www.silversecond.com/WolfRPGEditor/Download.html [Note: Version 2.22 and newer versions support D3D11 and setting "Old_DirectX_Use=1" in Game.ini is needed to use D3D9]
 2. Unpack the file
 3. Run "winetricks galliumnine"
 4. Set wined3d renderer to "gdi" [Note: This is a workaround for "black screen" issue in Gallium Nine, e.g. 'wine reg add "HKCU\Software\Wine\Direct3D" /v "Renderer" /t REG_SZ /d "gdi"']
 5. Run "Game.exe" with "MESA_LOADER_DRIVER_OVERRIDE=iris"

I used to use Radeon HD 4200 before and WOLF RPG Editor was working with Gallium Nine about 2.5 years ago (Modified version of Wine was used, not current "stand-alone" releases). Since i965 driver isn't Gallium based, I was not able to use Gallium Nine on my current machine.

System information:
 * HD 510 (Skylake)
 * Ubuntu 19.04 + libdrm 2.4.99 + Mesa 19.2.0-rc1 + Gallium Nine Standalone 0.4 + Wine 4.0.1
Comment 1 Masanori Kakura 2019-08-22 14:10:50 UTC
Created attachment 145135 [details]
Expected rendering (wined3d)
Comment 2 Denis 2019-08-23 10:32:09 UTC
Hi, thanks for the report.
Could you please clarify this moment?
> 4. Set wined3d renderer to "gdi" [Note: This is a workaround for "black screen" issue in Gallium Nine, e.g. 'wine reg add "HKCU\Software\Wine\Direct3D" /v "Renderer" /t REG_SZ /d "gdi"']

I added this command:

[den@den-pc WOLF_RPG_Editor2]$ wine reg add "HKCU\Software\Wine\Direct3D" /v "Renderer" /t REG_SZ /d "gdi"
The operation completed successfully

but still getting black screen, did I miss something?
Full log from game start below:


[den@den-pc WOLF_RPG_Editor2]$ wine '/home/den/Downloads/WolfRPGEditor_224/WOLF_RPG_Editor2/Game.exe' 
0112:err:module:load_so_dll failed to load .so lib "/usr/bin/../lib32/wine/l3codeca.acm.so": libmpg123.so.0: cannot open shared object file: No such file or directory
0112:fixme:win:RegisterTouchWindow (0xe0054 00000000): stub
0112:fixme:win:WINNLSEnableIME hwnd 0xe0054 enable 0: stub!
0112:fixme:dinput:IDirectInputDevice2WImpl_CreateEffect (0x16bc08)->({13541c23-8e33-11d0-9ad0-00a0c9a06e35},0x339698,0xa74bc4,(nil)): stub!
0112:fixme:dinput:IDirectInputDevice2WImpl_CreateEffect not available in the generic implementation
0112:fixme:dinput:IDirectInputDevice2WImpl_CreateEffect (0x16bc08)->({13541c20-8e33-11d0-9ad0-00a0c9a06e35},0x339698,0xa74ba4,(nil)): stub!
0112:fixme:dinput:IDirectInputDevice2WImpl_CreateEffect not available in the generic implementation
0112:err:winediag:wined3d_dll_init Disabling 3D support.
0112:fixme:ddraw:ddraw7_WaitForVerticalBlank iface 001A0BA0, flags 0x1, event 00000000 stub!
0112:fixme:msctf:ThreadMgr_ActivateEx Unimplemented flags 0x4
0112:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.
0112:fixme:dmsynth:IDirectMusicSynth8Impl_SetMasterClock (001CC2A8)->(001CC170): stub
0112:fixme:dmsynth:IDirectMusicSynthSinkImpl_SetMasterClock (001CB668)->(001CC170): stub
0112:fixme:dmsynth:IDirectMusicSynth8Impl_Open (001CC2A8)->(0033BCF8): stub
0112:fixme:dmusic:synth_dmport_Activate (001CBF98/001CBF98)->(1): semi-stub
0112:err:dmloader:IDirectMusicLoaderImpl_SetObject : could not attach stream to file L"C:\\windows\\system32\\drivers\\gm.dls", make sure it exists
0112:fixme:dmloader:IDirectMusicLoaderImpl_GetObject : unknown/unsupported way of loading
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile


upd - after adding that row in "reg" I can't start the game on DX11 now (also added "libmpg123" this package, still - didn't help)
Comment 3 Masanori Kakura 2019-08-23 14:29:44 UTC
Hi, Denis.

It seems that Gallium Nine is not active.

You can check its state and configure it: 'env MESA_LOADER_DRIVER_OVERRIDE=iris wine ninewinecfg'

'winetricks galliumnine' installs Gallium Nine Standalone and enables it. If winetricks is not installed yet, you can download it from https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

I can see the following green text when I run Game.exe or ninewinecfg:
 Native Direct3D 9 v0.4.0.294-release is active.
 For more information visit https://github.com/iXit/wine-nine-standalone
Comment 4 Denis 2019-08-23 15:08:06 UTC
aha. You missed 1 step (at least, I think so)

Launched "wine config.exe" and put a radio-button to "3D ... something"

Then I got these logs during game launching.

nine:drm_create_adapter Unable to load requested driver.
err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=170)
nine:drm_create_adapter Unable to load requested driver.
err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=170)
err:d3d9nine:d3dadapter9_new No available native adapters in system.


So at least, it points to drivers issue. Strange, I built x32 mesa with gallium-nine support and exported it.
Ok, will try to sort it out and reproduce again
Comment 5 Denis 2019-08-23 15:12:10 UTC
Created attachment 145146 [details]
corrupted_image_Denys

upd - confirming, reproduced this issue on system mesa (strange why I have issues with exports...)
Attached my screenshot. Will try to investigate this issue closer. Thanks again
Comment 6 Masanori Kakura 2019-08-24 01:17:33 UTC
> aha. You missed 1 step (at least, I think so)
> Launched "wine config.exe" and put a radio-button to "3D ... something"
The "3D ... something" ("3D mode" in Japanese) means GPU rendering mode.
This is the default mode (no need to set manually), however,
when Game.exe fails to initialize D3D,
it falls back to software rendering mode and writes
the setting ("SoftModeFlag=1") to Game.ini.

> upd - confirming, reproduced this issue on system mesa (strange why I have
> issues with exports...)
> Attached my screenshot. Will try to investigate this issue closer. Thanks again
I saw the rendering result when I tried it with Mesa 19.1, not 19.2-rc1.
I guess the change comes from fixing https://bugs.freedesktop.org/show_bug.cgi?id=110657
Comment 7 Denis 2019-08-28 14:59:56 UTC
hi again.
>I saw the rendering result when I tried it with Mesa 19.1
hmm, are you sure in this?
I sorted out my issue with exports, and was able to test these commits:

commit cf652205cff25dbb0d8c0f642f8a6d097e51a010 (HEAD)
iris: Add gitlab-ci build testing

Mesa 19.1.1 (git-22eddd8b9d)

First one (one of the earliest when iris was implemented) reports about game crash, second one - provides rendering issue same with https://bugs.freedesktop.org/attachment.cgi?id=145146

So at least now, I can't say that it is regression.

Also I am sure I am using gallium-nine, I see 
>Native Direct3D 9 v0.4.0.294-release is active.
>For more information visit https://github.com/iXit/wine-nine-standalone

during game loading
Comment 8 Denis 2019-08-28 15:06:09 UTC
upd - made downgrade for system mesa to 19.1.0 (I have manjaro OS) and see the same (corrupted) result (and minor observation - some-why after closing application wineserver doesn't die. So next game launch simply shows black screen. Solution is to kill wineserver manually)
Comment 9 Masanori Kakura 2019-08-29 14:04:13 UTC
(In reply to Denis from comment #7)
> >I saw the rendering result when I tried it with Mesa 19.1
> hmm, are you sure in this?
Yes, I'm sure.
 1. Your screenshot shows the rendering result
    with Mesa 19.1 on my machine
 2. My rendering result with Mesa 19.2-rc1 is
    https://bugs.freedesktop.org/attachment.cgi?id=145134
    (closer to expected rendering result)

I think there were multiple rendering issues with "Iris + Nine" and
one of them (https://bugs.freedesktop.org/show_bug.cgi?id=110657) was
fixed by b4c54894bba085966c52cb515bd72927e4ec4939.
So we need to use Mesa 19.2-rc or Git master to debug this (111467).

If both Mesa 19.1 and 19.2-rc are already installed on your system, try using
envar LIBGL_DRIVERS_PATH (for Iris) and D3D_MODULE_PATH (for Nine) to make
sure to use Mesa 19.2-rc.
Also note that you can see known (hard-coded) d3dadapter9 search paths:
https://github.com/iXit/wine-nine-standalone/blob/master/common/library.c

Unfortunately Game.exe doesn't exit with default wineprefix.
"winetricks gmdls dmsynth dmusic" works for me as a workaround, or
run "wineserver -k" manually.
Comment 10 Denis 2019-08-29 15:38:45 UTC
>If both Mesa 19.1 and 19.2-rc are already installed on your system, try using
>envar LIBGL_DRIVERS_PATH (for Iris) and D3D_MODULE_PATH (for Nine) to make
>sure to use Mesa 19.2-rc.

during testing I am using 3 exports (plus iris, for sure):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/den/mesa32/mesa-git-23.08/lib/
export LIBGL_DRIVERS_PATH=/home/den/mesa32/mesa-git-23.08/lib/dri/
export D3D_MODULE_PATH=/home/den/mesa32/mesa-git-23.08/lib/d3d

>Also note that you can see known (hard-coded) d3dadapter9 search paths:
>https://github.com/iXit/wine-nine-standalone/blob/master/common/library.c

Before running the game, I checked "wine ninewinecfg", to be sure, that d3d library was taken from the right place - in all cases it was taken exactly from the export.

>I think there were multiple rendering issues with "Iris + Nine" and
>one of them (https://bugs.freedesktop.org/show_bug.cgi?id=110657) was
>fixed by b4c54894bba085966c52cb515bd72927e4ec4939.

Hmm, could make sense, if will be taken into account the fact that rendering results are different.

Ok, let me check this one more time
Comment 11 Denis 2019-08-29 16:08:00 UTC
Created attachment 145210 [details]
apitrace.trace

you was correct, Masanori Kakura. There are 2 issues, and current one, reported by you, starts exactly after Danylo's commit.

I made an apitrace for it (attached), also will speak with Danylo on monday. Thanks
Comment 12 Danylo 2019-09-04 14:54:03 UTC
Thanks for the report.

I've made a merge request https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1872 which fixes this issue.
Comment 13 Masanori Kakura 2019-09-05 14:13:08 UTC
Thank you, Denis and Danylo!
It works for me (Mesa 19.2.0-rc2 + https://gitlab.freedesktop.org/mesa/mesa/commit/ea2e28750e4f0606832398d0e8b7eb6c47e0e421.diff).
Comment 14 Masanori Kakura 2019-09-12 14:21:08 UTC
Fixed by 175c32e9bdc8b7b9c43f605cb59cd82415075f67.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.