hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.34k stars 2.18k forks source link

Fragment Shader Generator Issue #2261

Closed ghost closed 11 years ago

ghost commented 11 years ago

CPU:omap3630 GPU: PowerVR SGX530
GAME: Hatsune Miku Project Diva Extend

0.76-264 build screenshot_2013_06_15_10_43_54

0.76-265------current build screenshot_2013_06_15_10_32_46

one commit between 264-265? i'm not sure https://github.com/hrydgard/ppsspp/commit/3a769bb0477e32c89a776ff3094f51cdfa6758d9

unknownbrackets commented 11 years ago

Can you turn on server reporting (it's under developer atm) and reproduce it? It should hopefully log an error here:

http://report.ppsspp.org/temp/recent/kind/39 (it actually logs the GPU info as well.)

Maybe it's already there, what's the game id - ULJM05472? If so, no, not there yet:

http://report.ppsspp.org/temp/recent/game/ULJM05472_1.01

-[Unknown]

ghost commented 11 years ago

@unknownbrackets i have already turn on server reporting,but no GPU error info..

Update: Nexus4 works fine. Strange

unknownbrackets commented 11 years ago

I guess that means it's rounding wrong and hiding it. Arg.

-[Unknown]

dbz400 commented 11 years ago

Nexus 4 works fine i believe it is using Qualcomm 8064 which doing well . Looks like PowerVR chips or Mali sometimes may get issue with graphic rendering .

ghost commented 11 years ago

Another issue on Qualcomm 8064: alpha test aaa

dbz400 commented 11 years ago

Yes , i also double checked there is alpha issue on Qualcomm 8064 on this game .Interesting on windows platform , it is okay as shown below

1

unknownbrackets commented 11 years ago

If you change the rounding function to not use 0.5 (e.g. always round up or down) does it help? The 0.5 was needed for Popolocrois on my hardware, though...

-[Unknown]

dbz400 commented 11 years ago

I will compile one with rounding not to use 0.5 to see if it fixes the issues on Android. btw , what hardware you are using that need extra 0.5 ?

ghost commented 11 years ago

I have tired change "return floor(x * 255.0 + 0.5)" to (x* 255.0), but problems remain.

unknownbrackets commented 11 years ago

My Adreno and my iPhone needed it. It's needed because it's using floor(), so you add 0.5 so that that rounds up when >= 0.5.

For example, without it, 9.999999 would become 9, not 10.

-[Unknown]

dbz400 commented 11 years ago

Humm iphone should be using PowerVR SGX chips as well that should be same as @openglhk one that use SGX530

Freetos commented 11 years ago

I think both color and alpha tests are the problem, look at Spinout: spinout-reals

cv47 commented 11 years ago

i found a temp fix for this issue...but i'm not sure that will broke any games... Tested on PowerVR 531 and Tegra2 device

unknownbrackets commented 11 years ago

It would probably make it a lot slower, but does it improve anything to change the color/alpha value to highp, if that's even supported?

-[Unknown]

dbz400 commented 11 years ago

Just FYI . The alpha test issue on Adreno 320 using 4.2.2 seems to be fixed . Looks like the newer driver from 4.2.2 fixes it .

dbz400 commented 11 years ago

@openglhk , is latest build still working okay with your PowerVR device ?

ghost commented 11 years ago

@raven02, latest build works fine. How about alpha issue on my Nexus4? i still get black grid on スーパーロボット大戦Z i cant upgrade the android version :(