aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-06-01 22:15:55 -0400
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-06-20 21:38:33 -0300
commit3809041c24a6ebea009923c14fb36aa1031bf188 (patch)
treeeb998770ed0255ec52649b5f619ddc18550c3afd /src/video_core/renderer_opengl
parent60bf761afbb125abd324e4b798d18a1611b5777b (diff)
texture_cache: Optimize GetSurface and use references on functions that don't change a surface.
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp6
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.h6
2 files changed, 6 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index bddb15cb1..71f6888c6 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -450,7 +450,7 @@ Surface TextureCacheOpenGL::CreateSurface(GPUVAddr gpu_addr, const SurfaceParams
return std::make_shared<CachedSurface>(gpu_addr, params);
}
-void TextureCacheOpenGL::ImageCopy(Surface src_surface, Surface dst_surface,
+void TextureCacheOpenGL::ImageCopy(Surface& src_surface, Surface& dst_surface,
const VideoCommon::CopyParams& copy_params) {
if (!support_info.depth_color_image_copies) {
const auto& src_params = src_surface->GetSurfaceParams();
@@ -471,7 +471,7 @@ void TextureCacheOpenGL::ImageCopy(Surface src_surface, Surface dst_surface,
copy_params.depth);
}
-void TextureCacheOpenGL::ImageBlit(View src_view, View dst_view,
+void TextureCacheOpenGL::ImageBlit(View& src_view, View& dst_view,
const Tegra::Engines::Fermi2D::Config& copy_config) {
const auto& src_params{src_view->GetSurfaceParams()};
const auto& dst_params{dst_view->GetSurfaceParams()};
@@ -528,7 +528,7 @@ void TextureCacheOpenGL::ImageBlit(View src_view, View dst_view,
is_linear ? GL_LINEAR : GL_NEAREST);
}
-void TextureCacheOpenGL::BufferCopy(Surface src_surface, Surface dst_surface) {
+void TextureCacheOpenGL::BufferCopy(Surface& src_surface, Surface& dst_surface) {
const auto& src_params = src_surface->GetSurfaceParams();
const auto& dst_params = dst_surface->GetSurfaceParams();
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.h b/src/video_core/renderer_opengl/gl_texture_cache.h
index f514f137c..dda3bf715 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.h
+++ b/src/video_core/renderer_opengl/gl_texture_cache.h
@@ -137,13 +137,13 @@ public:
protected:
Surface CreateSurface(GPUVAddr gpu_addr, const SurfaceParams& params) override;
- void ImageCopy(Surface src_surface, Surface dst_surface,
+ void ImageCopy(Surface& src_surface, Surface& dst_surface,
const VideoCommon::CopyParams& copy_params) override;
- void ImageBlit(View src_view, View dst_view,
+ 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;
+ void BufferCopy(Surface& src_surface, Surface& dst_surface) override;
private:
GLuint FetchPBO(std::size_t buffer_size);