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

Fragment subgroup_size test: Don't use broadcasting #4035

Merged
merged 4 commits into from
Nov 7, 2024

Conversation

jzm-intel
Copy link
Contributor

This CL modify the shader for fragment subgroup_size built-in test to prevent using broadcasting (from invocation 0), because any invocation id can be inactivate for fragment shader. This CL use ballot instead and do more validation within the shader.

This CL modify the shader for fragment subgroup_size built-in test to
prevent using broadcasting (from invocation 0), because any invocation
id can be inactivate for fragment shader. This CL use ballot instead and
do more validation within the shader.
@jzm-intel
Copy link
Contributor Author

jzm-intel commented Nov 6, 2024

Note that during test we found on Intel UHD770 the first run of fragment shader could be in subgroup_size == 8 while the D3D12 API report WaveLaneCountMin == 16 and thus WebGPU report adapter.limits.minSubgroupSize == 16 in Chromium. The compiled shader seems get replaced in the second and following run, and then it would have a subgroup_size of 16, which means that a retry can make the CTS pass, and the try-bot might be not easy to catch such kind of flaky issues.

We are going to report this issue as a driver bug, and make a workaround to make WebGPU relaxing reported minSubgroupSize as 8 for certain devices.

@alan-baker
Copy link
Contributor

Note that during test we found on Intel UHD770 the first run of fragment shader could be in subgroup_size == 8 while the D3D12 API report WaveLaneCountMin == 16 and thus WebGPU report adapter.limits.minSubgroupSize == 16 in Chromium. The compiled shader seems get replaced in the second and following run, and then it would have a subgroup_size of 16, which means that a retry can make the CTS pass, and the try-bot might be not easy to catch such kind of flaky issues.

We are going to report this issue as a driver bug, and make a workaround to make WebGPU relaxing reported minSubgroupSize as 8 for certain devices.

Thanks! Not entirely unexpected as Vulkan originally had this problem too.

@jzm-intel
Copy link
Contributor Author

Thanks for reviewing!

@jzm-intel jzm-intel merged commit b9f32fd into gpuweb:main Nov 7, 2024
1 check 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.

2 participants