mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-12-02 12:46:30 +00:00
ac: move ac_get_num_physical_vgprs into radeon_info
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
parent
0692ae34e9
commit
aae35fbd3a
@ -597,6 +597,7 @@ bool ac_query_gpu_info(int fd, void *dev_p,
|
||||
else
|
||||
info->num_physical_sgprs_per_simd = 512;
|
||||
|
||||
info->num_physical_wave64_vgprs_per_simd = info->chip_class >= GFX10 ? 512 : 256;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -143,6 +143,7 @@ struct radeon_info {
|
||||
uint32_t max_sh_per_se; /* shader arrays per shader engine */
|
||||
uint32_t max_wave64_per_simd;
|
||||
uint32_t num_physical_sgprs_per_simd;
|
||||
uint32_t num_physical_wave64_vgprs_per_simd;
|
||||
|
||||
/* Render backends (color + depth blocks). */
|
||||
uint32_t r300_num_gb_pipes;
|
||||
@ -191,16 +192,6 @@ unsigned ac_get_compute_resource_limits(struct radeon_info *info,
|
||||
unsigned max_waves_per_sh,
|
||||
unsigned threadgroups_per_cu);
|
||||
|
||||
static inline unsigned ac_get_num_physical_vgprs(enum chip_class chip_class,
|
||||
unsigned wave_size)
|
||||
{
|
||||
/* The number is per SIMD. */
|
||||
if (chip_class >= GFX10)
|
||||
return wave_size == 32 ? 1024 : 512;
|
||||
else
|
||||
return 256;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -5460,7 +5460,7 @@ static void si_calculate_max_simd_waves(struct si_shader *shader)
|
||||
if (conf->num_vgprs) {
|
||||
/* Always print wave limits as Wave64, so that we can compare
|
||||
* Wave32 and Wave64 with shader-db fairly. */
|
||||
unsigned max_vgprs = ac_get_num_physical_vgprs(sscreen->info.chip_class, 64);
|
||||
unsigned max_vgprs = sscreen->info.num_physical_wave64_vgprs_per_simd;
|
||||
max_simd_waves = MIN2(max_simd_waves, max_vgprs / conf->num_vgprs);
|
||||
}
|
||||
|
||||
@ -7176,8 +7176,8 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
|
||||
*/
|
||||
if (sel->type == PIPE_SHADER_COMPUTE) {
|
||||
unsigned wave_size = sscreen->compute_wave_size;
|
||||
unsigned max_vgprs = ac_get_num_physical_vgprs(sscreen->info.chip_class,
|
||||
wave_size);
|
||||
unsigned max_vgprs = sscreen->info.num_physical_wave64_vgprs_per_simd *
|
||||
(wave_size == 32 ? 2 : 1);
|
||||
unsigned max_sgprs = sscreen->info.num_physical_sgprs_per_simd;
|
||||
unsigned max_sgprs_per_wave = 128;
|
||||
unsigned simds_per_tg = 4; /* assuming WGP mode on gfx10 */
|
||||
|
Loading…
Reference in New Issue
Block a user