diff options
| author | 2022-01-30 23:13:46 +0100 | |
|---|---|---|
| committer | 2022-10-06 21:00:52 +0200 | |
| commit | 920429fde745b3bf6d33b6ca991628f64988f754 (patch) | |
| tree | 3c10b169e9e94041955500e4ed46e664255e4349 /src/core | |
| parent | NVDRV: Refactor Host1x (diff) | |
| download | yuzu-920429fde745b3bf6d33b6ca991628f64988f754.tar.gz yuzu-920429fde745b3bf6d33b6ca991628f64988f754.tar.xz yuzu-920429fde745b3bf6d33b6ca991628f64988f754.zip | |
NVDRV: Further refactors and eliminate old code.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/core/core.cpp | 11 | ||||
| -rw-r--r-- | src/core/core.h | 10 | ||||
| -rw-r--r-- | src/core/hardware_interrupt_manager.cpp | 32 | ||||
| -rw-r--r-- | src/core/hardware_interrupt_manager.h | 32 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | 26 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | 7 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/nvdrv.cpp | 21 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/nvdrv.h | 7 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/nvdrv_interface.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/nvdrv_interface.h | 2 |
12 files changed, 8 insertions, 148 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 3ef19f9c2..95302c419 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -138,8 +138,6 @@ add_library(core STATIC | |||
| 138 | frontend/emu_window.h | 138 | frontend/emu_window.h |
| 139 | frontend/framebuffer_layout.cpp | 139 | frontend/framebuffer_layout.cpp |
| 140 | frontend/framebuffer_layout.h | 140 | frontend/framebuffer_layout.h |
| 141 | hardware_interrupt_manager.cpp | ||
| 142 | hardware_interrupt_manager.h | ||
| 143 | hid/emulated_console.cpp | 141 | hid/emulated_console.cpp |
| 144 | hid/emulated_console.h | 142 | hid/emulated_console.h |
| 145 | hid/emulated_controller.cpp | 143 | hid/emulated_controller.cpp |
diff --git a/src/core/core.cpp b/src/core/core.cpp index 13d02e75f..1deeee154 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | #include "core/file_sys/savedata_factory.h" | 27 | #include "core/file_sys/savedata_factory.h" |
| 28 | #include "core/file_sys/vfs_concat.h" | 28 | #include "core/file_sys/vfs_concat.h" |
| 29 | #include "core/file_sys/vfs_real.h" | 29 | #include "core/file_sys/vfs_real.h" |
| 30 | #include "core/hardware_interrupt_manager.h" | ||
| 31 | #include "core/hid/hid_core.h" | 30 | #include "core/hid/hid_core.h" |
| 32 | #include "core/hle/kernel/k_memory_manager.h" | 31 | #include "core/hle/kernel/k_memory_manager.h" |
| 33 | #include "core/hle/kernel/k_process.h" | 32 | #include "core/hle/kernel/k_process.h" |
| @@ -226,7 +225,6 @@ struct System::Impl { | |||
| 226 | 225 | ||
| 227 | service_manager = std::make_shared<Service::SM::ServiceManager>(kernel); | 226 | service_manager = std::make_shared<Service::SM::ServiceManager>(kernel); |
| 228 | services = std::make_unique<Service::Services>(service_manager, system); | 227 | services = std::make_unique<Service::Services>(service_manager, system); |
| 229 | interrupt_manager = std::make_unique<Hardware::InterruptManager>(system); | ||
| 230 | 228 | ||
| 231 | // Initialize time manager, which must happen after kernel is created | 229 | // Initialize time manager, which must happen after kernel is created |
| 232 | time_manager.Initialize(); | 230 | time_manager.Initialize(); |
| @@ -454,7 +452,6 @@ struct System::Impl { | |||
| 454 | std::unique_ptr<Loader::AppLoader> app_loader; | 452 | std::unique_ptr<Loader::AppLoader> app_loader; |
| 455 | std::unique_ptr<Tegra::GPU> gpu_core; | 453 | std::unique_ptr<Tegra::GPU> gpu_core; |
| 456 | std::unique_ptr<Tegra::Host1x::Host1x> host1x_core; | 454 | std::unique_ptr<Tegra::Host1x::Host1x> host1x_core; |
| 457 | std::unique_ptr<Hardware::InterruptManager> interrupt_manager; | ||
| 458 | std::unique_ptr<Core::DeviceMemory> device_memory; | 455 | std::unique_ptr<Core::DeviceMemory> device_memory; |
| 459 | std::unique_ptr<AudioCore::AudioCore> audio_core; | 456 | std::unique_ptr<AudioCore::AudioCore> audio_core; |
| 460 | Core::Memory::Memory memory; | 457 | Core::Memory::Memory memory; |
| @@ -680,14 +677,6 @@ const Tegra::Host1x::Host1x& System::Host1x() const { | |||
| 680 | return *impl->host1x_core; | 677 | return *impl->host1x_core; |
| 681 | } | 678 | } |
| 682 | 679 | ||
| 683 | Core::Hardware::InterruptManager& System::InterruptManager() { | ||
| 684 | return *impl->interrupt_manager; | ||
| 685 | } | ||
| 686 | |||
| 687 | const Core::Hardware::InterruptManager& System::InterruptManager() const { | ||
| 688 | return *impl->interrupt_manager; | ||
| 689 | } | ||
| 690 | |||
| 691 | VideoCore::RendererBase& System::Renderer() { | 680 | VideoCore::RendererBase& System::Renderer() { |
| 692 | return impl->gpu_core->Renderer(); | 681 | return impl->gpu_core->Renderer(); |
| 693 | } | 682 | } |
diff --git a/src/core/core.h b/src/core/core.h index e4168a921..7843cc8ad 100644 --- a/src/core/core.h +++ b/src/core/core.h | |||
| @@ -91,10 +91,6 @@ namespace Core::Timing { | |||
| 91 | class CoreTiming; | 91 | class CoreTiming; |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | namespace Core::Hardware { | ||
| 95 | class InterruptManager; | ||
| 96 | } | ||
| 97 | |||
| 98 | namespace Core::HID { | 94 | namespace Core::HID { |
| 99 | class HIDCore; | 95 | class HIDCore; |
| 100 | } | 96 | } |
| @@ -305,12 +301,6 @@ public: | |||
| 305 | /// Provides a constant reference to the core timing instance. | 301 | /// Provides a constant reference to the core timing instance. |
| 306 | [[nodiscard]] const Timing::CoreTiming& CoreTiming() const; | 302 | [[nodiscard]] const Timing::CoreTiming& CoreTiming() const; |
| 307 | 303 | ||
| 308 | /// Provides a reference to the interrupt manager instance. | ||
| 309 | [[nodiscard]] Core::Hardware::InterruptManager& InterruptManager(); | ||
| 310 | |||
| 311 | /// Provides a constant reference to the interrupt manager instance. | ||
| 312 | [[nodiscard]] const Core::Hardware::InterruptManager& InterruptManager() const; | ||
| 313 | |||
| 314 | /// Provides a reference to the kernel instance. | 304 | /// Provides a reference to the kernel instance. |
| 315 | [[nodiscard]] Kernel::KernelCore& Kernel(); | 305 | [[nodiscard]] Kernel::KernelCore& Kernel(); |
| 316 | 306 | ||
diff --git a/src/core/hardware_interrupt_manager.cpp b/src/core/hardware_interrupt_manager.cpp deleted file mode 100644 index d08cc3315..000000000 --- a/src/core/hardware_interrupt_manager.cpp +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #include "core/core.h" | ||
| 5 | #include "core/core_timing.h" | ||
| 6 | #include "core/hardware_interrupt_manager.h" | ||
| 7 | #include "core/hle/service/nvdrv/nvdrv_interface.h" | ||
| 8 | #include "core/hle/service/sm/sm.h" | ||
| 9 | |||
| 10 | namespace Core::Hardware { | ||
| 11 | |||
| 12 | InterruptManager::InterruptManager(Core::System& system_in) : system(system_in) { | ||
| 13 | gpu_interrupt_event = Core::Timing::CreateEvent( | ||
| 14 | "GPUInterrupt", | ||
| 15 | [this](std::uintptr_t message, u64 time, | ||
| 16 | std::chrono::nanoseconds) -> std::optional<std::chrono::nanoseconds> { | ||
| 17 | auto nvdrv = system.ServiceManager().GetService<Service::Nvidia::NVDRV>("nvdrv"); | ||
| 18 | const u32 syncpt = static_cast<u32>(message >> 32); | ||
| 19 | const u32 value = static_cast<u32>(message); | ||
| 20 | nvdrv->SignalGPUInterruptSyncpt(syncpt, value); | ||
| 21 | return std::nullopt; | ||
| 22 | }); | ||
| 23 | } | ||
| 24 | |||
| 25 | InterruptManager::~InterruptManager() = default; | ||
| 26 | |||
| 27 | void InterruptManager::GPUInterruptSyncpt(const u32 syncpoint_id, const u32 value) { | ||
| 28 | const u64 msg = (static_cast<u64>(syncpoint_id) << 32ULL) | value; | ||
| 29 | system.CoreTiming().ScheduleEvent(std::chrono::nanoseconds{10}, gpu_interrupt_event, msg); | ||
| 30 | } | ||
| 31 | |||
| 32 | } // namespace Core::Hardware | ||
diff --git a/src/core/hardware_interrupt_manager.h b/src/core/hardware_interrupt_manager.h deleted file mode 100644 index 5665c5918..000000000 --- a/src/core/hardware_interrupt_manager.h +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include <memory> | ||
| 7 | |||
| 8 | #include "common/common_types.h" | ||
| 9 | |||
| 10 | namespace Core { | ||
| 11 | class System; | ||
| 12 | } | ||
| 13 | |||
| 14 | namespace Core::Timing { | ||
| 15 | struct EventType; | ||
| 16 | } | ||
| 17 | |||
| 18 | namespace Core::Hardware { | ||
| 19 | |||
| 20 | class InterruptManager { | ||
| 21 | public: | ||
| 22 | explicit InterruptManager(Core::System& system); | ||
| 23 | ~InterruptManager(); | ||
| 24 | |||
| 25 | void GPUInterruptSyncpt(u32 syncpoint_id, u32 value); | ||
| 26 | |||
| 27 | private: | ||
| 28 | Core::System& system; | ||
| 29 | std::shared_ptr<Core::Timing::EventType> gpu_interrupt_event; | ||
| 30 | }; | ||
| 31 | |||
| 32 | } // namespace Core::Hardware | ||
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp index ffe42d423..076edb02f 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | |||
| @@ -77,12 +77,9 @@ NvResult nvhost_ctrl::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>& | |||
| 77 | return NvResult::NotImplemented; | 77 | return NvResult::NotImplemented; |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | void nvhost_ctrl::OnOpen(DeviceFD fd) { | 80 | void nvhost_ctrl::OnOpen(DeviceFD fd) {} |
| 81 | events_interface.RegisterForSignal(this); | 81 | |
| 82 | } | 82 | void nvhost_ctrl::OnClose(DeviceFD fd) {} |
| 83 | void nvhost_ctrl::OnClose(DeviceFD fd) { | ||
| 84 | events_interface.UnregisterForSignal(this); | ||
| 85 | } | ||
| 86 | 83 | ||
| 87 | NvResult nvhost_ctrl::NvOsGetConfigU32(const std::vector<u8>& input, std::vector<u8>& output) { | 84 | NvResult nvhost_ctrl::NvOsGetConfigU32(const std::vector<u8>& input, std::vector<u8>& output) { |
| 88 | IocGetConfigParams params{}; | 85 | IocGetConfigParams params{}; |
| @@ -395,21 +392,4 @@ u32 nvhost_ctrl::FindFreeNvEvent(u32 syncpoint_id) { | |||
| 395 | return 0; | 392 | return 0; |
| 396 | } | 393 | } |
| 397 | 394 | ||
| 398 | void nvhost_ctrl::SignalNvEvent(u32 syncpoint_id, u32 value) { | ||
| 399 | u64 signal_mask = events_mask; | ||
| 400 | while (signal_mask != 0) { | ||
| 401 | const u64 event_id = std::countr_zero(signal_mask); | ||
| 402 | signal_mask &= ~(1ULL << event_id); | ||
| 403 | auto& event = events[event_id]; | ||
| 404 | if (event.assigned_syncpt != syncpoint_id || event.assigned_value != value) { | ||
| 405 | continue; | ||
| 406 | } | ||
| 407 | if (event.status.exchange(EventState::Signalling, std::memory_order_acq_rel) == | ||
| 408 | EventState::Waiting) { | ||
| 409 | event.kevent->GetWritableEvent().Signal(); | ||
| 410 | } | ||
| 411 | event.status.store(EventState::Signalled, std::memory_order_release); | ||
| 412 | } | ||
| 413 | } | ||
| 414 | |||
| 415 | } // namespace Service::Nvidia::Devices | 395 | } // namespace Service::Nvidia::Devices |
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h index 136a1e925..f511c0296 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h | |||
| @@ -56,8 +56,6 @@ public: | |||
| 56 | }; | 56 | }; |
| 57 | static_assert(sizeof(SyncpointEventValue) == sizeof(u32)); | 57 | static_assert(sizeof(SyncpointEventValue) == sizeof(u32)); |
| 58 | 58 | ||
| 59 | void SignalNvEvent(u32 syncpoint_id, u32 value); | ||
| 60 | |||
| 61 | private: | 59 | private: |
| 62 | struct InternalEvent { | 60 | struct InternalEvent { |
| 63 | // Mask representing registered events | 61 | // Mask representing registered events |
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp index db3e266ad..3f981af5a 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include "video_core/control/channel_state.h" | 14 | #include "video_core/control/channel_state.h" |
| 15 | #include "video_core/engines/puller.h" | 15 | #include "video_core/engines/puller.h" |
| 16 | #include "video_core/gpu.h" | 16 | #include "video_core/gpu.h" |
| 17 | #include "video_core/host1x/host1x.h" | ||
| 17 | 18 | ||
| 18 | namespace Service::Nvidia::Devices { | 19 | namespace Service::Nvidia::Devices { |
| 19 | namespace { | 20 | namespace { |
| @@ -31,7 +32,8 @@ nvhost_gpu::nvhost_gpu(Core::System& system_, EventInterface& events_interface_, | |||
| 31 | syncpoint_manager{core_.GetSyncpointManager()}, nvmap{core.GetNvMapFile()}, | 32 | syncpoint_manager{core_.GetSyncpointManager()}, nvmap{core.GetNvMapFile()}, |
| 32 | channel_state{system.GPU().AllocateChannel()} { | 33 | channel_state{system.GPU().AllocateChannel()} { |
| 33 | channel_fence.id = syncpoint_manager.AllocateSyncpoint(); | 34 | channel_fence.id = syncpoint_manager.AllocateSyncpoint(); |
| 34 | channel_fence.value = system_.GPU().GetSyncpointValue(channel_fence.id); | 35 | channel_fence.value = |
| 36 | system_.Host1x().GetSyncpointManager().GetGuestSyncpointValue(channel_fence.id); | ||
| 35 | sm_exception_breakpoint_int_report_event = | 37 | sm_exception_breakpoint_int_report_event = |
| 36 | events_interface.CreateEvent("GpuChannelSMExceptionBreakpointInt"); | 38 | events_interface.CreateEvent("GpuChannelSMExceptionBreakpointInt"); |
| 37 | sm_exception_breakpoint_pause_report_event = | 39 | sm_exception_breakpoint_pause_report_event = |
| @@ -189,7 +191,8 @@ NvResult nvhost_gpu::AllocGPFIFOEx2(const std::vector<u8>& input, std::vector<u8 | |||
| 189 | } | 191 | } |
| 190 | 192 | ||
| 191 | system.GPU().InitChannel(*channel_state); | 193 | system.GPU().InitChannel(*channel_state); |
| 192 | channel_fence.value = system.GPU().GetSyncpointValue(channel_fence.id); | 194 | channel_fence.value = |
| 195 | system.Host1x().GetSyncpointManager().GetGuestSyncpointValue(channel_fence.id); | ||
| 193 | 196 | ||
| 194 | params.fence_out = channel_fence; | 197 | params.fence_out = channel_fence; |
| 195 | 198 | ||
diff --git a/src/core/hle/service/nvdrv/nvdrv.cpp b/src/core/hle/service/nvdrv/nvdrv.cpp index 8a9f3c717..1be51e401 100644 --- a/src/core/hle/service/nvdrv/nvdrv.cpp +++ b/src/core/hle/service/nvdrv/nvdrv.cpp | |||
| @@ -33,23 +33,6 @@ EventInterface::EventInterface(Module& module_) : module{module_}, guard{}, on_s | |||
| 33 | 33 | ||
| 34 | EventInterface::~EventInterface() = default; | 34 | EventInterface::~EventInterface() = default; |
| 35 | 35 | ||
| 36 | void EventInterface::RegisterForSignal(Devices::nvhost_ctrl* device) { | ||
| 37 | std::unique_lock<std::mutex> lk(guard); | ||
| 38 | on_signal.push_back(device); | ||
| 39 | } | ||
| 40 | |||
| 41 | void EventInterface::UnregisterForSignal(Devices::nvhost_ctrl* device) { | ||
| 42 | std::unique_lock<std::mutex> lk(guard); | ||
| 43 | on_signal.remove(device); | ||
| 44 | } | ||
| 45 | |||
| 46 | void EventInterface::Signal(u32 syncpoint_id, u32 value) { | ||
| 47 | std::unique_lock<std::mutex> lk(guard); | ||
| 48 | for (auto* device : on_signal) { | ||
| 49 | device->SignalNvEvent(syncpoint_id, value); | ||
| 50 | } | ||
| 51 | } | ||
| 52 | |||
| 53 | Kernel::KEvent* EventInterface::CreateEvent(std::string name) { | 36 | Kernel::KEvent* EventInterface::CreateEvent(std::string name) { |
| 54 | Kernel::KEvent* new_event = module.service_context.CreateEvent(std::move(name)); | 37 | Kernel::KEvent* new_event = module.service_context.CreateEvent(std::move(name)); |
| 55 | return new_event; | 38 | return new_event; |
| @@ -221,10 +204,6 @@ NvResult Module::Close(DeviceFD fd) { | |||
| 221 | return NvResult::Success; | 204 | return NvResult::Success; |
| 222 | } | 205 | } |
| 223 | 206 | ||
| 224 | void Module::SignalSyncpt(const u32 syncpoint_id, const u32 value) { | ||
| 225 | events_interface.Signal(syncpoint_id, value); | ||
| 226 | } | ||
| 227 | |||
| 228 | NvResult Module::QueryEvent(DeviceFD fd, u32 event_id, Kernel::KEvent*& event) { | 207 | NvResult Module::QueryEvent(DeviceFD fd, u32 event_id, Kernel::KEvent*& event) { |
| 229 | if (fd < 0) { | 208 | if (fd < 0) { |
| 230 | LOG_ERROR(Service_NVDRV, "Invalid DeviceFD={}!", fd); | 209 | LOG_ERROR(Service_NVDRV, "Invalid DeviceFD={}!", fd); |
diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h index 1fe98cf32..31c45236e 100644 --- a/src/core/hle/service/nvdrv/nvdrv.h +++ b/src/core/hle/service/nvdrv/nvdrv.h | |||
| @@ -49,11 +49,6 @@ public: | |||
| 49 | EventInterface(Module& module_); | 49 | EventInterface(Module& module_); |
| 50 | ~EventInterface(); | 50 | ~EventInterface(); |
| 51 | 51 | ||
| 52 | void RegisterForSignal(Devices::nvhost_ctrl*); | ||
| 53 | void UnregisterForSignal(Devices::nvhost_ctrl*); | ||
| 54 | |||
| 55 | void Signal(u32 syncpoint_id, u32 value); | ||
| 56 | |||
| 57 | Kernel::KEvent* CreateEvent(std::string name); | 52 | Kernel::KEvent* CreateEvent(std::string name); |
| 58 | 53 | ||
| 59 | void FreeEvent(Kernel::KEvent* event); | 54 | void FreeEvent(Kernel::KEvent* event); |
| @@ -96,8 +91,6 @@ public: | |||
| 96 | /// Closes a device file descriptor and returns operation success. | 91 | /// Closes a device file descriptor and returns operation success. |
| 97 | NvResult Close(DeviceFD fd); | 92 | NvResult Close(DeviceFD fd); |
| 98 | 93 | ||
| 99 | void SignalSyncpt(const u32 syncpoint_id, const u32 value); | ||
| 100 | |||
| 101 | NvResult QueryEvent(DeviceFD fd, u32 event_id, Kernel::KEvent*& event); | 94 | NvResult QueryEvent(DeviceFD fd, u32 event_id, Kernel::KEvent*& event); |
| 102 | 95 | ||
| 103 | private: | 96 | private: |
diff --git a/src/core/hle/service/nvdrv/nvdrv_interface.cpp b/src/core/hle/service/nvdrv/nvdrv_interface.cpp index bd41205b8..5e50a04e8 100644 --- a/src/core/hle/service/nvdrv/nvdrv_interface.cpp +++ b/src/core/hle/service/nvdrv/nvdrv_interface.cpp | |||
| @@ -15,10 +15,6 @@ | |||
| 15 | 15 | ||
| 16 | namespace Service::Nvidia { | 16 | namespace Service::Nvidia { |
| 17 | 17 | ||
| 18 | void NVDRV::SignalGPUInterruptSyncpt(const u32 syncpoint_id, const u32 value) { | ||
| 19 | nvdrv->SignalSyncpt(syncpoint_id, value); | ||
| 20 | } | ||
| 21 | |||
| 22 | void NVDRV::Open(Kernel::HLERequestContext& ctx) { | 18 | void NVDRV::Open(Kernel::HLERequestContext& ctx) { |
| 23 | LOG_DEBUG(Service_NVDRV, "called"); | 19 | LOG_DEBUG(Service_NVDRV, "called"); |
| 24 | IPC::ResponseBuilder rb{ctx, 4}; | 20 | IPC::ResponseBuilder rb{ctx, 4}; |
diff --git a/src/core/hle/service/nvdrv/nvdrv_interface.h b/src/core/hle/service/nvdrv/nvdrv_interface.h index cbd37b52b..cd58a4f35 100644 --- a/src/core/hle/service/nvdrv/nvdrv_interface.h +++ b/src/core/hle/service/nvdrv/nvdrv_interface.h | |||
| @@ -18,8 +18,6 @@ public: | |||
| 18 | explicit NVDRV(Core::System& system_, std::shared_ptr<Module> nvdrv_, const char* name); | 18 | explicit NVDRV(Core::System& system_, std::shared_ptr<Module> nvdrv_, const char* name); |
| 19 | ~NVDRV() override; | 19 | ~NVDRV() override; |
| 20 | 20 | ||
| 21 | void SignalGPUInterruptSyncpt(u32 syncpoint_id, u32 value); | ||
| 22 | |||
| 23 | private: | 21 | private: |
| 24 | void Open(Kernel::HLERequestContext& ctx); | 22 | void Open(Kernel::HLERequestContext& ctx); |
| 25 | void Ioctl1(Kernel::HLERequestContext& ctx); | 23 | void Ioctl1(Kernel::HLERequestContext& ctx); |