GPU: Force nearest only for the upscaling filter.

So, if we upscale and then apply an effect, we won't use nearest on that
effect.
This commit is contained in:
Unknown W. Brackets 2020-05-16 09:05:53 -07:00
parent d9195c68b3
commit 8a626dffc5

View File

@ -599,7 +599,7 @@ void PresentationCommon::CopyToOutput(OutputFlags flags, int uvRotation, float u
draw_->BindPipeline(postShaderPipeline);
draw_->UpdateDynamicUniformBuffer(&uniforms, sizeof(uniforms));
Draw::SamplerState *sampler = useNearest ? samplerNearest_ : samplerLinear_;
Draw::SamplerState *sampler = useNearest || shaderInfo->isUpscalingFilter ? samplerNearest_ : samplerLinear_;
draw_->BindSamplerStates(0, 1, &sampler);
draw_->BindVertexBuffers(0, 1, &vdata_, &postVertsOffset);
@ -610,9 +610,10 @@ void PresentationCommon::CopyToOutput(OutputFlags flags, int uvRotation, float u
usePostShaderOutput = true;
lastWidth = nextWidth;
lastHeight = nextHeight;
if (shaderInfo->isUpscalingFilter)
useNearest = true;
}
if (isFinalAtOutputResolution && postShaderInfo_.back().isUpscalingFilter)
useNearest = true;
} else {
draw_->UpdateBuffer(vdata_, (const uint8_t *)verts, 0, postVertsOffset, Draw::UPDATE_DISCARD);
}