Skip to content

Implement scaling gravity from surface_maintenance1

Surafel Assefa requested to merge surafel911/mesa:vk-wsi-scaling-control into main

First Vulkan extension implementation I've done. Looking for comments & recommendations on how to properly implement and test. I appreciate the patience.

What does this MR do and why?

According to this MR and this issue, scaling controls for VK_EXT_swapchain_maintenance1 was not implemented and marked as unsupported on all platforms.

Added VkPresentGravityFlagsEXT members to wsi_swapchain and added code to x11_present_to_x11_dri3 to change the x and y offsets in the XCB presentation functions. Tested on RADV on a 780M.

One this is I am not sure how to implement scaling. Would I create a new, temporary buffer with the right size and use VkCmdBlitImage? What about using xcb_render_set_picture_transform?

For x11_present_to_x11_sw, would I modify dst_x and dst_y of xcb_put_image to implement scaling gravity for the software drivers?

Edited by Surafel Assefa

Merge request reports