[Mesa-dev] [Mesa-stable] [PATCH 1/1] ac/nir: use ordered float comparisons except for not equal

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon Feb 26 09:41:02 UTC 2018



On 02/24/2018 02:43 PM, Marek Olšák wrote:
> 
> 
> On Feb 24, 2018 5:52 AM, "Timothy Arceri" <tarceri at itsqueeze.com 
> <mailto:tarceri at itsqueeze.com>> wrote:
> 
>     Using this on its own I believe will cause CTS regressions, which is
>     what the other patches were about. Feel free to take on the feedback
>     and come up with a proper solution. I'm not really sure how to
>     progress this.
> 
> 
> The patch is correct. If there are any regression, it's because NIR or 
> GLSL use incorrect transformations.

Yes, I think so.

> 
> Marek
> 
> 
> 
> 
>     On 24/02/18 00:21, Samuel Pitoiset wrote:
> 
>         Original patch from Timothy Arceri, I have just fixed the
>         not equal case locally.
> 
>         This fixes one important rendering issue in Wolfenstein 2
>         (the cutscene transition issue).
> 
>         RadeonSI uses the same ordered comparisons, so I guess that
>         what we should do as well.
> 
>         Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104302
>         <https://bugs.freedesktop.org/show_bug.cgi?id=104302>
>         Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104905
>         <https://bugs.freedesktop.org/show_bug.cgi?id=104905>
>         Cc: <mesa-stable at lists.freedesktop.org
>         <mailto:mesa-stable at lists.freedesktop.org>>
>         Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com
>         <mailto:samuel.pitoiset at gmail.com>>
>         ---
>            src/amd/common/ac_nir_to_llvm.c | 6 +++---
>            1 file changed, 3 insertions(+), 3 deletions(-)
> 
>         diff --git a/src/amd/common/ac_nir_to_llvm.c
>         b/src/amd/common/ac_nir_to_llvm.c
>         index cccc687157..bc1d16d2a4 100644
>         --- a/src/amd/common/ac_nir_to_llvm.c
>         +++ b/src/amd/common/ac_nir_to_llvm.c
>         @@ -1801,16 +1801,16 @@ static void visit_alu(struct
>         ac_nir_context *ctx, const nir_alu_instr *instr)
>                          result = emit_int_cmp(&ctx->ac, LLVMIntUGE,
>         src[0], src[1]);
>                          break;
>                  case nir_op_feq:
>         -               result = emit_float_cmp(&ctx->ac, LLVMRealUEQ,
>         src[0], src[1]);
>         +               result = emit_float_cmp(&ctx->ac, LLVMRealOEQ,
>         src[0], src[1]);
>                          break;
>                  case nir_op_fne:
>                          result = emit_float_cmp(&ctx->ac, LLVMRealUNE,
>         src[0], src[1]);
>                          break;
>                  case nir_op_flt:
>         -               result = emit_float_cmp(&ctx->ac, LLVMRealULT,
>         src[0], src[1]);
>         +               result = emit_float_cmp(&ctx->ac, LLVMRealOLT,
>         src[0], src[1]);
>                          break;
>                  case nir_op_fge:
>         -               result = emit_float_cmp(&ctx->ac, LLVMRealUGE,
>         src[0], src[1]);
>         +               result = emit_float_cmp(&ctx->ac, LLVMRealOGE,
>         src[0], src[1]);
>                          break;
>                  case nir_op_fabs:
>                          result = emit_intrin_1f_param(&ctx->ac,
>         "llvm.fabs",
> 
>     _______________________________________________
>     mesa-stable mailing list
>     mesa-stable at lists.freedesktop.org
>     <mailto:mesa-stable at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/mesa-stable
>     <https://lists.freedesktop.org/mailman/listinfo/mesa-stable>
> 
> 


More information about the mesa-dev mailing list