give texture cache exception handler priority over tls exception handler
This commit is contained in:
parent
25c04ad42f
commit
0727775c88
|
@ -48,9 +48,9 @@ LONG WINAPI GuestFaultSignalHandler(EXCEPTION_POINTERS* pExp) noexcept {
|
||||||
if (info[0] == 1) { // Write violation
|
if (info[0] == 1) { // Write violation
|
||||||
g_texture_cache->OnCpuWrite(info[1]);
|
g_texture_cache->OnCpuWrite(info[1]);
|
||||||
return EXCEPTION_CONTINUE_EXECUTION;
|
return EXCEPTION_CONTINUE_EXECUTION;
|
||||||
} else {
|
} /* else {
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
return EXCEPTION_CONTINUE_SEARCH; // pass further
|
return EXCEPTION_CONTINUE_SEARCH; // pass further
|
||||||
}
|
}
|
||||||
|
@ -59,10 +59,9 @@ LONG WINAPI GuestFaultSignalHandler(EXCEPTION_POINTERS* pExp) noexcept {
|
||||||
static constexpr u64 StreamBufferSize = 128_MB;
|
static constexpr u64 StreamBufferSize = 128_MB;
|
||||||
|
|
||||||
TextureCache::TextureCache(const Vulkan::Instance& instance_, Vulkan::Scheduler& scheduler_)
|
TextureCache::TextureCache(const Vulkan::Instance& instance_, Vulkan::Scheduler& scheduler_)
|
||||||
: instance{instance_}, scheduler{scheduler_}, staging{instance, scheduler,
|
: instance{instance_}, scheduler{scheduler_},
|
||||||
vk::BufferUsageFlagBits::eTransferSrc,
|
staging{instance, scheduler, vk::BufferUsageFlagBits::eTransferSrc, StreamBufferSize,
|
||||||
StreamBufferSize,
|
Vulkan::BufferType::Upload} {
|
||||||
Vulkan::BufferType::Upload} {
|
|
||||||
|
|
||||||
#ifndef _WIN64
|
#ifndef _WIN64
|
||||||
sigset_t signal_mask;
|
sigset_t signal_mask;
|
||||||
|
@ -77,7 +76,7 @@ TextureCache::TextureCache(const Vulkan::Instance& instance_, Vulkan::Scheduler&
|
||||||
guest_access_fault.sa_mask = signal_mask;
|
guest_access_fault.sa_mask = signal_mask;
|
||||||
sigaction(SIGSEGV, &guest_access_fault, nullptr);
|
sigaction(SIGSEGV, &guest_access_fault, nullptr);
|
||||||
#else
|
#else
|
||||||
veh_handle = AddVectoredExceptionHandler(0, GuestFaultSignalHandler);
|
veh_handle = AddVectoredExceptionHandler(1, GuestFaultSignalHandler);
|
||||||
ASSERT_MSG(veh_handle, "Failed to register an exception handler");
|
ASSERT_MSG(veh_handle, "Failed to register an exception handler");
|
||||||
#endif
|
#endif
|
||||||
g_texture_cache = this;
|
g_texture_cache = this;
|
||||||
|
|
Loading…
Reference in New Issue