From 29782273ecf2d679a9e5043fdc15152e1294625f Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 29 Sep 2018 11:53:18 -0400 Subject: gl_rasterizer_cache: Add check for array rendering to cubemap texture. --- src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/video_core') diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 8abbe0113..249b0061a 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -1061,6 +1061,14 @@ Surface RasterizerCacheOpenGL::RecreateSurface(const Surface& old_surface, const u32 byte_stride{old_params.rt.layer_stride * (SurfaceParams::GetFormatBpp(old_params.pixel_format) / CHAR_BIT)}; + if (old_params.rt.array_mode != 1) { + // TODO(bunnei): This is used by Breath of the Wild, I'm not sure how to implement this + // yet (array rendering used as a cubemap texture). + LOG_CRITICAL(HW_GPU, "Unhandled rendertarget array_mode {}", old_params.rt.array_mode); + UNREACHABLE(); + return new_surface; + } + // This seems to be used for render-to-cubemap texture const std::size_t size_with_mipmaps{new_params.SizeInBytes2DWithMipmap()}; ASSERT_MSG(size_with_mipmaps == byte_stride, "Unexpected"); -- cgit v1.2.3