mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-25 14:48:12 +02:00
Implement as f2f32(f2f16(x)) with the conversions in flush-to-zero mode. Accessing flush-to-zero mode on Bifrost is nontrivial: it is specified per-clause, rather than per-instruction. I've opted to pipe support for ftz clauses through the scheduler. This solution has two nice properties: * It uses the native hardware for flushing subnormals, avoiding extra lowering. * It's "smart" about scheduling around FTZ requirements, meaning we get good code generated even for a shader that e.g. quantizes a vector. With an unrelated scheduler fix, the *V2F32_TO_V2F16/+F16_TO_F32 operation fits in a single tuple, minimizing the overhead of the special FTZ clause. We'll have to do something a bit different for Valhall (FLUSH.f32), but we'll worry about when we actually have PanVK brought up on Valhall. Fixes dEQP-VK.spirv_assembly.instruction.compute.opquantize.* Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16123> |
||
|---|---|---|
| .. | ||
| deqp-panfrost-g52-vk.toml | ||
| deqp-panfrost-g52.toml | ||
| deqp-panfrost-g72.toml | ||
| deqp-panfrost-t720.toml | ||
| deqp-panfrost-t760.toml | ||
| deqp-panfrost-t860.toml | ||
| gitlab-ci.yml | ||
| panfrost-g52-fails.txt | ||
| panfrost-g52-flakes.txt | ||
| panfrost-g52-skips.txt | ||
| panfrost-g72-fails.txt | ||
| panfrost-g72-flakes.txt | ||
| panfrost-t720-fails.txt | ||
| panfrost-t720-flakes.txt | ||
| panfrost-t720-skips.txt | ||
| panfrost-t760-fails.txt | ||
| panfrost-t760-flakes.txt | ||
| panfrost-t820-fails.txt | ||
| panfrost-t860-fails.txt | ||
| panfrost-t860-flakes.txt | ||
| panfrost-t860-skips.txt | ||
| traces-panfrost.yml | ||