summaryrefslogtreecommitdiff
path: root/src/video_core/engines
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2020-02-16 09:51:37 -0400
committerGravatar Fernando Sahmkow2020-04-22 11:36:06 -0400
commitda8f17715dbdc7eec92f5f0c11c968a51b86cab4 (patch)
treea1604f3cf9abe9128d26834f9c68161ecab6e204 /src/video_core/engines
parentTexture Cache: Implement OnCPUWrite and SyncGuestHost (diff)
downloadyuzu-da8f17715dbdc7eec92f5f0c11c968a51b86cab4.tar.gz
yuzu-da8f17715dbdc7eec92f5f0c11c968a51b86cab4.tar.xz
yuzu-da8f17715dbdc7eec92f5f0c11c968a51b86cab4.zip
GPU: Refactor synchronization on Async GPU
Diffstat (limited to 'src/video_core/engines')
-rw-r--r--src/video_core/engines/maxwell_3d.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index baa74ad4c..2298a6273 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -403,9 +403,13 @@ void Maxwell3D::ProcessQueryGet() {
403 "Units other than CROP are unimplemented"); 403 "Units other than CROP are unimplemented");
404 404
405 switch (regs.query.query_get.operation) { 405 switch (regs.query.query_get.operation) {
406 case Regs::QueryOperation::Release: 406 case Regs::QueryOperation::Release: {
407 StampQueryResult(regs.query.query_sequence, regs.query.query_get.short_query == 0); 407 rasterizer.FlushCommands();
408 rasterizer.SyncGuestHost();
409 const u64 result = regs.query.query_sequence;
410 StampQueryResult(result, regs.query.query_get.short_query == 0);
408 break; 411 break;
412 }
409 case Regs::QueryOperation::Acquire: 413 case Regs::QueryOperation::Acquire:
410 // TODO(Blinkhawk): Under this operation, the GPU waits for the CPU to write a value that 414 // TODO(Blinkhawk): Under this operation, the GPU waits for the CPU to write a value that
411 // matches the current payload. 415 // matches the current payload.