iXit / wine-nine-standalone

Build Gallium Nine support on top of an existing WINE installation
GNU Lesser General Public License v2.1
272 stars 23 forks source link

Gallium nine with intel Crocus driver #103

Closed CTRL-ALT-DEL-92 closed 3 years ago

CTRL-ALT-DEL-92 commented 3 years ago

Dear Gallium nine developers,

Recently on the web site phoronix I read about a new mesa project called Crocus. It's a gallium3d driver for pre haswell intel processors. I compiled crocus and the other mesa driver as shown in the github page of the project, and everything went just fine. Using the commands MESA_LOADER_DRIVER_OVERRIDE=crocus glxgears and glxinfo the right output was shown. Long story short the driver works fine. Even if anything else works like it should with crocus, gallium nine through wine ninewinecfg.exe gui, doesn't seem to detect crocus as a valid gallium3d driver, in ninewinecfg the last section (creating a d3d9 device) isn't flagged like the first two and the message "no compatible gpu was found" appears. Is there anything I can do? Thanks in advance for your help and support. This is the phoronix article about crocus https://www.phoronix.com/scan.php?page=news_item&px=Crocus-For-Old-Intel-Gallium3D and this is the github page of the project https://gitlab.freedesktop.org/airlied/mesa/-/tree/crocus

axeldavy commented 3 years ago

I was going to say gallium nine has some minimum requirements in terms of gallium support that is probably not met yet by this driver, but then I checked the flags advertised from crocus source code, and it supports what we check...

Well maybe it crashes or something.

You can debug if your mesa build used -D b_ndebug=false

Here is what happens on a working install:

