On Fri, May 31, 2019, 12:49 AM Marek Olšák <mar...@gmail.com> wrote:
> > > On Thu, May 30, 2019, 6:44 PM Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> > wrote: > >> >> >> On Thu, May 30, 2019, 11:45 PM Marek Olšák <mar...@gmail.com> wrote: >> >>> >>> >>> On Thu, May 30, 2019, 3:54 PM Rhys Perry <pendingchao...@gmail.com> >>> wrote: >>> >>>> Otherwise LLVM can sink them and their texture coordinate calculations >>>> into divergent branches. >>>> >>>> v2: simplify the conditions on which the intrinsic is marked as >>>> convergent >>>> >>>> Cc: <mesa-sta...@lists.freedesktop.org> >>>> Signed-off-by: Rhys Perry <pendingchao...@gmail.com> >>>> Reviewed-By: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> >>>> --- >>>> src/amd/common/ac_nir_to_llvm.c | 12 ++++++++++++ >>>> 1 file changed, 12 insertions(+) >>>> >>>> diff --git a/src/amd/common/ac_nir_to_llvm.c >>>> b/src/amd/common/ac_nir_to_llvm.c >>>> index 265e3b636c4..b1a191ac24c 100644 >>>> --- a/src/amd/common/ac_nir_to_llvm.c >>>> +++ b/src/amd/common/ac_nir_to_llvm.c >>>> @@ -1394,6 +1394,18 @@ static LLVMValueRef build_tex_intrinsic(struct >>>> ac_nir_context *ctx, >>>> } >>>> >>>> args->attributes = AC_FUNC_ATTR_READNONE; >>>> + /* Prevent texture instructions with implicit derivatives from >>>> being >>>> + * sinked into branches. */ >>>> + switch (instr->op) { >>>> + case nir_texop_tex: >>>> + case nir_texop_txb: >>>> + case nir_texop_lod: >>>> + args->attributes |= AC_FUNC_ATTR_CONVERGENT; >>>> + break; >>>> + default: >>>> + break; >>>> + } >>>> >>> >>> I think this should only apply to the fragment shader. >>> >> >> Well these opcodes will only be used in fragment shaders anyway, right? >> > > I think the normal tex opcode can be used in vertex shaders as well, > probably only in OpenGL. > What is the behavior there? Implicit lod of 0? > > Marek > > >>> Marek >>> >>> + >>>> return ac_build_image_opcode(&ctx->ac, args); >>>> } >>>> >>>> -- >>>> 2.21.0 >>>> >>>>
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev