-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Alien Isolation "freezes" after playing around 30min, input still responds #6800
Comments
Hello @itaranto, this issue should also be mentioned to the video game's dev(s) if it hasn't been already. |
I already sent an email to Feral Games' support. |
Hello @itaranto, are you still experiencing this issue on an up to date system? |
Closing pending feedback. |
I tried the game on my current system (Arch Linux). So far, without the Steam Linux Runtime the game doesn't event start, and when using the Steam Linux Runtime the game crashes (with a segfault) after few seconds of gameplay. My system is currently using Mesa 22.1.2 (AMD) drivers. |
I can confirm that Alien Isolation will crash after a couple of minutes of gameplay. I'm running on Artix Linux, packages are up to date. My Mesa version is 22.1.3-1, the Linux kernel is 5.15.52-1-lts and I have an AMD RX 5700. I've tried running the game a couple of weeks ago and noticed that it would crash shortly. Usually the game runs fine with the Steam Linux Runtime (without it it won't start) and my previous two complete playthroughs were without crashes before. |
After digging around the issue a bit it appears that the crash happens in To debug this I've added GDB backtrace:
I've also tracked down at which version it would stop working. When downgrading to these mesa versions one would need to downgrade to an older So as a quick and dirty solution in the mesa source code tree I've added a check against // Edited mesa-22.1.0/src/gallium/drivers/radeonsi/si_buffer.c
// Can be applied to mesa-22.1.3 too
static void si_buffer_do_flush_region(struct pipe_context *ctx, struct pipe_transfer *transfer,
const struct pipe_box *box)
{
struct si_context *sctx = (struct si_context *)ctx;
struct si_transfer *stransfer = (struct si_transfer *)transfer;
// si_resource() basically casts transfer->resource to a struct si_resource * and returns it unchanged.
// si_resource() is defined si_pipe.h in the same directory as si_buffer.c.
struct si_resource *buf = si_resource(transfer->resource);
if (!buf) {
// The following fputs() line is optional, so it's just there for debugging purposes.
fputs("si_buffer_do_flush_region: transfer->resource is null!\n", stderr);
return;
}
if (stransfer->staging) {
unsigned src_offset =
stransfer->b.b.offset + transfer->box.x % SI_MAP_BUFFER_ALIGNMENT + (box->x - transfer->box.x);
/* Copy the staging buffer into the original one. */
// transfer->resource might be also in danger here
si_copy_buffer(sctx, transfer->resource, &stransfer->staging->b.b, box->x, src_offset,
box->width, SI_OP_SYNC_BEFORE_AFTER);
}
// Would crash here when buf is zero
util_range_add(&buf->b.b, &buf->valid_buffer_range, box->x, box->x + box->width);
} I then built mesa similar to the With that I was able to play Alien Isolation for tens of minutes, and with that This is not a clean solution right now, but I hope this sheds some light into this issue. |
@itaranto A fix has been incorporated into mesa 22.2.0 which is currently in the Release Candidate phase, so for now you can run Alien Isolation with the environment variable
to
until you get the fixed mesa version. |
That's amazing! Thanks! |
Your system information
Please describe your issue in as much detail as possible:
The game works great for most of the time.
Every 20 /30 mins the screen freezes at the current frame, although the game input is still working. I'm able to close it cleanly using Alt+F4.
Steps for reproducing this issue:
Additional Notes
GPU: AMD Radeon RX 570
Drivers: Mesa 19.2.6
I also tried using the new Steam Linux Runtime, but I get the same issue.
System Info:
system-info.txt
The text was updated successfully, but these errors were encountered: