diff options
| author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-01-06 23:02:27 -0300 |
|---|---|---|
| committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-01-30 19:10:35 -0300 |
| commit | 704744bb72972f99fa992e286b3de5967b48af37 (patch) | |
| tree | d3e7f51187daf4bba5f93df6cb72503961d210d0 /src/video_core/renderer_opengl/gl_rasterizer.cpp | |
| parent | 3bbaa98c78da8a45227fcd7abd82532f6f49851b (diff) | |
gl_rasterizer_cache: Move swizzling to textures instead of state
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index ee313cb2f..79d16d1f3 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -1022,11 +1022,11 @@ void RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, const Shader& s if (surface != nullptr) { unit.texture = entry.IsArray() ? surface->TextureLayer().handle : surface->Texture().handle; - unit.target = entry.IsArray() ? surface->TargetLayer() : surface->Target(); - unit.swizzle.r = MaxwellToGL::SwizzleSource(texture.tic.x_source); - unit.swizzle.g = MaxwellToGL::SwizzleSource(texture.tic.y_source); - unit.swizzle.b = MaxwellToGL::SwizzleSource(texture.tic.z_source); - unit.swizzle.a = MaxwellToGL::SwizzleSource(texture.tic.w_source); + const GLenum target = entry.IsArray() ? surface->TargetLayer() : surface->Target(); + surface->UpdateSwizzle(texture.tic.x_source, texture.tic.y_source, texture.tic.z_source, + texture.tic.w_source); + unit.texture = handle; + unit.target = target; } else { // Can occur when texture addr is null or its memory is unmapped/invalid unit.texture = 0; |
