-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Android : Extreme slow on battle Scene in Gundam vs Gundam Next Plus #1319
Comments
I guess ame thing happen with Full Metal Alchemist Brotherhood... |
@ketkul , what is the FPS then ? Different story in iOS ? BTW , for GvGnp , it seems it used lots of time in sceGeEnqueue and 10 times draw call when compared to other games |
It looks like the issue might be the very large number of drawcalls, that game does 2200 flushes (actual OpenGL drawcalls, we combine PSP drawcalls into bigger ones) while dragon ball below does 110. The iphone now seems to have drivers that are reasonably good at doing lots of drawcalls. It might be possible to improve this but it might also be very difficult, it depends. |
I see. The GvGNP battle scenes is pretty complex and there are few other robot moving around when compared with DBZ which is quite static in background . Wondering what optimization has been done for the iphone PowerVR driver ... |
I obtained a frame log dump, and here's the explanation for the massive number of drawcalls, causing slowness on devices that don't like that: Basically, the game flips the culling direction back and forth almost between each triangle strip. This causes us to do lots of tiny draw calls, as we can't combine the strips into a big draw call currently as we normally do. But, as we do translate these to indexed triangle lists anyway, we could take the culling direction into account when doing that, and then we could skip flushing the draw list between. This would be a bit complicated though and I don't want to do it until I find more games that use the same weird drawing technique... |
If I remember right, hashing really slows this down. In GPU/GLES/TransformPipeline.cpp: // Cannot cache vertex data with morph enabled.
bool useCache = g_Config.bVertexCache && !(lastVType_ & GE_VTYPE_MORPHCOUNT_MASK);
// Also avoid caching when software skinning.
if (g_Config.bSoftwareSkinning && (lastVType_ & GE_VTYPE_WEIGHT_MASK))
useCache = false; What if you add after that:
Does this improve, or hurt performance? Also, how is performance nowadays with the vertex decoder jit? -[Unknown] |
Let me try this out now. |
Humm if vertexCountInDrawCalls < 100 , little bit hurt performance .Vertex Decoder JIT is pretty helping in improvemance |
Best speed can be obtained if texture coord speedhack is used as well as multithreading . |
So, how does this run on e.g. a Sony Xperia Z now? If the performance hit is no longer massive, it may not make sense to try to optimize the culling thing (especially since such optimizations could negatively impact games that use a lot of vertices and don't swap culling, potentially.) -[unknown] |
I'll test it out again . |
Does #6855 improve this at all? -[Unknown] |
@QWEmct overclocking the host system is something the OS should do, it's not the responsibility of the emulator to tune your hardware. As for the property you underlined, it's for taking screenshots only. I don't think it's worth investigating whether taking screenshots can be made faster. |
@Bigpet , If to disconnect it, sepia on all device,at the time of screen turn To you all the same, it is necessary to fasten the cpu and gpu functions. |
Well it's general OS readback for either screenshots or blitting back onto the screen. Again though, if it's causing problems then maybe you should actually tell us which problems those are instead of just posting an image with something underlined. |
@Bigpet ,this offer. What to fix individually, settings for the device. I can create the list of errors if you don't know them. |
This issue is still replicable on the latest ppsspp version using htc one m8, Quad-core 2.3 GHz Snapdragon 801, Adreno 330 with 450 mhz, 32 pipelines.. sad. still running on 5-15 fps on battleplay. |
With the new "inner interpreter" loop, it would be relatively easy to special-case and fix this. I'll leave that for 1.7.0 though. |
The special casing has been done in #10973. Combined with the performance improvements in 1.6.x, it's likely this game will perform a lot better. I'm going to close - if it's still performing badly in the latest git builds, please feel free to comment what the difference in speed from 1.6.3 to latest git and your settings. It might be a new issue, though, depending on what year it is when you're reading this comment. -[Unknown] |
Gundam VS Gundam Next Plus now running smooth even in Mali-450 Octacore 1.4GHz with frameskipping off set & emulated cpu clockspeed set to 60 or 70. |
https://youtu.be/ZVOAI_fhQeg |
I think most of the android users may come across this game which the battle scene is extremely slow , always under 10-15fps without frameskipping .However , iOS is different especially iPhone 5 ,it almost reach 50-60 fps .
Just wonder what is the bottleneck ? Understood GPU is different but not expecting significant performance difference... .
My device is Sony Xperia Z running Snapdragon S4 Pro , 1.5G CPU and 400Mhz GPU
The text was updated successfully, but these errors were encountered: