summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2023-08-22 17:44:03 +0200
committerGravatar Fernando Sahmkow2023-09-23 23:05:30 +0200
commitbf0d6b8806b7367a17bbeb2bb59f4bcba1fb1375 (patch)
tree2012a0e626ed675a2962e843693fc93be899fede /src/video_core/renderer_vulkan
parentQuery Cache: Simplify Prefix Sum compute shader (diff)
downloadyuzu-bf0d6b8806b7367a17bbeb2bb59f4bcba1fb1375.tar.gz
yuzu-bf0d6b8806b7367a17bbeb2bb59f4bcba1fb1375.tar.xz
yuzu-bf0d6b8806b7367a17bbeb2bb59f4bcba1fb1375.zip
Query Cache: Fix behavior in Normal Accuracy
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_query_cache.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 825e1a72e..2cc007716 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -1365,6 +1365,11 @@ bool QueryCacheRuntime::HostConditionalRenderingCompareValues(VideoCommon::Looku
1365 return false; 1365 return false;
1366 } 1366 }
1367 1367
1368 const bool is_gpu_high = Settings::IsGPULevelHigh();
1369 if (!is_gpu_high && impl->device.GetDriverID() == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
1370 return true;
1371 }
1372
1368 for (size_t i = 0; i < 2; i++) { 1373 for (size_t i = 0; i < 2; i++) {
1369 is_null[i] = !is_in_ac[i] && check_value(objects[i]->address); 1374 is_null[i] = !is_in_ac[i] && check_value(objects[i]->address);
1370 } 1375 }
@@ -1376,6 +1381,11 @@ bool QueryCacheRuntime::HostConditionalRenderingCompareValues(VideoCommon::Looku
1376 return true; 1381 return true;
1377 } 1382 }
1378 } 1383 }
1384
1385 if (!is_gpu_high) {
1386 return true;
1387 }
1388
1379 if (!is_in_bc[0] && !is_in_bc[1]) { 1389 if (!is_in_bc[0] && !is_in_bc[1]) {
1380 // Both queries are in query cache, it's best to just flush. 1390 // Both queries are in query cache, it's best to just flush.
1381 return true; 1391 return true;