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

Mesh shader: Enable row export on GFX11 and fix issues #2821

Merged
merged 1 commit into from
Nov 21, 2023

Conversation

amdrexu
Copy link
Contributor

@amdrexu amdrexu commented Nov 16, 2023

  • The preparation of attribute ring access should be moved to entry block.
  • The function attribute 'amdgpu-flat-work-group-size' is incorrect, which leads to unexpected removal of s_barrier.
  • Use primOrVertexIndex to do attribute ring access as the VGPR index of buffer_store. Don't use threadIdInSubgroup because when row export is enabled, threadIdInSubgroup is not always equal to primOrVertexIndex.
  • After fixing those issues, enable row export by default on GFX11. This is because mesh query will have to check msInvocations. On GFX11, HW obtains this value from the register field SPI_SHADER_GS_MESHLET_DIM.MESHLET_THREADGROUP_SIZE.

- The preparation of attribute ring access should be moved to entry
  block.
- The function attribute 'amdgpu-flat-work-group-size' is incorrect,
  which leads to unexpected removal of s_barrier.
- Use primOrVertexIndex to do attribute ring access as the VGPR index of
  buffer_store. Don't use threadIdInSubgroup because when row export is
  enabled, threadIdInSubgroup is not always equal to primOrVertexIndex.
- After fixing those issues, enable row export by default on GFX11. This
  is because mesh query will have to check msInvocations. On GFX11, HW
  obtains this value from the register field
  SPI_SHADER_GS_MESHLET_DIM.MESHLET_THREADGROUP_SIZE.
@amdrexu amdrexu requested a review from a team as a code owner November 16, 2023 10:08
@amdvlk-admin
Copy link

Test summary for commit 9442915

CTS tests (Failed: 0/138378)
  • Built with version 1.3.5.2
  • Ubuntu navi3x, Srdcvk
    • Passed: 35163/69163 (50.8%)
    • Failed: 0/69163 (0.0%)
    • Not Supported: 34000/69163 (49.2%)
    • Warnings: 0/69163 (0.0%)
    Ubuntu navi2x, Srdcvk
    • Passed: 35242/69215 (50.9%)
    • Failed: 0/69215 (0.0%)
    • Not Supported: 33973/69215 (49.1%)
    • Warnings: 0/69215 (0.0%)

Copy link
Member

@nhaehnle nhaehnle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, I thought that had been done ages ago... I'm surprised this was never caught, are there no CTS tests for mesh shader invocations?

@amdrexu
Copy link
Contributor Author

amdrexu commented Nov 21, 2023

I'm surprised this was never caught, are there no CTS tests for mesh shader invocations?

Some issues were not caught because we didn't enable row export for GFX11 and at that time mesh shader CTS were under implementation, changed from time to time. Now, the tests are finalized so we can have a try and enable row export by default.

@amdrexu amdrexu merged commit f811897 into GPUOpen-Drivers:dev Nov 21, 2023
9 checks passed
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.

3 participants