From: Paul Gofman pgofman@codeweavers.com
--- dlls/winevulkan/vulkan_loader.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/winevulkan/vulkan_loader.h b/dlls/winevulkan/vulkan_loader.h index 2efa56e0193..62ab59e32d2 100644 --- a/dlls/winevulkan/vulkan_loader.h +++ b/dlls/winevulkan/vulkan_loader.h @@ -98,9 +98,19 @@ struct wine_vk_debug_report_params extern const struct unix_funcs *unix_funcs; extern unixlib_handle_t unix_handle DECLSPEC_HIDDEN;
-static inline NTSTATUS vk_unix_call(enum unix_call code, void *params) +#define vk_unix_call(code, params) vk_unix_call_(__FUNCTION__, code, params) +static inline NTSTATUS vk_unix_call_(const char * function, enum unix_call code, void *params) { - return __wine_unix_call(unix_handle, code, params); + NTSTATUS ret; + if ((ret = __wine_unix_call(unix_handle, code, params)) == STATUS_ACCESS_VIOLATION) + { + volatile int *null_ptr = NULL; + + MESSAGE("wine: winevulkan: access violation calling %u from %s.\n", code, function); + /* Propagate access violation. */ + *null_ptr = 1; + } + return ret; }
struct unix_funcs