[PATCH] Add freesync ioctl interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/08/16 05:12 PM, Christian König wrote:
> Am 09.08.2016 um 04:44 schrieb Michel Dänzer:
> 
>> I was basically thinking out loud that doing this via different modes
>> might be quite natural, *if* games allowed choosing a specific mode.
>> But unfortunately they don't. For the video playback case, how do you
>> envision the video player app communicating the refresh rate of the
>> currently playing video to the kernel?
> Again the kernel doesn't need to know the refresh rate. All the kernel
> needs to know is when to do the page flip.
> 
> So coming back to my example of a mode with 1920x1080 and 20-100Hz
> refresh rate a classic modeline would then look something like this:
> 
> Modeline "1920x1080_dynamic"  302.50  1920 2072 2280 2640  1080 1083
> 1088 5735 -hsync +vsync
> 
> Note the high vertical total scan lines. Those basically reduce the
> refresh rate from 100Hz (which this mode normally would have) down to
> only 20Hz.
> 
> Now what userspace does on each page flip is specifying when this flip
> should happen, e.g. when the frame should be started to be scanned out.
> We can either specify this as frame counter + vertical line of the
> previous frame or as something like CLOCK_MONOTONIC (I think I would
> prefer CLOCK_MONOTONIC, but that's not a strong opinion).
> 
> In other words you put the whole concept upside down. It's no longer the
> kernel which tells userspace when a vblank happened, but rather
> userspace tells the kernel when it should happen (together with the
> frame that should be displayed then).

I guess that could work. Do video players set the VDPAU presentation
time accurately enough for this?

This would require extensive changes across the stack though, when more
or less the same result could be achieved by just letting the kernel
know what the current refresh rate is supposed to be, e.g. via output
properties.

Also, this doesn't address the case of running (existing) games with
variable refresh rate.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux