r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled.

For !8044 I'm working on getting all drivers to accept NIR.  The NIR
compiler in the driver is apparently not quite ready, so use NIR-to-TGSI
instead.  This is a net win in testcases working on my RV770 and Turks
cards (especially in some important piglit tests involving YUV dma-buf
decode), though it's not regression-free.

shader-db (R600):
total dw in shared programs: 8553412 -> 8358918 (-2.27%)
dw in affected programs: 7476702 -> 7282208 (-2.60%)
total gprs in shared programs: 217286 -> 213217 (-1.87%)
gprs in affected programs: 72747 -> 68678 (-5.59%)
total loops in shared programs: 398 -> 330 (-17.09%)
loops in affected programs: 68 -> 0
total cf in shared programs: 558835 -> 332768 (-40.45%)
cf in affected programs: 420475 -> 194408 (-53.76%)

shader-db (Turks):
total dw in shared programs: 14104598 -> 13556782 (-3.88%)
dw in affected programs: 12161972 -> 11614156 (-4.50%)
total gprs in shared programs: 321068 -> 313690 (-2.30%)
gprs in affected programs: 114899 -> 107521 (-6.42%)
total loops in shared programs: 736 -> 651 (-11.55%)
loops in affected programs: 111 -> 26 (-76.58%)
total cf in shared programs: 925771 -> 581226 (-37.22%)
cf in affected programs: 678600 -> 334055 (-50.77%)
total stack in shared programs: 27853 -> 27855 (<.01%)
stack in affected programs: 5 -> 7 (40.00%)

glmark2 terrain: 0.137649% +/- 0.0511938% (n=6)
glmark2 jellyfish: no change (n=8)
unigine valley (extreme) 5.36 -> 5.45 (n=1 it takes so long to run)
unigine heaven (basic) 16.13 -> 16.15 (n=1)

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14319>
This commit is contained in:
Emma Anholt
2021-12-10 15:17:01 -08:00
committed by Marge Bot
parent 0879c15666
commit a4840e15ab
11 changed files with 115 additions and 201 deletions

View File

