Skip to content

fix the surface resize logic when use wayland wsi #1338

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Kkaiwz
Copy link

@Kkaiwz Kkaiwz commented Apr 23, 2025

According to the Vulkan Spec:https://registry.khronos.org/vulkan/ specs/latest/man/html/VkSurfaceCapabilitiesKHR.html

VkSurfaceCapabilitiesKHR->currentExtent can be set to 0xFFFFFFFF which indicating that surface size will be determined by the extent of swapchain targeting the surface rather than driver.

In mali umd, currentExtent are always set to 0xFFFFFFFF which is comply with spec. Since the surface extent size of wayland depends on the dynamic negotiation between the client and compositor, the Vulkan driver cannot determine the valid value of current Extent before vkQueuePresentKHR submission, so the driver alwayas return 0xFFFFFFFF when use wayland wsi.

Affected cases:
oit_depth_peeling
oit_linked_lists
hpp_oit_depth_peeling
hpp_oit_linked_lists

Signed-off-by: Ryan Zhang ryan.zhang@nxp.com

Description

Please include a summary of the change, new sample or fixed issue. Please also include relevant motivation and context.
Please read the contribution guidelines

Fixes #

General Checklist:

Please ensure the following points are checked:

  • My code follows the coding style
  • I have reviewed file licenses
  • I have commented any added functions (in line with Doxygen)
  • I have commented any code that could be hard to understand
  • My changes do not add any new compiler warnings
  • My changes do not add any new validation layer errors or warnings
  • I have used existing framework/helper functions where possible
  • My changes do not add any regressions
  • I have tested every sample to ensure everything runs correctly
  • This PR describes the scope and expected impact of the changes I am making

Note: The Samples CI runs a number of checks including:

  • I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
  • My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions

If this PR contains framework changes:

  • I did a full batch run using the batch command line argument to make sure all samples still work properly

@Kkaiwz
Copy link
Author

Kkaiwz commented Apr 23, 2025

Due to PR #1337 broken. Raise this PR to process this patch.

According to the Vulkan Spec:https://registry.khronos.org/vulkan/
specs/latest/man/html/VkSurfaceCapabilitiesKHR.html

VkSurfaceCapabilitiesKHR->currentExtent can be set to 0xFFFFFFFF
which indicating that surface size will be determined by the extent
of swapchain targeting the surface rather than driver.

In mali umd, currentExtent are always set to 0xFFFFFFFF which is
comply with spec. Since the surface extent size of wayland depends
on the dynamic negotiation between the client and compositor, the
Vulkan driver cannot determine the valid value of current Extent
before vkQueuePresentKHR submission, so the driver alwayas return
0xFFFFFFFF when use wayland wsi.

Affected cases:
    oit_depth_peeling
    oit_linked_lists
    hpp_oit_depth_peeling
    hpp_oit_linked_lists

Signed-off-by: Ryan Zhang ryan.zhang@nxp.com
@jeroenbakker-atmind jeroenbakker-atmind self-requested a review May 19, 2025 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant