Topic-Free Mega Thread - v 1.11.2020

Right - which is why I never tried to talk about the actual framenumber itself, but this behavior still exists (though in this case 0.5fps?) I usually don’t enjoy blanket rules when it comes to anything PC-related.

Is it safe to assume that within that game, SK is capable of a perfect framerate here 60fps @ 60hz without dipping above/engaging in v-sync behavior? Wouldn’t it need 59.5, or did I misread what you just said.

“Was” is past tense :slight_smile:

I was speaking about the next-gen console releases :smiley:

They’re still releasing in November? Unless i missed something.

Well, yes and no. It depends on what the desktop refresh rate of Windows would be configured as on Kal’s monitor since he’s running the game in window mode. If it is configured to 60 Hz, then yes, 59.5 would probably be where the V-Sync window kicks in.

If he were running the monitor at 120 Hz then 60 FPS should work as the G-Sync window would stretch up to 120 Hz (so 119.5 would provably be where the additional V-Sync delay would kick in).

Yes, SK is capable of that.

The technical reason for setting framerate below the V-Sync cap has to do with queuing undisplayed frames, letting V-Sync go up to its full frequency normally lets the CPU start working as many as 3 frames ahead of the GPU and a normal limiter does nothing to try and reduce the length of that queue.

Special K’s limiter with a Waitable SwapChain enabled is always checking how many queued frames are undisplayed and will remove queued frames over time to get the render latency down to 0-1 frames.


At least, that’s how it would work if G-Sync played correctly with latency waitable swapchains. Because they’re not fixed-refresh, there’s no reasonable way of counting the number of queued late frames. It’s better to play with G-Sync off, my limiter’s that good :stuck_out_tongue:

I assume so based on your comment? Basically you said that everybody knew the the next-gen consoles were going to be released in November. My reply was about how I didn’t know that, as I thought they were releasing in December, hence why it was news for me and something I learned.

I haven’t kept up-to-date about them at all — something a few months ago just got me to expect a December release for them.

I believe almost all major home consoles for the last couple of console generations have released in November. Switch is the outlier. I think the month is chosen for both Black Friday and Christmas, many do their Christmas shopping as early as November.

Huh? I wouldn’t assume the very latest hardware would be discounted on Black Friday at all, to be honest. But yes, early Christmas purchases makes sense.

What made me assume a December release was probably the “Holiday 2020” release schedule which was initially marketed. Holiday for me is Christmas – not November.

But then Sweden also doesn’t celebrate Thanksgiving so I guess that’s why.

I don’t think new hardware gets discounted for Black Friday, even if South Park suggests otherwise. To my knowledge, Black Friday is partially about getting rid of older stock and it’s the best time to do so (cos Christmas). Probably as a consequence of Black Friday, lots of consumers are going around making their Christmas purchases during November.

Weird, if that delay figure is then correct then that’s absurd for g-sync. No wonder people have been shouting and screaming that g-sync is not inducing only 1-2ms increased delay compared to v-sync off. This has been a long debated thing, especially within blur busters. It would finally make more sense to a lot of players claim that the delay figure is more than 1-2ms depending on game and scenario even when configured properly.

You’ve been finding some interesting things lately since the latency histogram has been added, the driver bugs and OS interactions are so interesting.

Gamers really should disable the Controlled Folder Access of Windows 10…

This here block? It’s Windows 10 blocking the game bar just from accessing the Capture folder it uses to record footage and screenshots to…

A lot of changes today it seems.

  • Ubisoft is rebranding their digital distribution client Uplay to Ubisoft Connect, and their subscription service Uplay+ to Ubisoft+

    • The Ubisoft Connect client is merely a slightly tweaked version of Uplay.
  • EA released the beta for their upcoming Origin replacement, which will be called EA Desktop, while games will be installed in an accompanied EA Games folder.

    • EA Desktop seems to be an entirely new, or at least heavily reworked, client. Much faster and smoother in my testing as well.

    • EA Desktop and Origin is, for now, two separate clients as all games are not migrated over or added to the EA Desktop application. If a game isn’t available in EA Desktop, it can still be installed and launched through the classic Origin client. However both clients can’t be running simultaneously.

  • Syberpunk 2076 was delayed an additional three weeks or so.

  • I learned that apparently next month is when the next-gen consoles gets released.

2 Likes

This is an interesting discovery…

Unreal Engine’s tonemapper does not clamp light values to [0,1]. If I render into Special K’s framebuffer, which allows negative colors, Unreal Engine games have some temporal noise in them from some kind of weird post-process UE does that produces negative colors on pixels that should be black.

I don’t know what to make of this, if I should maybe be trying to rescale the image to move the black point down to where the negative values are, or just clamp things and lose below-black image detail? HDR shows a lot of weird defects in graphics engines and … why am I stuck fixing this stuff? :slight_smile:

Modified sRGB gamma for LDR → HDR image processing purposes.

float3
RemoveSRGBCurve (float3 x)
{
  // Negative values can come back negative after gamma, unlike pow (...).
  x = /* High-Pass filter the input to clip negative values to 0 */
    max ( 0.0, x );

  // Piecewise is more accurate, but the fitted power-law curve will not
  //   create near-black noise when expanding LDR -> HDR
//#define ACCURATE_AND_NOISY
#ifdef  ACCURATE_AND_NOISY
  return ( x < 0.04045f ) ?
          (x / 12.92f)    : // High-pass filter x or gamma will return negative!
    pow ( (x + 0.055f) / 1.055f, 2.4f );
#else
  // This suffers the same problem as piecewise; x * x * x allows negative color.
  return max (0.0, x * (x * (x * 0.305306011 + 0.682171111) + 0.012522878));
#endif
}

And, as a result of all this:

New visualization shows color values < 0.0 and > 1.0 contrasted (in color) against a monochrome image for the parts of the scene in normal range. Anything shown in color in this mode is automatically HDR and represents image detail that did not exist (would be clipped) when the game was rendering to an SDR framebuffer.

2 Likes

Oh interesting.
https://www.vsynctester.com/firefoxisbroken.html

I avoid hardware acceleration since support is kinda spotty but learned something new here.

Also learned this.

So there’s a way to sync and then there’s a way to sync-flush(?) but that gets a delay if you do it that way.

Which apparently some developers do?

I like that explanation, little tech just straight to the point. :stuck_out_tongue:

Now in the right topic because tabbed browsing causes the occasional problem. :smiley:

EDIT: And on further reading quite accurate reading the epilogue bit there and then the additions for 2020 May and June.

I kinda want to say ‘duh’ here…

DwmFlush (…) is not for the purpose of VSYNC, it is to kick-start compositing, which is a different beast altogether. The DWM coordinates rendering between multiple applications, it’s not really a good idea to call DwmFlush and expect that to only affect / be affected by your application.

There’s a correct way to wait for VBLANK if that behavior is desired, and that’s not it :slight_smile:

1 Like

I like how the programmer refused the explanation and kept having it as a Windows OS issue then when pressed and compared to Chrome (Where this is done correctly.) the solution was to write code to hide the problem rather than actually fixing it and still believing it’s a Windows OS issue and over time it’s gotten worse.

Firefox has declined a lot in quality over the last two years as they’ve lost much of the market share to Chromium and then Edge (And now Edge is on Chromium too.) might be time soon enough to just hop over to Edgium (Edge with Chrome as I keep calling it.) it’s pretty good after some setting up from what I’ve tested so far.

Funny reading, for sure…

But it did get me thinking, and my lazy ass has been defaulting the scale of the framepacing widget to 60 FPS for no good reason for all this time. It’s very easy to get the active refresh rate from the DWM, and not only that, I can get an extremely accurate measure of it too…

image

That will be going into the next version of SK :slight_smile: If you don’t set a limit, it gets refresh rate from DWM.

image
^^^ Added benefit, when you click the Framerate Limit button, a very precise limit matching your refresh rate is selected instead of one that a user would naively enter (believing their refresh rate to be exactly 120).


DWM’s just this awesome thing that doesn’t get enough love :slight_smile: You know how difficult it is to get the refresh rate using any other API? Way more than it is supposed to be, and even when you do get the refresh rate, it’s not anywhere near as accurate as DWM can give you in 1 function call.

4 Likes