aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/vi/vi.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2024-01-06 23:58:04 -0500
committerLiam <byteslice@airmail.cc>2024-01-07 21:47:41 -0500
commit1d7fb4cffbc42de1a60fe4fdf4fa60601fe872bb (patch)
treec2f6495907b42ade4416c51c2781734d4a3e4313 /src/core/hle/service/vi/vi.cpp
parentbeab2c3fc75497ced4f94ff55b3dfcd4979ea999 (diff)
vi: connect vsync event handle lifetime to application display service interface
Diffstat (limited to 'src/core/hle/service/vi/vi.cpp')
-rw-r--r--src/core/hle/service/vi/vi.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index 29471abfec..39d5be90d0 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -808,6 +808,12 @@ private:
rb.Push(result);
return;
}
+ if (vsync_event_fetched) {
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(VI::ResultPermissionDenied);
+ return;
+ }
+ vsync_event_fetched = true;
IPC::ResponseBuilder rb{ctx, 2, 1};
rb.Push(ResultSuccess);
@@ -901,6 +907,7 @@ private:
Nvnflinger::Nvnflinger& nvnflinger;
Nvnflinger::HosBinderDriverServer& hos_binder_driver_server;
+ bool vsync_event_fetched{false};
};
static bool IsValidServiceAccess(Permission permission, Policy policy) {