mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
ac/nir/ngg: Add and use a has_ngg_passthru_no_msg field to ac_gpu_info.
Instead of using the chip family field. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33218>
This commit is contained in:
parent
a40000b85b
commit
e1be943f10
4 changed files with 9 additions and 1 deletions
|
|
@ -1305,6 +1305,12 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
|
|||
*/
|
||||
info->has_ngg_fully_culled_bug = info->gfx_level == GFX10;
|
||||
|
||||
/* On newer chips, it is not necessary for NGG shaders to request
|
||||
* the allocation of GS space in passthrough mode, when they set
|
||||
* PRIMGEN_PASSTHRU_NO_MSG.
|
||||
*/
|
||||
info->has_ngg_passthru_no_msg = info->family >= CHIP_NAVI23;
|
||||
|
||||
info->has_export_conflict_bug = info->gfx_level == GFX11;
|
||||
|
||||
/* The hw starts culling after all exports are finished,
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ struct radeon_info {
|
|||
bool never_send_perfcounter_stop;
|
||||
bool discardable_allows_big_page;
|
||||
bool has_ngg_fully_culled_bug;
|
||||
bool has_ngg_passthru_no_msg;
|
||||
bool has_export_conflict_bug;
|
||||
bool has_attr_ring_wait_bug;
|
||||
bool has_vrs_ds_export_bug;
|
||||
|
|
|
|||
|
|
@ -1782,7 +1782,7 @@ ac_nir_lower_ngg_nogs(nir_shader *shader, const ac_nir_lower_ngg_options *option
|
|||
|
||||
if (!options->can_cull) {
|
||||
/* Newer chips can use PRIMGEN_PASSTHRU_NO_MSG to skip gs_alloc_req for NGG passthrough. */
|
||||
if (!(options->passthrough && options->family >= CHIP_NAVI23)) {
|
||||
if (!(options->passthrough && options->hw_info->has_ngg_passthru_no_msg)) {
|
||||
/* Allocate export space on wave 0 - confirm to the HW that we want to use all possible space */
|
||||
nir_if *if_wave_0 = nir_push_if(b, nir_ieq_imm(b, nir_load_subgroup_id(b), 0));
|
||||
{
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@ radv_null_winsys_query_info(struct radeon_winsys *rws, struct radeon_info *gpu_i
|
|||
gpu_info->has_attr_ring = gpu_info->gfx_level >= GFX11;
|
||||
gpu_info->has_attr_ring_wait_bug = gpu_info->gfx_level == GFX11 || gpu_info->gfx_level == GFX11_5;
|
||||
gpu_info->has_ngg_fully_culled_bug = gpu_info->gfx_level == GFX10;
|
||||
gpu_info->has_ngg_passthru_no_msg = gpu_info->family >= CHIP_NAVI23;
|
||||
|
||||
if (gpu_info->family == CHIP_NAVI31 || gpu_info->family == CHIP_NAVI32)
|
||||
gpu_info->num_physical_wave64_vgprs_per_simd = 768;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue