RESOLVED FIXED 238063
[WebGPU] maxAnisotropy > 16 is clamped, rather than illegal
https://bugs.webkit.org/show_bug.cgi?id=238063
Summary [WebGPU] maxAnisotropy > 16 is clamped, rather than illegal
Myles C. Maxfield
Reported 2022-03-17 19:52:27 PDT
[WebGPU] maxAnisotropy > 16 is clamped, rather than illegal
Attachments
Patch (2.45 KB, patch)
2022-03-17 19:54 PDT, Myles C. Maxfield
kkinnunen: review+
Myles C. Maxfield
Comment 1 2022-03-17 19:54:06 PDT
Kimmo Kinnunen
Comment 2 2022-03-21 01:03:33 PDT
Comment on attachment 455062 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455062&action=review > Source/WebGPU/WebGPU/Sampler.mm:195 > + samplerDescriptor.maxAnisotropy = std::min(descriptor.maxAnisotropy, static_cast<uint16_t>(16)); sometimes less tokens for the human to parse, less ambiguous(not sure it compiles without errors for us, maybe?) std::min<uint16_t>(descriptor.maxAnisotropy, 16);
Myles C. Maxfield
Comment 3 2022-03-21 18:13:39 PDT
Comment on attachment 455062 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455062&action=review > Source/WebGPU/ChangeLog:12 > + Covered by api/operation/sampling/anisotropy.spec.ts
Myles C. Maxfield
Comment 4 2022-03-21 18:19:12 PDT
Radar WebKit Bug Importer
Comment 5 2022-03-21 18:20:17 PDT
Darin Adler
Comment 6 2022-03-22 07:55:18 PDT
Comment on attachment 455062 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455062&action=review >> Source/WebGPU/WebGPU/Sampler.mm:195 >> + samplerDescriptor.maxAnisotropy = std::min(descriptor.maxAnisotropy, static_cast<uint16_t>(16)); > > sometimes less tokens for the human to parse, less ambiguous(not sure it compiles without errors for us, maybe?) > std::min<uint16_t>(descriptor.maxAnisotropy, 16); I don’t absolutely love this idiom, because when I read std::min<uint16_t>(descriptor.maxAnisotropy, 16) I think "is maxAnisotropy bigger than 16-bit, because if it is, this thing will chop the high bits". Because of that I would write the less terse: constexpr uint16_t maxMaxAnistropy = 16; samplerDescriptor.maxAnisotropy = std::min(descriptor.maxAnisotropy, maxMaxAnistropy);
Note You need to log in before you can comment on or make changes to this bug.