Only use /EHa in MSVC

This commit is contained in:
CocoSimone
2023-02-12 15:28:59 +01:00
parent 9d77edb1fe
commit a81587ec21
4 changed files with 26 additions and 25 deletions

View File

@@ -12,10 +12,12 @@ add_library(imgui
imgui/backends/imgui_impl_vulkan.h imgui/backends/imgui_impl_vulkan.h
imgui/backends/imgui_impl_vulkan.cpp) imgui/backends/imgui_impl_vulkan.cpp)
#if(WIN32) if(WIN32)
# target_compile_definitions(imgui PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS) target_compile_definitions(imgui PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS)
# target_compile_options(imgui PUBLIC /EHa) if(MSVC)
#endif() target_compile_options(imgui PUBLIC /EHa)
endif()
endif()
target_include_directories(imgui PUBLIC ../parallel-rdp/parallel-rdp-standalone/volk target_include_directories(imgui PUBLIC ../parallel-rdp/parallel-rdp-standalone/volk
../parallel-rdp/parallel-rdp-standalone/vulkan-headers/include) ../parallel-rdp/parallel-rdp-standalone/vulkan-headers/include)

View File

@@ -45,8 +45,12 @@ add_library(parallel-rdp
) )
if(WIN32) if(WIN32)
target_compile_definitions(parallel-rdp PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS) target_compile_definitions(parallel-rdp PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS VK_USE_PLATFORM_WIN32_KHR)
target_compile_options(parallel-rdp PUBLIC /EHa) if(MSVC)
target_compile_options(parallel-rdp PUBLIC /EHa)
endif()
else()
target_link_libraries(parallel-rdp PUBLIC dl)
endif() endif()
target_compile_definitions(parallel-rdp PUBLIC GRANITE_VULKAN_MT) target_compile_definitions(parallel-rdp PUBLIC GRANITE_VULKAN_MT)
@@ -59,9 +63,3 @@ target_include_directories(parallel-rdp PUBLIC
parallel-rdp-standalone/vulkan-headers/include parallel-rdp-standalone/vulkan-headers/include
parallel-rdp-standalone/util parallel-rdp-standalone/util
) )
if(WIN32)
target_compile_definitions(parallel-rdp PUBLIC VK_USE_PLATFORM_WIN32_KHR)
else()
target_link_libraries(parallel-rdp PUBLIC dl)
endif()

View File

@@ -66,5 +66,7 @@ target_link_libraries(gadolinium PUBLIC frontend frontend-imgui
if(WIN32) if(WIN32)
target_compile_definitions(gadolinium PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS) target_compile_definitions(gadolinium PUBLIC NOMINMAX _CRT_SECURE_NO_WARNINGS)
target_compile_options(gadolinium PUBLIC /EHa) if(MSVC)
target_compile_options(parallel-rdp PUBLIC /EHa)
endif()
endif() endif()

View File

@@ -80,20 +80,19 @@ void AI::Step(Mem& mem, Registers& regs, int cpuCycles, float volumeL, float vol
return; return;
} }
if(dmaLen[0] && dmaEnable) { if(dmaLen[0] && dmaEnable) {u32 addrHi = ((dmaAddr[0] >> 13) + dmaAddrCarry) & 0x7FF;
dmaAddr[0] = (addrHi << 13) | (dmaAddr[0] & 0x1FFF);
u32 data = Util::ReadAccess<u32>(mem.mmio.rdp.rdram.data(), dmaAddr[0] & RDRAM_DSIZE);
s16 l = s16(data >> 16);
s16 r = s16(data);
if(volumeR > 0 && volumeL > 0) { if(volumeR > 0 && volumeL > 0) {
u32 addrHi = ((dmaAddr[0] >> 13) + dmaAddrCarry) & 0x7FF;
dmaAddr[0] = (addrHi << 13) | (dmaAddr[0] & 0x1FFF);
u32 data = Util::ReadAccess<u32>(mem.mmio.rdp.rdram.data(), dmaAddr[0] & RDRAM_DSIZE);
s16 l = s16(data >> 16);
s16 r = s16(data);
PushSample((float) l / INT16_MAX, volumeL, (float) r / INT16_MAX, volumeR); PushSample((float) l / INT16_MAX, volumeL, (float) r / INT16_MAX, volumeR);
u32 addrLo = (dmaAddr[0] + 4) & 0x1FFF;
dmaAddr[0] = (dmaAddr[0] & ~0x1FFF) | addrLo;
dmaAddrCarry = addrLo == 0;
} }
u32 addrLo = (dmaAddr[0] + 4) & 0x1FFF;
dmaAddr[0] = (dmaAddr[0] & ~0x1FFF) | addrLo;
dmaAddrCarry = addrLo == 0;
dmaLen[0] -= 4; dmaLen[0] -= 4;
} }