i915g: switch to NIR loop unrolling
Shader-db stats: total instructions in shared programs: 406749 -> 406890 (0.03%) instructions in affected programs: 216 -> 357 (65.28%) total tex_indirect in shared programs: 12666 -> 12671 (0.04%) tex_indirect in affected programs: 29 -> 34 (17.24%) total temps in shared programs: 23447 -> 23451 (0.02%) temps in affected programs: 296 -> 300 (1.35%) total const in shared programs: 59400 -> 59455 (0.09%) const in affected programs: 50 -> 105 (110.00%) LOST: 0 GAINED: 17 Reviewed-by: Emma Anholt <emma@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16543>
This commit is contained in:
parent
11637f516c
commit
1663b04592
|
@ -25,8 +25,6 @@ dEQP-GLES2.functional.shaders.builtin_variable.frontfacing,Fail
|
||||||
|
|
||||||
dEQP-GLES2.functional.shaders.functions.control_flow.mixed_return_break_continue_fragment,Fail
|
dEQP-GLES2.functional.shaders.functions.control_flow.mixed_return_break_continue_fragment,Fail
|
||||||
dEQP-GLES2.functional.shaders.functions.control_flow.return_after_continue_fragment,Fail
|
dEQP-GLES2.functional.shaders.functions.control_flow.return_after_continue_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.tmp_array.float_const_write_dynamic_read_fragment,Fail
|
dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_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_dynamic_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_dynamic_read_fragment,Fail
|
||||||
|
@ -859,8 +857,6 @@ spec@glsl-1.10@execution@interpolation@interpolation-none-gl_frontsecondarycolor
|
||||||
spec@glsl-1.10@execution@loops@glsl-fs-continue-inside-do-while,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-300,Fail
|
||||||
|
|
||||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-continue,Fail
|
|
||||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-redundant-condition,Fail
|
|
||||||
spec@glsl-1.10@execution@loops@glsl-fs-loop-shadow-variables,Fail
|
spec@glsl-1.10@execution@loops@glsl-fs-loop-shadow-variables,Fail
|
||||||
spec@glsl-1.10@execution@loops@glsl-fs-unroll-out-param,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@loops@glsl-fs-unroll-side-effect,Fail
|
||||||
|
@ -882,7 +878,6 @@ spec@glsl-1.10@execution@samplers@glsl-fs-shadow2d-clamp-z,Fail
|
||||||
spec@glsl-1.10@execution@samplers@glsl-fs-shadow2dproj,Fail
|
spec@glsl-1.10@execution@samplers@glsl-fs-shadow2dproj,Fail
|
||||||
spec@glsl-1.10@execution@samplers@glsl-fs-shadow2dproj-bias,Fail
|
spec@glsl-1.10@execution@samplers@glsl-fs-shadow2dproj-bias,Fail
|
||||||
|
|
||||||
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-dst-in-loop,Fail
|
|
||||||
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-dst-in-nested-loop-combined,Fail
|
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-dst-in-nested-loop-combined,Fail
|
||||||
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-src-in-loop,Fail
|
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-src-in-loop,Fail
|
||||||
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-src-in-nested-loop-combined,Fail
|
spec@glsl-1.10@execution@temp-array-indexing@glsl-fs-vec4-indexing-temp-src-in-nested-loop-combined,Fail
|
||||||
|
|
|
@ -122,6 +122,7 @@ static const nir_shader_compiler_options i915_compiler_options = {
|
||||||
.use_interpolated_input_intrinsics = true,
|
.use_interpolated_input_intrinsics = true,
|
||||||
.force_indirect_unrolling = nir_var_all,
|
.force_indirect_unrolling = nir_var_all,
|
||||||
.force_indirect_unrolling_sampler = true,
|
.force_indirect_unrolling_sampler = true,
|
||||||
|
.max_unroll_iterations = 32,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nir_shader_compiler_options gallivm_nir_options = {
|
static const struct nir_shader_compiler_options gallivm_nir_options = {
|
||||||
|
@ -368,10 +369,9 @@ i915_get_shader_param(struct pipe_screen *screen, enum pipe_shader_type shader,
|
||||||
case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
|
case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
|
||||||
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS:
|
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS:
|
||||||
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:
|
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:
|
||||||
|
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
|
||||||
return 32;
|
|
||||||
default:
|
default:
|
||||||
debug_printf("%s: Unknown cap %u.\n", __FUNCTION__, cap);
|
debug_printf("%s: Unknown cap %u.\n", __FUNCTION__, cap);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue