summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-06-10 14:19:27 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-07-05 21:49:20 +0200
commit0706d633bf7764455082cfdfdc35c14507cb6897 (patch)
tree00f07387d43df3cf85d786af7d9a35233bf2c9d5 /src/video_core
parentAsync GPU: do invalidate as synced operation (diff)
downloadyuzu-0706d633bf7764455082cfdfdc35c14507cb6897.tar
yuzu-0706d633bf7764455082cfdfdc35c14507cb6897.tar.gz
yuzu-0706d633bf7764455082cfdfdc35c14507cb6897.tar.bz2
yuzu-0706d633bf7764455082cfdfdc35c14507cb6897.tar.lz
yuzu-0706d633bf7764455082cfdfdc35c14507cb6897.tar.xz
yuzu-0706d633bf7764455082cfdfdc35c14507cb6897.tar.zst
yuzu-0706d633bf7764455082cfdfdc35c14507cb6897.zip
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/gpu.cpp4
-rw-r--r--src/video_core/gpu.h8
-rw-r--r--src/video_core/gpu_asynch.cpp2
-rw-r--r--src/video_core/gpu_synch.cpp2
4 files changed, 11 insertions, 5 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index c71f0f9bf..086db0e69 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -29,8 +29,8 @@ u32 FramebufferConfig::BytesPerPixel(PixelFormat format) {
UNREACHABLE();
}
-GPU::GPU(Core::System& system, VideoCore::RendererBase& renderer)
- : system{system}, renderer{renderer} {
+GPU::GPU(Core::System& system, VideoCore::RendererBase& renderer, bool is_async)
+ : system{system}, renderer{renderer}, is_async{is_async} {
auto& rasterizer{renderer.Rasterizer()};
memory_manager = std::make_unique<Tegra::MemoryManager>(rasterizer);
dma_pusher = std::make_unique<Tegra::DmaPusher>(*this);
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h
index ab1a4bdd4..18ac3237e 100644
--- a/src/video_core/gpu.h
+++ b/src/video_core/gpu.h
@@ -131,7 +131,7 @@ class MemoryManager;
class GPU {
public:
- explicit GPU(Core::System& system, VideoCore::RendererBase& renderer);
+ explicit GPU(Core::System& system, VideoCore::RendererBase& renderer, bool is_async);
virtual ~GPU();
@@ -184,6 +184,10 @@ public:
}
}
+ bool IsAsync() const {
+ return is_async;
+ }
+
/// Returns a const reference to the GPU DMA pusher.
const Tegra::DmaPusher& DmaPusher() const;
@@ -298,6 +302,8 @@ private:
std::array<std::list<Event>, Service::Nvidia::MaxSyncPoints> events;
std::mutex sync_mutex;
+
+ const bool is_async;
};
#define ASSERT_REG_POSITION(field_name, position) \
diff --git a/src/video_core/gpu_asynch.cpp b/src/video_core/gpu_asynch.cpp
index 7060f9a89..6b6f0f6ec 100644
--- a/src/video_core/gpu_asynch.cpp
+++ b/src/video_core/gpu_asynch.cpp
@@ -11,7 +11,7 @@
namespace VideoCommon {
GPUAsynch::GPUAsynch(Core::System& system, VideoCore::RendererBase& renderer)
- : GPU(system, renderer), gpu_thread{system} {}
+ : GPU(system, renderer, true), gpu_thread{system} {}
GPUAsynch::~GPUAsynch() = default;
diff --git a/src/video_core/gpu_synch.cpp b/src/video_core/gpu_synch.cpp
index 45e43b1dc..d4ead9c47 100644
--- a/src/video_core/gpu_synch.cpp
+++ b/src/video_core/gpu_synch.cpp
@@ -8,7 +8,7 @@
namespace VideoCommon {
GPUSynch::GPUSynch(Core::System& system, VideoCore::RendererBase& renderer)
- : GPU(system, renderer) {}
+ : GPU(system, renderer, false) {}
GPUSynch::~GPUSynch() = default;