diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 57af6cdd1..022561d43 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |||
| @@ -679,6 +679,14 @@ void CachedSurface::LoadGLBuffer() { | |||
| 679 | case SurfaceParams::SurfaceTarget::Texture2D: | 679 | case SurfaceParams::SurfaceTarget::Texture2D: |
| 680 | // Pass impl. to the fallback code below | 680 | // Pass impl. to the fallback code below |
| 681 | break; | 681 | break; |
| 682 | case SurfaceParams::SurfaceTarget::Texture2DArray: | ||
| 683 | for (std::size_t index = 0; index < params.depth; ++index) { | ||
| 684 | const std::size_t offset{index * copy_size}; | ||
| 685 | morton_to_gl_fns[static_cast<std::size_t>(params.pixel_format)]( | ||
| 686 | params.width, params.block_height, params.height, gl_buffer.data() + offset, | ||
| 687 | copy_size, params.addr + offset); | ||
| 688 | } | ||
| 689 | break; | ||
| 682 | default: | 690 | default: |
| 683 | LOG_CRITICAL(HW_GPU, "Unimplemented tiled load for target={}", | 691 | LOG_CRITICAL(HW_GPU, "Unimplemented tiled load for target={}", |
| 684 | static_cast<u32>(params.target)); | 692 | static_cast<u32>(params.target)); |