From 92569f5d6ec8b806ec4dcc7810f36cca0c172425 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 27 Jan 2021 14:01:23 -0500 Subject: [PATCH] pan/bi: Fix gl_SampleID read Fixes dEQP-GLES31.functional.shaders.sample_variables.sample_id.default_framebuffer Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bifrost_compile.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 51f77b7b394..81cd3e79dd3 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -809,10 +809,12 @@ bi_emit_intrinsic(bi_builder *b, nir_intrinsic_instr *instr) bi_imm_f32(b->shader->blend_constants[3])); break; - case nir_intrinsic_load_sample_id: { - /* r61[16:23] contains the sampleID, mask it out */ + case nir_intrinsic_load_sample_id: { + /* r61[16:23] contains the sampleID, mask it out. Upper bits + * seem to read garbage (despite being architecturally defined + * as zero), so use a 5-bit mask instead of 8-bits */ - bi_rshift_and_i32_to(b, dst, bi_register(61), bi_imm_u32(0xff), + bi_rshift_and_i32_to(b, dst, bi_register(61), bi_imm_u32(0x1f), bi_imm_u8(16)); break; }