CXWorld/CapFrameX

PresentMode in overlay

georgi-iovchev opened this issue · 8 comments

Hi,
Is it possible to add PresentMode (from PresentMon) somehow in the overlay?
Or even more - to be integrated in the json captures and in the analysis.

Use case is the following. I use CX to do some benchmarks and optimizations and I am testing different scenarios - fullscreen/windowed/FSO/MPO/vsync/gsync... that may have impact on the present mode chosen by the app/dwm. And besides the resulting frame times I would like to know what was the present mode. Currently I need to manually check in presentmon csv in order to see it. (Or other way for me is to just run separate instance of presentmon to capture few seconds just to see the mode in the file).
It would be best if I can see it in the overlay before i run the benchmark.

I know it is possible to use RTSS additional overlay plugin to add prsentmon as datasource and display the mode in the overlay, but that is something that I don't want to do, because it may have the "observer effect" (changing the present mode, and probably also performance because of the overlay) .
CX overlay as far as I understand is actually not "overlay" but inprint via RTSS so it would not have the "observer effect", so that is the reason for my request.

I saw some past requests/discussions about it, I just hoped few years later this feature can can get into CX :)

Regards,
Georgi

We already use the PresentMode in order to define if a game was running windowed, exclusive fullscreen or borderless, you can see that in the system info on the Analysis page and it's also included in the header of our json file. It's just not the raw PresentMode info but what we derived from it.

We could technically add the raw PresentationMode info to the overlay but that would just mean that we read it from PresentMon and send it to RTSS to display it so I don't see how that would be any different fromdirectly accessing PresentMon from RTSS.

Aha, I see it now you are correct, thank you.
Forgive me for wasting your time, I am bit new to CX :)

image
image
It shows a bit simplified value, I hoped for the raw :)

On the question how it would be different. In RTSS PresentMon is accessible only from overlay editor, by adding it as data source. But the overlays from the overlay editor cannot be shown in exclusive fullscreen mode, and your overlay is shown :)

It shows a bit simplified value, I hoped for the raw :)

It isn't mere simplified value but an understandable and meaningful way to show PresentMon's presentation modes to users.

Here is the analysis that supports CapFrameX Presentation Mode categorization (I think it's worth reading):

#114

Thanks @RodroG-85 for putting it here. I read it (admit not fully)
I accept the value shown and stored in cx json it's more user friendly and it does the job. Although, I am not sure what happens if the mode change during a capture run, for example you do alt-tab back and forth to the game.

I see you are fighting very similar problems that I am and need the tool to easy your work. So that is why i did this "feature request", but probably it is not going in.

You're welcome @georgi-iovchev

Yes, it's a long and dense reading, I must admit it.

Although, I am not sure what happens if the mode change during a capture run, for example you do alt-tab back and forth to the game.

I'd recommend using the same display presentation mode during the capture run and avoiding alt-tab switching to get any reliable and valid benchmark.

I agree that real-time monitoring and displaying the current presentation mode through the RTSS's overlay can be interesting for streaming and video gameplay purposes, for example. However, when performing benchmarks, the presentation mode should be the same during your capture run.

Of course, it is interesting to compare game performance metrics using different presentation modes, such as FSE vs. FSO vs. Borderless Windowed. However, this is only possible and worth it for DX11 games.

FSE (usually Hardware Legacy Flip mode) is not used anymore or tweakable on DX12 games. Turning off full-screen optimizations via the game executable compatibility settings only works on some DX9+ and DX11 games. Most recent DX12 games only follow the fullscreen optimized presentation, borderless windowed or windowed modes.

My interests currently is simracing. And most sim titles are DX11. In particular Assetto Corsa Competizione - I started a long project for myself, because I got tired of sh*tty random performance behavior and I wanted to explain myself so much things and I got deeper into PresentMon/CapFrameX/and many more interesting stuff.
But that's another discussion, probably not for github, may be we can connect outside and chat :)

On the question how it would be different. In RTSS PresentMon is accessible only from overlay editor, by adding it as data source. But the overlays from the overlay editor cannot be shown in exclusive fullscreen mode, and your overlay is shown :)

This statement is a nonsense and just plain not true.