With Mesa 20.1 even after the kernel change to do wbinvd on all cpus
sthen@ reported that hard hangs still occurred on his Haswell system
with inteldrm.
Mark Kane also reported seeing hangs on Ivy Bridge on bugs@.
Some systems/workloads seem to be more prone to triggering this than
others as I have not seen any hangs on Ivy Bridge and the only hangs
I saw on Haswell when running piglit went away with the wbinvd change.
It seems something is wrong with drm memory attributes or coherency in
the kernel and newer Mesa versions expect behaviour we don't have.
haswell hangs still occurred just less frequently with the 1.10 revert of
'intel/eu: Use non-coherent mode (BTI=253) for stateless A64 messages'
The recent kernel change to do wbinvd across all cpus instead of just one
is a better approach and avoids hangs seen with piglit on haswell.
intel/eu: Use non-coherent mode (BTI=253) for stateless A64 messages
d23bbc8c28b6a5cd7f4d3d03c74d8319da5d47d5 on 20.1 branch
4985e380dd776ac65c4ae5627138211f9d9f03ce on mainline
thanks to gnezdo@ sthen@ and espie@ for reports and testing
While we no longer install .la files for Mesa naddy@ pointed out that
using libtool to build something like libGLU could result in .la files
which reference old Mesa .la files.
Remove Mesa .la files found in DESTDIR on install as suggested by
millert@
ok millert@ matthieu@ deraadt@
clang with -std=c99 generates warnings on typedef redefinition
likely unnoticed upstream as gcc does not do this
excessive amounts of warnings from vulkan driver headers pointed
out by deraadt@
On mips64, the compiler does not allow use of non-zero argument with
__builtin_frame_address(). However, the returned frame address is only
used when PIPE_ARCH_X86 is defined. The compile error can be avoided
by making #ifdef PIPE_ARCH_X86 cover the getting of frame address too.
The argument checking of __builtin_frame_address() has been present
as a debug assert in clang 8. In clang 10, there is a proper runtime
check for the argument. This is why the build has not failed before.
OK jsg@
instructions. Clang doesn't allow redeclaration (and therefore
redefinition) of the __sync_* builtins. Use #pragma redefine_extname
to work around that restriction. Clang also turns __sync_add_and_fetch
into __sync_fetch_and_add (and __sync_sub_and_fetch into
__sync_fetch_and_sub) in certain cases, so provide these functions as
well.
ok jsg@
When not in c++ or c11 mode:
- check for _Static_assert support in clang with __has_extension
- gcc implements _Static_assert starting with 4.6.0
- as a fallback, use a forward decl instead of ((void)0) so that
static_assert can be used at file scope (scope issue pointed out by
guenther@)
ok jsg@