summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-02-16 04:10:32 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-02-16 08:13:27 +0100
commitfd62bdf37745bbddd3fe2824d312c9da7c49a3ca (patch)
tree796fbc3e4e283c7933fcfd7dfd495132da95b351 /src/video_core/renderer_opengl
parentMerge pull request #3401 from FernandoS27/synchronization (diff)
downloadyuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.tar
yuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.tar.gz
yuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.tar.bz2
yuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.tar.lz
yuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.tar.xz
yuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.tar.zst
yuzu-fd62bdf37745bbddd3fe2824d312c9da7c49a3ca.zip
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index d4b81cd87..5c1ae1418 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -260,6 +260,13 @@ CachedSurface::~CachedSurface() = default;
void CachedSurface::DownloadTexture(std::vector<u8>& staging_buffer) {
MICROPROFILE_SCOPE(OpenGL_Texture_Download);
+ if (params.IsBuffer()) {
+ glGetNamedBufferSubData(texture_buffer.handle, 0,
+ static_cast<GLsizeiptr>(params.GetHostSizeInBytes()),
+ staging_buffer.data());
+ return;
+ }
+
SCOPE_EXIT({ glPixelStorei(GL_PACK_ROW_LENGTH, 0); });
for (u32 level = 0; level < params.emulated_levels; ++level) {