mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 02:50:16 +01:00
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:
parent
4b404e22d0
commit
9dcb94e0e1
4 changed files with 5 additions and 18 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 *
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue