diff options
author | bunnei <bunneidev@gmail.com> | 2018-08-31 19:24:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-31 19:24:21 +0200 |
commit | 42588493d5ad5d824fc557ac936e64e5e7fd7e44 (patch) | |
tree | d06ab2b0bd2f426a8fb129cea437ed99e29ed5e9 /src/video_core/renderer_opengl/gl_rasterizer.h | |
parent | Implement BC6H_UF16 & BC6H_SF16 (#1092) (diff) | |
parent | gl_rasterizer_cache: Use accurate framebuffer setting for accurate copies. (diff) | |
download | yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.tar yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.tar.gz yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.tar.bz2 yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.tar.lz yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.tar.xz yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.tar.zst yuzu-42588493d5ad5d824fc557ac936e64e5e7fd7e44.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.h')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index 7dd329efe..30045ebff 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h @@ -10,7 +10,11 @@ #include <tuple> #include <utility> #include <vector> + +#include <boost/icl/interval_map.hpp> +#include <boost/range/iterator_range.hpp> #include <glad/glad.h> + #include "common/common_types.h" #include "video_core/engines/maxwell_3d.h" #include "video_core/memory_manager.h" @@ -40,15 +44,16 @@ public: void Clear() override; void NotifyMaxwellRegisterChanged(u32 method) override; void FlushAll() override; - void FlushRegion(Tegra::GPUVAddr addr, u64 size) override; - void InvalidateRegion(Tegra::GPUVAddr addr, u64 size) override; - void FlushAndInvalidateRegion(Tegra::GPUVAddr addr, u64 size) override; + void FlushRegion(VAddr addr, u64 size) override; + void InvalidateRegion(VAddr addr, u64 size) override; + void FlushAndInvalidateRegion(VAddr addr, u64 size) override; bool AccelerateDisplayTransfer(const void* config) override; bool AccelerateTextureCopy(const void* config) override; bool AccelerateFill(const void* config) override; bool AccelerateDisplay(const Tegra::FramebufferConfig& config, VAddr framebuffer_addr, u32 pixel_stride) override; bool AccelerateDrawBatch(bool is_indexed) override; + void UpdatePagesCachedCount(Tegra::GPUVAddr addr, u64 size, int delta) override; /// OpenGL shader generated for a given Maxwell register state struct MaxwellShader { @@ -187,6 +192,9 @@ private: enum class AccelDraw { Disabled, Arrays, Indexed }; AccelDraw accelerate_draw = AccelDraw::Disabled; + + using CachedPageMap = boost::icl::interval_map<u64, int>; + CachedPageMap cached_pages; }; } // namespace OpenGL |