|
@@ -878,6 +878,8 @@ CachedSurface::CachedSurface(const SurfaceParams& params)
|
|
|
glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
|
glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
|
|
glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
|
glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
|
|
glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
|
glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
|
|
|
|
+ glTexParameteri(SurfaceTargetToGL(params.target), GL_TEXTURE_MAX_LEVEL,
|
|
|
|
|
+ params.max_mip_level - 1);
|
|
|
if (params.max_mip_level == 1) {
|
|
if (params.max_mip_level == 1) {
|
|
|
glTexParameterf(SurfaceTargetToGL(params.target), GL_TEXTURE_LOD_BIAS, 1000.0);
|
|
glTexParameterf(SurfaceTargetToGL(params.target), GL_TEXTURE_LOD_BIAS, 1000.0);
|
|
|
}
|
|
}
|
|
@@ -1196,20 +1198,6 @@ void CachedSurface::UploadGLTexture(GLuint read_fb_handle, GLuint draw_fb_handle
|
|
|
|
|
|
|
|
for (u32 i = 0; i < params.max_mip_level; i++)
|
|
for (u32 i = 0; i < params.max_mip_level; i++)
|
|
|
UploadGLMipmapTexture(i, read_fb_handle, draw_fb_handle);
|
|
UploadGLMipmapTexture(i, read_fb_handle, draw_fb_handle);
|
|
|
-
|
|
|
|
|
- if (params.max_mip_level == 1) {
|
|
|
|
|
- const GLuint target_tex = texture.handle;
|
|
|
|
|
- OpenGLState cur_state = OpenGLState::GetCurState();
|
|
|
|
|
- const auto& old_tex = cur_state.texture_units[0];
|
|
|
|
|
- SCOPE_EXIT({
|
|
|
|
|
- cur_state.texture_units[0] = old_tex;
|
|
|
|
|
- cur_state.Apply();
|
|
|
|
|
- });
|
|
|
|
|
- cur_state.texture_units[0].texture = target_tex;
|
|
|
|
|
- cur_state.texture_units[0].target = SurfaceTargetToGL(params.target);
|
|
|
|
|
- cur_state.Apply();
|
|
|
|
|
- glGenerateMipmap(SurfaceTargetToGL(params.target));
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
RasterizerCacheOpenGL::RasterizerCacheOpenGL() {
|
|
RasterizerCacheOpenGL::RasterizerCacheOpenGL() {
|