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
# 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.*
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
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
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
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
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
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.*
# 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
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;
}
/* 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;