freedreno/ir3: Demote centroid usage to pixel on non-msaa.
Like with the sample qualifier on all GPUs, use pixel on older HW when MSAA rasterization is disabled to get reliable results. Since I ran many CI jobs on this, this updates the A530 TF flakes list, though I don't think that this MR necessarily made it flakier (we were already struggling on a5xx TF, which was what was motivating me to look at this!) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9641>
This commit is contained in:
@@ -295,55 +295,3 @@ dEQP-GLES3.functional.transform_feedback.array_element.interleaved.triangles.med
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.separate.triangles.highp_mat2x4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.separate.triangles.lowp_mat2x4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.separate.triangles.mediump_mat2x4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_lines_interleaved,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_triangles_interleaved,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_triangles_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_lines_interleaved,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_triangles_interleaved,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_triangles_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_lines_interleaved,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_triangles_interleaved,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_triangles_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.8,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.triangles.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.2,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.6,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.8,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.8,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.2,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.10,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.6,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.9,Fail
|
||||
|
||||
@@ -3,7 +3,4 @@
|
||||
# delete lines from the test list. Be careful.
|
||||
dEQP-GLES3.functional.shaders.texture_functions.texture.*gradoffset.*
|
||||
dEQP-GLES3.functional.texture.units.4_units.only_3d.*
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.8
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.triangles.8
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.4
|
||||
dEQP-GLES3.functional.vertex_arrays.single_attribute.*
|
||||
|
||||
@@ -17,19 +17,6 @@ dEQP-GLES31.functional.layout_binding.image.image2d.fragment_binding_array,Crash
|
||||
dEQP-GLES31.functional.layout_binding.image.image2d.fragment_binding_max,Crash
|
||||
dEQP-GLES31.functional.layout_binding.image.image3d.fragment_binding_array,Crash
|
||||
dEQP-GLES31.functional.layout_binding.image.image3d.fragment_binding_max,Crash
|
||||
dEQP-GLES31.functional.separate_shader.random.105,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.113,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.121,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.123,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.35,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.3,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.51,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.59,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.63,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.67,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.73,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.79,Fail
|
||||
dEQP-GLES31.functional.separate_shader.random.81,Fail
|
||||
dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth24_stencil8.gather_size_pot,Fail
|
||||
dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.gather_size_pot,Fail
|
||||
dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_pot,Fail
|
||||
@@ -501,13 +488,10 @@ dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_vec
|
||||
dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_vec4,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_points_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_triangles_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_points_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_triangles_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_points_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_triangles_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.flat.highp_vec4_lines_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.flat.highp_vec4_points_separate,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.flat.lowp_vec4_lines_separate,Fail
|
||||
@@ -534,8 +518,6 @@ dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.p
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.5,Fail
|
||||
@@ -546,11 +528,6 @@ dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.poin
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.triangles.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.5,Fail
|
||||
@@ -561,8 +538,6 @@ dEQP-GLES3.functional.transform_feedback.random.interleaved.points.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.points.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.points.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.points.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.lines.5,Fail
|
||||
@@ -573,11 +548,6 @@ dEQP-GLES3.functional.transform_feedback.random.separate.points.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.points.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.points.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.points.9,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.1,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.3,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.5,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.7,Fail
|
||||
dEQP-GLES3.functional.transform_feedback.random.separate.triangles.9,Fail
|
||||
|
||||
# Flaky since running more of GLES31
|
||||
dEQP-GLES31.functional.texture.border_clamp.*
|
||||
|
||||
@@ -10,12 +10,19 @@ dEQP-GLES31.functional.ubo.2_level_struct_array.single_buffer.packed_instance_ar
|
||||
|
||||
# unstable results once we enabled SMP -- some state not being reset reliably?
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.interleaved.triangles.highp_mat2x3
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.interleaved.triangles.mediump_mat2x4
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.separate.triangles.mediump_vec4
|
||||
dEQP-GLES3.functional.transform_feedback.array.interleaved.triangles.lowp_mat3x4
|
||||
dEQP-GLES3.functional.transform_feedback.array.separate.triangles.highp_mat2x4
|
||||
dEQP-GLES3.functional.transform_feedback.array.separate.triangles.mediump_mat3x4
|
||||
dEQP-GLES3.functional.transform_feedback.array.separate.triangles.lowp_mat3
|
||||
dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.triangles.lowp_vec4
|
||||
dEQP-GLES3.functional.transform_feedback.basic_types.separate.triangles.lowp_float
|
||||
dEQP-GLES3.functional.transform_feedback.basic_types.separate.triangles.lowp_vec3
|
||||
dEQP-GLES3.functional.transform_feedback.interpolation.smooth.highp_vec4_triangles_separate
|
||||
|
||||
dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.70
|
||||
|
||||
# These are in the xfails list (they usually do), but the random
|
||||
# behavior occasionally results in UnexpectedPass results.
|
||||
dEQP-GLES31.functional.separate_shader.random.99
|
||||
|
||||
@@ -1467,10 +1467,24 @@ emit_intrinsic_barycentric(struct ir3_context *ctx, nir_intrinsic_instr *intr,
|
||||
gl_system_value sysval = nir_intrinsic_barycentric_sysval(intr);
|
||||
|
||||
if (!ctx->so->key.msaa) {
|
||||
if (sysval == SYSTEM_VALUE_BARYCENTRIC_PERSP_SAMPLE)
|
||||
switch (sysval) {
|
||||
case SYSTEM_VALUE_BARYCENTRIC_PERSP_SAMPLE:
|
||||
sysval = SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL;
|
||||
if (sysval == SYSTEM_VALUE_BARYCENTRIC_LINEAR_SAMPLE)
|
||||
break;
|
||||
case SYSTEM_VALUE_BARYCENTRIC_PERSP_CENTROID:
|
||||
if (ctx->compiler->gpu_id < 600)
|
||||
sysval = SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL;
|
||||
break;
|
||||
case SYSTEM_VALUE_BARYCENTRIC_LINEAR_SAMPLE:
|
||||
sysval = SYSTEM_VALUE_BARYCENTRIC_LINEAR_PIXEL;
|
||||
break;
|
||||
case SYSTEM_VALUE_BARYCENTRIC_LINEAR_CENTROID:
|
||||
if (ctx->compiler->gpu_id < 600)
|
||||
sysval = SYSTEM_VALUE_BARYCENTRIC_LINEAR_PIXEL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
enum ir3_bary bary = sysval - SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL;
|
||||
|
||||
@@ -444,9 +444,13 @@ ir3_setup_used_key(struct ir3_shader *shader)
|
||||
}
|
||||
|
||||
/* Only used for deciding on behavior of
|
||||
* nir_intrinsic_load_barycentric_sample
|
||||
* nir_intrinsic_load_barycentric_sample, or the centroid demotion
|
||||
* on older HW.
|
||||
*/
|
||||
key->msaa = info->fs.uses_sample_qualifier;
|
||||
key->msaa = info->fs.uses_sample_qualifier ||
|
||||
(shader->compiler->gpu_id < 600 &&
|
||||
(BITSET_TEST(info->system_values_read, SYSTEM_VALUE_BARYCENTRIC_PERSP_CENTROID) ||
|
||||
BITSET_TEST(info->system_values_read, SYSTEM_VALUE_BARYCENTRIC_LINEAR_CENTROID)));
|
||||
} else {
|
||||
key->tessellation = ~0;
|
||||
key->has_gs = true;
|
||||
|
||||
Reference in New Issue
Block a user