From 8d50ab53953871b408f5671031f32a56a63dc784 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Thu, 2 Jan 2020 12:50:22 +0100 Subject: [PATCH] etnaviv: gc400 does not support any vertex sampler On STM32MP1 fixes the dEQPs below and changes the dEQP run statistics to: - Passed: 16856/17346 (97.2%) - Failed: 236/17346 (1.4%) - Not supported: 199/17346 (1.1%) + Passed: 16780/17346 (96.7%) + Failed: 86/17346 (0.5%) + Not supported: 425/17346 (2.5%) Warnings: 55/17346 (0.3%) dEQP-GLES2.functional.shaders.struct.uniform.sampler_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_nested_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_array_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_function_arg_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_array_function_arg_vertex dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2d dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dproj_vec3 dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dproj_vec4 dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dlod dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dprojlod_vec3 dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dprojlod_vec4 dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecube dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod dEQP-GLES2.functional.shaders.random.texture.vertex.0 dEQP-GLES2.functional.shaders.random.texture.vertex.1 dEQP-GLES2.functional.shaders.random.texture.vertex.2 dEQP-GLES2.functional.shaders.random.texture.vertex.3 dEQP-GLES2.functional.shaders.random.texture.vertex.4 dEQP-GLES2.functional.shaders.random.texture.vertex.5 dEQP-GLES2.functional.shaders.random.texture.vertex.6 dEQP-GLES2.functional.shaders.random.texture.vertex.7 dEQP-GLES2.functional.shaders.random.texture.vertex.8 dEQP-GLES2.functional.shaders.random.texture.vertex.9 dEQP-GLES2.functional.shaders.random.texture.vertex.10 dEQP-GLES2.functional.shaders.random.texture.vertex.11 dEQP-GLES2.functional.shaders.random.texture.vertex.12 dEQP-GLES2.functional.shaders.random.texture.vertex.13 dEQP-GLES2.functional.shaders.random.texture.vertex.14 dEQP-GLES2.functional.shaders.random.texture.vertex.16 dEQP-GLES2.functional.shaders.random.texture.vertex.17 dEQP-GLES2.functional.shaders.random.texture.vertex.18 dEQP-GLES2.functional.shaders.random.texture.vertex.19 dEQP-GLES2.functional.shaders.random.texture.vertex.20 dEQP-GLES2.functional.shaders.random.texture.vertex.22 dEQP-GLES2.functional.shaders.random.texture.vertex.23 dEQP-GLES2.functional.shaders.random.texture.vertex.24 dEQP-GLES2.functional.shaders.random.texture.vertex.26 dEQP-GLES2.functional.shaders.random.texture.vertex.28 dEQP-GLES2.functional.shaders.random.texture.vertex.29 dEQP-GLES2.functional.shaders.random.texture.vertex.31 dEQP-GLES2.functional.shaders.random.texture.vertex.34 dEQP-GLES2.functional.shaders.random.texture.vertex.37 dEQP-GLES2.functional.shaders.random.texture.vertex.38 dEQP-GLES2.functional.shaders.random.texture.vertex.39 dEQP-GLES2.functional.shaders.random.texture.vertex.40 dEQP-GLES2.functional.shaders.random.texture.vertex.42 dEQP-GLES2.functional.shaders.random.texture.vertex.43 dEQP-GLES2.functional.shaders.random.texture.vertex.44 dEQP-GLES2.functional.shaders.random.texture.vertex.45 dEQP-GLES2.functional.shaders.random.texture.vertex.48 dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror dEQP-GLES2.functional.fbo.api.attach_names dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.info_query.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.info_query.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.info_query.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array_first_elem_without_brackets.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array_first_elem_without_brackets.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.random.0 dEQP-GLES2.functional.uniform_api.random.3 dEQP-GLES2.functional.uniform_api.random.6 dEQP-GLES2.functional.uniform_api.random.11 dEQP-GLES2.functional.uniform_api.random.14 dEQP-GLES2.functional.uniform_api.random.21 dEQP-GLES2.functional.uniform_api.random.22 dEQP-GLES2.functional.uniform_api.random.24 dEQP-GLES2.functional.uniform_api.random.25 dEQP-GLES2.functional.uniform_api.random.29 dEQP-GLES2.functional.uniform_api.random.30 dEQP-GLES2.functional.uniform_api.random.32 dEQP-GLES2.functional.uniform_api.random.33 dEQP-GLES2.functional.uniform_api.random.37 dEQP-GLES2.functional.uniform_api.random.41 dEQP-GLES2.functional.uniform_api.random.49 dEQP-GLES2.functional.uniform_api.random.51 dEQP-GLES2.functional.uniform_api.random.55 dEQP-GLES2.functional.uniform_api.random.61 dEQP-GLES2.functional.uniform_api.random.69 dEQP-GLES2.functional.uniform_api.random.72 dEQP-GLES2.functional.uniform_api.random.78 dEQP-GLES2.functional.uniform_api.random.79 dEQP-GLES2.functional.uniform_api.random.82 dEQP-GLES2.functional.uniform_api.random.87 dEQP-GLES2.functional.uniform_api.random.88 dEQP-GLES2.functional.uniform_api.random.94 dEQP-GLES2.functional.uniform_api.random.95 dEQP-GLES2.functional.uniform_api.random.96 Signed-off-by: Christian Gmeiner Reviewed-by: Marek Vasut --- src/gallium/drivers/etnaviv/etnaviv_screen.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index 9d3fee86fbe..df537f285bf 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -707,6 +707,10 @@ etna_get_specs(struct etna_screen *screen) screen->specs.vertex_sampler_offset = 8; screen->specs.fragment_sampler_count = 8; screen->specs.vertex_sampler_count = 4; + + if (screen->model == 0x400) + screen->specs.vertex_sampler_count = 0; + screen->specs.vs_need_z_div = screen->model < 0x1000 && screen->model != 0x880; screen->specs.has_sin_cos_sqrt = -- 2.30.2