summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/nvdrv/core/nvmap.cpp6
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_query_cache.cpp2
3 files changed, 3 insertions, 7 deletions
diff --git a/src/core/hle/service/nvdrv/core/nvmap.cpp b/src/core/hle/service/nvdrv/core/nvmap.cpp
index f811b66a0..9b21da6b1 100644
--- a/src/core/hle/service/nvdrv/core/nvmap.cpp
+++ b/src/core/hle/service/nvdrv/core/nvmap.cpp
@@ -41,22 +41,18 @@ NvResult NvMap::Handle::Alloc(Flags pFlags, u32 pAlign, u8 pKind, u64 pAddress)
41 size = Common::AlignUp(size, YUZU_PAGESIZE); 41 size = Common::AlignUp(size, YUZU_PAGESIZE);
42 aligned_size = Common::AlignUp(size, align); 42 aligned_size = Common::AlignUp(size, align);
43 address = pAddress; 43 address = pAddress;
44
45 // TODO: pin init
46
47 allocated = true; 44 allocated = true;
48 45
49 return NvResult::Success; 46 return NvResult::Success;
50} 47}
51 48
52NvResult NvMap::Handle::Duplicate(bool internal_session) { 49NvResult NvMap::Handle::Duplicate(bool internal_session) {
50 std::scoped_lock lock(mutex);
53 // Unallocated handles cannot be duplicated as duplication requires memory accounting (in HOS) 51 // Unallocated handles cannot be duplicated as duplication requires memory accounting (in HOS)
54 if (!allocated) [[unlikely]] { 52 if (!allocated) [[unlikely]] {
55 return NvResult::BadValue; 53 return NvResult::BadValue;
56 } 54 }
57 55
58 std::scoped_lock lock(mutex);
59
60 // If we internally use FromId the duplication tracking of handles won't work accurately due to 56 // If we internally use FromId the duplication tracking of handles won't work accurately due to
61 // us not implementing per-process handle refs. 57 // us not implementing per-process handle refs.
62 if (internal_session) { 58 if (internal_session) {
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
index 908e60191..32e45540d 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
@@ -270,12 +270,12 @@ NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::vector<u8>
270 } 270 }
271 } 271 }
272 272
273 gpu.PushGPUEntries(bind_id, std::move(entries));
274 params.fence.id = channel_syncpoint; 273 params.fence.id = channel_syncpoint;
275 274
276 u32 increment{(flags.fence_increment.Value() != 0 ? 2 : 0) + 275 u32 increment{(flags.fence_increment.Value() != 0 ? 2 : 0) +
277 (flags.increment_value.Value() != 0 ? params.fence.value : 0)}; 276 (flags.increment_value.Value() != 0 ? params.fence.value : 0)};
278 params.fence.value = syncpoint_manager.IncrementSyncpointMaxExt(channel_syncpoint, increment); 277 params.fence.value = syncpoint_manager.IncrementSyncpointMaxExt(channel_syncpoint, increment);
278 gpu.PushGPUEntries(bind_id, std::move(entries));
279 279
280 if (flags.fence_increment.Value()) { 280 if (flags.fence_increment.Value()) {
281 if (flags.suppress_wfi.Value()) { 281 if (flags.suppress_wfi.Value()) {
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 393bbdf37..7cb02631c 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -66,7 +66,7 @@ void QueryPool::Reserve(std::pair<VkQueryPool, u32> query) {
66} 66}
67 67
68QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_, 68QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_,
69 Scheduler& scheduler_) 69 Scheduler& scheduler_)
70 : QueryCacheBase{rasterizer_}, device{device_}, scheduler{scheduler_}, 70 : QueryCacheBase{rasterizer_}, device{device_}, scheduler{scheduler_},
71 query_pools{ 71 query_pools{
72 QueryPool{device_, scheduler_, QueryType::SamplesPassed}, 72 QueryPool{device_, scheduler_, QueryType::SamplesPassed},