D3D_DEBUG=255 NINE_DEBUG=all wine ninewinecfg
esync: up and running.
002c:fixme:winediag:LdrInitializeThunk Wine TkG (staging) 6.4 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please don't report bugs about it on winehq.org and use https://github.com/Frogging-Family/wine-tkg-git/issues instead.
00d8:fixme:ntdll:EtwRegisterTraceGuidsW (0100778A, 0100A060, {485e7de8-0a80-11d8-ad15-505054503030}, 1, 0032FEA0, (null), (null), 0100A068): stub
00d8:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {485e7de8-0a80-11d8-ad15-505054503030}
00d8:fixme:ntdll:EtwRegisterTraceGuidsW (0100778A, 0100A080, {485e7de9-0a80-11d8-ad15-505054503030}, 1, 0032FEA0, (null), (null), 0100A088): stub
00d8:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {485e7de9-0a80-11d8-ad15-505054503030}
00d8:fixme:ntdll:EtwRegisterTraceGuidsW (0100778A, 0100A0A0, {485e7dea-0a80-11d8-ad15-505054503030}, 1, 0032FEA0, (null), (null), 0100A0A8): stub
00d8:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {485e7dea-0a80-11d8-ad15-505054503030}
00d8:fixme:ntdll:EtwRegisterTraceGuidsW (0100778A, 0100A0C0, {485e7deb-0a80-11d8-ad15-505054503030}, 1, 0032FEA0, (null), (null), 0100A0C8): stub
00d8:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {485e7deb-0a80-11d8-ad15-505054503030}
00d8:fixme:ntdll:EtwRegisterTraceGuidsW (0100778A, 0100A0E0, {485e7dec-0a80-11d8-ad15-505054503030}, 1, 0032FEA0, (null), (null), 0100A0E8): stub
00d8:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {485e7dec-0a80-11d8-ad15-505054503030}
00d8:fixme:ntdll:EtwRegisterTraceGuidsW (0100778A, 0100A100, {485e7ded-0a80-11d8-ad15-505054503030}, 1, 0032FEA0, (null), (null), 0100A108): stub
00d8:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {485e7ded-0a80-11d8-ad15-505054503030}
002c:fixme:ntdll:EtwRegisterTraceGuidsA (00E1379F, 00E51CF8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0072EC98, (null), (null), 00E51D00): stub
002c:fixme:ntdll:EtwRegisterTraceGuidsA (00E1379F, 00E51D18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0072EC98, (null), (null), 00E51D20): stub
002c:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 00E3CE28, 00000000, 00E51500) stub.
002c:fixme:ntdll:EtwEventRegister ({9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 00E13C41, 00E53258, 00E53180) stub.
002c:fixme:ntdll:EtwEventEnabled (deadbeef, 00DCB3C0): stub
002c:fixme:ntdll:EtwEventEnabled (deadbeef, 00DC0688): stub
002c:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
trace:d3d9nine:common_get_registry_string Getting string key 'd3d9' at 'HKCU\Software\Wine\DllOverrides'
trace:d3d9nine:common_get_registry_string Value is 'native'
trace:d3d9nine:is_symlink "/home/axel/.wine32nine/dosdevices/c:/windows/system32/d3d9.dll": 1
trace:d3d9nine:file_exist "/home/axel/.wine32nine/dosdevices/c:/windows/system32/d3d9.dll": 1 (0)
trace:d3d9nine:common_get_registry_string Getting string key 'ModulePath' at 'HKCU\Software\Wine\Direct3DNine'
trace:d3d9nine:common_get_registry_string Failed to query key 'ModulePath' at 'HKCU\Software\Wine\Direct3DNine'
trace:d3d9nine:open_d3dadapter Trying to load '/usr/lib32/d3d/d3dadapter9.so.1'
trace:d3d9nine:open_d3dadapter Loaded '/usr/lib32/d3d/d3dadapter9.so.1'
trace:d3d9nine:Direct3DCreate9Ex sdk_version 0, d3d9ex 0x32eb98.
trace:d3d9nine:common_get_registry_string Getting string key 'ModulePath' at 'HKCU\Software\Wine\Direct3DNine'
trace:d3d9nine:common_get_registry_string Failed to query key 'ModulePath' at 'HKCU\Software\Wine\Direct3DNine'
trace:d3d9nine:open_d3dadapter Trying to load '/usr/lib32/d3d/d3dadapter9.so.1'
trace:d3d9nine:open_d3dadapter Loaded '/usr/lib32/d3d/d3dadapter9.so.1'
trace:d3d9nine:present_has_d3dadapter d3dadapter9 version: 0.2
trace:d3d9nine:PRESENTCheckExtension PRESENT v1.0 found, v1.0 requested
trace:d3d9nine:backend_probe dpy=0x7da47540
trace:d3d9nine:dri3_probe DRI3 v1.0 found, v1.0 requested
trace:d3d9nine:backend_create dpy=0x7da47540 screen=0
trace:d3d9nine:dri3_probe DRI3 v1.0 found, v1.0 requested
trace:d3d9nine:backend_create Active backend: dri3
trace:d3d9nine:present_create_adapter9 Created ID3DAdapter9 with fd 18
Native Direct3D 9 v0.8.0.378-devel is active.
For more information visit https://github.com/iXit/wine-nine-standalone
trace:d3d9nine:d3dadapter9_Release 0x1ca570 decreasing refcount to 0.
trace:d3d9nine:backend_destroy dri_backend=0x1c80a0
CTRL-ALT-DEL-92 commented 3 years ago

Thanks for your kindness and fast response. I'm glad to hear that nine works on crocus, so the problem must be to my side, I'm gonna investigate about it as you suggested. Since you showed that nine is compatible with crocus I'll close this issue. Thanks again and I can't wait to use nine on my pre haswell laptop, I'm very curious to try your workaround for the address space problem affecting 32 bit games. Have a nice day!!!!

axeldavy commented 3 years ago

I haven't said it works, I just said in theory it should. There might be some driver issues preventing nine from working.

CTRL-ALT-DEL-92 commented 3 years ago

Oh I was mislead by this output you've showed me trace:d3d9nine:present_create_adapter9 Created ID3DAdapter9 with fd 18 Native Direct3D 9 v0.8.0.378-devel is active. This driver is still experimental and it was not merged into master mesa. Probably it isn't complete yet. Probably it's better to wait until the driver is fully mature and merged to Master mesa.

axeldavy commented 3 years ago

My log was with an AMD RX480 card to show what is supposed to happen with a working setup

CTRL-ALT-DEL-92 commented 3 years ago

Here is my output :

MESA_LOADER_DRIVER_OVERRIDE=crocus wine ninewinecfg.exe 002c:fixme:winediag:LdrInitializeThunk wine-staging 6.4 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0060:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0060:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0070:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0070:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0068:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0068:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00fc:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00fc:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. nine:drm_create_adapter Unable to load requested driver. err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=13) err:d3d9nine:d3dadapter9_new No available native adapters in system.

