Did not see my email in the mailing list archive. I secure the report here: After refurbishing my custom gnu/linux distro, dota2 vulkan was broken: could not enter any game without segfaulting. (amd tahiti xt) The segfault commit is: 6e22ad6edc34dc07a08b41a781f1c37ff3c536e7 I did revert this commit on top of 63572091b52ace35b60c46d092183bf818733ee0, dota2 vulkan has been ok so far.
Yeah, I noticed this too. https://patchwork.freedesktop.org/patch/218205/ should fix this.
On Sun, Apr 22, 2018 at 05:28:45PM +0000, bugzilla-daemon@freedesktop.org wrote: > https://bugs.freedesktop.org/show_bug.cgi?id=106174 > > --- Comment #1 from Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> --- > Yeah, I noticed this too. > > https://patchwork.freedesktop.org/patch/218205/ > > should fix this. Since I'm not into nir, I just reverted the patch. Your patch seems to do what the commit intended to do in the first place, though.
Fixed by: author Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> commit 0e945fdf23bac5a62c15edfcbfd9d6ac4eee592f nir: Do not use progress for unreachable code in return lowering. We seem to use progress for two cases: 1) When we lowered some returns. 2) When we remove unreachable code. If just case 2 happens we assert as state->return_flag has not been allocated yet, but we are still trying to do insert all predicates based on it. This splits the concerns. We only use progress internally for case 1 and then keep track of 2 in a separate variable to indicate progress in the return value of the pass. This is slightly better than transforming the assert into if (!state->return_flag) return, as the solution in this patch avoids inserting predicates even if some other part of the might need them. Fixes: 6e22ad6edc "nir: return early when lowering a return at the end of a function" CC: 18.1 <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106174 Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.