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:
@@ -2,61 +2,18 @@ KHR-GL33.clip_distance.functional,Fail
|
||||
KHR-GL33.cull_distance.functional,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_swizzle.functional,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_corner,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_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_rgb888,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.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_fragment,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_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-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-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-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_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_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_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_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_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@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@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-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-min,Fail
|
||||
|
||||
spec@glsl-1.30@execution@clipping@vs-clip-distance-deadcode,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) cubeshadow,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 texturelodoffset 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 other,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@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
|
||||
|
||||
|
@@ -5,5 +5,12 @@ glx@
|
||||
built-in-functions@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.
|
||||
spec@!opengl 1.2@tex3d-maxsize
|
||||
|
||||
# 1-minute timeouts
|
||||
KHR-GL33.texture_swizzle.smoke
|
||||
|
@@ -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.resources-max,Fail
|
||||
KHR-GLES31.core.compute_shader.shared-struct,Fail
|
||||
|
||||
KHR-GLES31.core.draw_buffers_indexed.blending,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_edge,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-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-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-unsizedArrayLength-fs-std140-matR,Fail
|
||||
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std140-struct,Fail
|
||||
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-matC-pad,Fail
|
||||
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-vec,Fail
|
||||
KHR-GLES31.core.shader_storage_buffer_object.advanced-usage-operators-cs,Fail
|
||||
KHR-GLES31.core.shader_storage_buffer_object.basic-operations-case1-cs,Fail
|
||||
|
||||
# r600_shader.c:10547: fc_pushlevel: Assertion `ctx->bc->fc_sp < ARRAY_SIZE(ctx->bc->fc_stack)' failed.
|
||||
# Yeah, that's some deep flow control there. Previously PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH would
|
||||
# do GLSL lower_if_to_cond_assign (which is incorrect for instructions with side effects) after 32
|
||||
# ifs deep, but we don't have the equivalent for NIR.
|
||||
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.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.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_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_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_vertex,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_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.
|
||||
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
|
||||
@@ -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_overwrite,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_write,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.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
|
||||
|
||||
spec@arb_compute_shader@execution@shared-atomicadd-int,Fail
|
||||
spec@arb_compute_shader@execution@shared-atomiccompswap-int,Fail
|
||||
spec@arb_compute_shader@execution@shared-atomicexchange-int,Fail
|
||||
spec@arb_compute_shader@local-id-explosion,Fail
|
||||
|
||||
spec@arb_depth_buffer_float@fbo-clear-formats stencil,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 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
|
||||
# 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-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@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."
|
||||
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@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
|
||||
@@ -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@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/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/one bit barrier test/16x16,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@indexing,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@imageAtomicAdd/address bounds test/imageBuffer/r32ui,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/level bounds 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@compiler@atomicmin-swizzle.vert,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@maxblocks,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
|
||||
@@ -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@gs-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-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_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_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_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_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
|
||||
@@ -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_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@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
|
||||
|
||||
# "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) cubeshadow,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 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@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-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.1@linestipple,Fail
|
||||
spec@!opengl 1.1@linestipple@Factor 2x,Fail
|
||||
|
@@ -1,10 +1,13 @@
|
||||
# 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-draw-calls2
|
||||
|
||||
dEQP-GLES31.functional.compute.basic.ssbo_local_barrier_single_invocation
|
||||
dEQP-GLES31.functional.synchronization.inter_invocation.image_overwrite
|
||||
dEQP-GLES31.functional.synchronization.inter_invocation.image_read_write
|
||||
# Occasional "args_equal: Assertion `l.size() == r.size()' failed."
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.uniform_geometry
|
||||
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@Element array/RaW/full barrier test/16x16
|
||||
|
@@ -3,4 +3,7 @@ glx@
|
||||
|
||||
# Hangs the GPU
|
||||
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
|
||||
variable-indexing@.*-output-array-vec4-index-wr
|
||||
|
@@ -512,7 +512,6 @@ static void evergreen_bind_compute_state(struct pipe_context *ctx, void *state)
|
||||
if (cstate->ir_type == PIPE_SHADER_IR_TGSI ||
|
||||
cstate->ir_type == PIPE_SHADER_IR_NIR) {
|
||||
bool compute_dirty;
|
||||
cstate->sel->ir_type = cstate->ir_type;
|
||||
if (r600_shader_select(ctx, cstate->sel, &compute_dirty, false))
|
||||
R600_ERR("Failed to select compute shader\n");
|
||||
}
|
||||
|
@@ -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_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:
|
||||
case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:
|
||||
case PIPE_CAP_NIR_ATOMICS_AS_DEREF:
|
||||
return 1;
|
||||
|
||||
case PIPE_CAP_NIR_ATOMICS_AS_DEREF:
|
||||
return rscreen->b.debug_flags & DBG_NIR_PREFERRED;
|
||||
|
||||
case PIPE_CAP_TEXTURE_TRANSFER_MODES:
|
||||
return PIPE_TEXTURE_TRANSFER_BLIT;
|
||||
|
||||
@@ -630,17 +632,16 @@ static int r600_get_shader_param(struct pipe_screen* pscreen,
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
return 16;
|
||||
case PIPE_SHADER_CAP_PREFERRED_IR:
|
||||
if (is_nir_enabled(&rscreen->b))
|
||||
return PIPE_SHADER_IR_NIR;
|
||||
return PIPE_SHADER_IR_TGSI;
|
||||
if (rscreen->b.debug_flags & DBG_USE_TGSI)
|
||||
return PIPE_SHADER_IR_TGSI;
|
||||
return PIPE_SHADER_IR_NIR;
|
||||
case PIPE_SHADER_CAP_SUPPORTED_IRS: {
|
||||
int ir = 0;
|
||||
if (shader == PIPE_SHADER_COMPUTE)
|
||||
ir = 1 << PIPE_SHADER_IR_NATIVE;
|
||||
if (rscreen->b.family >= CHIP_CEDAR) {
|
||||
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;
|
||||
}
|
||||
|
@@ -268,6 +268,7 @@ struct r600_gs_rings_state {
|
||||
#define DBG_SB_DISASM (1 << 27)
|
||||
#define DBG_SB_SAFEMATH (1 << 28)
|
||||
#define DBG_NIR_SB (1 << 28)
|
||||
#define DBG_USE_TGSI (1 << 29)
|
||||
|
||||
#define DBG_NIR_PREFERRED (DBG_NIR_SB | DBG_NIR)
|
||||
|
||||
|
@@ -691,6 +691,7 @@ static const struct debug_named_value common_debug_options[] = {
|
||||
{ "tes", DBG_TES, "Print tessellation evaluation shaders" },
|
||||
{ "preoptir", DBG_PREOPT_IR, "Print the LLVM IR before initial optimizations" },
|
||||
{ "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." },
|
||||
{ "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 =
|
||||
rscreen->debug_flags &
|
||||
(DBG_NIR |
|
||||
DBG_NIR_PREFERRED);
|
||||
DBG_NIR_PREFERRED |
|
||||
DBG_USE_TGSI);
|
||||
|
||||
rscreen->disk_shader_cache =
|
||||
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;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@@ -39,6 +39,7 @@
|
||||
#include "tgsi/tgsi_ureg.h"
|
||||
|
||||
#include "nir.h"
|
||||
#include "nir/nir_to_tgsi.h"
|
||||
#include "nir/nir_to_tgsi_info.h"
|
||||
#include "tgsi/tgsi_from_mesa.h"
|
||||
|
||||
@@ -979,14 +980,23 @@ struct r600_pipe_shader_selector *r600_create_shader_state_tokens(struct pipe_co
|
||||
unsigned pipe_shader_type)
|
||||
{
|
||||
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;
|
||||
if (ir == PIPE_SHADER_IR_TGSI) {
|
||||
sel->tokens = tgsi_dup_tokens((const struct tgsi_token *)prog);
|
||||
tgsi_scan_shader(sel->tokens, &sel->info);
|
||||
} else if (ir == PIPE_SHADER_IR_NIR){
|
||||
sel->nir = nir_shader_clone(NULL, (const nir_shader *)prog);
|
||||
nir_tgsi_scan_shader(sel->nir, &sel->info, true);
|
||||
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);
|
||||
}
|
||||
}
|
||||
sel->ir_type = ir;
|
||||
return sel;
|
||||
@@ -1006,7 +1016,6 @@ static void *r600_create_shader_state(struct pipe_context *ctx,
|
||||
} else
|
||||
assert(0 && "Unknown shader type\n");
|
||||
|
||||
sel->ir_type = state->type;
|
||||
sel->so = state->stream_output;
|
||||
|
||||
switch (pipe_shader_type) {
|
||||
|
@@ -21,6 +21,7 @@ Debugging
|
||||
- **sbnofallback** - Abort on errors instead of fallback
|
||||
- **sbdisasm** - Use sb disassembler for shader dumps
|
||||
- **sbsafemath** - Disable unsafe math optimizations
|
||||
- **use_tgsi** - Take in TGSI from the frontend instead of asking for NIR
|
||||
|
||||
### Regression debugging
|
||||
|
||||
|
Reference in New Issue
Block a user