lima: switch to NIR loop unrolling
Reviewed-by: Emma Anholt <emma@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16366>
This commit is contained in:
parent
9e1ce5de40
commit
bb2f97eb27
|
@ -455,8 +455,6 @@ spec@glsl-1.10@execution@variable-indexing@vs-varying-mat4-row-wr,Fail
|
||||||
spec@glsl-1.10@execution@variable-indexing@vs-varying-mat4-wr,Fail
|
spec@glsl-1.10@execution@variable-indexing@vs-varying-mat4-wr,Fail
|
||||||
spec@glsl-1.10@glsl-fs-discard-only,Fail
|
spec@glsl-1.10@glsl-fs-discard-only,Fail
|
||||||
spec@glsl-1.10@linker@glsl-link-varyings-3,Fail
|
spec@glsl-1.10@linker@glsl-link-varyings-3,Fail
|
||||||
spec@glsl-1.20@execution@array_bounds@glsl-array-bounds-03,Fail
|
|
||||||
spec@glsl-1.20@execution@array_bounds@glsl-array-bounds-07,Fail
|
|
||||||
spec@glsl-1.20@execution@built-in-functions@fs-op-assign-div-mat2x4-mat2x4,Fail
|
spec@glsl-1.20@execution@built-in-functions@fs-op-assign-div-mat2x4-mat2x4,Fail
|
||||||
spec@glsl-1.20@execution@built-in-functions@fs-op-assign-div-mat3x2-mat3x2,Fail
|
spec@glsl-1.20@execution@built-in-functions@fs-op-assign-div-mat3x2-mat3x2,Fail
|
||||||
spec@glsl-1.20@execution@built-in-functions@fs-op-assign-div-mat3x4-mat3x4,Fail
|
spec@glsl-1.20@execution@built-in-functions@fs-op-assign-div-mat3x4-mat3x4,Fail
|
||||||
|
|
|
@ -64,6 +64,7 @@ static const nir_shader_compiler_options vs_nir_options = {
|
||||||
.force_indirect_unrolling = nir_var_all,
|
.force_indirect_unrolling = nir_var_all,
|
||||||
.force_indirect_unrolling_sampler = true,
|
.force_indirect_unrolling_sampler = true,
|
||||||
.lower_varying_from_uniform = true,
|
.lower_varying_from_uniform = true,
|
||||||
|
.max_unroll_iterations = 32,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const nir_shader_compiler_options fs_nir_options = {
|
static const nir_shader_compiler_options fs_nir_options = {
|
||||||
|
@ -86,6 +87,7 @@ static const nir_shader_compiler_options fs_nir_options = {
|
||||||
.force_indirect_unrolling = (nir_var_shader_out | nir_var_function_temp),
|
.force_indirect_unrolling = (nir_var_shader_out | nir_var_function_temp),
|
||||||
.force_indirect_unrolling_sampler = true,
|
.force_indirect_unrolling_sampler = true,
|
||||||
.lower_varying_from_uniform = true,
|
.lower_varying_from_uniform = true,
|
||||||
|
.max_unroll_iterations = 32,
|
||||||
};
|
};
|
||||||
|
|
||||||
const void *
|
const void *
|
||||||
|
|
|
@ -239,7 +239,7 @@ get_vertex_shader_param(struct lima_screen *screen,
|
||||||
return 256; /* need investigate */
|
return 256; /* need investigate */
|
||||||
|
|
||||||
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
||||||
return 32;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -289,10 +289,8 @@ get_fragment_shader_param(struct lima_screen *screen,
|
||||||
|
|
||||||
case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
|
case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
|
||||||
case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
|
case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
|
||||||
return 0;
|
|
||||||
|
|
||||||
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
||||||
return 32;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue