summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-04-08 22:20:25 -0300
committerGravatar ReinUsesLisp2020-04-08 22:20:25 -0300
commit6c8f9f40d71ad19a2f39ac466fd25a44e5a43696 (patch)
treea9713b0399d25d28dd56f5a3f81689fcf2e71f15
parentMerge pull request #3624 from Kewlan/fix-sl-sr-position (diff)
downloadyuzu-6c8f9f40d71ad19a2f39ac466fd25a44e5a43696.tar.gz
yuzu-6c8f9f40d71ad19a2f39ac466fd25a44e5a43696.tar.xz
yuzu-6c8f9f40d71ad19a2f39ac466fd25a44e5a43696.zip
gl_texture_cache: Attach view instead of base texture for layered attachments
This way we are not ignoring the base layer of the current texture.
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index 36590a6d0..0b4d999d7 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -411,14 +411,13 @@ CachedSurfaceView::~CachedSurfaceView() = default;
411void CachedSurfaceView::Attach(GLenum attachment, GLenum target) const { 411void CachedSurfaceView::Attach(GLenum attachment, GLenum target) const {
412 ASSERT(params.num_levels == 1); 412 ASSERT(params.num_levels == 1);
413 413
414 const GLuint texture = surface.GetTexture();
415 if (params.num_layers > 1) { 414 if (params.num_layers > 1) {
416 // Layered framebuffer attachments 415 // Layered framebuffer attachments
417 UNIMPLEMENTED_IF(params.base_layer != 0); 416 UNIMPLEMENTED_IF(params.base_layer != 0);
418 417
419 switch (params.target) { 418 switch (params.target) {
420 case SurfaceTarget::Texture2DArray: 419 case SurfaceTarget::Texture2DArray:
421 glFramebufferTexture(target, attachment, texture, params.base_level); 420 glFramebufferTexture(target, attachment, GetTexture(), params.base_level);
422 break; 421 break;
423 default: 422 default:
424 UNIMPLEMENTED(); 423 UNIMPLEMENTED();
@@ -427,6 +426,7 @@ void CachedSurfaceView::Attach(GLenum attachment, GLenum target) const {
427 } 426 }
428 427
429 const GLenum view_target = surface.GetTarget(); 428 const GLenum view_target = surface.GetTarget();
429 const GLuint texture = surface.GetTexture();
430 switch (surface.GetSurfaceParams().target) { 430 switch (surface.GetSurfaceParams().target) {
431 case SurfaceTarget::Texture1D: 431 case SurfaceTarget::Texture1D:
432 glFramebufferTexture1D(target, attachment, view_target, texture, params.base_level); 432 glFramebufferTexture1D(target, attachment, view_target, texture, params.base_level);