vulkan: apply atan2 zero workaround to packed shaders - #6930
Conversation
Mesa v3dv has the same broken vector atan(0, 0) behavior as llvmpipe. Apply the existing zero-input workaround for all non-MoltenVK drivers so packed BinaryOp atan2 and ratan2 match the CPU result. Fixes Tencent#6884.
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6930 +/- ##
==========================================
- Coverage 94.94% 94.88% -0.06%
==========================================
Files 1151 1151
Lines 473093 472714 -379
==========================================
- Hits 449159 448558 -601
- Misses 23934 24156 +222 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Thanks for your contribution ! |
Summary
Apply the existing packed-vector
atan(0, 0)workaround to all non-MoltenVK drivers. Mesa v3dv exhibits the same incorrect vectorized result as llvmpipe, so restricting the workaround to driver ID 13 leaves packedBinaryOpatan2/ratan2 broken on v3dv.The change covers:
binaryop_pack4.compbinaryop_broadcast_pack4.compbinaryop_broadcast_pack1to4.compVerification
Built with Vulkan and system glslang on Ubuntu 24.04, then ran
test_binaryop_3with Mesa llvmpipe 25.2.8:Fixes #6884.