diff --git a/src/Debugger.cpp b/src/Debugger.cpp index f64abce2..d55091a3 100644 --- a/src/Debugger.cpp +++ b/src/Debugger.cpp @@ -650,12 +650,12 @@ void Debugger::_drawFrameBuffer(FrameBuffer * _pBuffer) blitParams.dstY1 = dstCoord[3]; blitParams.dstWidth = wnd.getScreenWidth(); blitParams.dstHeight = wnd.getScreenHeight() + wnd.getHeightOffset(); - blitParams.filter = config.generalEmulation.enableHybridFilter > 0 ? + const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight; + blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ? textureParameters::FILTER_LINEAR : - textureParameters::FILTER_NEAREST; + textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled blitParams.mask = blitMask::COLOR_BUFFER; blitParams.tex[0] = pBufferTexture; - const bool downscale = blitParams.srcWidth >= blitParams.dstWidth && blitParams.srcHeight >= blitParams.dstHeight; blitParams.combiner = downscale ? CombinerInfo::get().getTexrectDownscaleCopyProgram() : CombinerInfo::get().getTexrectUpscaleCopyProgram(); blitParams.readBuffer = readBuffer; diff --git a/src/FrameBuffer.cpp b/src/FrameBuffer.cpp index ff232494..a35cab31 100644 --- a/src/FrameBuffer.cpp +++ b/src/FrameBuffer.cpp @@ -1026,12 +1026,12 @@ void FrameBufferList::_renderScreenSizeBuffer() blitParams.dstY1 = dstCoord[3]; blitParams.dstWidth = screenWidth; blitParams.dstHeight = screenHeight + wndHeightOffset; - blitParams.filter = config.generalEmulation.enableHybridFilter > 0 ? + const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight; + blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ? textureParameters::FILTER_LINEAR : - textureParameters::FILTER_NEAREST; + textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled blitParams.mask = blitMask::COLOR_BUFFER; blitParams.tex[0] = pBufferTexture; - const bool downscale = blitParams.srcWidth >= blitParams.dstWidth && blitParams.srcHeight >= blitParams.dstHeight; blitParams.combiner = downscale ? CombinerInfo::get().getTexrectDownscaleCopyProgram() : CombinerInfo::get().getTexrectUpscaleCopyProgram(); blitParams.readBuffer = pFilteredBuffer->m_FBO; @@ -1354,12 +1354,10 @@ void FrameBufferList::OverscanBuffer::draw(u32 _fullHeight, bool _PAL) blitParams.dstHeight = wnd.getScreenHeight() + wnd.getHeightOffset(); blitParams.mask = blitMask::COLOR_BUFFER; blitParams.tex[0] = m_pTexture; - const bool downscale = config.frameBufferEmulation.nativeResFactor != 1 && - blitParams.srcWidth >= blitParams.dstWidth && - blitParams.srcHeight >= blitParams.dstHeight; - blitParams.filter = downscale || config.generalEmulation.enableHybridFilter == 0 ? - textureParameters::FILTER_NEAREST : - textureParameters::FILTER_LINEAR; + const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight; + blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ? + textureParameters::FILTER_LINEAR : + textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled if (config.frameBufferEmulation.copyDepthToMainDepthBuffer != 0) { blitParams.tex[1] = m_pDepthTexture; blitParams.combiner = downscale ? CombinerInfo::get().getTexrectColorAndDepthDownscaleCopyProgram() : @@ -1531,12 +1529,10 @@ void FrameBufferList::renderBuffer() blitParams.dstHeight = m_overscan.getBufferHeight(); blitParams.mask = blitMask::COLOR_BUFFER; blitParams.tex[0] = pBufferTexture; - const bool downscale = config.frameBufferEmulation.nativeResFactor != 1 && - blitParams.srcWidth >= blitParams.dstWidth && - blitParams.srcHeight >= blitParams.dstHeight; - blitParams.filter = downscale || config.generalEmulation.enableHybridFilter == 0 ? - textureParameters::FILTER_NEAREST : - textureParameters::FILTER_LINEAR; + const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight; + blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ? + textureParameters::FILTER_LINEAR : + textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled if (config.frameBufferEmulation.copyDepthToMainDepthBuffer != 0) { blitParams.tex[1] = pBuffer->m_pDepthTexture; blitParams.combiner = downscale ? CombinerInfo::get().getTexrectColorAndDepthDownscaleCopyProgram() :