mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
mesa/st: Allow loops in GLSL when NIR is enabled, even if the HW can't.
The jump lowering enabled by EmitNoLoops breaks GLSL's loop unrolling on various obviously unrollable loops, resulting in a lot of deqp-gles2 and piglit failures. NIR will help unroll whatever GLSL doesn't, so we can trust the driver to apply that after GLSL's unrolling, so no need to ask GLSL to lower all loops. Fixes: #4979 Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12917>
This commit is contained in:
parent
346a2950bb
commit
4474c46f5f
4 changed files with 14 additions and 135 deletions
|
|
@ -50,118 +50,32 @@ dEQP-GLES2.functional.rasterization.primitives.lines_wide,Fail
|
|||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/4980
|
||||
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing,Fail
|
||||
|
||||
dEQP-GLES2.functional.shaders.discard.function_static_loop_always,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.function_static_loop_dynamic,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.function_static_loop_texture,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.function_static_loop_uniform,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.static_loop_always,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.static_loop_dynamic,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.static_loop_texture,Fail
|
||||
dEQP-GLES2.functional.shaders.discard.static_loop_uniform,Fail
|
||||
dEQP-GLES2.functional.shaders.functions.control_flow.mixed_return_break_continue_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.functions.control_flow.return_after_break_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.functions.control_flow.return_after_continue_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.functions.control_flow.return_after_loop_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.functions.control_flow.return_in_loop_if_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.functions.control_flow.return_in_nested_loop_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat2_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat2_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat2_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_dynamic_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_dynamic_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_const_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_const_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_dynamic_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_const_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_const_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_write_dynamic_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_static_loop_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_static_loop_write_static_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_static_write_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.uniform_array.float_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.uniform_array.vec2_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.uniform_array.vec3_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.uniform_array.vec4_static_loop_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_loop_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec2_static_loop_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec2_static_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec3_static_loop_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec3_static_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_static_loop_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_static_write_static_loop_read,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_component_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_direct_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_static_loop_subscript_write_component_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_static_loop_subscript_write_direct_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_static_loop_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_static_loop_subscript_write_static_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec2_static_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_component_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_direct_write_static_loop_subscript_read_fragment,Fail
|
||||
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_dynamic_subscript_write_dynamic_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_component_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_direct_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_static_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec3_static_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_component_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_direct_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_dynamic_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_dynamic_subscript_write_component_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_dynamic_subscript_write_direct_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.vec4_dynamic_subscript_write_static_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_static_loop_subscript_write_component_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_static_loop_subscript_write_direct_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_static_loop_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_static_loop_subscript_write_static_subscript_read_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.indexing.vector_subscript.vec4_static_subscript_write_static_loop_subscript_read_fragment,Fail
|
||||
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.101_iterations_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.basic_highp_float_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.basic_highp_int_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.basic_lowp_float_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.basic_lowp_int_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.basic_mediump_float_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.basic_mediump_int_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.compound_statement_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.conditional_body_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.conditional_break_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.conditional_continue_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.double_continue_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.function_call_inout_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.function_call_return_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.mixed_break_continue_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.nested_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.nested_sequence_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.nested_tricky_dataflow_1_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.nested_tricky_dataflow_2_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.no_iterations_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.post_increment_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.pre_increment_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.sequence_statement_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.single_iteration_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.single_statement_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.loops.for_constant_iterations.unconditional_continue_fragment,Fail
|
||||
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.22,Fail
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.32,Fail
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.34,Fail
|
||||
|
|
@ -180,15 +94,8 @@ dEQP-GLES2.functional.shaders.random.trigonometric.fragment.42,Fail
|
|||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.45,Fail
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.52,Fail
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.81,Fail
|
||||
dEQP-GLES2.functional.shaders.return.return_in_static_loop_dynamic_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.return.return_in_static_loop_never_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.local.loop_assignment_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.local.loop_nested_struct_array_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.local.loop_struct_array_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.local.nested_loop_assignment_fragment,Fail
|
||||
|
||||
dEQP-GLES2.functional.shaders.struct.local.nested_struct_array_dynamic_index_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.uniform.loop_nested_struct_array_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.uniform.loop_struct_array_fragment,Fail
|
||||
dEQP-GLES2.functional.shaders.struct.uniform.nested_struct_array_dynamic_index_fragment,Fail
|
||||
|
||||
# Need to port the DP3 trick for all_equal from st_glsl_to_tgsi.
|
||||
|
|
@ -274,9 +181,6 @@ KHR-GLES2.core.internalformat.texture2d.depth_component_unsigned_short_depth_com
|
|||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/4979
|
||||
# Non-unrolled loops, but they should be unrollable.
|
||||
KHR-GLES2.shaders.aggressive_optimizations.cos_float_frag,Fail
|
||||
KHR-GLES2.shaders.aggressive_optimizations.cos_vec2_frag,Fail
|
||||
KHR-GLES2.shaders.aggressive_optimizations.cos_vec3_frag,Fail
|
||||
KHR-GLES2.shaders.aggressive_optimizations.sin_vec2_frag,Fail
|
||||
KHR-GLES2.shaders.aggressive_optimizations.sin_vec3_frag,Fail
|
||||
|
||||
|
|
|
|||
|
|
@ -186,11 +186,6 @@ spec@!opengl 1.4@tex-miplevel-selection-lod,Fail
|
|||
spec@!opengl 1.4@tex-miplevel-selection-lod-bias,Fail
|
||||
spec@!opengl 1.5@depth-tex-compare,Fail
|
||||
|
||||
# testcase bug:
|
||||
# "Failed to link: error: sampler arrays indexed with non-constant expressions is forbidden in GLSL 110"
|
||||
spec@!opengl 2.0@max-samplers,Fail
|
||||
spec@!opengl 2.0@max-samplers border,Fail
|
||||
|
||||
# Need to be able to report 0 OQ bits, since there are no HW OQs.
|
||||
spec@!opengl 2.0@occlusion-query-discard,Fail
|
||||
|
||||
|
|
@ -773,7 +768,6 @@ spec@glsl-1.10@execution@built-in-functions@fs-smoothstep-vec3-vec3-vec3,Fail
|
|||
spec@glsl-1.10@execution@built-in-functions@fs-smoothstep-vec4-vec4-vec4,Fail
|
||||
spec@glsl-1.10@execution@builtins@glsl-fs-atan-3,Fail
|
||||
spec@glsl-1.10@execution@copy-propagation@glsl-copy-propagation-loop-1,Fail
|
||||
spec@glsl-1.10@execution@copy-propagation@glsl-copy-propagation-loop-2,Fail
|
||||
|
||||
# No derivatives support in the HW.
|
||||
spec@glsl-1.10@execution@derivatives@glsl-derivs-abs,Fail
|
||||
|
|
@ -802,11 +796,8 @@ spec@glsl-1.10@execution@glsl-1.10-built-in-uniform-state,Fail
|
|||
spec@glsl-1.10@execution@glsl-clamp-vertex-color,Fail
|
||||
spec@glsl-1.10@execution@glsl-fs-convolution-1,Fail
|
||||
spec@glsl-1.10@execution@glsl-fs-convolution-2,Fail
|
||||
spec@glsl-1.10@execution@glsl-fs-functions-5,Fail
|
||||
spec@glsl-1.10@execution@glsl-fs-functions-6,Fail
|
||||
spec@glsl-1.10@execution@glsl-fs-if-nested-loop,Fail
|
||||
spec@glsl-1.10@execution@glsl-fs-loop-while-false-03,Fail
|
||||
spec@glsl-1.10@execution@glsl-texcoord-array-2,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backcolor-flat-fixed,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backcolor-flat-none,Fail
|
||||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backcolor-flat-vertex,Fail
|
||||
|
|
@ -827,25 +818,9 @@ spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontsecondarycolor
|
|||
spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontsecondarycolor-smooth-vertex,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-continue-inside-do-while,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-300,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-break,Fail
|
||||
|
||||
# error: looping not supported i915 fragment shaders, all loops must be statically unrollable.
|
||||
# but it's a static 0-10 loop and should unroll.
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-const-decr,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-const-incr,Fail
|
||||
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-continue,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-ge,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-gt,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-le,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-lt,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-nested-if,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-redundant-condition,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-two-counter-01,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-two-counter-02,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-two-counter-03,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-two-counter-04,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-zero-iter,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-unroll-out-param,Fail
|
||||
spec@glsl-1.10@execution@loops@glsl-fs-unroll-side-effect,Fail
|
||||
spec@glsl-1.10@execution@samplers@glsl-fs-shadow1d,Fail
|
||||
|
|
@ -886,7 +861,6 @@ spec@glsl-1.10@execution@variable-indexing@fs-temp-array-mat4-index-wr,Fail
|
|||
spec@glsl-1.10@execution@variable-indexing@fs-uniform-array-mat4-index-col-row-rd,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@fs-varying-array-mat3-index-col-rd,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@fs-varying-array-mat3-index-col-row-rd,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@vs-output-array-float-index-wr,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@vs-output-array-vec2-index-wr,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@vs-output-array-vec3-index-wr,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@vs-output-array-vec4-index-wr,Fail
|
||||
|
|
@ -924,10 +898,6 @@ spec@glsl-1.10@execution@varying-packing@simple vec4 array,Fail
|
|||
spec@glsl-1.10@execution@varying-packing@simple vec4 separate,Fail
|
||||
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
|
||||
|
||||
# error: looping not supported i915 fragment shaders, all loops must be statically unrollable.
|
||||
# but it's a static 0-4 loop and should unroll.
|
||||
spec@glsl-1.10@linker@fs-loop-unrolled-divide-by-zero,Fail
|
||||
|
||||
spec@glsl-1.20@execution@built-in-functions@fs-matrixcompmult-mat2x3-mat2x3,Fail
|
||||
spec@glsl-1.20@execution@built-in-functions@fs-matrixcompmult-mat2x4-mat2x4,Fail
|
||||
spec@glsl-1.20@execution@built-in-functions@fs-matrixcompmult-mat3x2-mat3x2,Fail
|
||||
|
|
@ -1052,7 +1022,6 @@ spec@glsl-1.20@execution@built-in-functions@fs-outerproduct-vec4-vec4,Fail
|
|||
spec@glsl-1.20@execution@fs-const-array-of-struct,Fail
|
||||
spec@glsl-1.20@execution@fs-const-array-of-struct-of-array,Fail
|
||||
spec@glsl-1.20@execution@fs-function-inout-array-of-structs,Fail
|
||||
spec@glsl-1.20@execution@fs-mix-1.0,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-vec4-const-array-indirect-access-032-elements,Fail
|
||||
|
|
@ -1120,7 +1089,6 @@ spec@glsl-1.20@execution@variable-indexing@vs-varying-array-mat3-index-col-row-w
|
|||
spec@glsl-1.20@execution@variable-indexing@vs-varying-array-mat3-index-col-wr,Fail
|
||||
spec@glsl-1.20@execution@variable-indexing@vs-varying-array-mat3-index-row-wr,Fail
|
||||
spec@glsl-1.20@execution@variable-indexing@vs-varying-array-mat3-index-wr,Fail
|
||||
spec@glsl-es-1.00@execution@unroll-do-while-false-loop-only-once,Fail
|
||||
spec@intel_performance_query@intel_performance_query-issue_2235,Fail
|
||||
spec@nv_primitive_restart@primitive-restart-draw-mode-lines,Fail
|
||||
spec@nv_primitive_restart@primitive-restart-draw-mode-quad_strip,Fail
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ traces:
|
|||
- path: gputest/plot3d.trace
|
||||
expectations:
|
||||
- device: i915-g33
|
||||
checksum: 6a3f62f1c6cc57c91188f93f37ebf9b4
|
||||
checksum: 4731890d1f782c106dd9c12af77b3607
|
||||
- path: gputest/triangle.trace
|
||||
expectations:
|
||||
# Weird white bar behind Tux's head.
|
||||
|
|
|
|||
|
|
@ -326,9 +326,16 @@ void st_init_limits(struct pipe_screen *screen,
|
|||
options->MaxIfDepth =
|
||||
screen->get_shader_param(screen, sh,
|
||||
PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH);
|
||||
options->EmitNoLoops =
|
||||
|
||||
/* If we're using NIR, then leave GLSL loop handling to NIR. If we set
|
||||
* this flag, then GLSL jump lowering will turn the breaks into something
|
||||
* that GLSL loop unrolling can't handle, and then you get linker failures
|
||||
* about samplers with non-const indexes in loops that should be unrollable.
|
||||
*/
|
||||
options->EmitNoLoops = !prefer_nir &&
|
||||
!screen->get_shader_param(screen, sh,
|
||||
PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH);
|
||||
|
||||
options->EmitNoMainReturn =
|
||||
!screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_SUBROUTINES);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue