ppsspp icon indicating copy to clipboard operation
ppsspp copied to clipboard

Texture Bug in Dissidia Final Fantasy on GPU PowerVR

Open zminhquanz opened this issue 9 years ago • 45 comments

Here this picture , when I turn on buffered render is have this issue , when i switch to non-buffered render is have not issue @hrydgard screenshot_2015-05-11-11-32-43 1

zminhquanz avatar May 13 '15 00:05 zminhquanz

are u using iphone on ppsspp

asbel123 avatar May 13 '15 05:05 asbel123

@asbel123 i'm using Iphone and Zenfone using Intel SOC ( using PowerVR GPU )

zminhquanz avatar May 13 '15 09:05 zminhquanz

What is the issue? Missing characters? It's not clear to me how it should look from the picture.. I don't play that game.

hrydgard avatar May 13 '15 12:05 hrydgard

@hrydgard yes , it's missing character when i switch Buffered Render , when i switch back to non-buffered render , it's normal . The issue is appear on GPU PowerVR, another GPU , Mali is not happen this . I'm using Iphone and ASUS Zenfone ( Intel SOC using PowerVR GPU )

zminhquanz avatar May 13 '15 14:05 zminhquanz

just get samsung galaxy s6 edge u wont ppsspp problem i got lots of game fullspeed u can do 5x resoultion no slow down try final fantasy 7 crisi core is full speed i didnt put frameskip and try dissdia final fantasy it will be fullspeed.

powervr gpu is good its a problem is opengl version problems and iphone has lots of bugs and its no easy to hack new firmware now. andriod is best version to play ppsspp no problem.

asbel123 avatar May 14 '15 05:05 asbel123

@asbel123 but , it's picture i'm screenshot is using ASUS Zenfone ( Intel using PowerVR GPU )

zminhquanz avatar May 14 '15 13:05 zminhquanz

@asbel123 i dont have this problem on iphone 6. both OS are good but iOS is optimized and no need to much hardware like android.

Samsung S6 still can not match Nvidia Tegra k1 perfomance in dolphin emu. most games run slow and overheat alot because Mali diver are slow and limit cpu.

source: @ sonicadvance

eddiebrook avatar May 14 '15 16:05 eddiebrook

