From 91602de7f27e391c8e322a2670ef9d50a64f7517 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 16 Oct 2018 16:51:53 -0400 Subject: rasterizer_cache: Refactor to support in-order flushing. --- src/video_core/renderer_opengl/gl_rasterizer_cache.h | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_rasterizer_cache.h') diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h index 39fd7cd75..77d925250 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h @@ -819,28 +819,20 @@ struct hash { namespace OpenGL { -class CachedSurface final { +class CachedSurface final : public RasterizerCacheObject { public: CachedSurface(const SurfaceParams& params); - VAddr GetAddr() const { + VAddr GetAddr() const override { return params.addr; } - std::size_t GetSizeInBytes() const { + std::size_t GetSizeInBytes() const override { return cached_size_in_bytes; } - void Flush() { - // There is no need to flush the surface if it hasn't been modified by us. - if (!dirty) - return; + void Flush() override { FlushGLBuffer(); - dirty = false; - } - - void MarkAsDirty() { - dirty = true; } const OGLTexture& Texture() const { @@ -868,7 +860,6 @@ private: SurfaceParams params; GLenum gl_target; std::size_t cached_size_in_bytes; - bool dirty = false; }; class RasterizerCacheOpenGL final : public RasterizerCache { -- cgit v1.2.3