GS Percentage
#21
FWIW, GS speed is limited by CPU emulation of the PS2 command / the driver / the CPU-GPU transfers. The only way to use the GPU is to increase "internal resolution" to N times native.

Of course, disabling some rendering (either a part or the full frame) will reduce the GS load.

Vu cycle stealing will (sometimes) shortcut the frame rendering (for example reuse a previous/precomputed background frame) so it can also reduce GS load.
Reply

Sponsored links

#22
(11-13-2015, 02:08 PM)gregory Wrote: FWIW, GS speed is limited by CPU emulation of the PS2 command / the driver / the CPU-GPU transfers. The only way to use the GPU is to increase "internal resolution" to N times native.

Of course, disabling some rendering (either a part or the full frame) will reduce the GS load.

Vu cycle stealing will (sometimes) shortcut the frame rendering (for example reuse a previous/precomputed background frame) so it can also reduce GS load.

That's why,  i suggest or request frameskip based on high  gs% load only.
Im sorry i often misstype because im using cellphone...Y( '',)Y
Reply
#23
(11-13-2015, 12:42 PM)Blyss Sarania Wrote: Frameskip in PCSX2 works in a weird as ***** way. It actually will likely reduce CPU load as I understand it. It's skipping emulating the frame itself so that means GS and (possibly) VU calculations which happen on the CPU are skipped too. That's also why it breaks approximately everything. At least that's how I understand it.

i didn't know this. I thought the whole frame/ all textures or whatever are drawn but never find their way to the screen (as like less vsyncs but same speed). And that this could possibly slightly reduce load on the gpu. So that's why I didn't understand how that could help.


But actually if we have such an algorithm we would be in the position to count internal frame rates, or? If we really can skip internal frames we should also be able to count them...
Reply
#24
(11-13-2015, 03:02 PM)willkuer Wrote: i didn't know this. I thought the whole frame/ all textures or whatever are drawn but never find their way to the screen (as like less vsyncs but same speed). And that this could possibly slightly reduce load on the gpu. So that's why I didn't understand how that could help.


But actually if we have such an algorithm we would be in the position to count internal frame rates, or? If we really can skip internal frames we should also be able to count them...

That's only my best explanation but I don't think that's the whole story. I do know it's not the simple "don't draw the frame with the gpu" type of frameskipping we are used to because the way the PS2 works(I'm guessing things like texture cache and such) means that isn't possible.

I guess if you wanna know really well ask ref or someone.

As gregory said the only real thing you can do to affect actual GPU usage is make changes to resolution. Also with any remotely modern(and I do mean remotely) GPU at least at native PCSX2 is super light so that type of frameskipping would not be effective anyway.

Also that's a good question but yeah my understanding comes from an explanation I saw one of the devs post LONG ago and isn't the greatest so I'm not really in a position to know.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#25
I need to check the full code (when I got a grep at home) but it seems willkuer is right. I can see this code on GSdx
Code:
    if(m_frameskip)
    {
        return;
    }

    // present

    m_dev->Present(m_wnd->GetClientRect().fit(m_aspectratio), m_shader);

Hum, present will require a sync of the driver. If you don't present the data, you will keep the GPU out-of-sync. Potentially the driver will be able to optimize some parts. (For example if you clean the RT after the draw, maybe the draw won't appears, but I don't think the driver can do it). Potentially it is just a placebo effect. Or GS have additional time to amortized the extra drawing (free time after drawing a frame but before starting the next one).
Reply
#26
Well I don't know who wrote it but I do know some years back I saw an explanation that it was more than that. It was in response to someone wanting to know why frameskipping in PCSX2 breaks the hell out of so many games. But that's about all I remember.

Anyway if it's literally just skipping the draw then why DOES it break things?
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#27
(11-13-2015, 03:36 PM)Blyss Sarania Wrote: Well I don't know who wrote it but I do know some years back I saw an explanation that it was more than that. It was in response to someone wanting to know why frameskipping in PCSX2 breaks the hell out of so many games. But that's about all I remember.

Anyway if it's literally just skipping the draw then why DOES it break things?

it break things because frameskip is forced to skip high ee %  or  high vu% load.  if we skipping "only"  on high gs% load. it much safer skipping.
Im sorry i often misstype because im using cellphone...Y( '',)Y
Reply
#28
(11-13-2015, 03:58 PM)billyash Wrote: it break things because frameskip is forced to skip high ee %  or  high vu% load.  if we skipping "only"  on high gs% load. it much safer skipping.

That has nothing to do with it directly. It's correlated at best, but it's not the cause. I'm looking for a code level explanation, not an observation.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#29
I never saw artifacts. I only just got choppy results. But as I always thought it is completely useless I played only a few times with it.

Do you know examples of broken games?
Reply
#30
Well I do know a some break, but as for specific examples all I can offer is Ar tonelico 1. Especially the main world map which is the only 3d in the game. With skipping on any combination it alternates between current and 1ish second old frames in a somewhat seizure inducing fashion. At least it did in 0.9.6. I don't feel like testing right now to see if it still does.

Anyway it's pretty well known it only works well for a few games, causes stuttering in most, and breaks some. By break I mean render pretty much unusable graphically. At least that's the information I've observed here on the forum. It also says so in the UI.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply




Users browsing this thread: 1 Guest(s)