It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hi!

It is well known that Cook, Serve, Delicious does not start on Linux with the AMD open source drivers. The workaround one finds by doing a quick google search is to disable hardware acceleration. This runs mostly fine, but can lead to noticeable performance drops if lots of things are on screen.

The game Turmoil is built on the same engine, and after installing it today, I found that the Turmoil developers (or GoG, no idea who set up the run.sh script for it) offer a better workaround for the crash, which seems to work quite well with the amdgpu kernel module. Sadly it does not seem to work with the radeon kernel module, so if you have an older card, you're still stuck with software rendering. The workaround is to enable debug output for vertex and pixel shaders. I have no idea why dumping the shader source code, intermediate code and assembly to console prevents the crash, but it does.
This workaround seems to also work very well with Cook, Serve, Delicious, hence this post.

Both workarounds can be easily implemented by editing the start.sh script file, and setting an environment variable In the "run_game()" function.


To use the amdgpu workaround, just replace the line
./"runner"
with
R600_DEBUG="vs,ps" ./"runner"


To disable hardware acceleration, replace the same line with
LIBGL_ALWAYS_SOFTWARE=1 ./"runner"


As said, I have no idea why outputting shader (+shader compiler) debug output works around the crash on amdgpu... Probably some race condition in the game engine code that does not happen if the shader compilation takes longer.

In any case, I hope this is useful to someone.

Have a great day,
Andi
The former post was a very good heads-up for me ... but did not the job for my Navi 10 (Radeon RX 5700 XT)
with HW acceleration, i.e. only "LIBGL_ALWAYS_SOFTWARE=1".
I tried
   R600_DEBUG="vs,ps"
   R600_debug=check_vm
   AMD_DEBUG=ps,vs
   radeonsi_sync_compile=true
and for me only the last one did it, i.e.
~
radeonsi_sync_compile=true ./"runner"
~
is now in my start.sh script.

It works for me on Kubuntu Groovy (20.10 STS; using Kernel 5.10.16 and Mesa 20.3.2 ;).

I know a second game using GMS (GameMaker Studio), which has also a 32 bit binary only (64 bit can be exported with GMS v2 ...) and uses v1.4 - seem pretty similar to "Cook, Serve, Delicious! 1". It can now run on my Navi 10, too.

But one problem is still valid ... my Logitech F310 gamepad does not work (same for the other game, while that game seems to recognize it but can not use it) ... and also my no longer used XBox gamepad does not work.

I hope this info may help others ...

Best wishes,

JMB
Post edited February 13, 2021 by JMB9