diff --git a/src/freedreno/ci/freedreno-a618-fails.txt b/src/freedreno/ci/freedreno-a618-fails.txt index d7837fcf784..4d99b38ac49 100644 --- a/src/freedreno/ci/freedreno-a618-fails.txt +++ b/src/freedreno/ci/freedreno-a618-fails.txt @@ -27,12 +27,4 @@ dEQP-VK.pipeline.monolithic.color_write_enable_maxa.cwe_after_bind.attachments5_ dEQP-VK.pipeline.monolithic.color_write_enable_maxa.cwe_after_bind.attachments6_more0,Crash dEQP-VK.pipeline.monolithic.color_write_enable_maxa.cwe_after_bind.attachments6_more1,Crash -dEQP-VK.draw.renderpass.linear_interpolation.offset_max_1_sample,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_max_2_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_max_4_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_min_1_sample,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_min_2_samples,Fail dEQP-VK.draw.renderpass.linear_interpolation.offset_min_4_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.no_offset_1_sample,Fail -dEQP-VK.draw.renderpass.linear_interpolation.no_offset_2_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.no_offset_4_samples,Fail diff --git a/src/freedreno/ci/freedreno-a630-fails.txt b/src/freedreno/ci/freedreno-a630-fails.txt index 156a4070435..58d582da393 100644 --- a/src/freedreno/ci/freedreno-a630-fails.txt +++ b/src/freedreno/ci/freedreno-a630-fails.txt @@ -458,12 +458,4 @@ dEQP-VK.pipeline.monolithic.color_write_enable_maxa.cwe_after_bind.attachments5_ dEQP-VK.pipeline.monolithic.color_write_enable_maxa.cwe_after_bind.attachments6_more0,Crash dEQP-VK.pipeline.monolithic.color_write_enable_maxa.cwe_after_bind.attachments6_more1,Crash -dEQP-VK.draw.renderpass.linear_interpolation.offset_max_1_sample,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_max_2_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_max_4_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_min_1_sample,Fail -dEQP-VK.draw.renderpass.linear_interpolation.offset_min_2_samples,Fail dEQP-VK.draw.renderpass.linear_interpolation.offset_min_4_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.no_offset_1_sample,Fail -dEQP-VK.draw.renderpass.linear_interpolation.no_offset_2_samples,Fail -dEQP-VK.draw.renderpass.linear_interpolation.no_offset_4_samples,Fail diff --git a/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_offset.c b/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_offset.c index ffa84959151..d21c9e2d8de 100644 --- a/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_offset.c +++ b/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_offset.c @@ -44,11 +44,14 @@ ir3_nir_lower_load_barycentric_at_offset_instr(nir_builder *b, nir_instr *instr, void *data) { nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr); + enum glsl_interp_mode interp_mode = nir_intrinsic_interp_mode(intr); #define chan(var, c) nir_channel(b, var, c) nir_ssa_def *off = intr->src[0].ssa; - nir_ssa_def *ij = load(b, 2, nir_intrinsic_load_barycentric_pixel); + /* note: at_offset is defined to be relative to the center of the pixel */ + nir_ssa_def *ij = nir_load_barycentric_pixel(b, 32, .interp_mode = interp_mode); + nir_ssa_def *s = load(b, 1, nir_intrinsic_load_size_ir3); s = nir_frcp(b, s); diff --git a/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_sample.c b/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_sample.c index 4b949c2bd88..2b62459c3c5 100644 --- a/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_sample.c +++ b/src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_sample.c @@ -43,7 +43,7 @@ lower_load_barycentric_at_sample(nir_builder *b, nir_intrinsic_instr *intr) { nir_ssa_def *pos = load_sample_pos(b, intr->src[0].ssa); - return nir_load_barycentric_at_offset(b, 32, pos); + return nir_load_barycentric_at_offset(b, 32, pos, .interp_mode = nir_intrinsic_interp_mode(intr)); } static nir_ssa_def *