This commit introduces a few new parts: - A new deqp & piglit runner - New lists of previous results - New ignore lists for unreliable tests - A switch to using CTS provided test-list for deqp The new runner supports a few different modes: - Running a single test using the '-t' flag - Comparing tests using the same driver with and without vtest using '--compare-backends' - Running piglit or deqp suites using '--piglit' or '--deqp' - Running suites of piglit or deqp tests using, '--gles2'/'--gles3','--gles31' - Selecting a specific backend to use for example, '-b vtest-softpipe' or '-b softpipe' For example: # Run piglit gles2 tests using gpu&softpipe drivers through vtest $ ci/run_test_suite.sh --piglit --gles2 --backend vtest-gpu --backend vtest-softpipe # Run ignored&unreliable CTS gles3 tests using the softpipe driver $ ci/run_test_suite.sh --deqp --gles3 --backend softpipe --unreliable # Run CTS GLES2 using softpipe driver, and then compare results with results # stored in ci/previous_results/, while ignoring known unreliable tests. $ ci/run_test_suite.sh --piglit --gles2 --backend softpipe --compare-previous Reviewed-By: Gert Wollny <gert.wollny@collabora.com> Signed-off-by: Robert Foss <robert.foss@collabora.com> Signed-off-by: Jakob Bornecrantz <jakob@collabora.com>macos/master
parent
715d53e235
commit
15320da81f
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,22 @@ |
||||
spec/!opengl es 2.0/draw_buffers_gles2: pass |
||||
spec/!opengl es 2.0/fbo_discard_gles2: pass |
||||
spec/!opengl es 2.0/invalid-es3-queries_gles2: skip |
||||
spec/!opengl es 2.0/minmax_gles2: pass |
||||
spec/!opengl es 2.0/multiple-shader-objects_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-blend-api_gles2: skip |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-builtins_gles2: skip |
||||
spec/egl_khr_create_context/valid debug flag gles2: pass |
||||
spec/ext_frag_depth/fragdepth_gles2: crash |
||||
spec/ext_polygon_offset_clamp/ext_polygon_offset_clamp-draw_gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-highp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-lowp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-mediump: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles2: skip |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles2: skip |
||||
spec/khr_debug/object-label_gles2: fail |
||||
spec/khr_debug/push-pop-group_gles2: pass |
||||
spec/oes_packed_depth_stencil/depth_stencil texture gles2: pass |
||||
spec/oes_vertex_half_float/draw-vertices-half-float-user_gles2: crash |
||||
spec/oes_vertex_half_float/draw-vertices-half-float_gles2: crash |
@ -0,0 +1,62 @@ |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 teximage: crash |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 texsubimage: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 r11: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rg11: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8-punchthrough-alpha1: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgba8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-alpha8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-punchthrough-alpha1: crash |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-bindfragdataindexed-invalid-parameters_gles3: skip |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-explicit_gles3: skip |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-pattern_gles3: skip |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend_gles3: skip |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-getfragdataindex_gles3: skip |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-output-location_gles3: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent client-storage: skip |
||||
spec/arb_transform_feedback2/change objects while paused (gles3): crash |
||||
spec/egl_khr_create_context/valid debug flag gles3: pass |
||||
spec/ext_base_instance/arb_base_instance-baseinstance-doesnt-affect-gl-instance-id_gles3: crash |
||||
spec/ext_base_instance/arb_base_instance-drawarrays_gles3: crash |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/overwrite-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-mipmap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-3d-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-cubemap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/texture-gles3: skip |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct error: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct get: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run: crash |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run-no-fs: crash |
||||
spec/ext_window_rectangles/errors_gles3: skip |
||||
spec/ext_window_rectangles/render_gles3: skip |
||||
spec/glsl-es-3.00/execution/varying-struct-centroid_gles3: fail |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-depthcoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-innercoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-tri_gles3: skip |
||||
spec/khr_debug/object-label_gles3: fail |
||||
spec/khr_debug/push-pop-group_gles3: pass |
||||
spec/nv_read_depth/read_depth_gles3: crash |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@ |
||||
dEQP-GLES3.functional.shaders.metamorphic.bubblesort_flag.variant_1 |
||||
dEQP-GLES3.functional.shaders.metamorphic.bubblesort_flag.variant_2 |
||||
dEQP-GLES3.functional.shaders.metamorphic.synthetic.variant_1 |
||||
dEQP-GLES3.functional.shaders.metamorphic.synthetic.variant_3 |
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r11f_g11f_b10f |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,12 @@ |
||||
dEQP-GLES31.functional.debug.negative_coverage.get_error.compute.exceed_atomic_counters_limit |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.highp_fragment.vec4 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.highp_vertex.vec2 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_fragment.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_fragment.vec4 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_vertex.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_vertex.vec2 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_fragment.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_fragment.vec |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_vertex.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_vertex.vec2 |
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20 |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@ |
||||
arb_blend_func_extended-fbo-extended-blend-pattern_gles2 |
@ -0,0 +1,23 @@ |
||||
spec/!opengl es 2.0/draw_buffers_gles2: pass |
||||
spec/!opengl es 2.0/fbo_discard_gles2: pass |
||||
spec/!opengl es 2.0/invalid-es3-queries_gles2: skip |
||||
spec/!opengl es 2.0/minmax_gles2: pass |
||||
spec/!opengl es 2.0/multiple-shader-objects_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-blend-api_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-builtins_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-pattern_gles2: pass |
||||
spec/egl_khr_create_context/valid debug flag gles2: pass |
||||
spec/ext_frag_depth/fragdepth_gles2: pass |
||||
spec/ext_polygon_offset_clamp/ext_polygon_offset_clamp-draw_gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-highp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-lowp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-mediump: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles2: skip |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles2: skip |
||||
spec/khr_debug/object-label_gles2: fail |
||||
spec/khr_debug/push-pop-group_gles2: pass |
||||
spec/oes_packed_depth_stencil/depth_stencil texture gles2: pass |
||||
spec/oes_vertex_half_float/draw-vertices-half-float-user_gles2: pass |
||||
spec/oes_vertex_half_float/draw-vertices-half-float_gles2: pass |
@ -0,0 +1,62 @@ |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 teximage: pass |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 texsubimage: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 r11: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rg11: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8-punchthrough-alpha1: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgba8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-alpha8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-punchthrough-alpha1: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-bindfragdataindexed-invalid-parameters_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-explicit_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-pattern_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-getfragdataindex_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-output-location_gles3: pass |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent client-storage: skip |
||||
spec/arb_transform_feedback2/change objects while paused (gles3): pass |
||||
spec/egl_khr_create_context/valid debug flag gles3: pass |
||||
spec/ext_base_instance/arb_base_instance-baseinstance-doesnt-affect-gl-instance-id_gles3: pass |
||||
spec/ext_base_instance/arb_base_instance-drawarrays_gles3: pass |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/overwrite-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-mipmap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-3d-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-cubemap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/texture-gles3: skip |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct error: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct get: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run-no-fs: pass |
||||
spec/ext_window_rectangles/errors_gles3: skip |
||||
spec/ext_window_rectangles/render_gles3: skip |
||||
spec/glsl-es-3.00/execution/varying-struct-centroid_gles3: fail |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-depthcoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-innercoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-tri_gles3: skip |
||||
spec/khr_debug/object-label_gles3: fail |
||||
spec/khr_debug/push-pop-group_gles3: pass |
||||
spec/nv_read_depth/read_depth_gles3: fail |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,22 @@ |
||||
spec/!opengl es 2.0/draw_buffers_gles2: pass |
||||
spec/!opengl es 2.0/fbo_discard_gles2: pass |
||||
spec/!opengl es 2.0/invalid-es3-queries_gles2: skip |
||||
spec/!opengl es 2.0/minmax_gles2: pass |
||||
spec/!opengl es 2.0/multiple-shader-objects_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-blend-api_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-builtins_gles2: pass |
||||
spec/egl_khr_create_context/valid debug flag gles2: pass |
||||
spec/ext_frag_depth/fragdepth_gles2: crash |
||||
spec/ext_polygon_offset_clamp/ext_polygon_offset_clamp-draw_gles2: crash |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-highp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-lowp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-mediump: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles2: skip |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles2: skip |
||||
spec/khr_debug/object-label_gles2: fail |
||||
spec/khr_debug/push-pop-group_gles2: pass |
||||
spec/oes_packed_depth_stencil/depth_stencil texture gles2: pass |
||||
spec/oes_vertex_half_float/draw-vertices-half-float-user_gles2: crash |
||||
spec/oes_vertex_half_float/draw-vertices-half-float_gles2: crash |
@ -0,0 +1,62 @@ |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 teximage: crash |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 texsubimage: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 r11: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rg11: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8-punchthrough-alpha1: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgba8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-alpha8: crash |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-punchthrough-alpha1: crash |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-bindfragdataindexed-invalid-parameters_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-explicit_gles3: crash |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-pattern_gles3: crash |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend_gles3: crash |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-getfragdataindex_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-output-location_gles3: pass |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent client-storage: skip |
||||
spec/arb_transform_feedback2/change objects while paused (gles3): crash |
||||
spec/egl_khr_create_context/valid debug flag gles3: pass |
||||
spec/ext_base_instance/arb_base_instance-baseinstance-doesnt-affect-gl-instance-id_gles3: crash |
||||
spec/ext_base_instance/arb_base_instance-drawarrays_gles3: crash |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/overwrite-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-mipmap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-3d-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-cubemap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/texture-gles3: skip |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct error: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct get: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run: crash |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run-no-fs: crash |
||||
spec/ext_window_rectangles/errors_gles3: skip |
||||
spec/ext_window_rectangles/render_gles3: skip |
||||
spec/glsl-es-3.00/execution/varying-struct-centroid_gles3: fail |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-depthcoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-innercoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-tri_gles3: skip |
||||
spec/khr_debug/object-label_gles3: fail |
||||
spec/khr_debug/push-pop-group_gles3: pass |
||||
spec/nv_read_depth/read_depth_gles3: crash |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,4 @@ |
||||
dEQP-GLES3.functional.shaders.metamorphic.synthetic.variant_1 |
||||
dEQP-GLES3.functional.shaders.metamorphic.synthetic.variant_3 |
||||
dEQP-GLES3.functional.shaders.metamorphic.bubblesort_flag.variant_1 |
||||
dEQP-GLES3.functional.shaders.metamorphic.bubblesort_flag.variant_2 |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,14 @@ |
||||
dEQP-GLES31.functional.debug.negative_coverage.callbacks.compute.exceed_atomic_counters_limit |
||||
dEQP-GLES31.functional.debug.negative_coverage.get_error.compute.exceed_atomic_counters_limit |
||||
dEQP-GLES31.functional.debug.negative_coverage.log.compute.exceed_atomic_counters_limit |
||||
dEQP-GLES31.functional.image_load_store.2d.format_reinterpret.rgba16ui_rgba16f |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.highp_fragment.vec4 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.highp_vertex.vec2 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_fragment.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_vertex.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.lowp_vertex.vec2 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_fragment.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_fragment.vec2 |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_vertex.scalar |
||||
dEQP-GLES31.functional.shaders.builtin_functions.precision.frexp.mediump_vertex.vec2 |
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20 |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@ |
||||
arb_blend_func_extended-fbo-extended-blend-pattern_gles2 |
@ -0,0 +1,22 @@ |
||||
spec/!opengl es 2.0/draw_buffers_gles2: pass |
||||
spec/!opengl es 2.0/fbo_discard_gles2: pass |
||||
spec/!opengl es 2.0/invalid-es3-queries_gles2: skip |
||||
spec/!opengl es 2.0/minmax_gles2: pass |
||||
spec/!opengl es 2.0/multiple-shader-objects_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-blend-api_gles2: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-builtins_gles2: pass |
||||
spec/egl_khr_create_context/valid debug flag gles2: pass |
||||
spec/ext_frag_depth/fragdepth_gles2: pass |
||||
spec/ext_polygon_offset_clamp/ext_polygon_offset_clamp-draw_gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-highp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-lowp: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles2-redecl-mediump: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles2: skip |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles2: skip |
||||
spec/khr_debug/object-label_gles2: fail |
||||
spec/khr_debug/push-pop-group_gles2: pass |
||||
spec/oes_packed_depth_stencil/depth_stencil texture gles2: pass |
||||
spec/oes_vertex_half_float/draw-vertices-half-float-user_gles2: pass |
||||
spec/oes_vertex_half_float/draw-vertices-half-float_gles2: pass |
@ -0,0 +1,62 @@ |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 teximage: pass |
||||
spec/!opengl es 3.0/ext_texture_array-compressed_gles3 texsubimage: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 r11: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rg11: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgb8-punchthrough-alpha1: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 rgba8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-alpha8: pass |
||||
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3 srgb8-punchthrough-alpha1: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-bindfragdataindexed-invalid-parameters_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-explicit_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend-pattern_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-fbo-extended-blend_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-getfragdataindex_gles3: pass |
||||
spec/arb_blend_func_extended/arb_blend_func_extended-output-location_gles3: pass |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 draw coherent client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read client-storage: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent: skip |
||||
spec/arb_buffer_storage/bufferstorage-persistent_gles3 read coherent client-storage: skip |
||||
spec/arb_transform_feedback2/change objects while paused (gles3): pass |
||||
spec/egl_khr_create_context/valid debug flag gles3: pass |
||||
spec/ext_base_instance/arb_base_instance-baseinstance-doesnt-affect-gl-instance-id_gles3: pass |
||||
spec/ext_base_instance/arb_base_instance-drawarrays_gles3: pass |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/discard-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms2: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ms8: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/integer-gles3-ss: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/mrt-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/nonuniform-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/overwrite-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms16-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms2-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ms8-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/simple-ss-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-2darray-mipmap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-3d-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/single-slice-cubemap-gles3: skip |
||||
spec/ext_shader_framebuffer_fetch/execution/texture-gles3: skip |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct error: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct get: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run: pass |
||||
spec/ext_transform_feedback/structs_gles3 basic-struct run-no-fs: pass |
||||
spec/ext_window_rectangles/errors_gles3: skip |
||||
spec/ext_window_rectangles/render_gles3: skip |
||||
spec/glsl-es-3.00/execution/varying-struct-centroid_gles3: fail |
||||
spec/intel_blackhole_render/intel_blackhole-draw_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-depthcoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-innercoverage_gles3: skip |
||||
spec/intel_conservative_rasterization/intel_conservative_rasterization-tri_gles3: skip |
||||
spec/khr_debug/object-label_gles3: fail |
||||
spec/khr_debug/push-pop-group_gles3: pass |
||||
spec/nv_read_depth/read_depth_gles3: fail |
@ -0,0 +1,497 @@ |
||||
#!/bin/bash |
||||
|
||||
trap "{ rm -f $TMP_TEST_FILE; }" EXIT |
||||
|
||||
CI_PATH=$(dirname $(readlink -f "$0")) |
||||
|
||||
VIRGL_PATH="/virglrenderer" |
||||
if [ ! -d "$VIRGL_PATH" ]; then |
||||
VIRGL_PATH="${CI_PATH}/.." |
||||
fi |
||||
|
||||
CTS_PATH="/VK-GL-CTS" |
||||
if [ ! -d "$CTS_PATH" ]; then |
||||
CTS_PATH="${CI_PATH}/../../VK-GL-CTS" |
||||
fi |
||||
|
||||
TESTS="" |
||||
BACKENDS="" |
||||
NUM_THREADS=$(expr $(expr $(nproc) + 2) / 3) |
||||
|
||||
COMPARE_BACKENDS=0 |
||||
COMPARE_PREVIOUS=0 |
||||
USE_HOST_GLES=0 |
||||
TEST_APP="deqp" |
||||
VERIFY_UNRELIABLE_TESTS=0 |
||||
|
||||
parse_input() |
||||
{ |
||||
while [ -n "$1" ]; do |
||||
case $1 in |
||||
|
||||
-u|--unreliable) |
||||
VERIFY_UNRELIABLE_TESTS=1 |
||||
;; |
||||
|
||||
-a|--all-backends) |
||||
BACKENDS="" |
||||
BACKENDS="$BACKENDS vtest-softpipe" |
||||
BACKENDS="$BACKENDS vtest-llvmpipe" |
||||
BACKENDS="$BACKENDS vtest-gpu" |
||||
BACKENDS="$BACKENDS softpipe" |
||||
BACKENDS="$BACKENDS llvmpipe" |
||||
BACKENDS="$BACKENDS gpu" |
||||
;; |
||||
|
||||
-t|--test) |
||||
TEST_NAME="$2" |
||||
shift |
||||
TMP_TEST_FILE=$(mktemp /tmp/deqp_test.XXXXXX) |
||||
echo "$TEST_NAME" > "$TMP_TEST_FILE" |
||||
TESTS="$TESTS custom" |
||||
;; |
||||
|
||||
-v|--vtest) |
||||
BACKENDS="" |
||||
BACKENDS="$BACKENDS vtest-softpipe" |
||||
BACKENDS="$BACKENDS vtest-llvmpipe" |
||||
BACKENDS="$BACKENDS vtest-gpu" |
||||
;; |
||||
|
||||
--host-gles) |
||||
USE_HOST_GLES=1 |
||||
;; |
||||
|
||||
--host-gl) |
||||
USE_HOST_GLES=0 |
||||
;; |
||||
|
||||
-b|--backend) |
||||
NEW_BACKEND="$2" |
||||
shift |
||||
BACKENDS="$BACKENDS $NEW_BACKEND" |
||||
;; |
||||
|
||||
-j|--threads) |
||||
NUM_THREADS=$2 |
||||
shift |
||||
;; |
||||
|
||||
--gles2) |
||||
TESTS="$TESTS gles2" |
||||
;; |
||||
|
||||
--gles3) |
||||
TESTS="$TESTS gles3" |
||||
;; |
||||
|
||||
--gles31) |
||||
TESTS="$TESTS gles31" |
||||
;; |
||||
|
||||
-d|--deqp) |
||||
TEST_APP="deqp" |
||||
;; |
||||
|
||||
-p|--piglit) |
||||
TEST_APP="piglit" |
||||
;; |
||||
|
||||
-cp|--compare-previous) |
||||
# Compare results against previous runs |
||||
COMPARE_PREVIOUS=1 |
||||
;; |
||||
|
||||
*) |
||||
echo "Unknown flag $1" |
||||
exit 1 |
||||
esac |
||||
shift |
||||
done |
||||
|
||||
if [[ -z $BACKENDS ]]; then |
||||
BACKENDS="gpu" |
||||
fi |
||||
|
||||
# These two options are incompatible, and one has to be disabled |
||||
if [ $VERIFY_UNRELIABLE_TESTS -ne 0 ]; then |
||||
COMPARE_PREVIOUS=0 |
||||
fi |
||||
} |
||||
|
||||
compare_previous() |
||||
{ |
||||
if [ ! -f $PREVIOUS_RESULTS_DIR/results.txt ]; then |
||||
return 2 |
||||
fi |
||||
|
||||
# The wildcard here will match ""/"_radeonsi"/"_i915"/etc |
||||
# which enables us to ignore tests by driver |
||||
# BUT: We're not able to get the driver name and |
||||
# use it to disambiguate between HW-based drivers |
||||
IGNORE_TESTS=$(cat $PREVIOUS_RESULTS_DIR/ignore_tests.txt 2>/dev/null) |
||||
|
||||
# Avoid introducing changes while doing this comparison |
||||
TMP_RESULTS=$(mktemp /tmp/virgl_ci_results.XXXXXX) |
||||
TMP_PREV_RESULTS=$(mktemp /tmp/virgl_ci_previous_results.XXXXXX) |
||||
cp $RESULTS_DIR/results.txt $TMP_RESULTS |
||||
cp $PREVIOUS_RESULTS_DIR/results.txt $TMP_PREV_RESULTS |
||||
|
||||
for TEST in $IGNORE_TESTS; do |
||||
sed -i "\:$TEST:d" $TMP_RESULTS $TMP_PREV_RESULTS |
||||
done |
||||
|
||||
if [ "$TEST_APP" = "piglit" ]; then |
||||
# This distinction adds too much variability |
||||
sed -i "s/crash/fail/g" $TMP_RESULTS $TMP_PREV_RESULTS |
||||
elif [ "$TEST_APP" = "deqp" ]; then |
||||
# This distinction adds too much variability |
||||
sed -i "s/QualityWarning/Pass/g" $TMP_RESULTS $TMP_PREV_RESULTS |
||||
sed -i "s/CompatibilityWarning/Pass/g" $TMP_RESULTS $TMP_PREV_RESULTS |
||||
fi |
||||
|
||||
# Sort results files |
||||
sort -V $TMP_RESULTS -o $TMP_RESULTS |
||||
sort -V $TMP_PREV_RESULTS -o $TMP_PREV_RESULTS |
||||
|
||||
diff -u $TMP_PREV_RESULTS $TMP_RESULTS 2>&1 > $RESULTS_DIR/regression_diff.txt |
||||
if [ $? -ne 0 ]; then |
||||
touch $VIRGL_PATH/results/regressions_detected |
||||
return 1 |
||||
else |
||||
rm -rf $RESULTS_DIR/regression_diff.txt |
||||
return 0 |
||||
fi |
||||
} |
||||
|
||||
interpret_results() |
||||
{ |
||||
PASSED_TESTS="$1" |
||||
TOTAL_TESTS="$2" |
||||
|
||||
if [ $COMPARE_PREVIOUS -ne 0 ]; then |
||||
compare_previous |
||||
case $? in |
||||
0) |
||||
echo "Pass - matches previous results" |
||||
return 0 |
||||
;; |
||||
|
||||
1) |
||||
echo "Fail - diff against previous results: $RESULTS_DIR/regression_diff.txt" |
||||
return 1 |
||||
;; |
||||
|
||||
2) |
||||
echo "Pass - no previous results, but passed $PASSED_TESTS/$TOTAL_TESTS tests" |
||||
return 0 |
||||
;; |
||||
|
||||
*) |
||||
echo "BUG!" |
||||
return 1 |
||||
;; |
||||
esac |
||||
else |
||||
if [ $PASSED_TESTS -eq $TOTAL_TESTS ] && [ $TOTAL_TESTS -ne 0 ]; then |
||||
echo "Pass - passed $PASSED_TESTS/$TOTAL_TESTS tests" |
||||
return 0 |
||||
else |
||||
echo "Fail - passed $PASSED_TESTS/$TOTAL_TESTS tests: $RESULTS_DIR/results.txt" |
||||
return 1 |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
run_vtest_server() |
||||
{ |
||||
( |
||||
if [ $USE_HOST_GLES -ne 0 ]; then |
||||
VTEST_USE_EGL_SURFACELESS=1 \ |
||||
VTEST_USE_GLES=1 \ |
||||
virgl_test_server &>$VTEST_LOG_FILE & |
||||
else |
||||
VTEST_USE_EGL_SURFACELESS=1 \ |
||||
virgl_test_server &>$VTEST_LOG_FILE & |
||||
fi |
||||
) |
||||
} |
||||
|
||||
run_test_suite() |
||||
{ |
||||
local BACKEND="$1" |
||||
local TEST_NAME="$2" |
||||
|
||||
local RET=0 |
||||
|
||||
# echo "run_test_suite() OUTPUT_PATH: $OUTPUT_PATH" |
||||
# echo "run_test_suite() LOG_FILE: $LOG_FILE" |
||||
# echo "run_test_suite() RESULTS_FILE: $RESULTS_FILE" |
||||
|
||||
if [ $VERIFY_UNRELIABLE_TESTS -eq 1 ]; then |
||||
UNRELIABLE_STRING="unreliable " |
||||
fi |
||||
|
||||
if [[ $BACKEND == *"vtest"* ]]; then |
||||
printf "Running ${UNRELIABLE_STRING}$TEST_APP-$TEST_NAME on vtest-$DRIVER_NAME: " |
||||
else |
||||
printf "Running ${UNRELIABLE_STRING}$TEST_APP-$TEST_NAME on $DRIVER_NAME: " |
||||
fi |
||||
|
||||
if [ "$TEST_APP" = "piglit" ]; then |
||||
|
||||
# Don't run GLX tests |
||||
PIGLIT_TESTS=" -x glx" |
||||
|
||||
if [ $VERIFY_UNRELIABLE_TESTS -eq 1 ]; then |
||||
UNRELIABLE_TESTS=$(cat $PREVIOUS_RESULTS_DIR/ignore_tests.txt 2>/dev/null) |
||||
if [[ -z $UNRELIABLE_TESTS ]]; then |
||||
echo "Ignore - No unreliable tests found" |
||||
return 0 |
||||
fi |
||||
|
||||
for UNRELIABLE_TEST in $UNRELIABLE_TESTS; do |
||||
PIGLIT_TESTS="$PIGLIT_TESTS -t $UNRELIABLE_TEST" |
||||
done |
||||
else |
||||
PIGLIT_TESTS="$PIGLIT_TESTS -t $TEST_NAME" |
||||
fi |
||||
|
||||
piglit run --platform x11_egl \ |
||||
-l verbose \ |
||||
$PIGLIT_TESTS \ |
||||
gpu \ |
||||
/tmp/ &> $LOG_FILE |
||||
|
||||
piglit summary console /tmp/ | grep -B 999999 "summary:" | grep -v "summary:" > $RESULTS_FILE |
||||
|
||||
TOTAL_TESTS=$(cat $RESULTS_FILE | wc -l) |
||||
PASSED_TESTS=$(grep " pass" $RESULTS_FILE | wc -l) |
||||
|
||||
interpret_results $PASSED_TESTS $TOTAL_TESTS |
||||
RET=$? |
||||
|
||||
elif [ "$TEST_APP" = "deqp" ]; then |
||||
|
||||
if [ $VERIFY_UNRELIABLE_TESTS -eq 1 ]; then |
||||
TEST_FILE="$PREVIOUS_RESULTS_DIR/ignore_tests.txt" |
||||
if [ ! -f $TEST_FILE ]; then |
||||
echo "Ignore - No unreliable tests found" |
||||
return 0 |
||||
fi |
||||
fi |
||||
|
||||
deqp \ |
||||
--cts-build-dir $CTS_PATH/build \ |
||||
--test-names-file "$TEST_FILE" \ |
||||
--results-file "$RESULTS_FILE" \ |
||||
--threads $NUM_THREADS &> $LOG_FILE |
||||
|
||||
# echo "$(which dEQP): Returned $?" |
||||
# echo "ls -la CTS_PATH/build: $CTS_PATH/build - $(ls -la $CTS_PATH/build)" |
||||
# echo "ls -la TEST_FILE: $TEST_FILE - $(ls -la $TEST_FILE)" |
||||
# echo "ls -la RESULTS_FILE: $RESULTS_FILE - $(ls -la $RESULTS_FILE)" |
||||
# echo "LOG_FILE: $LOG_FILE - $(ls -la $LOG_FILE)" |
||||
|
||||
# Remove header |
||||
sed -i "/#/d" $RESULTS_FILE |
||||
|
||||
# Sort results file to make diffs easier to read |
||||
sort -V $RESULTS_FILE -o $RESULTS_FILE |
||||
|
||||
TOTAL_TESTS=$(cat $RESULTS_FILE | wc -l) |
||||
PASSED_TESTS=$(grep " Pass" $RESULTS_FILE | wc -l) |
||||
|
||||
interpret_results "$PASSED_TESTS" "$TOTAL_TESTS" |
||||
RET=$? |
||||
|
||||
else |
||||
echo "Invalid test-application supplied: \"$TEST_APP\"" |
||||
exit 1 |
||||
fi |
||||
|
||||
return $RET |
||||
} |
||||
|
||||
create_result_dir() |
||||
{ |
||||
if [[ -n $GALLIUM_DRIVER ]]; then |
||||
HOST_DRIVER="_${GALLIUM_DRIVER}" |
||||
elif [[ -n $DRIVER_NAME ]]; then |
||||
HOST_DRIVER="_${DRIVER_NAME}" |
||||
fi |
||||
|
||||
if [ $USE_HOST_GLES -eq 0 ]; then |
||||
HOST_GL="gl" |
||||
else |
||||
HOST_GL="es" |
||||
fi |
||||
|
||||
TEST_PATH=${HOST_GL}_host${HOST_DRIVER}/${TEST_APP}_${TEST_NAME} |
||||
RESULTS_DIR=$VIRGL_PATH/results/${TEST_PATH} |
||||
PREVIOUS_RESULTS_DIR=$VIRGL_PATH/ci/previous_results/${TEST_PATH} |
||||
|
||||
mkdir -p "$RESULTS_DIR" |
||||
|
||||
export OUTPUT_PATH="${RESULTS_DIR}" |
||||
export RESULTS_FILE="${OUTPUT_PATH}/results.txt" |
||||
export LOG_FILE="${OUTPUT_PATH}/log.txt" |
||||
export VTEST_LOG_FILE="${OUTPUT_PATH}/vtest_log.txt" |
||||
} |
||||
|
||||
run_test_on_backends() |
||||
{ |
||||
local BACKENDS="$1" |
||||
local TEST_NAME="$2" |
||||
local TEST_FILE="$3" |
||||
local RET=0 |
||||
|
||||
# echo "run_test_on_backends() BACKENDS: $BACKENDS" |
||||
# echo "run_test_on_backends() TEST_NAME: $TEST_NAME" |
||||
# echo "run_test_on_backends() TEST_FILE: $TEST_FILE" |
||||
|
||||
for BACKEND in $BACKENDS; do |
||||
unset DRIVER_NAME |
||||
unset GALLIUM_DRIVER |
||||
unset GALLIVM_PERF |
||||
unset LIBGL_ALWAYS_SOFTWARE |
||||
unset VTEST_USE_EGL_SURFACELESS |
||||
|
||||
# If the custom test is being run, we're probably debugging |
||||
if [ "$TEST_NAME" = "custom" ]; then |
||||
export MESA_DEBUG=1 |
||||
fi |
||||
|
||||
case $BACKEND in |
||||
vtest-softpipe) |
||||
export LIBGL_ALWAYS_SOFTWARE=1 |
||||
export GALLIUM_DRIVER=softpipe |
||||
export DRIVER_NAME=$GALLIUM_DRIVER |
||||
;; |
||||
|
||||
vtest-llvmpipe) |
||||
export LIBGL_ALWAYS_SOFTWARE=1 |
||||
export GALLIUM_DRIVER=llvmpipe |
||||
export DRIVER_NAME=$GALLIUM_DRIVER |
||||
;; |
||||
|
||||
softpipe) |
||||
export LIBGL_ALWAYS_SOFTWARE=1 |
||||
export GALLIUM_DRIVER=softpipe |
||||
export DRIVER_NAME=$GALLIUM_DRIVER |
||||
;; |
||||
|
||||
llvmpipe) |
||||
export GALLIVM_PERF=nopt,no_filter_hacks |
||||
export LIBGL_ALWAYS_SOFTWARE=1 |
||||
export GALLIUM_DRIVER=llvmpipe |
||||
export DRIVER_NAME=$GALLIUM_DRIVER |
||||
;; |
||||
|
||||
vtest-gpu|gpu) |
||||
DEVICE_NAME=$(basename /dev/dri/renderD128) |
||||
export DRIVER_NAME="$(basename `readlink /sys/class/drm/${DEVICE_NAME}/device/driver`)" |
||||
;; |
||||
|
||||
*) |
||||
DEVICE_NAME=$(basename /dev/dri/renderD128) |
||||
export DRIVER_NAME="$(basename `readlink /sys/class/drm/${DEVICE_NAME}/device/driver`)" |
||||
|
||||
if [ "$BACKEND" != "$DRIVER_NAME" ]; then |
||||
echo "Invalid backend: $BACKEND" |
||||
exit 1 |
||||
fi |
||||
;; |
||||
esac |
||||
|
||||
# This case statement is broken into two parts |
||||
# because for the second part the LOG_FILE has |
||||
# declared, which is needed to redirect FDs |
||||
create_result_dir |
||||
|
||||
case $BACKEND in |
||||
vtest-*) |
||||
run_vtest_server |
||||
export GALLIUM_DRIVER=virpipe |
||||
;; |
||||
|
||||
*) |
||||
;; |
||||
esac |
||||
|
||||
run_test_suite "$BACKEND" "$TEST_NAME" |
||||
|
||||
if [ $? -ne 0 ]; then |
||||
RET=1 |
||||
fi |
||||
|
||||
killall -q virgl_test_server |
||||
done |
||||
|
||||
return $RET |
||||
} |
||||
|
||||
run_all_tests() |
||||
{ |
||||
local BACKENDS=$1 |
||||
local TESTS=$2 |
||||
local RET=0 |
||||
|
||||
if [ $USE_HOST_GLES -eq 0 ]; then |
||||
echo "Running test(s) on GL Host" |
||||
echo "--------------------------" |
||||
else |
||||
echo "Running test(s) on GLES Host" |
||||
echo "----------------------------" |
||||
fi |
||||
# echo "run_all_tests() BACKENDS: $BACKENDS" |
||||
# echo "run_all_tests() TESTS: $TESTS" |
||||
|
||||
|
||||
for TEST in $TESTS; do |
||||
case $TEST in |
||||
custom) |
||||
TEST_NAME="custom" |
||||
TEST_FILE="$TMP_TEST_FILE" |
||||
;; |
||||
gles2) |
||||
TEST_NAME="gles2" |
||||
TEST_FILE="$CTS_PATH/android/cts/master/gles2-master.txt" |
||||
;; |
||||
|
||||
gles3) |
||||
TEST_NAME="gles3" |
||||
TEST_FILE="$CTS_PATH/android/cts/master/gles3-master.txt" |
||||
;; |
||||
|
||||
gles31) |
||||
TEST_NAME="gles31" |
||||
TEST_FILE="$CTS_PATH/android/cts/master/gles31-master.txt" |
||||
;; |
||||
|
||||
*) |
||||
echo "Invalid test: $TEST" |
||||
exit 1 |
||||
;; |
||||
esac |
||||
|
||||
run_test_on_backends "$BACKENDS" "$TEST_NAME" "$TEST_FILE" |
||||
|
||||
if [ $? -ne 0 ]; then |
||||
RET=1 |
||||
fi |
||||
done |
||||
|
||||
exit $RET |
||||
} |
||||
|
||||
setup() |
||||
{ |
||||
Xvfb :0 -screen 0 1024x768x24 &>/dev/null & |
||||
export DISPLAY=:0 |
||||
sleep 2 |
||||
} |
||||
|
||||
setup |
||||
parse_input $@ |
||||
run_all_tests "$BACKENDS" "$TESTS" |
Loading…
Reference in new issue