axeldavy commented 3 years ago

This fails before doing anything. Note MESA_LOADER_DRIVER_OVERRIDE has no effect on gallium nine.

Probably crocus doesn't advertise support for your card and expects the env var to do the job.

EDIT: actually MESA_LOADER_DRIVER_OVERRIDE should work just fine. Maybe you need to experiment what is going on there. Did you build nine and crocus together ? Maybe 32bits/64bits issue ?

CTRL-ALT-DEL-92 commented 3 years ago

In my home folder I created the .drirc file in there I set crocus as the primary driver.

Here is the output of wine ninewinecfg.exe after setting crocus as the primary driver:

wine ninewinecfg.exe 002c:fixme:winediag:LdrInitializeThunk wine-staging 6.4 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00f4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00f4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. nine:drm_create_adapter Unable to load requested driver. err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=13) err:d3d9nine:d3dadapter9_new No available native adapters in system.

My cpu is Topology: Dual Core model: Intel Core i7 M 640 bits: 64 type: MT MCP arch: Nehalem rev: 5 L2 cache: 4096 KiB flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 22342 Speed: 3192 MHz min/max: 1199/2800 MHz Core speeds (MHz): 1: 3192 2: 3192 3: 3214 4: 3327

the igpu is Device-1: Intel Core Processor Integrated Graphics vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:0046 Display: x11 server: X.Org 1.20.9 driver: intel compositor: compton resolution: 1440x900~60Hz OpenGL: renderer: Mesa DRI Intel HD Graphics (ILK) v: 2.1 Mesa 21.1.0-devel direct render: Yes

dhewg commented 3 years ago

If you have your crocus enabled mesa installed in a different path you may need to set D3D_MODULE_PATH like D3D_MODULE_PATH=$MESA/lib/x86_64-linux-gnu/d3d:$MESA/lib/i386-linux-gnu/d3d

Enable debug spew with D3D_DEBUG=255 wine ninewinecfg and pay attention to the open_d3dadapter lines, it needs to load d3dadapter9.so.1 from your crocus-mesa.

CTRL-ALT-DEL-92 commented 3 years ago

here it is the new output with D3D_DEBUG=255 :

D3D_DEBUG=255 wine ninewinecfg.exe 002c:fixme:winediag:LdrInitializeThunk wine-staging 6.4 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00f4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00f4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. trace:d3d9nine:common_get_registry_string Getting string key 'd3d9' at 'HKCU\Software\Wine\DllOverrides' trace:d3d9nine:common_get_registry_string Value is 'native' trace:d3d9nine:is_symlink "/home/io/.wine/dosdevices/c:/windows/syswow64/d3d9.dll": 1 trace:d3d9nine:file_exist "/home/io/.wine/dosdevices/c:/windows/syswow64/d3d9.dll": 1 (0) trace:d3d9nine:common_get_registry_string Getting string key 'ModulePath' at 'HKCU\Software\Wine\Direct3DNine' trace:d3d9nine:common_get_registry_string Failed to open path 'HKCU\Software\Wine\Direct3DNine' trace:d3d9nine:open_d3dadapter Trying to load '/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1' trace:d3d9nine:open_d3dadapter Failed to load '/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1': /usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1: classe ELF errata: ELFCLASS64 trace:d3d9nine:open_d3dadapter Trying to load '/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1' trace:d3d9nine:open_d3dadapter Loaded '/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1' trace:d3d9nine:Direct3DCreate9Ex sdk_version 0, d3d9ex 0x34ebc8. trace:d3d9nine:common_get_registry_string Getting string key 'ModulePath' at 'HKCU\Software\Wine\Direct3DNine' trace:d3d9nine:common_get_registry_string Failed to open path 'HKCU\Software\Wine\Direct3DNine' trace:d3d9nine:open_d3dadapter Trying to load '/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1' trace:d3d9nine:open_d3dadapter Failed to load '/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1': /usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1: classe ELF errata: ELFCLASS64 trace:d3d9nine:open_d3dadapter Trying to load '/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1' trace:d3d9nine:open_d3dadapter Loaded '/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1' trace:d3d9nine:present_has_d3dadapter d3dadapter9 version: 0.2 trace:d3d9nine:PRESENTCheckExtension PRESENT v1.0 found, v1.0 requested trace:d3d9nine:backend_probe dpy=0x7d8d0390 trace:d3d9nine:dri3_probe DRI3 v1.0 found, v1.0 requested trace:d3d9nine:backend_create dpy=0x7d8d0390 screen=0 trace:d3d9nine:dri3_probe DRI3 v1.0 found, v1.0 requested trace:d3d9nine:backend_create Active backend: dri3 nine:drm_create_adapter Unable to load requested driver. err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=13) trace:d3d9nine:backend_destroy dri_backend=0x187388 err:d3d9nine:d3dadapter9_new No available native adapters in system. trace:d3d9nine:d3dadapter9_Release 0x188af8 decreasing refcount to 0.

