This worked for me on Arch:
cd ~/.config/itch/apps/crosscode
./CrossCode --disable-gpu
Worth noting that this flag, as self described, disables GPU acceleration. Do make sure you’re still getting 60fps, as the game slows down at lower framerates which will mess with intended gameplay.
Out of curiosity, what’s the output of glxinfo | grep 'OpenGL.*string'
on your system? [on arch, glxinfo is in the mesa-demos
package, if you need to install it]
If this is of any interest, here’s the output of glxinfo on my machine:
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon R7 300 Series (PITCAIRN, DRM 3.44.0, 5.16.14-arch1-1, LLVM 13.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.7
OpenGL core profile shading language version string: 4.60
OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.3.7
OpenGL shading language version string: 4.60
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.3.7
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Disabling the GPU acceleration does work but my (not so good i guess) CPU can’t keep up and it’s unplayable.
Also, I installed NWJS 0.62.0 and it didn’t work any better (same behavior, crash short after exec).
Maybe worth noting that I’m running XWayland? I don’t know if that’s truly related to the error message from NWJS.
OK now pacman -Qi mesa-git | grep Version; ~/.config/itch/apps/crosscode/CrossCode --version
and still no luck :(
Version : 22.1.0_devel.151101.2f9976debc5.8bc02d9b7565c5f9961ae3bb7f058d35-1
nwjs 71.0.3578.98
Does it means that the mesa-radeon
package provided by mesa
doesn’t behave the same as the intel version (yet)?
Oh, I just realised you’re using a Pitcairn GPU, which means you’re likely on the older radeon driver rather than the newer amdgpu driver. Can you try with the amdgpu driver?
Instructions to check and switch are available here: https://wiki.archlinux.org/title/AMDGPU#Enable_Southern_Islands_(SI)and_Sea_Islands(CIK)_support
Pitcairn is Southern Islands.
I don’t have time right now but I’ll report here as soon as I try the amdgpu
driver, and hopefully it will confirm that older drivers are not supported for Pitcairn.
However, I guess nothing can be done on the CrossCode side about this as it is kernel space stuff? Maybe mesa could? Or should we at last get rid of the older drivers altogether?
Today I got time to check about this.
Apparently, I already were using the amdgpu driver (as per the output of dmesg | egrep 'amdgpu|radeon'
below) and I tried again with both the nw version from crosscode and from nwjs.io and nothing changed.
lspci -k
gave the same output as the one in the archwiki because I have the exact same GPU (driver in use is amdgpu, and both radeon and amdgpu are loaded).
I haven’t tested with the radeon driver yet, but it’s pretty straightforward to do so if you think it’s worth it (I don’t want to reboot right now).
Ok, so maybe we could report a bug to either nwjs or chromium if we could narrow down the issue to something less specific to CrossCode and more about GPU acceleration on linux?
I don’t think it’s a great idea to set the burden of maintaining a compatibility list on the CrossCode side, especially when it’s so easy to get it working with Wine for now (it’s a bit sad to say, but it’s the current state of thing).
Thank you alot for your help and commitment in this issue, I greatly appreciate it @Nyaaori :-)
[ 1.401263] [drm] radeon kernel modesetting enabled.
[ 1.401333] radeon 0000:01:00.0: SI support disabled by module param
[ 1.403378] [drm] amdgpu kernel modesetting enabled.
[ 1.405924] amdgpu: Ignoring ACPI CRAT on non-APU system
[ 1.405927] amdgpu: Virtual CRAT table created for CPU
[ 1.405941] amdgpu: Topology: Add CPU node
[ 1.406061] fb0: switching to amdgpu from EFI VGA
[ 1.406238] amdgpu 0000:01:00.0: vgaarb: deactivate vga console
[ 1.406355] amdgpu 0000:01:00.0: enabling device (0006 -> 0007)
[ 1.406506] amdgpu 0000:01:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[ 1.406588] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from VFCT
[ 1.406592] amdgpu: ATOM BIOS: 113-C6347100-OU2
[ 1.406611] amdgpu 0000:01:00.0: amdgpu: PCIE atomic ops is not supported
[ 1.410484] amdgpu 0000:01:00.0: amdgpu: VRAM: 2048M 0x000000F400000000 - 0x000000F47FFFFFFF (2048M used)
[ 1.410491] amdgpu 0000:01:00.0: amdgpu: GART: 1024M 0x000000FF00000000 - 0x000000FF3FFFFFFF
[ 1.410568] [drm] amdgpu: 2048M of VRAM memory ready
[ 1.410570] [drm] amdgpu: 3072M of GTT memory ready.
[ 1.411207] amdgpu 0000:01:00.0: amdgpu: PCIE GART of 1024M enabled (table at 0x000000F400300000).
[ 1.434565] [drm] amdgpu: dpm initialized
[ 2.008426] amdgpu 0000:01:00.0: amdgpu: SE 2, SH per SE 2, CU per SH 5, active_cu_number 16
[ 2.142347] fbcon: amdgpudrmfb (fb0) is primary device
[ 2.320314] amdgpu 0000:01:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 2.660126] [drm] Initialized amdgpu 3.44.0 20150101 for 0000:01:00.0 on minor 0
Would be worth trying to radeon driver too if you get the time, at least to collect info on if it works any different.
Also, if you have chromium, check chrome://gpu in it to see if it has hardware acceleration enabled on both drivers, if it doesn’t than perhaps nwjs is ignoring the built in compatibility table.