I think texture bug ( see picture on the top page ) is happen on Intel chip (I'm using ASUS Zenfone and Intel SOC using PowerVR ) @eddiebrook

zminhquanz avatar May 15 '15 13:05 zminhquanz

It would be great if someone using a PowerVR GPU on an ARM device could confirm whether this is Intel specific (maybe some SSE3-only issue?) or PowerVR specific.

-[Unknown]

unknownbrackets avatar May 16 '15 19:05 unknownbrackets

screenshot_2015-05-17-19-39-29 My Tablet is using GPU PowerVR SGX544 ( Mediatek MT8389T) like as ASUS Zenfone is also this bug like that @hrydgard @unknownbrackets

zminhquanz avatar May 17 '15 13:05 zminhquanz

I think excactly problem is on GPU PowerVR SGX544 , other GPU don't have this issue

zminhquanz avatar May 17 '15 13:05 zminhquanz

Work fine ON iPhone 5S PowerVR (serie 6) G6430

Using latest build

image

brujo5 avatar May 17 '15 16:05 brujo5

@brujo5 you using non-buffered rendering or Buffered Rendering ?

zminhquanz avatar May 18 '15 03:05 zminhquanz

Bufered rendering 3x.

brujo5 avatar May 18 '15 05:05 brujo5

@brujo5 so , i update the latest build , this bug isn't resolved and fixed , i think PowerVR on Android and IOS is different

zminhquanz avatar May 18 '15 06:05 zminhquanz

and i also think , PowerVR SGX544 ( Series 5 ) have this bug , but on Series 6 it isn't have this bug

zminhquanz avatar May 18 '15 06:05 zminhquanz

Or intel soc specific issue

Ask for help on forum maybe someone have an diferent device/OS whit the same GPU PowerVR SGX544

brujo5 avatar May 18 '15 14:05 brujo5

Same issue on my Android device with PowerVR SGX544

I tried to hack the graphics config using GLTools 1.99 (XDA) by enabling stencil hacks, and it works, i mean the characters have appeared on gameplay. However, i got weird missing artifacts on each model (including environment) especially in BR mode.

For example: Cloud's buster sword still appears on front.. just like the old issue on OpenGL 2.0 PCs until version 0.7.* (sorry, screenshot not yet available)

Test Specs: ASUS Zenfone C (Zenfone 4-like phone) PowerVR SGX 544MP2 OpenGL ES 1.12@2701748

jcchikikomori avatar May 27 '16 08:05 jcchikikomori

Sounds like this is a bug specific to all PowerVR SGX 544 devices (not just x86.) It's hard to tell exactly what's going wrong, and I'm not sure exactly what "stencil hacks" do.

The character is drawn with:

Texture L0: 0x08d6ed80 (256x256) Stencil test - pass if (80 & 80) ALWAYS (a & 80) Depth test - pass if src >= dst Alpha test - pass if (a & ff) > (04 & ff) Alpha blend mode - add: src.a, 1.0 - src.a (the buffer is 5551.)

So, it shouldn't matter what stencil is. The depth values are pretty far apart too. The texture's alpha is usually full, so it shouldn't even be an alpha testing problem.

Bloom is also applied after drawing the character, with the character.

This also renders properly with stencil to alpha disabled.

-[Unknown]

unknownbrackets avatar May 28 '16 02:05 unknownbrackets

If the driver is really silly, maybe it would help to set the stencil test mask to 0xFF if operation is ALWAYS? Otherwise I don't really know what to do about it..

hrydgard avatar May 28 '16 10:05 hrydgard

Yeah, that's probably a good idea, #8779.

-[Unknown]

unknownbrackets avatar May 28 '16 16:05 unknownbrackets

it's may fix this issue missing texture in other game like Dissidia 012

zminhquanz avatar May 29 '16 00:05 zminhquanz

Gonna test this tonight with device default configs, and then the GLTools hacks.. i'll give a comparison screenshot later

jcchikikomori avatar May 29 '16 12:05 jcchikikomori

Here's what i got, i am using the latest build (v1.2.2-592-gda34e31):

PS: I am using Dissidia playable demo, since they have same issues on 012 duodecim version

But before that, here's my current GLTools config.. the GL_STENCIL_INDEX8 hack was the thing on my PowerVR SGX 544 issue.. if it's activated, the game would be playable in BR but still missing artifacts screenshot_2016-05-29-20-46-12

Now, Here's the result if GL_STENCIL_INDEX8 was disabled. Even the overall preset disabled (device default values) screenshot_2016-05-29-20-44-06

Here's interesting when GL_STENCIL_INDEX8 was activated screenshot_2016-05-29-20-47-50 screenshot_2016-05-29-20-47-54 screenshot_2016-05-29-20-48-14 screenshot_2016-05-29-20-48-23

Therefore, the issue was still there

jcchikikomori avatar May 29 '16 12:05 jcchikikomori

Just to mention - GLTools basically lies to PPSSPP and the only thing you'll usually get out of it is worse performance. We may have detection code to use glMapBuffer only when your device supports it natively and it's fast, and use other methods when it's not there. If it lies and says you have it, we might use it even when it's the slow-mo way.

Just to confirm, this still happens with all GLTools hacks disabled, right? I assume that's what you mean by "device default values".

I'm not sure what that setting does. I suspect it's causing depth not to work since the device already natively supports packed depth/stencil buffers, e.g. making us not pick packed even when that's the fastest and best option for your device.

To confirm, can you look at an "adb logcat" with the settings that way? If it says "Creating 480 x 272 FBO using separate stencil", then that's what's happening.

-[Unknown]

unknownbrackets avatar May 29 '16 14:05 unknownbrackets

@unknownbrackets unfortunately, my device seems that it doesn't fetch main logs in my logcat

jcchikikomori avatar May 29 '16 23:05 jcchikikomori

@jccultima123 summary , if you don't using GLtools to have fix the issues that

zminhquanz avatar May 30 '16 11:05 zminhquanz

Finally, i can fetch the logcat now, so i begin some tests earlier and here's what i got @unknownbrackets

I/NativeApp( 4939): Creating 480 x 272 FBO using DEPTH24_STENCIL8

This is the result when GlTools' emulating GL_STENCIL_INDEX8 hack

Here's the full logcat details: https://gist.github.com/jccultima123/a9a9e5e51b97cf78f573178a2a99ceff

jcchikikomori avatar Jun 01 '16 22:06 jcchikikomori

@jccultima123 other a few game have a similarly bug , but i forget that name of this game

zminhquanz avatar Jun 07 '16 14:06 zminhquanz

@zminhquanz Crisis Core FFVII has also this issue a little bit but playable unlike Dissidia.

jcchikikomori avatar Jun 07 '16 22:06 jcchikikomori