dhewg commented 3 years ago

Was MESA_LOADER_DRIVER_OVERRIDE=crocus set? Is your mesa with crocus installed to /usr or is that in another location?

CTRL-ALT-DEL-92 commented 3 years ago

In the home .drirc file crocus was set system wide, so to answer the first question yes.

crocus_dri.so is installed in /usr/local/lib/x86_64-linux-gnu/dri/ . Thanks for your support

dhewg commented 3 years ago

Sounds like you need D3D_MODULE_PATH=/usr/local/lib/x86_64-linux-gnu/d3d:/usr/local/lib/i386-linux-gnu/d3d

CTRL-ALT-DEL-92 commented 3 years ago

With MESA_LOADER_DRIVER_OVERRIDE=crocus D3D_MODULE_PATH=/usr/local/lib/x86_64-linux-gnu/d3d:/usr/local/lib/i386-linux-gnu/d3d wine ninewinecfg.exe I get this output: 002c:fixme:winediag:LdrInitializeThunk wine-staging 6.4 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00c4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00c4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0108:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0108:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. err:d3d9nine:common_load_d3dadapter Failed to load d3dadapter9.so.1 set by D3D_MODULE_PATH (/usr/local/lib/x86_64-linux-gnu/d3d:/usr/local/lib/i386-linux-gnu/d3d) Gallium nine fails to load the d3d adapter

With D3D_MODULE_PATH=/usr/local/lib/x86_64-linux-gnu/d3d:/usr/lib/i386-linux-gnu/d3d wine ninewinecfg.exe I get this output: 002c:fixme:winediag:LdrInitializeThunk wine-staging 6.4 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00f4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. 00f4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1. nine:drm_create_adapter Unable to load requested driver. err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=13) err:d3d9nine:d3dadapter9_new No available native adapters in system.

Wine nine gui states that libd3dadapter9 is loaded and so the wine dll, but no device is created

dhewg commented 3 years ago

Yeah well, I don't know how you build mesa, the point is:

CTRL-ALT-DEL-92 commented 3 years ago

Ok I'm going to rebuild mesa crocus as soon as I can and then I'll give some new updates. Thanks for your quick support.

dhewg commented 3 years ago

Sure, here's how I build an additional mesa for my AMD gpu. But note that some parts are distro specific (Debian in my case), so it may be a bit tricky. You also need the build dependencies for 32bit mesa of course.

64bit: PKG_CONFIG=x86_64-linux-gnu-pkg-config CFLAGS="-march=native" CXXFLAGS="-march=native" meson --native-file llvm11.ini ~/src/mesa -Dbuildtype=release --prefix /opt/andre/mesa -Ddri-drivers= -Dgallium-drivers=radeonsi,swrast -Dvulkan-drivers=amd -Dgallium-nine=true -Dosmesa=gallium

32bit: meson ~/src/mesa -Dbuildtype=release --cross-file gcc32 --prefix /opt/andre/mesa -Dlibdir=lib/i386-linux-gnu -Ddri-drivers= -Dgallium-drivers=radeonsi,swrast -Dvulkan-drivers=amd -Dgallium-nine=true -Dosmesa=gallium

With ~/.local/share/meson/native/llvm11.ini containing

[binaries]
llvm-config = '/usr/bin/llvm-config-11'

and ~/.local/share/meson/cross/gcc32

