summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-05-21 18:48:28 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-06-21 02:38:33 +0200
commitea1525dab1bf7e9e56471b6d5fd50014bfeb4f96 (patch)
treea44c1ad2957fa0f0239c59b3447e6f574063992a /src/video_core/renderer_opengl/gl_rasterizer.cpp
parenttexture_cache: Handle uncontinuous surfaces. (diff)
downloadyuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.tar
yuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.tar.gz
yuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.tar.bz2
yuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.tar.lz
yuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.tar.xz
yuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.tar.zst
yuzu-ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index d613cb1dc..8fe115aec 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -822,8 +822,14 @@ TextureBufferUsage RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, c
unit.sampler = sampler_cache.GetSampler(texture.tsc);
if (const auto view{texture_cache.GetTextureSurface(texture, entry)}; view) {
- view->ApplySwizzle(texture.tic.x_source, texture.tic.y_source, texture.tic.z_source,
- texture.tic.w_source);
+ if (view->GetSurfaceParams().IsBuffer()) {
+ // Record that this texture is a texture buffer.
+ texture_buffer_usage.set(bindpoint);
+ } else {
+ // Apply swizzle to textures that are not buffers.
+ view->ApplySwizzle(texture.tic.x_source, texture.tic.y_source, texture.tic.z_source,
+ texture.tic.w_source);
+ }
state.texture_units[current_bindpoint].texture = view->GetTexture();
} else {
// Can occur when texture addr is null or its memory is unmapped/invalid