From 777af04f4ae1e08f544d50b6f45f40f25c9f61b3 Mon Sep 17 00:00:00 2001 From: wwylele Date: Sun, 22 Jul 2018 17:31:02 +0300 Subject: [PATCH] gl_rasterizer: ignore mipmap setting for cubemap before we implements it --- src/video_core/renderer_opengl/gl_rasterizer.cpp | 15 +++++++++++++++ src/video_core/renderer_opengl/gl_rasterizer.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 475d2a88b..8730d1fe9 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -1583,6 +1583,21 @@ void RasterizerOpenGL::SamplerInfo::SyncWithConfig( PicaToGL::TextureMinFilterMode(min_filter, mip_filter)); } + // TODO(wwylele): remove this block once mipmap for cube is implemented + bool new_supress_mipmap_for_cube = + config.type == Pica::TexturingRegs::TextureConfig::TextureCube; + if (supress_mipmap_for_cube != new_supress_mipmap_for_cube) { + supress_mipmap_for_cube = new_supress_mipmap_for_cube; + if (new_supress_mipmap_for_cube) { + // HACK: use mag filter converter for min filter because they are the same anyway + glSamplerParameteri(s, GL_TEXTURE_MIN_FILTER, + PicaToGL::TextureMagFilterMode(min_filter)); + } else { + glSamplerParameteri(s, GL_TEXTURE_MIN_FILTER, + PicaToGL::TextureMinFilterMode(min_filter, mip_filter)); + } + } + if (wrap_s != config.wrap_s) { wrap_s = config.wrap_s; glSamplerParameteri(s, GL_TEXTURE_WRAP_S, PicaToGL::WrapMode(wrap_s)); diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index f890c1049..c225d62b7 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h @@ -76,6 +76,9 @@ private: u32 lod_min; u32 lod_max; s32 lod_bias; + + // TODO(wwylele): remove this once mipmap for cube is implemented + bool supress_mipmap_for_cube = false; }; /// Structure that the hardware rendered vertices are composed of