[Piglit] [Mesa-dev] [PATCH] Add (un)packHalf tests which don't fail on GCN
maraeo at gmail.com
Fri Feb 5 09:57:35 UTC 2016
On Fri, Feb 5, 2016 at 1:55 AM, Matt Turner <mattst88 at gmail.com> wrote:
> On Thu, Feb 4, 2016 at 10:50 AM, Marek Olšák <maraeo at gmail.com> wrote:
>> From: Marek Olšák <marek.olsak at amd.com>
>> This is a subset of the generated tests which are known to fail
>> on everything except CPU emulation (AFAIK).
> This is really awful. Committing a generated test, but with unknown
> bits chopped out is gross.
> If it were me, I'd want to understand why my hardware behaved
> differently -- not just hack up *different* tests and claim victory.
> FWIW, the generated tests pass on all Intel hardware exposing
> ARB_shading_language_packing. Gen7+ has native half-float support, and
> Gen6 uses the lowering code in lower_packing_builtins.cpp to turn the
> built-ins into a pile of instructions.
> If you can identify how AMD hardware behaves differently and can prove
> that the generator needs to be relaxed or something, that's cool. But
> as is, I hate this patch.
> I can't find anything in the AMD docs (I looked at GCN3) about
> half-precision support, so I can't check my theory that AMD hardware
> rounds towards zero instead of to-nearest/even like Intel.
Since the tests only fail with very small numbers, I think the problem
is that denorms are disabled by radeonsi. I can try to confirm that.
The hardware rounds to nearest even. The hw precision is:
- unpack functions - 0 ULP
- pack functions = 0.5 ULP
- input and output denorms are flushed to 0
More information about the Piglit