diff options
| -rw-r--r-- | CMakeLists.txt | 17 | ||||
| -rw-r--r-- | src/audio_core/renderer/performance/detail_aspect.h | 1 | ||||
| -rw-r--r-- | src/audio_core/renderer/performance/entry_aspect.h | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/service_thread.cpp | 3 | ||||
| -rw-r--r-- | src/core/memory.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/engines/draw_manager.cpp | 2 |
6 files changed, 18 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index cd59e7485..16f31b3a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -51,6 +51,8 @@ option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") | |||
| 51 | 51 | ||
| 52 | option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON) | 52 | option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON) |
| 53 | 53 | ||
| 54 | CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF) | ||
| 55 | |||
| 54 | if (YUZU_USE_BUNDLED_VCPKG) | 56 | if (YUZU_USE_BUNDLED_VCPKG) |
| 55 | if (YUZU_TESTS) | 57 | if (YUZU_TESTS) |
| 56 | list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests") | 58 | list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests") |
| @@ -579,6 +581,21 @@ if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja") | |||
| 579 | ) | 581 | ) |
| 580 | endif() | 582 | endif() |
| 581 | 583 | ||
| 584 | if (YUZU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | ||
| 585 | # We will assume that if the compiler is GCC, it will attempt to use ld.bfd by default. | ||
| 586 | # Try to pick a faster linker. | ||
| 587 | find_program(LLD lld) | ||
| 588 | find_program(MOLD mold) | ||
| 589 | |||
| 590 | if (MOLD AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.1") | ||
| 591 | message(NOTICE "Selecting mold as linker") | ||
| 592 | add_link_options("-fuse-ld=mold") | ||
| 593 | elseif (LLD) | ||
| 594 | message(NOTICE "Selecting lld as linker") | ||
| 595 | add_link_options("-fuse-ld=lld") | ||
| 596 | endif() | ||
| 597 | endif() | ||
| 598 | |||
| 582 | enable_testing() | 599 | enable_testing() |
| 583 | add_subdirectory(externals) | 600 | add_subdirectory(externals) |
| 584 | add_subdirectory(src) | 601 | add_subdirectory(src) |
diff --git a/src/audio_core/renderer/performance/detail_aspect.h b/src/audio_core/renderer/performance/detail_aspect.h index ee4ac2f76..736c331b9 100644 --- a/src/audio_core/renderer/performance/detail_aspect.h +++ b/src/audio_core/renderer/performance/detail_aspect.h | |||
| @@ -16,7 +16,6 @@ class CommandGenerator; | |||
| 16 | */ | 16 | */ |
| 17 | class DetailAspect { | 17 | class DetailAspect { |
| 18 | public: | 18 | public: |
| 19 | DetailAspect() = default; | ||
| 20 | DetailAspect(CommandGenerator& command_generator, PerformanceEntryType entry_type, s32 node_id, | 19 | DetailAspect(CommandGenerator& command_generator, PerformanceEntryType entry_type, s32 node_id, |
| 21 | PerformanceDetailType detail_type); | 20 | PerformanceDetailType detail_type); |
| 22 | 21 | ||
diff --git a/src/audio_core/renderer/performance/entry_aspect.h b/src/audio_core/renderer/performance/entry_aspect.h index 01c1eb3f1..14c9e3baf 100644 --- a/src/audio_core/renderer/performance/entry_aspect.h +++ b/src/audio_core/renderer/performance/entry_aspect.h | |||
| @@ -16,7 +16,6 @@ class CommandGenerator; | |||
| 16 | */ | 16 | */ |
| 17 | class EntryAspect { | 17 | class EntryAspect { |
| 18 | public: | 18 | public: |
| 19 | EntryAspect() = default; | ||
| 20 | EntryAspect(CommandGenerator& command_generator, PerformanceEntryType type, s32 node_id); | 19 | EntryAspect(CommandGenerator& command_generator, PerformanceEntryType type, s32 node_id); |
| 21 | 20 | ||
| 22 | /// Command generator the command will be generated into | 21 | /// Command generator the command will be generated into |
diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp index e72c3d35d..38afa720b 100644 --- a/src/core/hle/kernel/service_thread.cpp +++ b/src/core/hle/kernel/service_thread.cpp | |||
| @@ -163,9 +163,6 @@ ServiceThread::Impl::~Impl() { | |||
| 163 | m_wakeup_event->Signal(); | 163 | m_wakeup_event->Signal(); |
| 164 | m_host_thread.join(); | 164 | m_host_thread.join(); |
| 165 | 165 | ||
| 166 | // Lock mutex. | ||
| 167 | m_session_mutex.lock(); | ||
| 168 | |||
| 169 | // Close all remaining sessions. | 166 | // Close all remaining sessions. |
| 170 | for (const auto& [server_session, manager] : m_sessions) { | 167 | for (const auto& [server_session, manager] : m_sessions) { |
| 171 | server_session->Close(); | 168 | server_session->Close(); |
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index 3141122f1..b3f50223b 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp | |||
| @@ -195,13 +195,11 @@ struct Memory::Impl { | |||
| 195 | break; | 195 | break; |
| 196 | } | 196 | } |
| 197 | case Common::PageType::Memory: { | 197 | case Common::PageType::Memory: { |
| 198 | DEBUG_ASSERT(pointer); | ||
| 199 | u8* mem_ptr = pointer + page_offset + (page_index << YUZU_PAGEBITS); | 198 | u8* mem_ptr = pointer + page_offset + (page_index << YUZU_PAGEBITS); |
| 200 | on_memory(copy_amount, mem_ptr); | 199 | on_memory(copy_amount, mem_ptr); |
| 201 | break; | 200 | break; |
| 202 | } | 201 | } |
| 203 | case Common::PageType::DebugMemory: { | 202 | case Common::PageType::DebugMemory: { |
| 204 | DEBUG_ASSERT(pointer); | ||
| 205 | u8* const mem_ptr{GetPointerFromDebugMemory(current_vaddr)}; | 203 | u8* const mem_ptr{GetPointerFromDebugMemory(current_vaddr)}; |
| 206 | on_memory(copy_amount, mem_ptr); | 204 | on_memory(copy_amount, mem_ptr); |
| 207 | break; | 205 | break; |
diff --git a/src/video_core/engines/draw_manager.cpp b/src/video_core/engines/draw_manager.cpp index c59524e58..b213c374f 100644 --- a/src/video_core/engines/draw_manager.cpp +++ b/src/video_core/engines/draw_manager.cpp | |||
| @@ -180,7 +180,7 @@ void DrawManager::ProcessTopologyOverride() { | |||
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | void DrawManager::ProcessDraw(bool draw_indexed, u32 instance_count) { | 182 | void DrawManager::ProcessDraw(bool draw_indexed, u32 instance_count) { |
| 183 | LOG_TRACE(HW_GPU, "called, topology={}, count={}", draw_state.topology.Value(), | 183 | LOG_TRACE(HW_GPU, "called, topology={}, count={}", draw_state.topology, |
| 184 | draw_indexed ? draw_state.index_buffer.count : draw_state.vertex_buffer.count); | 184 | draw_indexed ? draw_state.index_buffer.count : draw_state.vertex_buffer.count); |
| 185 | 185 | ||
| 186 | ProcessTopologyOverride(); | 186 | ProcessTopologyOverride(); |