svga: disable GLSL IR loop unrolling
NIR loop unrolling is already enabled so just let it do its job. Here we also fix up the force unroll settings. Reviewed-by: Emma Anholt <emma@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16366>
This commit is contained in:
parent
bc0f8455e5
commit
8c79616984
|
@ -554,9 +554,8 @@ vgpu9_get_shader_param(struct pipe_screen *screen,
|
||||||
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:
|
||||||
return 0;
|
|
||||||
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
||||||
return 32;
|
return 0;
|
||||||
}
|
}
|
||||||
/* If we get here, we failed to handle a cap above */
|
/* If we get here, we failed to handle a cap above */
|
||||||
debug_printf("Unexpected fragment shader query %u\n", param);
|
debug_printf("Unexpected fragment shader query %u\n", param);
|
||||||
|
@ -622,9 +621,8 @@ vgpu9_get_shader_param(struct pipe_screen *screen,
|
||||||
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:
|
||||||
return 0;
|
|
||||||
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
||||||
return 32;
|
return 0;
|
||||||
}
|
}
|
||||||
/* If we get here, we failed to handle a cap above */
|
/* If we get here, we failed to handle a cap above */
|
||||||
debug_printf("Unexpected vertex shader query %u\n", param);
|
debug_printf("Unexpected vertex shader query %u\n", param);
|
||||||
|
@ -745,11 +743,10 @@ vgpu10_get_shader_param(struct pipe_screen *screen,
|
||||||
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:
|
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:
|
||||||
return sws->have_gl43 ? SVGA_MAX_ATOMIC_BUFFERS : 0;
|
return sws->have_gl43 ? SVGA_MAX_ATOMIC_BUFFERS : 0;
|
||||||
|
|
||||||
|
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
||||||
case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
|
case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
|
||||||
case PIPE_SHADER_CAP_INT64_ATOMICS:
|
case PIPE_SHADER_CAP_INT64_ATOMICS:
|
||||||
return 0;
|
return 0;
|
||||||
case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
|
|
||||||
return 32;
|
|
||||||
default:
|
default:
|
||||||
debug_printf("Unexpected vgpu10 shader query %u\n", param);
|
debug_printf("Unexpected vgpu10 shader query %u\n", param);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -776,9 +773,17 @@ vgpu10_get_shader_param(struct pipe_screen *screen,
|
||||||
.lower_fmod = true, \
|
.lower_fmod = true, \
|
||||||
.lower_fpow = true
|
.lower_fpow = true
|
||||||
|
|
||||||
static const nir_shader_compiler_options svga_vgpu9_compiler_options = {
|
static const nir_shader_compiler_options svga_vgpu9_fragment_compiler_options = {
|
||||||
COMMON_OPTIONS,
|
COMMON_OPTIONS,
|
||||||
.lower_bitops = true,
|
.lower_bitops = true,
|
||||||
|
.force_indirect_unrolling = nir_var_all,
|
||||||
|
.force_indirect_unrolling_sampler = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const nir_shader_compiler_options svga_vgpu9_vertex_compiler_options = {
|
||||||
|
COMMON_OPTIONS,
|
||||||
|
.lower_bitops = true,
|
||||||
|
.force_indirect_unrolling = nir_var_function_temp,
|
||||||
.force_indirect_unrolling_sampler = true,
|
.force_indirect_unrolling_sampler = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -807,8 +812,12 @@ svga_get_compiler_options(struct pipe_screen *pscreen,
|
||||||
return &svga_gl4_compiler_options;
|
return &svga_gl4_compiler_options;
|
||||||
else if (sws->have_vgpu10)
|
else if (sws->have_vgpu10)
|
||||||
return &svga_vgpu10_compiler_options;
|
return &svga_vgpu10_compiler_options;
|
||||||
|
else {
|
||||||
|
if (shader == PIPE_SHADER_FRAGMENT)
|
||||||
|
return &svga_vgpu9_fragment_compiler_options;
|
||||||
else
|
else
|
||||||
return &svga_vgpu9_compiler_options;
|
return &svga_vgpu9_vertex_compiler_options;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue