Skip to content
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

Land PR 2324 #2327

Merged
merged 2 commits into from
May 21, 2024
Merged

Land PR 2324 #2327

merged 2 commits into from
May 21, 2024

Commits on May 21, 2024

  1. Add option to enforce fragment execution with side effects in MSL

    Metal will incorrectly discard fragments with side effects under
    certain circumstances prematurely. The conditions are the following:
     - Fragment will always be discarded after side effect operation
     - Pre fragment depth fails
     - Modifies depth value for a constant value in the fragment shader.
       This constant value will also fail the depth test.
    
    However, Metal will also discard the fragment even if it has
    operations with side effects inside the fragment shader before the
    discard operation.
    
    Vulkan states the graphics pipeline to execute in the following
    order:
     - Pre fragment depth test (cannot discard here due to modifying
       depth value in fragment shader)
     - Fragment shader (where the depth is modified and fragment
       discarded)
     - Post fragment depth test
    
    Therefore, we need to enforce fragment shader execution and not
    let Metal discard the fragment before that for such cases. This
    change adds an option to provide such utility.
    aitor-lunarg authored and HansKristian-Work committed May 21, 2024
    Configuration menu
    Copy the full SHA
    cd8865d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    485b4c6 View commit details
    Browse the repository at this point in the history