Hello Team, I'm working on adding Adaptive Sync feature in Xserver/modesetting. When understanding the existing AMD's implementation, I've few doubts regarding the vrr property being set on the Window from MESA.
I have made the modifications in xserver/modesetting but when i launch the application(DOTA2), below condition gets failed https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/-/blob/master/src/amdgpu_kms.c#L110 As per the code, i had a confusion that this condition will never met. *I had analysed the code and here is the analysis made when the flip happens in xserver When full screen gaming application is opened, variable_refresh property is being set in MESA and xserver will get notified with amdgpu_change_property() method(Same method we registered with the client during AMDGPUScreenInit_KMS()). * *Below actions will happen in ms_change_property() * *1. Create Local WindowPtr and copy the data from Stuff->window to this WindowPtr* *2. Call amdgpu_vrr_property_update() based on the property set in Stuff by passing the WindowPtr to it.* * a. Read Private Keys for WindowPtr in amdgpu_vrr_property_update(). * * b. Compare info->flip_window and this WindowPtr and make a call to amdgpu_present_set_screen_vrr(). → But this method will never gets called due to the condition mismatch every time. Why ? * *Why ?* *info->flip_window gets updated with window (WindowPtr) in amdgpu_present_check_flip() when amdgpu_present_flip() method gets called from DIX. This pointer will never same as the WindowPtr created in amdgpu_change_property() and variable_refresh flag is being set for in amdgpu_change_property() WindowPtr only. * Can you please help me in understanding on this ? JFYI, I have used DOTA2 application to verify this feature. Thanka Uday Kiran
_______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx