ir3: Make sure to pass the interp_mode through in our load_bary lowering.

Fixes dEQP-VK.draw.renderpass.linear_interpolation.* in vkcts 1.3.3.0

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17322>
This commit is contained in:
Emma Anholt 2022-06-30 13:17:06 -07:00 committed by Marge Bot
parent 4b404e22d0
commit 9dcb94e0e1
4 changed files with 5 additions and 18 deletions

View file

@ -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

View file

@ -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

View file

@ -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);

View file

@ -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 *