summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2021-11-01 15:02:47 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2022-10-06 21:00:51 +0200
commitd30b885d713fa2b9393aeb3c515f4d881bf838f2 (patch)
tree4445e1621b403fd6603e9773841107ba9c10822e /src/core/hle/service/nvdrv/devices/nvhost_gpu.h
parentNvHost: Remake Ctrl Implementation. (diff)
downloadyuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.tar
yuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.tar.gz
yuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.tar.bz2
yuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.tar.lz
yuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.tar.xz
yuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.tar.zst
yuzu-d30b885d713fa2b9393aeb3c515f4d881bf838f2.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
index 8a9f7775a..eb4936df0 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
@@ -15,7 +15,8 @@
namespace Service::Nvidia {
class SyncpointManager;
-}
+class EventInterface;
+} // namespace Service::Nvidia
namespace Service::Nvidia::Devices {
@@ -23,7 +24,7 @@ class nvmap;
class nvhost_gpu final : public nvdevice {
public:
explicit nvhost_gpu(Core::System& system_, std::shared_ptr<nvmap> nvmap_dev_,
- SyncpointManager& syncpoint_manager_);
+ EventInterface& events_interface_, SyncpointManager& syncpoint_manager_);
~nvhost_gpu() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, const std::vector<u8>& input,
@@ -36,6 +37,8 @@ public:
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
+ Kernel::KEvent* QueryEvent(u32 event_id) override;
+
private:
enum class CtxObjects : u32_le {
Ctx2D = 0x902D,
@@ -192,8 +195,14 @@ private:
NvResult ChannelSetTimeslice(const std::vector<u8>& input, std::vector<u8>& output);
std::shared_ptr<nvmap> nvmap_dev;
+ EventInterface& events_interface;
SyncpointManager& syncpoint_manager;
NvFence channel_fence;
+
+ // Events
+ Kernel::KEvent* sm_exception_breakpoint_int_report_event;
+ Kernel::KEvent* sm_exception_breakpoint_pause_report_event;
+ Kernel::KEvent* error_notifier_event;
};
} // namespace Service::Nvidia::Devices