mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-14 15:00:30 +02:00
SoftGPU: Only take the 1:1 sprite shortcut with nearest filtering
DrawSprite samples texel centers, but the GE's sprite UV planes usually land slightly off them, which bilinear filtering shows: on most sprite sizes every pixel blends its neighbors (gpu/probe exp87). Bilinear sprites now go through the plane path. Gallery Fake's dump becomes bit exact. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
85d788db06
commit
01c879be14
1 file changed
+2
@@ -531,6 +531,8 @@ bool RectangleFastPath(const VertexData &v0, const VertexData &v1, BinManager &b
|
||||
bool coord_check = true;
|
||||
if (state.enableTextures) {
|
||||
state_check = state_check && NoClampOrWrap(state, v0.texturecoords.uv()) && NoClampOrWrap(state, v1.texturecoords.uv());
|
||||
// DrawSprite samples texel centers, but bilinear 1:1 sprites don't land on them (gpu/probe exp87).
|
||||
state_check = state_check && !state.minFilt && !state.magFilt;
|
||||
coord_check = (xdiff == udiff || xdiff == -udiff) && (ydiff == vdiff || ydiff == -vdiff);
|
||||
}
|
||||
// This doesn't work well with offset drawing, see #15876. Through never has a subpixel offset.
|
||||
|
||||
Reference in new issue
Block a user