[Mesa-dev] [PATCH] glsl: Use M_PI_* macros.
Matt Turner
mattst88 at gmail.com
Mon Apr 7 13:23:24 PDT 2014
On Mon, Apr 7, 2014 at 11:39 AM, Ian Romanick <idr at freedesktop.org> wrote:
> On 04/07/2014 10:28 AM, Aaron Watry wrote:
>> On Mon, Apr 7, 2014 at 12:19 PM, Matt Turner <mattst88 at gmail.com> wrote:
>>> Notice our multiple values for M_PI_2, which rounded ...32 up to
>>> ...4 and ...5.
>>> ---
>>> The float casts are ugly. I tried to define M_PI_2f using the
>>> preprocessor -- something like
>>> #define M_PI_2f M_PI_2##f
>>> but no luck.
>>>
>>> src/glsl/builtin_functions.cpp | 14 +++++++-------
>>> 1 file changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
>>> index 26ea923..62bf154 100644
>>> --- a/src/glsl/builtin_functions.cpp
>>> +++ b/src/glsl/builtin_functions.cpp
>>> @@ -2538,11 +2538,11 @@ ir_expression *
>>> builtin_builder::asin_expr(ir_variable *x)
>>> {
>>> return mul(sign(x),
>>> - sub(imm(1.5707964f),
>>> + sub(imm((float)M_PI_2),
>>> mul(sqrt(sub(imm(1.0f), abs(x))),
>>> - add(imm(1.5707964f),
>>> + add(imm((float)M_PI_2),
>>> mul(abs(x),
>>> - add(imm(-0.21460183f),
>>> + add(imm((float)(1.0 - M_PI_4)),
>>
>> 1 - M_PI_4 comes out to 0.21460 (positive), not -0.21460. You
>> probably want to switch the operand order in the subtraction here
>> (unless this change was intentional).
>
> There are a couple asin() tests, so it seems like this should have
> caused at least one of them to fail... Matt, did you run all of piglit?
Nope, I didn't. My bad.
More information about the mesa-dev
mailing list