Open solarmystic opened 10 years ago
Soul Calibur is also affected by this issue it seems.
(Observe the text in the red box)
Working as expected with v0.9.1-2043-g99d4ef1 https://github.com/hrydgard/ppsspp/commit/99d4ef1e0679f2f89fa4160269f15bf2eaa36983 (smoothed letters when Linear Filtering is selected)
Broken in v0.9.1-2045-ga3f2fcf https://github.com/hrydgard/ppsspp/commit/a3f2fcfd8f7897d1543e213f68096ecfd8d3a2c4 (pixellated letters even with Linear Texture Filtering selected):
Why would the game use alpha testing for video? Well, it might be "enabled" but not really doing anything. I guess we could try harder to detect those cases.
Or just give up and let filtering break things at 2x.... which ain't great.
-[Unknown]
That would probably be the same reason as always - alpha testing and color testing are free on the PSP so games sometimes just leave them on by accident, probably just forgetting to disable the state, as there's no harm anyway if you draw things that don't match the test criterion.
But yeah there are more checks we can do to rule out effects of these, and use the result of those checks for the linear filter enabling...
It broke MGS PW too. Changing texture filter doesn't make any difference....
Broke the filtering in MGS PW or broke the game? That's some ambiguous wording.
Uh....sorry...I meant it broke the filtering....my mistake! :)
How's the status of this? I recall there were related changes recently.
-[Unknown]
The filtering works in FMVs now, but forcing Linear Filtering still does nothing for the pixelated ingame fonts. Same thing for Soul Calibur Broken Destiny.
I dont know have you guys tryed it, but in MGS when I get in-game and exit fullscreen and enter fullscreen again the filtering works.....
Does using something more like this help?
if (g_Config.iTexFiltering == LINEARFMV && g_iNumVideos > 0 && (entry.dim & 0xF) >= 9) {
magFilt |= 1;
minFilt |= 1;
}
if (g_Config.iTexFiltering == LINEAR && !gstate.isColorTestEnabled()) {
if (!gstate.isAlphaTestEnabled() || entry.GetAlphaStatus() == TexCacheEntry::STATUS_ALPHA_FULL || !gstate.isTextureAlphaUsed()) {
magFilt |= 1;
minFilt |= 1;
}
}
-[Unknown]
@unknownbrackets Just adding those lines in? Or do I have to replace any prior lines with these ones?
In any case, appending those lines to the current master version of the file does not resolve the issue. Lnear Texture Filtering is still broken for the ingame fonts in Tekken 6.
Replacing the if block that starts with g_Config.iTexFiltering == LINEAR
with those. But, these should apply separately anyway. That means we can't safely force linear filtering because it's inventing pixels that may have other alpha values than the game expects.
Or we could make it ignore that and people will complain about the green outlines around characters or etc. in some games again.
-[Unknown]
@unknownbrackets Unfortunately, https://github.com/hrydgard/ppsspp/issues/6088 doesn't resolve the issue in Tekken 6 for the pixelated fonts. Setting it to Linear still causes it to be pixelated.
Again, a reminder of what it used to look like with Linear Filtering set:-
Seems to be the only straggler though. Other games have functioning Linear Filtering now when forced in the options.. (like Crisis Core etc.)
Well, I think that means it's using alpha test in a way that we can't know that we can safely ignore.
-[Unknown]
Testing with latest build. Same status:
So, thinking about this, I guess what we could do is use sampler objects (GL3.3+ / GLES3) to bind the texture in two slots, and then do BOTH nearest and linear.
That way, we could do color and alpha testing based on the nearest value, but still output the linear value. I think that's more or less staying true to the goals of higher render resolutions.
We could take this further, and when upscaling (not not texture replacements? not sure...), we could bind the original texture to the second slot. This would again allow for using nearest which would give us better chances of color tests and alpha tests working correctly.
-[Unknown]
Yeah, that's definitely a possibility, although the mix between smooth filtering inside the solid regions coupled with the hard edges against the surroundings might look odd. Also, if the test is done against an ugly color it would still be able to bleed into the solid region.
Auto Max Quality possible help this?
Issue is as stated above. Responsible commit is https://github.com/hrydgard/ppsspp/commit/4567acaf928b3660a1aa67100635d9e27ece1290 by @DanyalZia merged into master with v0.9.1-2045-ga3f2fcf https://github.com/hrydgard/ppsspp/commit/a3f2fcfd8f7897d1543e213f68096ecfd8d3a2c4 by @hrydgard
Setting texture filtering to Linear or Linear on FMV doesn't work anymore for Tekken 6 since then, both ingame and during FMVs:
(click on the screenshots to observe the issue clearly)
FMV (pixellated even after Linear Filtering is forced in the graphics menu):![screen00192](https://f.cloud.github.com/assets/4345150/1458648/217efe74-438d-11e3-8302-685d2b091e38.jpg)
Ingame menu (letters remain pixellated even when Linear Filtering is forced in the Graphics menu):![linfail2045](https://f.cloud.github.com/assets/4345150/1458653/7dbe6012-438d-11e3-92bf-b3d2d9ca056f.JPG)
Last working revision is v0.9.1-2043-g99d4ef1 https://github.com/hrydgard/ppsspp/commit/99d4ef1e0679f2f89fa4160269f15bf2eaa36983
FMV (smoothed out as expected):![screen00193](https://f.cloud.github.com/assets/4345150/1458655/915faf54-438d-11e3-9fe2-b9e897686731.jpg)
Ingame menu (letters are smoothed out as expected with Linear Filtering)![works2043](https://f.cloud.github.com/assets/4345150/1458651/6aba3fa4-438d-11e3-80f3-8109fded8fb7.JPG)
I suspect other games may be affected by this commit too. Will add them into the issue report if and when I find them.
Tested on the following machine: