Browse Source

Merge pull request #3627 from ReinUsesLisp/layered-view

gl_texture_cache: Attach view instead of base texture for layered attchments
nce_cpp
Mat M 6 years ago
committed by GitHub
parent
commit
da605928d3
  1. 4
      src/video_core/renderer_opengl/gl_texture_cache.cpp

4
src/video_core/renderer_opengl/gl_texture_cache.cpp

@ -411,14 +411,13 @@ CachedSurfaceView::~CachedSurfaceView() = default;
void CachedSurfaceView::Attach(GLenum attachment, GLenum target) const { void CachedSurfaceView::Attach(GLenum attachment, GLenum target) const {
ASSERT(params.num_levels == 1); ASSERT(params.num_levels == 1);
const GLuint texture = surface.GetTexture();
if (params.num_layers > 1) { if (params.num_layers > 1) {
// Layered framebuffer attachments // Layered framebuffer attachments
UNIMPLEMENTED_IF(params.base_layer != 0); UNIMPLEMENTED_IF(params.base_layer != 0);
switch (params.target) { switch (params.target) {
case SurfaceTarget::Texture2DArray: case SurfaceTarget::Texture2DArray:
glFramebufferTexture(target, attachment, texture, params.base_level);
glFramebufferTexture(target, attachment, GetTexture(), params.base_level);
break; break;
default: default:
UNIMPLEMENTED(); UNIMPLEMENTED();
@ -427,6 +426,7 @@ void CachedSurfaceView::Attach(GLenum attachment, GLenum target) const {
} }
const GLenum view_target = surface.GetTarget(); const GLenum view_target = surface.GetTarget();
const GLuint texture = surface.GetTexture();
switch (surface.GetSurfaceParams().target) { switch (surface.GetSurfaceParams().target) {
case SurfaceTarget::Texture1D: case SurfaceTarget::Texture1D:
glFramebufferTexture1D(target, attachment, view_target, texture, params.base_level); glFramebufferTexture1D(target, attachment, view_target, texture, params.base_level);

Loading…
Cancel
Save