amd, radeonsi: Add code to enable gfx11.5

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25278>
This commit is contained in:
Pierre-Eric Pelloux-Prayer
2023-09-18 21:47:59 +02:00
committed by Marge Bot
parent eabd2232e8
commit 74978fd8e9
5 changed files with 18 additions and 2 deletions
+6 -1
View File
@@ -856,9 +856,14 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
identify_chip(GFX1103_R1);
identify_chip(GFX1103_R2);
break;
case FAMILY_GFX1150:
identify_chip(GFX1150);
break;
}
if (info->ip[AMD_IP_GFX].ver_major == 11)
if (info->ip[AMD_IP_GFX].ver_major == 11 && info->ip[AMD_IP_GFX].ver_minor == 5)
info->gfx_level = GFX11_5;
else if (info->ip[AMD_IP_GFX].ver_major == 11)
info->gfx_level = GFX11;
else if (info->ip[AMD_IP_GFX].ver_major == 10 && info->ip[AMD_IP_GFX].ver_minor == 3)
info->gfx_level = GFX10_3;
+1 -1
View File
@@ -2329,7 +2329,7 @@ export_vertex_params_gfx11(nir_builder *b, nir_def *export_tid, nir_def *num_exp
static bool must_wait_attr_ring(enum amd_gfx_level gfx_level, bool has_param_exports)
{
return gfx_level == GFX11 && has_param_exports;
return (gfx_level == GFX11 || gfx_level == GFX11_5) && has_param_exports;
}
static void
+4
View File
@@ -95,6 +95,8 @@ const char *ac_get_family_name(enum radeon_family family)
return "GFX1103_R1";
case CHIP_GFX1103_R2:
return "GFX1103_R2";
case CHIP_GFX1150:
return "GFX1150";
default:
unreachable("Unknown GPU family");
}
@@ -219,6 +221,8 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
case CHIP_GFX1103_R1:
case CHIP_GFX1103_R2:
return "gfx1103";
case CHIP_GFX1150:
return "gfx1150";
default:
return "";
}
+2
View File
@@ -119,6 +119,7 @@ enum radeon_family
CHIP_NAVI33, /* Radeon 7600, 7700S (mobile) */
CHIP_GFX1103_R1,
CHIP_GFX1103_R2,
CHIP_GFX1150,
CHIP_LAST,
};
@@ -139,6 +140,7 @@ enum amd_gfx_level
GFX10,
GFX10_3,
GFX11,
GFX11_5,
NUM_GFX_VERSIONS,
};
+5
View File
@@ -6068,6 +6068,11 @@ static void gfx10_init_gfx_preamble_state(struct si_context *sctx)
si_pm4_set_reg(pm4, R_028C48_PA_SC_BINNER_CNTL_1,
S_028C48_MAX_ALLOC_COUNT(sscreen->info.pbb_max_alloc_count - 1) |
S_028C48_MAX_PRIM_PER_BATCH(1023));
if (sctx->gfx_level >= GFX11_5)
si_pm4_set_reg(pm4, R_028C54_PA_SC_BINNER_CNTL_2,
S_028C54_ENABLE_PING_PONG_BIN_ORDER(1));
/* Break up a pixel wave if it contains deallocs for more than
* half the parameter cache.
*