@@ -2,61 +2,18 @@ KHR-GL33.clip_distance.functional,Fail
KHR-GL33.cull_distance.functional,Fail KHR-GL33.cull_distance.functional,Fail
KHR-GL33.nearest_edge.offset_right,Fail KHR-GL33.nearest_edge.offset_right,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_0_clamp_to_edge,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_0_mirrored_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_0_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_1_clamp_to_edge,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_1_mirrored_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_1_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_2_clamp_to_edge,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_2_mirrored_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_11x131_2_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_0_clamp_to_edge,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_0_mirrored_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_0_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_1_clamp_to_edge,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_1_mirrored_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_1_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_2_clamp_to_edge,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_2_mirrored_repeat,Fail
KHR-GL33.texture_repeat_mode.rgba32ui_49x23_2_repeat,Fail
KHR-GL33.texture_size_promotion.functional,Fail KHR-GL33.texture_size_promotion.functional,Fail
KHR-GL33.texture_swizzle.functional,Fail KHR-GL33.texture_swizzle.functional,Fail
KHR-GLES3.core.nearest_edge.offset_right,Fail KHR-GLES3.core.nearest_edge.offset_right,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_0_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_0_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_0_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_1_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_1_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_1_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_0_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_0_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_0_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_1_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_1_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_1_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_2_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_2_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_2_repeat,Fail
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center,Fail dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center,Fail
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail
dEQP-GLES2.functional.clipping.point.wide_point_clip,Fail dEQP-GLES2.functional.clipping.point.wide_point_clip,Fail
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center,Fail dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center,Fail
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_component_read_fragment,Fail
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_dynamic_subscript_write_dynamic_subscript_read_fragment,Fail
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_static_loop_subscript_read_fragment,Fail
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_static_subscript_read_fragment,Fail
dEQP-GLES2.functional.texture.size.cube.15x15_l8,Fail dEQP-GLES2.functional.texture.size.cube.15x15_l8,Fail
dEQP-GLES2.functional.texture.size.cube.15x15_rgb888,Fail dEQP-GLES2.functional.texture.size.cube.15x15_rgb888,Fail
dEQP-GLES2.functional.texture.size.cube.15x15_rgba4444,Fail dEQP-GLES2.functional.texture.size.cube.15x15_rgba4444,Fail
@@ -118,11 +75,6 @@ dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_highp,Fail
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp,Fail dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp,Fail
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp,Fail dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp,Fail
dEQP-GLES3.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_component_read_fragment,Fail
dEQP-GLES3.functional.shaders.indexing.vector_subscript.vec4_dynamic_subscript_write_dynamic_subscript_read_fragment,Fail
dEQP-GLES3.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_static_loop_subscript_read_fragment,Fail
dEQP-GLES3.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_static_subscript_read_fragment,Fail
dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_bias_fragment,Fail dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_bias_fragment,Fail
dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_fragment,Fail dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_fragment,Fail
dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_vertex,Fail dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_vertex,Fail
@@ -425,22 +377,14 @@ dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component1
dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component24_2d_array,Fail dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component24_2d_array,Fail
dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component32f_2d_array,Fail dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component32f_2d_array,Fail
# "../src/gallium/drivers/r600/sb/sb_ra_init.cpp:718:split_vec: Assertion `!o->is_dead()' failed."
glslparsertest@glsl2@loop-03.vert,Crash
glslparsertest@glsl2@loop-04.vert,Crash
# crash at:
# 618 if (r->loop_phi) {
# 619 split_phi_dst(r->get_entry_code_location(), r->loop_phi,
# 620 true);
glslparsertest@shaders@correctfull.frag,Crash
glslparsertest@shaders@correctpreprocess5.frag,Crash
shaders@glsl-bug-110796,Fail shaders@glsl-bug-110796,Fail
shaders@glsl-max-varyings,Fail
shaders@glsl-max-varyings >max_varying_components,Fail
spec@!opengl 1.0@gl-1.0-dlist-bitmap,Fail spec@!opengl 1.0@gl-1.0-dlist-bitmap,Fail
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
spec@!opengl 1.0@gl-1.0-spot-light,Fail
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior,Fail spec@!opengl 1.0@gl-1.0-swapbuffers-behavior,Fail
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
@@ -906,16 +850,11 @@ spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB12,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB16,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB16,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB8,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB8,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_ayuv,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv12,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv12,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_uyvy,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_uyvy,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_xyuv,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y410,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y412,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y416,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuyv,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuyv,Fail
spec@ext_packed_float@texwrap formats bordercolor-swizzled,Fail spec@ext_packed_float@texwrap formats bordercolor-swizzled,Fail
@@ -1042,13 +981,6 @@ spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SR
spec@ext_transform_feedback@immediate-reuse-index-buffer,Fail spec@ext_transform_feedback@immediate-reuse-index-buffer,Fail
spec@glsl-1.10@execution@function-calls@glsl-function-chain16-in-array-indirect,Fail
spec@glsl-1.10@execution@function-calls@glsl-function-chain16-in-array-indirect2,Fail
spec@glsl-1.10@execution@varying-packing@simple float arrays_of_arrays,Fail
spec@glsl-1.10@execution@varying-packing@simple int arrays_of_arrays,Fail
spec@glsl-1.10@execution@varying-packing@simple uint arrays_of_arrays,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
@@ -1056,14 +988,15 @@ spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
spec@glsl-1.20@execution@fs-nan-builtin-max,Fail spec@glsl-1.20@execution@fs-nan-builtin-max,Fail
spec@glsl-1.20@execution@fs-nan-builtin-min,Fail spec@glsl-1.20@execution@fs-nan-builtin-min,Fail
spec@glsl-1.20@execution@matrix-out-of-bounds-access@fs-mat4-out-of-bounds-6,Crash
spec@glsl-1.20@execution@vs-nan-builtin-max,Fail spec@glsl-1.20@execution@vs-nan-builtin-max,Fail
spec@glsl-1.20@execution@vs-nan-builtin-min,Fail spec@glsl-1.20@execution@vs-nan-builtin-min,Fail
spec@glsl-1.30@execution@clipping@vs-clip-distance-deadcode,Fail
spec@glsl-1.30@execution@clipping@vs-clip-distance-primitives,Fail spec@glsl-1.30@execution@clipping@vs-clip-distance-primitives,Fail
# "error: (dest->reg->num_array_elems == 0 || dest->base_offset < dest->reg->num_array_elems) && "definitely out-of-bounds array access" (../src/compiler/nir/nir_validate.c:277)"
spec@glsl-1.30@execution@fs-large-local-array-out-of-bounds-read,Crash
spec@glsl-1.30@execution@fs-large-local-array-out-of-bounds-write,Crash
spec@glsl-1.30@execution@range_analysis_fsat_of_nan,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) 1darrayshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) 1darrayshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) cubeshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) cubeshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cube,Fail spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cube,Fail
@@ -1071,8 +1004,6 @@ spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cubeshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturelod 1darrayshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection texturelod 1darrayshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturelodoffset 1darrayshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection texturelodoffset 1darrayshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection textureoffset(bias) 1darrayshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection textureoffset(bias) 1darrayshadow,Fail
spec@glsl-1.50@execution@geometry@dynamic_input_array_index,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
spec@glsl-1.50@execution@texelfetchoffset@gs-isampler2drect,Fail spec@glsl-1.50@execution@texelfetchoffset@gs-isampler2drect,Fail
@@ -1089,7 +1020,7 @@ spec@glsl-1.50@execution@texelfetchoffset@gs-texelfetch-usampler3d,Fail
spec@glsl-1.50@execution@texelfetchoffset@gs-usampler2drect,Fail spec@glsl-1.50@execution@texelfetchoffset@gs-usampler2drect,Fail
spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec3-index-rd,Fail spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec3-index-rd,Fail
spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec4-index-rd,Crash spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec4-index-rd,Fail
spec@intel_performance_query@intel_performance_query-issue_2235,Fail spec@intel_performance_query@intel_performance_query-issue_2235,Fail

View File

@@ -5,5 +5,12 @@ glx@
built-in-functions@gs built-in-functions@gs
texelfetch@gs texelfetch@gs
# GPU hangs now
variable-indexing@gs-in
fs-multiple-large-local-arrays
# intermittent GL_OOMs, let's make sure that doesn't impact other tests. # intermittent GL_OOMs, let's make sure that doesn't impact other tests.
spec@!opengl 1.2@tex3d-maxsize spec@!opengl 1.2@tex3d-maxsize
# 1-minute timeouts
KHR-GL33.texture_swizzle.smoke

View File

@@ -1,35 +1,19 @@
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_0_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_0_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_0_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_1_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_1_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_1_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_0_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_0_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_0_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_1_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_1_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_1_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_2_clamp_to_edge,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_2_mirrored_repeat,Fail
KHR-GLES3.texture_repeat_mode.rgba32ui_49x23_2_repeat,Fail
KHR-GLES31.core.compute_shader.pipeline-compute-chain,Fail KHR-GLES31.core.compute_shader.pipeline-compute-chain,Fail
KHR-GLES31.core.compute_shader.resources-max,Fail
KHR-GLES31.core.compute_shader.shared-struct,Fail
KHR-GLES31.core.draw_buffers_indexed.blending,Fail KHR-GLES31.core.draw_buffers_indexed.blending,Fail
KHR-GLES31.core.draw_indirect.basic-indicesDataType-unsigned_byte,Fail KHR-GLES31.core.draw_indirect.basic-indicesDataType-unsigned_byte,Fail
# "find_hw_atomic_counter: Assertion `0' failed."
#
# nir_to_tgsi's gives us a .Index of -1, and we obviously can't find that in a
# counter declaration.
KHR-GLES31.core.geometry_shader.api.max_atomic_counters,Crash
KHR-GLES31.core.gpu_shader5.texture_gather_offset_color_clamp_to_border,Fail KHR-GLES31.core.gpu_shader5.texture_gather_offset_color_clamp_to_border,Fail
KHR-GLES31.core.gpu_shader5.texture_gather_offset_color_clamp_to_edge,Fail KHR-GLES31.core.gpu_shader5.texture_gather_offset_color_clamp_to_edge,Fail
KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_ComputeShader,Fail KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_ComputeShader,Fail
KHR-GLES31.core.layout_binding.image2D_layout_binding_imageLoad_FragmentShader,Fail
KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-dispatches,Fail KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-dispatches,Fail
KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-draw-calls2,Fail KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-draw-calls2,Fail
@@ -38,14 +22,13 @@ KHR-GLES31.core.shader_atomic_counters.advanced-usage-multi-stage,Fail
KHR-GLES31.core.shader_image_load_store.basic-allFormats-loadStoreComputeStage,Fail KHR-GLES31.core.shader_image_load_store.basic-allFormats-loadStoreComputeStage,Fail
KHR-GLES31.core.shader_image_load_store.basic-allTargets-loadStoreCS,Fail KHR-GLES31.core.shader_image_load_store.basic-allTargets-loadStoreCS,Fail
KHR-GLES31.core.shader_storage_buffer_object.advanced-matrix-cs,Fail
KHR-GLES31.core.shader_storage_buffer_object.advanced-readWrite-case1-cs,Fail KHR-GLES31.core.shader_storage_buffer_object.advanced-readWrite-case1-cs,Fail
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std140-matR,Fail
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std140-struct,Fail # r600_shader.c:10547: fc_pushlevel: Assertion `ctx->bc->fc_sp < ARRAY_SIZE(ctx->bc->fc_stack)' failed.
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-matC-pad,Fail # Yeah, that's some deep flow control there. Previously PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH would
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-vec,Fail # do GLSL lower_if_to_cond_assign (which is incorrect for instructions with side effects) after 32
KHR-GLES31.core.shader_storage_buffer_object.advanced-usage-operators-cs,Fail # ifs deep, but we don't have the equivalent for NIR.
KHR-GLES31.core.shader_storage_buffer_object.basic-operations-case1-cs,Fail KHR-GLES31.core.tessellation_shader.single.max_patch_vertices,Crash
KHR-GLES31.core.tessellation_shader.tessellation_shader_tessellation.TCS_TES,Fail KHR-GLES31.core.tessellation_shader.tessellation_shader_tessellation.TCS_TES,Fail
KHR-GLES31.core.tessellation_shader.tessellation_shader_tessellation.gl_InvocationID_PatchVerticesIn_PrimitiveID,Fail KHR-GLES31.core.tessellation_shader.tessellation_shader_tessellation.gl_InvocationID_PatchVerticesIn_PrimitiveID,Fail
@@ -491,14 +474,10 @@ dEQP-GLES31.functional.primitive_bounding_box.wide_points.tessellation_set_per_d
dEQP-GLES31.functional.primitive_bounding_box.wide_points.tessellation_set_per_primitive.vertex_tessellation_fragment.default_framebuffer,Fail dEQP-GLES31.functional.primitive_bounding_box.wide_points.tessellation_set_per_primitive.vertex_tessellation_fragment.default_framebuffer,Fail
dEQP-GLES31.functional.primitive_bounding_box.wide_points.tessellation_set_per_primitive.vertex_tessellation_fragment.fbo,Fail dEQP-GLES31.functional.primitive_bounding_box.wide_points.tessellation_set_per_primitive.vertex_tessellation_fragment.fbo,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec2_fragment,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec2_vertex,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec3_fragment,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec3_fragment,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec3_vertex,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec3_vertex,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec4_fragment,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec4_fragment,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec4_vertex,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.int_to_uvec4_vertex,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec2_to_uvec2_fragment,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec2_to_uvec2_vertex,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec3_to_uvec3_fragment,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec3_to_uvec3_fragment,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec3_to_uvec3_vertex,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec3_to_uvec3_vertex,Fail
dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec4_to_uvec4_fragment,Fail dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.div.ivec4_to_uvec4_fragment,Fail
@@ -549,37 +528,6 @@ dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.a
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.singlesample_rbo,Fail dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.singlesample_rbo,Fail
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.singlesample_texture,Fail dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.at_sample_id.singlesample_texture,Fail
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.isampler2d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.isampler2darray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.isampler3d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.isamplercube,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.isamplercubearray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.sampler2d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.sampler2darray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.sampler3d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.samplercube,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.samplercubearray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.usampler2d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.usampler2darray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.usampler3d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.usamplercube,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.usamplercubearray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.isampler2d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.isampler2darray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.isampler3d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.isamplercube,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.isamplercubearray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.sampler2d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.sampler2darray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.sampler3d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.samplercube,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.samplercubearray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.usampler2d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.usampler2darray,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.usampler3d,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.usamplercube,Crash
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.geometry.usamplercubearray,Crash
# Mask bit count in range only on the diagonal. # Mask bit count in range only on the diagonal.
dEQP-GLES31.functional.shaders.sample_variables.sample_mask_in.bit_count_per_two_samples.multisample_rbo_4,Fail dEQP-GLES31.functional.shaders.sample_variables.sample_mask_in.bit_count_per_two_samples.multisample_rbo_4,Fail
dEQP-GLES31.functional.shaders.sample_variables.sample_mask_in.bit_count_per_two_samples.multisample_rbo_8,Fail dEQP-GLES31.functional.shaders.sample_variables.sample_mask_in.bit_count_per_two_samples.multisample_rbo_8,Fail
@@ -601,7 +549,6 @@ dEQP-GLES31.functional.synchronization.in_invocation.ssbo_alias_overwrite,Fail
dEQP-GLES31.functional.synchronization.in_invocation.ssbo_alias_write,Fail dEQP-GLES31.functional.synchronization.in_invocation.ssbo_alias_write,Fail
dEQP-GLES31.functional.synchronization.in_invocation.ssbo_overwrite,Fail dEQP-GLES31.functional.synchronization.in_invocation.ssbo_overwrite,Fail
dEQP-GLES31.functional.synchronization.in_invocation.ssbo_write_read,Fail dEQP-GLES31.functional.synchronization.in_invocation.ssbo_write_read,Fail
dEQP-GLES31.functional.synchronization.inter_invocation.image_overwrite,Fail
dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_alias_overwrite,Fail dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_alias_overwrite,Fail
dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_alias_write,Fail dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_alias_write,Fail
dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_overwrite,Fail dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_overwrite,Fail
@@ -811,19 +758,9 @@ dEQP-GLES31.functional.texture.specification.teximage3d_pbo.rgb16f_cube_array,Fa
dEQP-GLES31.functional.texture.specification.teximage3d_pbo.rgb16i_cube_array,Fail dEQP-GLES31.functional.texture.specification.teximage3d_pbo.rgb16i_cube_array,Fail
dEQP-GLES31.functional.texture.specification.teximage3d_pbo.rgb16ui_cube_array,Fail dEQP-GLES31.functional.texture.specification.teximage3d_pbo.rgb16ui_cube_array,Fail
# split_vec: Assertion `!o->is_dead()' failed
glslparsertest@glsl2@loop-03.vert,Crash
glslparsertest@glsl2@loop-04.vert,Crash
# segfaults
glslparsertest@shaders@correctfull.frag,Crash
glslparsertest@shaders@correctpreprocess5.frag,Crash
shaders@glsl-bug-110796,Fail shaders@glsl-bug-110796,Fail
spec@arb_compute_shader@execution@shared-atomicadd-int,Fail spec@arb_compute_shader@local-id-explosion,Fail
spec@arb_compute_shader@execution@shared-atomiccompswap-int,Fail
spec@arb_compute_shader@execution@shared-atomicexchange-int,Fail
spec@arb_depth_buffer_float@fbo-clear-formats stencil,Fail spec@arb_depth_buffer_float@fbo-clear-formats stencil,Fail
spec@arb_depth_buffer_float@fbo-clear-formats stencil@GL_DEPTH32F_STENCIL8,Fail spec@arb_depth_buffer_float@fbo-clear-formats stencil@GL_DEPTH32F_STENCIL8,Fail
@@ -831,7 +768,19 @@ spec@arb_depth_buffer_float@fbo-clear-formats stencil@GL_DEPTH32F_STENCIL8,Fail
spec@arb_draw_indirect@gl_vertexid used with gldrawarraysindirect,Fail spec@arb_draw_indirect@gl_vertexid used with gldrawarraysindirect,Fail
spec@arb_draw_indirect@gl_vertexid used with gldrawelementsindirect,Fail spec@arb_draw_indirect@gl_vertexid used with gldrawelementsindirect,Fail
spec@arb_enhanced_layouts@execution@component-layout@sso-vs-gs-fs-array-interleave,Fail
# "ureg_DECL_fs_input_centroid_layout: Assertion `(ureg->input[i].usage_mask & usage_mask) == 0' failed."
spec@arb_enhanced_layouts@execution@component-layout@sso-vs-gs-fs-array-interleave,Crash
spec@arb_enhanced_layouts@execution@component-layout@tcs-tes-fs-array-with-non-array-interleave,Crash
spec@arb_enhanced_layouts@execution@component-layout@vs-tcs-tes-fs-array-interleave,Crash
spec@arb_enhanced_layouts@execution@component-layout@vs-tcs-tes-fs-ifc-array-interleave,Crash
spec@arb_enhanced_layouts@execution@component-layout@vs-tcs-tes-fs-patch-array-interleave,Crash
spec@arb_enhanced_layouts@execution@component-layout@vs-to-fs-array-interleave,Crash
# " intrinsic copy_deref (ssa_2, ssa_3) (dst_access=0, src_access=0)
# error: glsl_get_bare_type(dst->type) == glsl_get_bare_type(src->type) (../src/compiler/nir/nir_validate.c:643)"
# since ntt copy-deref optimization, probably.
spec@arb_tessellation_shader@execution@tcs-tes-levels-out-of-bounds-write,Crash
# "Testing level 3 # "Testing level 3
# Probe at (0,8) # Probe at (0,8)
@@ -846,9 +795,6 @@ spec@arb_gpu_shader5@execution@built-in-functions@fs-interpolateatsample-array-n
spec@arb_gpu_shader5@execution@built-in-functions@fs-interpolateatsample-array-of-array,Fail spec@arb_gpu_shader5@execution@built-in-functions@fs-interpolateatsample-array-of-array,Fail
spec@arb_gpu_shader5@execution@built-in-functions@fs-interpolateatsample-block-array,Fail spec@arb_gpu_shader5@execution@built-in-functions@fs-interpolateatsample-block-array,Fail
# "../src/gallium/drivers/r600/sb/sb_bc_parser.cpp:130: int r600_sb::bc_parser::parse_decls(): Assertion `pshader->num_arrays' failed."
spec@arb_gpu_shader5@execution@samplemaskin-indirect,Crash
spec@arb_multi_draw_indirect@arb_draw_elements_base_vertex-multidrawelements -indirect,Fail spec@arb_multi_draw_indirect@arb_draw_elements_base_vertex-multidrawelements -indirect,Fail
spec@arb_multi_draw_indirect@gl-3.0-multidrawarrays-vertexid -indirect,Fail spec@arb_multi_draw_indirect@gl-3.0-multidrawarrays-vertexid -indirect,Fail
@@ -937,6 +883,8 @@ spec@arb_sample_shading@samplemask 8@noms mask_in_one,Fail
# "find_hw_atomic_counter: Assertion `0' failed." # "find_hw_atomic_counter: Assertion `0' failed."
spec@arb_shader_atomic_counter_ops@execution@atomic-counter-array-out-of-bounds-access,Crash spec@arb_shader_atomic_counter_ops@execution@atomic-counter-array-out-of-bounds-access,Crash
spec@arb_shader_atomic_counter_ops@execution@all_touch_test,Fail
spec@arb_shader_image_load_store@host-mem-barrier,Fail spec@arb_shader_image_load_store@host-mem-barrier,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/full barrier test/64x64,Fail spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/full barrier test/64x64,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/one bit barrier test/16x16,Fail spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/one bit barrier test/16x16,Fail
@@ -944,7 +892,6 @@ spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/one bit bar
spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/one bit barrier test/64x64,Fail spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/one bit barrier test/64x64,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Buffer update/WaW/one bit barrier test/16x16,Fail spec@arb_shader_image_load_store@host-mem-barrier@Buffer update/WaW/one bit barrier test/16x16,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Buffer update/WaW/one bit barrier test/4x4,Fail spec@arb_shader_image_load_store@host-mem-barrier@Buffer update/WaW/one bit barrier test/4x4,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Buffer update/WaW/one bit barrier test/64x64,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/full barrier test/4x4,Fail spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/full barrier test/4x4,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/one bit barrier test/16x16,Fail spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/one bit barrier test/16x16,Fail
spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/one bit barrier test/4x4,Fail spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/one bit barrier test/4x4,Fail
@@ -957,7 +904,6 @@ spec@arb_shader_image_load_store@host-mem-barrier@Uniform buffer/RaW/one bit bar
spec@arb_shader_image_load_store@host-mem-barrier@Uniform buffer/RaW/one bit barrier test/64x64,Fail spec@arb_shader_image_load_store@host-mem-barrier@Uniform buffer/RaW/one bit barrier test/64x64,Fail
spec@arb_shader_image_load_store@indexing,Fail spec@arb_shader_image_load_store@indexing,Fail
spec@arb_shader_image_load_store@indexing@Compute shader/dynamically uniform indexing test,Fail spec@arb_shader_image_load_store@indexing@Compute shader/dynamically uniform indexing test,Fail
spec@arb_shader_image_load_store@indexing@Fragment shader/dynamically uniform indexing test,Fail
spec@arb_shader_image_load_store@invalid,Fail spec@arb_shader_image_load_store@invalid,Fail
spec@arb_shader_image_load_store@invalid@imageAtomicAdd/address bounds test/imageBuffer/r32ui,Fail spec@arb_shader_image_load_store@invalid@imageAtomicAdd/address bounds test/imageBuffer/r32ui,Fail
spec@arb_shader_image_load_store@invalid@imageAtomicAdd/incompatible format test,Fail spec@arb_shader_image_load_store@invalid@imageAtomicAdd/incompatible format test,Fail
@@ -1037,15 +983,11 @@ spec@arb_shader_image_load_store@invalid@imageLoad/invalid format test,Fail
spec@arb_shader_image_load_store@invalid@imageLoad/layer bounds test,Fail spec@arb_shader_image_load_store@invalid@imageLoad/layer bounds test,Fail
spec@arb_shader_image_load_store@invalid@imageLoad/level bounds test,Fail spec@arb_shader_image_load_store@invalid@imageLoad/level bounds test,Fail
spec@arb_shader_image_load_store@invalid@imageLoad/unbound image test,Fail spec@arb_shader_image_load_store@invalid@imageLoad/unbound image test,Fail
spec@arb_shader_image_load_store@max-images,Fail
spec@arb_shader_image_load_store@max-images@Combined max image uniforms test,Fail
spec@arb_shader_image_load_store@max-images@Fragment shader max image uniforms test,Fail
spec@arb_shader_storage_buffer_object@array-ssbo-auto-binding,Fail spec@arb_shader_storage_buffer_object@array-ssbo-auto-binding,Fail
spec@arb_shader_storage_buffer_object@compiler@atomicmin-swizzle.vert,Fail spec@arb_shader_storage_buffer_object@compiler@atomicmin-swizzle.vert,Fail
spec@arb_shader_storage_buffer_object@execution@ssbo-atomicadd-int,Fail spec@arb_shader_storage_buffer_object@execution@ssbo-atomicadd-int,Fail
spec@arb_shader_storage_buffer_object@linker@instance-matching-shader-storage-blocks-member-array-size-mismatch,Fail spec@arb_shader_storage_buffer_object@linker@instance-matching-shader-storage-blocks-member-array-size-mismatch,Fail
spec@arb_shader_storage_buffer_object@maxblocks,Fail
spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail
spec@arb_shader_texture_lod@execution@tex-miplevel-selection *gradarb cube,Fail spec@arb_shader_texture_lod@execution@tex-miplevel-selection *gradarb cube,Fail
@@ -1056,10 +998,6 @@ spec@arb_tessellation_shader@arb_tessellation_shader-tes-gs-max-output -small -s
spec@arb_tessellation_shader@execution@fs-primitiveid-instanced,Fail spec@arb_tessellation_shader@execution@fs-primitiveid-instanced,Fail
spec@arb_tessellation_shader@execution@gs-primitiveid-instanced,Fail spec@arb_tessellation_shader@execution@gs-primitiveid-instanced,Fail
spec@arb_tessellation_shader@execution@tcs-primitiveid-instanced,Fail spec@arb_tessellation_shader@execution@tcs-primitiveid-instanced,Fail
# ../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3355: virtual void glsl_to_tgsi_visitor::visit(ir_assignment*): Assertion `!ir->lhs->type->is_scalar() && !ir->lhs->type->is_vector()' failed.
spec@arb_tessellation_shader@execution@tcs-tes-levels-out-of-bounds-write,Crash
spec@arb_tessellation_shader@execution@tes-no-tcs-primitiveid-instanced,Fail spec@arb_tessellation_shader@execution@tes-no-tcs-primitiveid-instanced,Fail
spec@arb_tessellation_shader@execution@tes-primitiveid-instanced,Fail spec@arb_tessellation_shader@execution@tes-primitiveid-instanced,Fail
@@ -1378,14 +1316,11 @@ spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB12,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB16,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB16,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB8,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB8,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_ayuv,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv12,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv12,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_uyvy,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_uyvy,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_xyuv,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y410,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y412,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y412,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y416,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y416,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuyv,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuyv,Fail
@@ -1523,25 +1458,18 @@ spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SR
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- swizzled- border color only,Fail
spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail spec@ext_texture_srgb@texwrap formats-s3tc bordercolor-swizzled@GL_COMPRESSED_SRGB_S3TC_DXT1_EXT- swizzled- border color only,Fail
spec@glsl-1.10@execution@function-calls@glsl-function-chain16-in-array-indirect,Fail
spec@glsl-1.10@execution@function-calls@glsl-function-chain16-in-array-indirect2,Fail
spec@glsl-1.10@execution@varying-packing@simple float arrays_of_arrays,Fail
spec@glsl-1.10@execution@varying-packing@simple float separate,Fail
spec@glsl-1.10@execution@varying-packing@simple int arrays_of_arrays,Fail
spec@glsl-1.10@execution@varying-packing@simple int separate,Fail
spec@glsl-1.10@execution@varying-packing@simple uint arrays_of_arrays,Fail
spec@glsl-1.10@execution@varying-packing@simple uint separate,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail spec@glsl-1.20@execution@clipping@vs-clip-vertex-primitives,Fail
spec@glsl-1.20@execution@matrix-out-of-bounds-access@fs-mat4-out-of-bounds-6,Crash
spec@glsl-1.30@execution@clipping@vs-clip-distance-deadcode,Fail
spec@glsl-1.30@execution@clipping@vs-clip-distance-primitives,Fail spec@glsl-1.30@execution@clipping@vs-clip-distance-primitives,Fail
# "error: (src->reg.reg->num_array_elems == 0 || src->reg.base_offset < src->reg.reg->num_array_elems) && "definitely out-of-bounds array access" (../src/compiler/nir/nir_validate.c:174)"
spec@glsl-1.30@execution@fs-large-local-array-out-of-bounds-read,Crash
spec@glsl-1.30@execution@fs-large-local-array-out-of-bounds-write,Crash
spec@glsl-1.30@execution@range_analysis_fsat_of_nan,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) 1darrayshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) 1darrayshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) cubeshadow,Fail spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) cubeshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cube,Fail spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cube,Fail
@@ -1554,9 +1482,9 @@ spec@glsl-1.30@execution@tex-miplevel-selection textureoffset(bias) 1darrayshado
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail
spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail
spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec3-index-rd,Fail spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec2-index-rd,Fail
# "void glsl_to_tgsi_visitor::visit_expression(ir_expression*, st_src_reg*): Assertion `ir->operands[2]->type->vector_elements == 1' failed." # fc_pushlevel: Assertion `ctx->bc->fc_sp < ARRAY_SIZE(ctx->bc->fc_stack)' failed.
spec@glsl-1.50@gs-max-output,Crash spec@glsl-1.50@gs-max-output,Crash
spec@intel_performance_query@intel_performance_query-issue_2235,Fail spec@intel_performance_query@intel_performance_query-issue_2235,Fail
@@ -1578,6 +1506,7 @@ spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail
spec@!opengl 1.0@gl-1.0-dlist-bitmap,Fail spec@!opengl 1.0@gl-1.0-dlist-bitmap,Fail
spec@!opengl 1.0@gl-1.0-no-op-paths,Fail spec@!opengl 1.0@gl-1.0-no-op-paths,Fail
spec@!opengl 1.0@gl-1.0-spot-light,Fail
spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail
spec@!opengl 1.1@linestipple,Fail spec@!opengl 1.1@linestipple,Fail
spec@!opengl 1.1@linestipple@Factor 2x,Fail spec@!opengl 1.1@linestipple@Factor 2x,Fail

View File

@@ -1,10 +1,13 @@
# Sometimes passes. # Sometimes passes.
KHR-GLES31.core.compute_shader.pipeline-compute-chain
KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-dispatches KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-dispatches
KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-draw-calls2 KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-draw-calls2
dEQP-GLES31.functional.compute.basic.ssbo_local_barrier_single_invocation # Occasional "args_equal: Assertion `l.size() == r.size()' failed."
dEQP-GLES31.functional.synchronization.inter_invocation.image_overwrite dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.uniform_geometry
dEQP-GLES31.functional.synchronization.inter_invocation.image_read_write spec@arb_gpu_shader5@execution@ubo_array_indexing@fs-nonuniform-control-flow
spec@arb_shader_atomic_counter_ops@execution@all_touch_test
spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/full barrier test/16x16 spec@arb_shader_image_load_store@host-mem-barrier@Atomic counter/RaW/full barrier test/16x16
spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/full barrier test/16x16 spec@arb_shader_image_load_store@host-mem-barrier@Element array/RaW/full barrier test/16x16

View File

@@ -3,4 +3,7 @@ glx@
# Hangs the GPU # Hangs the GPU
spec@arb_shader_image_load_store@atomicity spec@arb_shader_image_load_store@atomicity
spec@glsl-1.10@execution@temp_arrays
spec@glsl-1.20@execution@glsl-vs-varying-array
shader_storage_buffer_object@execution@ssbo-atomic shader_storage_buffer_object@execution@ssbo-atomic
variable-indexing@.*-output-array-vec4-index-wr

View File

@@ -512,7 +512,6 @@ static void evergreen_bind_compute_state(struct pipe_context *ctx, void *state)
if (cstate->ir_type == PIPE_SHADER_IR_TGSI || if (cstate->ir_type == PIPE_SHADER_IR_TGSI ||
cstate->ir_type == PIPE_SHADER_IR_NIR) { cstate->ir_type == PIPE_SHADER_IR_NIR) {
bool compute_dirty; bool compute_dirty;
cstate->sel->ir_type = cstate->ir_type;
if (r600_shader_select(ctx, cstate->sel, &compute_dirty, false)) if (r600_shader_select(ctx, cstate->sel, &compute_dirty, false))
R600_ERR("Failed to select compute shader\n"); R600_ERR("Failed to select compute shader\n");
} }

View File

@@ -317,9 +317,11 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX: case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX:
case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:
case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR: case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:
case PIPE_CAP_NIR_ATOMICS_AS_DEREF:
return 1; return 1;
case PIPE_CAP_NIR_ATOMICS_AS_DEREF:
return rscreen->b.debug_flags & DBG_NIR_PREFERRED;
case PIPE_CAP_TEXTURE_TRANSFER_MODES: case PIPE_CAP_TEXTURE_TRANSFER_MODES:
return PIPE_TEXTURE_TRANSFER_BLIT; return PIPE_TEXTURE_TRANSFER_BLIT;
@@ -630,16 +632,15 @@ static int r600_get_shader_param(struct pipe_screen* pscreen,
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
return 16; return 16;
case PIPE_SHADER_CAP_PREFERRED_IR: case PIPE_SHADER_CAP_PREFERRED_IR:
if (is_nir_enabled(&rscreen->b)) if (rscreen->b.debug_flags & DBG_USE_TGSI)
return PIPE_SHADER_IR_NIR;
return PIPE_SHADER_IR_TGSI; return PIPE_SHADER_IR_TGSI;
return PIPE_SHADER_IR_NIR;
case PIPE_SHADER_CAP_SUPPORTED_IRS: { case PIPE_SHADER_CAP_SUPPORTED_IRS: {
int ir = 0; int ir = 0;
if (shader == PIPE_SHADER_COMPUTE) if (shader == PIPE_SHADER_COMPUTE)
ir = 1 << PIPE_SHADER_IR_NATIVE; ir = 1 << PIPE_SHADER_IR_NATIVE;
if (rscreen->b.family >= CHIP_CEDAR) { if (rscreen->b.family >= CHIP_CEDAR) {
ir |= 1 << PIPE_SHADER_IR_TGSI; ir |= 1 << PIPE_SHADER_IR_TGSI;
if (is_nir_enabled(&rscreen->b))
ir |= 1 << PIPE_SHADER_IR_NIR; ir |= 1 << PIPE_SHADER_IR_NIR;
} }
return ir; return ir;

View File

@@ -268,6 +268,7 @@ struct r600_gs_rings_state {
#define DBG_SB_DISASM (1 << 27) #define DBG_SB_DISASM (1 << 27)
#define DBG_SB_SAFEMATH (1 << 28) #define DBG_SB_SAFEMATH (1 << 28)
#define DBG_NIR_SB (1 << 28) #define DBG_NIR_SB (1 << 28)
#define DBG_USE_TGSI (1 << 29)
#define DBG_NIR_PREFERRED (DBG_NIR_SB | DBG_NIR) #define DBG_NIR_PREFERRED (DBG_NIR_SB | DBG_NIR)

View File

@@ -691,6 +691,7 @@ static const struct debug_named_value common_debug_options[] = {
{ "tes", DBG_TES, "Print tessellation evaluation shaders" }, { "tes", DBG_TES, "Print tessellation evaluation shaders" },
{ "preoptir", DBG_PREOPT_IR, "Print the LLVM IR before initial optimizations" }, { "preoptir", DBG_PREOPT_IR, "Print the LLVM IR before initial optimizations" },
{ "checkir", DBG_CHECK_IR, "Enable additional sanity checks on shader IR" }, { "checkir", DBG_CHECK_IR, "Enable additional sanity checks on shader IR" },
{ "use_tgsi", DBG_USE_TGSI, "Take TGSI directly instead of using NIR-to-TGSI"},
{ "testdma", DBG_TEST_DMA, "Invoke SDMA tests and exit." }, { "testdma", DBG_TEST_DMA, "Invoke SDMA tests and exit." },
{ "testvmfaultcp", DBG_TEST_VMFAULT_CP, "Invoke a CP VM fault test and exit." }, { "testvmfaultcp", DBG_TEST_VMFAULT_CP, "Invoke a CP VM fault test and exit." },
@@ -776,7 +777,8 @@ static void r600_disk_cache_create(struct r600_common_screen *rscreen)
uint64_t shader_debug_flags = uint64_t shader_debug_flags =
rscreen->debug_flags & rscreen->debug_flags &
(DBG_NIR | (DBG_NIR |
DBG_NIR_PREFERRED); DBG_NIR_PREFERRED |
DBG_USE_TGSI);
rscreen->disk_shader_cache = rscreen->disk_shader_cache =
disk_cache_create(r600_get_family_name(rscreen), disk_cache_create(r600_get_family_name(rscreen),
@@ -1361,6 +1363,34 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen,
rscreen->nir_options = nir_options; rscreen->nir_options = nir_options;
if (rscreen->info.chip_class < EVERGREEN) {
/* Pre-EG doesn't have these ALU ops */
rscreen->nir_options.lower_bit_count = true;
rscreen->nir_options.lower_bitfield_reverse = true;
}
if (!(rscreen->debug_flags & DBG_NIR_PREFERRED)) {
/* TGSI is vector, and NIR-to-TGSI doesn't like it when the
* input vars have been scalarized.
*/
rscreen->nir_options.lower_to_scalar = false;
/* NIR-to-TGSI can't do fused integer csel, and it can't just
* override the flag and get the code lowered back when we ask
* it to handle it.
*/
rscreen->nir_options.has_fused_comp_and_csel = false;
/* r600 has a bitfield_select and bitfield_extract opcode
* (called bfi/bfe), but TGSI's BFI/BFE isn't that.
*/
rscreen->nir_options.lower_bitfield_extract = false;
rscreen->nir_options.lower_bitfield_insert_to_bitfield_select = false;
/* TGSI's ifind is reversed from ours, keep it the TGSI way. */
rscreen->nir_options.lower_find_msb_to_reverse = false;
}
return true; return true;
} }

View File

@@ -39,6 +39,7 @@
#include "tgsi/tgsi_ureg.h" #include "tgsi/tgsi_ureg.h"
#include "nir.h" #include "nir.h"
#include "nir/nir_to_tgsi.h"
#include "nir/nir_to_tgsi_info.h" #include "nir/nir_to_tgsi_info.h"
#include "tgsi/tgsi_from_mesa.h" #include "tgsi/tgsi_from_mesa.h"
@@ -979,15 +980,24 @@ struct r600_pipe_shader_selector *r600_create_shader_state_tokens(struct pipe_co
unsigned pipe_shader_type) unsigned pipe_shader_type)
{ {
struct r600_pipe_shader_selector *sel = CALLOC_STRUCT(r600_pipe_shader_selector); struct r600_pipe_shader_selector *sel = CALLOC_STRUCT(r600_pipe_shader_selector);
struct r600_screen *rscreen = (struct r600_screen *)ctx->screen;
sel->type = pipe_shader_type; sel->type = pipe_shader_type;
if (ir == PIPE_SHADER_IR_TGSI) { if (ir == PIPE_SHADER_IR_TGSI) {
sel->tokens = tgsi_dup_tokens((const struct tgsi_token *)prog); sel->tokens = tgsi_dup_tokens((const struct tgsi_token *)prog);
tgsi_scan_shader(sel->tokens, &sel->info); tgsi_scan_shader(sel->tokens, &sel->info);
} else if (ir == PIPE_SHADER_IR_NIR){ } else if (ir == PIPE_SHADER_IR_NIR){
sel->nir = nir_shader_clone(NULL, (const nir_shader *)prog); nir_shader *s = (nir_shader *)prog;
if (!(rscreen->b.debug_flags & DBG_NIR_PREFERRED)) {
sel->tokens = (void *)nir_to_tgsi(s, ctx->screen);
ir = PIPE_SHADER_IR_TGSI;
tgsi_scan_shader(sel->tokens, &sel->info);
} else {
sel->nir = nir_shader_clone(NULL, s);
nir_tgsi_scan_shader(sel->nir, &sel->info, true); nir_tgsi_scan_shader(sel->nir, &sel->info, true);
} }
}
sel->ir_type = ir; sel->ir_type = ir;
return sel; return sel;
} }
@@ -1006,7 +1016,6 @@ static void *r600_create_shader_state(struct pipe_context *ctx,
} else } else
assert(0 && "Unknown shader type\n"); assert(0 && "Unknown shader type\n");
sel->ir_type = state->type;
sel->so = state->stream_output; sel->so = state->stream_output;
switch (pipe_shader_type) { switch (pipe_shader_type) {

View File

@@ -21,6 +21,7 @@ Debugging
- **sbnofallback** - Abort on errors instead of fallback - **sbnofallback** - Abort on errors instead of fallback
- **sbdisasm** - Use sb disassembler for shader dumps - **sbdisasm** - Use sb disassembler for shader dumps
- **sbsafemath** - Disable unsafe math optimizations - **sbsafemath** - Disable unsafe math optimizations
- **use_tgsi** - Take in TGSI from the frontend instead of asking for NIR
### Regression debugging ### Regression debugging