Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(+2)

This worked for me on Arch:

cd ~/.config/itch/apps/crosscode
./CrossCode --disable-gpu

@Nyaaori this fix worked for me without changing the nwjs version.

thanks, this works!

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]

(1 edit)

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.

Thanks, could you try to upgrade to Mesa 22 and test again on 0.62.0?

The game works fine on nwjs 0.62.0 on Mesa 22.1[git]’s Intel driver

With crashing on the older nwjs version, it didn’t matter if running with xwayland or xorg.

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)?

(1 edit)

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?

The issue is most likely in nwjs or even in chromium.

However, CrossCode could implement a workaround that automatically disables GPU acceleration on known buggy driver/nwjs combinations, that’s not ideal though and it would be best to find the actual cause of the problem and fix it.

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.