mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
radeonsi: initialize use_ngg* sooner
si_init_screen_get_functions determines NIR options, so it should be before setting caps. Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32262>
This commit is contained in:
parent
55db7fc18c
commit
0836e9758b
1 changed files with 15 additions and 15 deletions
|
|
@ -1348,7 +1348,6 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws,
|
|||
|
||||
sscreen->nir_options = CALLOC_STRUCT(nir_shader_compiler_options);
|
||||
|
||||
si_init_screen_get_functions(sscreen);
|
||||
si_init_screen_buffer_functions(sscreen);
|
||||
si_init_screen_fence_functions(sscreen);
|
||||
si_init_screen_state_functions(sscreen);
|
||||
|
|
@ -1356,6 +1355,20 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws,
|
|||
si_init_screen_query_functions(sscreen);
|
||||
si_init_screen_live_shader_cache(sscreen);
|
||||
|
||||
if (sscreen->info.gfx_level >= GFX11) {
|
||||
sscreen->use_ngg = true;
|
||||
sscreen->use_ngg_culling = sscreen->info.max_render_backends >= 2 &&
|
||||
!(sscreen->debug_flags & DBG(NO_NGG_CULLING));
|
||||
} else {
|
||||
sscreen->use_ngg = !(sscreen->debug_flags & DBG(NO_NGG)) &&
|
||||
sscreen->info.gfx_level >= GFX10 &&
|
||||
(sscreen->info.family != CHIP_NAVI14 ||
|
||||
sscreen->info.is_pro_graphics);
|
||||
sscreen->use_ngg_culling = sscreen->use_ngg &&
|
||||
sscreen->info.max_render_backends >= 2 &&
|
||||
!(sscreen->debug_flags & DBG(NO_NGG_CULLING));
|
||||
}
|
||||
|
||||
sscreen->has_draw_indirect_multi =
|
||||
(sscreen->info.family >= CHIP_POLARIS10) ||
|
||||
(sscreen->info.gfx_level == GFX8 && sscreen->info.pfp_fw_version >= 121 &&
|
||||
|
|
@ -1365,6 +1378,7 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws,
|
|||
(sscreen->info.gfx_level == GFX6 && sscreen->info.pfp_fw_version >= 79 &&
|
||||
sscreen->info.me_fw_version >= 142);
|
||||
|
||||
si_init_screen_get_functions(sscreen);
|
||||
si_init_shader_caps(sscreen);
|
||||
si_init_compute_caps(sscreen);
|
||||
si_init_screen_caps(sscreen);
|
||||
|
|
@ -1471,20 +1485,6 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws,
|
|||
if (sscreen->debug_flags & DBG(NO_OUT_OF_ORDER))
|
||||
sscreen->info.has_out_of_order_rast = false;
|
||||
|
||||
if (sscreen->info.gfx_level >= GFX11) {
|
||||
sscreen->use_ngg = true;
|
||||
sscreen->use_ngg_culling = sscreen->info.max_render_backends >= 2 &&
|
||||
!(sscreen->debug_flags & DBG(NO_NGG_CULLING));
|
||||
} else {
|
||||
sscreen->use_ngg = !(sscreen->debug_flags & DBG(NO_NGG)) &&
|
||||
sscreen->info.gfx_level >= GFX10 &&
|
||||
(sscreen->info.family != CHIP_NAVI14 ||
|
||||
sscreen->info.is_pro_graphics);
|
||||
sscreen->use_ngg_culling = sscreen->use_ngg &&
|
||||
sscreen->info.max_render_backends >= 2 &&
|
||||
!(sscreen->debug_flags & DBG(NO_NGG_CULLING));
|
||||
}
|
||||
|
||||
/* Only set this for the cases that are known to work, which are:
|
||||
* - GFX9 if bpp >= 4 (in bytes)
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue