mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
radeonsi: add si_init_screen_nir_options
Extract code from si_init_screen_get_functions to new helper. The code assigning nir_options[] is moved out to help future changes. Reviewed-by: David Rosca <david.rosca@amd.com> Reviewed-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41133>
This commit is contained in:
parent
e8cdd8ccb1
commit
4c08b87fe1
3 changed files with 10 additions and 2 deletions
|
|
@ -217,7 +217,10 @@ void si_init_screen_get_functions(struct si_screen *sscreen)
|
|||
sscreen->b.get_disk_shader_cache = si_get_disk_shader_cache;
|
||||
|
||||
si_init_renderer_string(sscreen);
|
||||
}
|
||||
|
||||
void si_init_screen_nir_options(struct si_screen *sscreen)
|
||||
{
|
||||
#ifndef HAVE_GFX_COMPUTE
|
||||
return;
|
||||
#endif
|
||||
|
|
@ -297,7 +300,7 @@ void si_init_screen_get_functions(struct si_screen *sscreen)
|
|||
unsigned max_support_shader = enable_mesh_shader(sscreen) ?
|
||||
MESA_SHADER_MESH : MESA_SHADER_COMPUTE;
|
||||
for (unsigned i = 0; i <= max_support_shader; i++)
|
||||
sscreen->b.nir_options[i] = options;
|
||||
sscreen->b.nir_options[i] = sscreen->nir_options;
|
||||
}
|
||||
|
||||
void si_init_shader_caps(struct si_screen *sscreen)
|
||||
|
|
@ -460,6 +463,7 @@ void si_init_screen_caps(struct si_screen *sscreen)
|
|||
{
|
||||
struct pipe_caps *caps = (struct pipe_caps *)&sscreen->b.caps;
|
||||
|
||||
/* u_init_pipe_screen_caps depends on shader caps. */
|
||||
u_init_pipe_screen_caps(&sscreen->b, 1);
|
||||
|
||||
/* Gfx8 (Polaris11) hangs, so don't enable this on Gfx8 and older chips. */
|
||||
|
|
@ -612,7 +616,7 @@ void si_init_screen_caps(struct si_screen *sscreen)
|
|||
|
||||
#ifdef HAVE_GFX_COMPUTE
|
||||
caps->graphics = sscreen->info.has_graphics;
|
||||
caps->mesh_shader = enable_mesh_shader(sscreen);
|
||||
caps->mesh_shader = sscreen->b.nir_options[MESA_SHADER_MESH];
|
||||
caps->compute = true;
|
||||
#else
|
||||
caps->graphics = caps->mesh_shader = caps->compute = false;
|
||||
|
|
|
|||
|
|
@ -1425,8 +1425,11 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws,
|
|||
sscreen->info.me_fw_version >= 142);
|
||||
|
||||
si_init_screen_get_functions(sscreen);
|
||||
si_init_screen_nir_options(sscreen);
|
||||
si_init_shader_caps(sscreen);
|
||||
si_init_compute_caps(sscreen);
|
||||
|
||||
/* si_init_screen_caps depends on shader caps. */
|
||||
si_init_screen_caps(sscreen);
|
||||
|
||||
if (sscreen->debug_flags & DBG(INFO))
|
||||
|
|
|
|||
|
|
@ -1588,6 +1588,7 @@ struct pipe_fence_handle *si_create_fence(struct pipe_context *ctx,
|
|||
|
||||
/* si_get.c */
|
||||
void si_init_screen_get_functions(struct si_screen *sscreen);
|
||||
void si_init_screen_nir_options(struct si_screen *sscreen);
|
||||
void si_init_shader_caps(struct si_screen *sscreen);
|
||||
void si_init_compute_caps(struct si_screen *sscreen);
|
||||
void si_init_screen_caps(struct si_screen *sscreen);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue