RFC for a render API to support adaptive sync and VRR
Nicolai Hähnle
nicolai.haehnle at amd.com
Tue Apr 10 16:37:34 UTC 2018
On 10.04.2018 18:26, Cyr, Aric wrote:
> That presentation time doesn’t need to come to kernel as such and
> actually is fine as-is completely decoupled from adaptive sync. As long
> as the video player provides the new target_frame_duration_ns on the
> flip, then the driver/HW will target the correct refresh rate to match
> the source content. This simply means that more often than not the
> video presents will align very close to the monitor’s refresh rate,
> resulting in a smooth video experience. For example, if you have 24Hz
> content, and an adaptive sync monitor with a range of 40-60Hz, once the
> target_frame_duration_ns is provided, driver can configure the monitor
> to a fixed refresh rate of 48Hz causing all video presents to be
> frame-doubled in hardware without further application intervention.
What about multi-monitor displays, where you want to play an animation
that spans multiple monitors. You really want all monitors to flip at
the same time.
I understand where you're coming from, but the perspective of refusing a
target presentation time is a rather selfish one of "we're the display,
we're the most important, everybody else has to adjust to us" (e.g. to
get perfect sync between video and audio). I admit I'm phrasing it in a
bit of an extreme way, but perhaps this phrasing helps to see why that's
just not a very good attitude to have.
All devices (whether video or audio or whatever) should be able to
receive a target presentation time.
If the application can make your life a bit easier by providing the
targetted refresh rate as additional *hint-only* parameter (like in your
24 Hz --> 48 Hz doubling example), then maybe we should indeed consider
that.
Cheers,
Nicolai
>
>
> For video games we have a similar situation where a frame is rendered
> for a certain world time and in the ideal case we would actually display
> the frame at this world time.
>
> That seems like it would be a poorly written game that flips like that,
> unless they are explicitly trying to throttle the framerate for some
> reason. When a game presents a completed frame, they’d like that to
> happen as soon as possible. This is why non-VSYNC modes of flipping
> exist and many games leverage this. Adaptive sync gives you the lower
> latency of immediate flips without the tearing imposed by using
> non-VSYNC flipping.
>
>
> I mean we have the guys from Valve on this mailing list so I think we
> should just get the feedback from them and see what they prefer.
>
> We have thousands of Steam games on other OSes that work great already,
> but we’d certainly be interested in any additional feedback. My guess
> is they prefer to “do nothing” and let driver/HW manage it, otherwise
> you exempt all existing games from supporting adaptive sync without a
> rewrite or update.
>
>
> Regards,
> Christian.
>
>
> -Aric
>
More information about the amd-gfx
mailing list