[binaries]
c = 'i686-linux-gnu-gcc'
cpp = 'i686-linux-gnu-g++'
ar = 'i686-linux-gnu-ar'
strip = 'i686-linux-gnu-strip'
pkgconfig = 'i686-linux-gnu-pkg-config'
llvm-config = '/usr/bin/llvm-config-11'

[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'

To use that for GL, Vulkan and Nine several envvars are required:

MESA=/opt/andre/mesa

export LD_LIBRARY_PATH=$MESA/lib/x86_64-linux-gnu:$MESA/lib/i386-linux-gnu:$LD_LIBRARY_PATH
export LIBGL_DRIVERS_PATH=$MESA/lib/x86_64-linux-gnu/dri:$MESA/lib/i386-linux-gnu/dri
export VK_ICD_FILENAMES=$MESA/share/vulkan/icd.d/radeon_icd.x86_64.json:$MESA/share/vulkan/icd.d/radeon_icd.i686.json
export D3D_MODULE_PATH=$MESA/lib/x86_64-linux-gnu/d3d:$MESA/lib/i386-linux-gnu/d3d
CTRL-ALT-DEL-92 commented 3 years ago

Hi I tried to recompile mesa no problems for the 64 bit build but I had many problems with the 32 bit build. When I give the command --cross-file gcc32 this message shows up ERROR: Cannot find specified cross file: gcc32

axeldavy commented 3 years ago

Tried to put the gcc32 file into the same dir as you are compiling ?

As for me I pass --cross-file llvm32.native, with llvm32.native in the same directory and containing

[binaries]
c = '/usr/bin/gcc'
cpp = '/usr/bin/g++'
ar = '/usr/bin/gcc-ar'
strip = '/usr/bin/strip'
pkgconfig = '/usr/bin/i686-pc-linux-gnu-pkg-config'
llvm-config = '/usr/bin/llvm-config32'

[built-in options]
c_args = ['-m32' , '-march=native', '-fstack-protector', '-Og']
c_link_args = ['-m32', '-march=native', '-fstack-protector', '-Og']
cpp_args = ['-m32', '-march=native', '-fstack-protector']
cpp_link_args = ['-m32', '-march=native', '-fstack-protector']

[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'

Of course as I use archlinux, the paths used must be adapted for another distro

Venemo commented 3 years ago

@CTRL-ALT-DEL-92 Here is a summary of how I build mesa, both for 64 and 32-bit. There is some more info that you don't need, but the same method should work for you if you change the -Dgallium-drivers to include crocus.

CTRL-ALT-DEL-92 commented 3 years ago

Hi all, I've followed your instructions for building mesa, but nine it's still not able to create a d3d9 device the same error as before are shown...

sjnewbury commented 3 years ago

I have it working with here on my old IVB laptop, it's absolutely fantastic. I had nine working previously with Nouveau on this laptop some years ago, but this is much faster (lack of reclocking GDDR5 being a slight issue!). I'm running a very well optimized Gentoo install, and can for certain it's already faster than D3D9 on Windows on this machine.

axeldavy commented 3 years ago

Any artifacts or issues ?

CTRL-ALT-DEL-92 commented 3 years ago

Hi all good news after the last update by sjnewbury I decided to test gallium nine on crocus myself. As usual I failed in compiling mesa from source so I gave up and I used the old trusty oibaf ppa (good bless that ppa) and now I can confirm it, Gallium nine works on my old laptop with an Ironlake IGPU. Tomorrow afternoon I'll put to test crocus and gallium with the first stalker game.

dhewg commented 3 years ago

Nice, thanks for the feedback. Closing this then, feel free to follow up with further issues!

sjnewbury commented 3 years ago

@axeldavy: I'm testing with Pinball Arcade.

Initial impressions were impressive as I mentioned, 1920x1080 maintains 60hz without observed slow-downs.

Ball reflections aren't working.

Something is strange with anti-aliasing option enabled, seems to increase aliasing?!? I'll need to test this more.

GPU lockup: [811086.410086] i915 0000:00:02.0: [drm] GPU HANG: ecode 7:1:00077fff, in PinballArcade.e [56723] [811086.411097] i915 0000:00:02.0: [drm] Resetting rcs0 for stopped heartbeat on rcs0 [811086.411101] i915 0000:00:02.0: [drm] PinballArcade.e[56723] context reset due to GPU hang

Game froze, wayland compositor (sway) kept running fine, had to kill the process.