summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-06-08 03:13:20 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-07-05 21:49:15 +0200
commita45643cb3b07e76e73814baf1d472d636dd2cd91 (patch)
tree8cea1037fcfdaa473f8362686ff2d46ee10745d5 /src/video_core
parentGpu: Implement Hardware Interrupt Manager and manage GPU interrupts (diff)
downloadyuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.tar
yuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.tar.gz
yuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.tar.bz2
yuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.tar.lz
yuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.tar.xz
yuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.tar.zst
yuzu-a45643cb3b07e76e73814baf1d472d636dd2cd91.zip
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/gpu.cpp11
-rw-r--r--src/video_core/gpu.h4
2 files changed, 14 insertions, 1 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index 06eb570ab..1fa6770ca 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -95,6 +95,17 @@ void GPU::RegisterEvent(const u32 event_id, const u32 syncpoint_id, const u32 va
events[syncpoint_id].emplace_back(event_id, value);
}
+void GPU::CancelEvent(const u32 event_id, const u32 syncpoint_id, const u32 value) {
+ auto it = events[syncpoint_id].begin();
+ while (it != events[syncpoint_id].end()) {
+ if (value == it->value) {
+ it = events[syncpoint_id].erase(it);
+ return;
+ }
+ it++;
+ }
+}
+
u32 RenderTargetBytesPerPixel(RenderTargetFormat format) {
ASSERT(format != RenderTargetFormat::NONE);
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h
index c3e5311fa..4805a5fbc 100644
--- a/src/video_core/gpu.h
+++ b/src/video_core/gpu.h
@@ -171,7 +171,9 @@ public:
u32 GetSyncpointValue(const u32 syncpoint_id) const;
- void RegisterEvent(const u32 event_id, const u32 sync_point_id, const u32 value);
+ void RegisterEvent(const u32 event_id, const u32 syncpoint_id, const u32 value);
+
+ void CancelEvent(const u32 event_id, const u32 syncpoint_id, const u32 value);
/// Returns a const reference to the GPU DMA pusher.
const Tegra::DmaPusher& DmaPusher() const;