diff options
| author | 2018-10-28 18:58:07 -0400 | |
|---|---|---|
| committer | 2018-10-28 19:00:49 -0400 | |
| commit | dde3094058358cfeaa436b4324adda305b4570bf (patch) | |
| tree | f93b34ebf4907a4377b6eb2900a3364adda7bd32 | |
| parent | Fixed mipmap block autosizing algorithm (diff) | |
| download | yuzu-dde3094058358cfeaa436b4324adda305b4570bf.tar.gz yuzu-dde3094058358cfeaa436b4324adda305b4570bf.tar.xz yuzu-dde3094058358cfeaa436b4324adda305b4570bf.zip | |
Fixed black textures, pixelation and we no longer require to auto-generate mipmaps
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index b2250e6be..81b86b7a5 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |||
| @@ -878,6 +878,8 @@ CachedSurface::CachedSurface(const SurfaceParams& params) | |||
| 878 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_MAG_FILTER, GL_LINEAR); | 878 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
| 879 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | 879 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
| 880 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | 880 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
| 881 | glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_MAX_LEVEL, | ||
| 882 | params.max_mip_level - 1); | ||
| 881 | if (params.max_mip_level == 1) { | 883 | if (params.max_mip_level == 1) { |
| 882 | glTexParameterf(SurfaceTargetToGL(params.target), GL_TEXTURE_LOD_BIAS, 1000.0); | 884 | glTexParameterf(SurfaceTargetToGL(params.target), GL_TEXTURE_LOD_BIAS, 1000.0); |
| 883 | } | 885 | } |
| @@ -1196,20 +1198,6 @@ void CachedSurface::UploadGLTexture(GLuint read_fb_handle, GLuint draw_fb_handle | |||
| 1196 | 1198 | ||
| 1197 | for (u32 i = 0; i < params.max_mip_level; i++) | 1199 | for (u32 i = 0; i < params.max_mip_level; i++) |
| 1198 | UploadGLMipmapTexture(i, read_fb_handle, draw_fb_handle); | 1200 | UploadGLMipmapTexture(i, read_fb_handle, draw_fb_handle); |
| 1199 | |||
| 1200 | if (params.max_mip_level == 1) { | ||
| 1201 | const GLuint target_tex = texture.handle; | ||
| 1202 | OpenGLState cur_state = OpenGLState::GetCurState(); | ||
| 1203 | const auto& old_tex = cur_state.texture_units[0]; | ||
| 1204 | SCOPE_EXIT({ | ||
| 1205 | cur_state.texture_units[0] = old_tex; | ||
| 1206 | cur_state.Apply(); | ||
| 1207 | }); | ||
| 1208 | cur_state.texture_units[0].texture = target_tex; | ||
| 1209 | cur_state.texture_units[0].target = SurfaceTargetToGL(params.target); | ||
| 1210 | cur_state.Apply(); | ||
| 1211 | glGenerateMipmap(SurfaceTargetToGL(params.target)); | ||
| 1212 | } | ||
| 1213 | } | 1201 | } |
| 1214 | 1202 | ||
| 1215 | RasterizerCacheOpenGL::RasterizerCacheOpenGL() { | 1203 | RasterizerCacheOpenGL::RasterizerCacheOpenGL() { |