GS Percentage
#31
Sorry. I could have posted some additional note:

From pcsx2.GS.cpp
Quote:// --------------------------------------------------------------------------------------
// gsFrameSkip
// --------------------------------------------------------------------------------------
// This function regulates the frameskipping status of the GS. Our new frameskipper for
// 0.9.7 is a very simple logic pattern compared to the old mess. The goal now is to provide
// the most compatible and efficient frameskip, instead of doing the adaptive logic of
// 0.9.6. This is almost a necessity because of how many games treat the GS: they upload
// great amounts of data while rendering 2 frames at a time (using double buffering), and
// then use a simple pageswap to display the contents of the second frame for that vsync.
// (this approach is mostly seen on interlace games; progressive games less so)
// The result is that any skip pattern besides a fully consistent 2on,2off would reuslt in
// tons of missing geometry, rendering frameskip useless.
//
// So instead we use a simple "always skipping" or "never skipping" logic.
//
// EE vs MTGS:
// This function does not regulate frame limiting, meaning it does no stalling. Stalling
// functions are performed by the EE, which itself uses thread sleep logic to avoid spin
// waiting as much as possible (maximizes CPU resource availability for the GS).
Reply

Sponsored links

#32
Well that explains the explanation and my old experiences which were apparently for 0.9.6
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#33
(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.

Can you please stop saying that when you don't understand the subject?


@gregory, That's interesting. Sadly there doesn't seem to be a good way to have smooth frameskipping.
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply
#34
@Nobbs - you have way more recent experience with it than me. I think I recall you saying you try to run some games on your older crappy PCs. Does frameskip do anything useful and does it break stuff nowadays since my experience is obviously outdated.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#35
(11-13-2015, 04:36 PM)Blyss Sarania Wrote: @Nobbs - you have way more recent experience with it than me. I think I recall you saying you try to run some games on your older crappy PCs. Does frameskip do anything useful and does it break stuff nowadays since my experience is obviously outdated.

It causes stuttering to all hell, but I've never seen missing geometry or anything of that nature.
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply
#36
So what do I gain now if I enable frameskip? Is it only some UI lag due to displaying a new image in the container? (So should this reduce the UI%?)

Is there any gain for the gs thread except this frame upload line that is skipped?
Code:
m_dev->Present(m_wnd->GetClientRect().fit(m_aspectratio), m_shader);

Obviously in consists of some parts. GetClientrRect() is probably cheap and fit() as well.
Does the shader do a lot? Do we remove some load from the gpu?
Is the shader what we can enable by external shaders?
Reply
#37
BTW that comment suggests that the number to draw and number to skip boxes in the UI would be deprecated to me. How are they not?
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#38
(11-13-2015, 04:41 PM)Blyss Sarania Wrote: BTW that comment suggests that the number to draw and number to skip boxes in the UI would be deprecated to me. How are they not?

No I think now they mean what they are supposed to mean. Before you got garbage if you did not set multiples of two for both boxes.
Reply
#39
// The result is that any skip pattern besides a fully consistent 2on,2off would reuslt in
// tons of missing geometry, rendering frameskip useless.

But I can set 1, 3 in there(I just tried and it applies and saves).

Am I misunderstanding something?
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#40
(11-13-2015, 04:40 PM)willkuer Wrote: So what do I gain now if I enable frameskip? Is it only some UI lag due to displaying a new image in the container? (So should this reduce the UI%?)

Is there any gain for the gs thread except this frame upload line that is skipped?
Code:
m_dev->Present(m_wnd->GetClientRect().fit(m_aspectratio), m_shader);

Obviously in consists of some parts. GetClientrRect() is probably cheap and fit() as well.
Does the shader do a lot? Do we remove some load from the gpu?
Is the shader what we can enable by external shaders?

It removes a single big (big as lots of pixels) draw to the GPU. But honestly it is free for me or close enough. You need to monitor GPU load from an external tools, but it would remains mostly stable (in mean)
Reply




Users browsing this thread: 1 Guest(s)