Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
On Thu, Nov 10, 2016 at 1:33 AM, Dave Airlie <airl...@gmail.com> wrote: > From: Dave Airlie <airl...@redhat.com> > > We can only read the valid samples if this is an MSAA > texture, which means the type field must be 0x14 or 0x15. > > This fixes: > dEQP-VK.glsl.texture_functions.query.texturesamples.* > > Cc: "13.0" <mesa-sta...@lists.freedesktop.org> > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/amd/common/ac_nir_to_llvm.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c > index 2fbc8cc..914363e 100644 > --- a/src/amd/common/ac_nir_to_llvm.c > +++ b/src/amd/common/ac_nir_to_llvm.c > @@ -3305,17 +3305,25 @@ static void visit_tex(struct nir_to_llvm_context > *ctx, nir_tex_instr *instr) > } > > if (instr->op == nir_texop_texture_samples) { > - LLVMValueRef res, samples; > + LLVMValueRef res, samples, is_msaa; > res = LLVMBuildBitCast(ctx->builder, res_ptr, ctx->v8i32, ""); > samples = LLVMBuildExtractElement(ctx->builder, res, > LLVMConstInt(ctx->i32, 3, > false), ""); > + is_msaa = LLVMBuildLShr(ctx->builder, samples, > + LLVMConstInt(ctx->i32, 28, false), > ""); > + is_msaa = LLVMBuildAnd(ctx->builder, is_msaa, > + LLVMConstInt(ctx->i32, 0xe, false), > ""); > + is_msaa = LLVMBuildICmp(ctx->builder, LLVMIntEQ, is_msaa, > + LLVMConstInt(ctx->i32, 0xe, false), > ""); > + > samples = LLVMBuildLShr(ctx->builder, samples, > LLVMConstInt(ctx->i32, 16, false), > ""); > samples = LLVMBuildAnd(ctx->builder, samples, > LLVMConstInt(ctx->i32, 0xf, false), > ""); > samples = LLVMBuildShl(ctx->builder, ctx->i32one, > samples, ""); > - > + samples = LLVMBuildSelect(ctx->builder, is_msaa, samples, > + ctx->i32one, ""); > result = samples; > goto write_result; > } > -- > 2.5.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev