diff --git a/src/util/u_thread.h b/src/util/u_thread.h index 6221720123d..2b9deaab169 100644 --- a/src/util/u_thread.h +++ b/src/util/u_thread.h @@ -109,6 +109,12 @@ static inline int u_thread_create(thrd_t *thrd, int (*routine)(void *), void *pa sigfillset(&new_set); sigdelset(&new_set, SIGSYS); + + /* SIGSEGV is commonly used by Vulkan API tracing layers in order to track + * accesses in device memory mapped to user space. Blocking the signal hinders + * that tracking mechanism. + */ + sigdelset(&new_set, SIGSEGV); pthread_sigmask(SIG_BLOCK, &new_set, &saved_set); ret = thrd_create(thrd, routine, param); pthread_sigmask(SIG_SETMASK, &saved_set, NULL);