summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_texture_cache.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-06-02 01:12:00 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-06-21 02:38:33 +0200
commit60bf761afbb125abd324e4b798d18a1611b5777b (patch)
tree5321727de0bf56eacd99a3917573f36f28197ba4 /src/video_core/renderer_opengl/gl_texture_cache.h
parenttexture_cache uncompress-compress is untopological. (diff)
downloadyuzu-60bf761afbb125abd324e4b798d18a1611b5777b.tar
yuzu-60bf761afbb125abd324e4b798d18a1611b5777b.tar.gz
yuzu-60bf761afbb125abd324e4b798d18a1611b5777b.tar.bz2
yuzu-60bf761afbb125abd324e4b798d18a1611b5777b.tar.lz
yuzu-60bf761afbb125abd324e4b798d18a1611b5777b.tar.xz
yuzu-60bf761afbb125abd324e4b798d18a1611b5777b.tar.zst
yuzu-60bf761afbb125abd324e4b798d18a1611b5777b.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.h b/src/video_core/renderer_opengl/gl_texture_cache.h
index 0b333e9e3..f514f137c 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.h
+++ b/src/video_core/renderer_opengl/gl_texture_cache.h
@@ -13,6 +13,7 @@
#include "common/common_types.h"
#include "video_core/engines/shader_bytecode.h"
+#include "video_core/renderer_opengl/gl_device.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/texture_cache/texture_cache.h"
@@ -129,7 +130,8 @@ private:
class TextureCacheOpenGL final : public TextureCacheBase {
public:
- explicit TextureCacheOpenGL(Core::System& system, VideoCore::RasterizerInterface& rasterizer);
+ explicit TextureCacheOpenGL(Core::System& system, VideoCore::RasterizerInterface& rasterizer,
+ const Device& device);
~TextureCacheOpenGL();
protected:
@@ -141,9 +143,14 @@ protected:
void ImageBlit(View src_view, View dst_view,
const Tegra::Engines::Fermi2D::Config& copy_config) override;
+ void BufferCopy(Surface src_surface, Surface dst_surface) override;
+
private:
+ GLuint FetchPBO(std::size_t buffer_size);
+
OGLFramebuffer src_framebuffer;
OGLFramebuffer dst_framebuffer;
+ std::unordered_map<u32, OGLBuffer> copy_pbo_cache;
};
} // namespace OpenGL