diff options
| author | Daniel Schürmann <daniel@schuermann.dev> | 2025-09-23 10:40:12 +0200 |
|---|---|---|
| committer | Marge Bot <marge-bot@fdo.invalid> | 2025-11-06 13:53:07 +0000 |
| commit | 7e0ba402644fe04ce0de5940bdd04527d8eacbd2 (patch) | |
| tree | 3c75ab15fae7bed1bc84424b4501dbcf57a06cea | |
| parent | 4d68056e8301bba35b48ed026c80acce42688b21 (diff) | |
radeonsi: use ac_null_device_create() when AMD_FORCE_FAMILY is set
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525>
| -rw-r--r-- | src/amd/common/ac_gpu_info.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 77931a636cf..5c1299ff311 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -5,10 +5,10 @@ */ #include "ac_gpu_info.h" +#include "ac_null_device.h" #include "ac_shader_util.h" #include "ac_debug.h" #include "ac_surface.h" -#include "ac_fake_hw_db.h" #include "ac_linux_drm.h" #include "util/u_sync_provider.h" @@ -222,25 +222,14 @@ static void set_custom_cu_en_mask(struct radeon_info *info) } } -static void handle_env_var_force_family(struct radeon_info *info) +static bool handle_env_var_force_family(struct radeon_info *info) { const char *family = debug_get_option("AMD_FORCE_FAMILY", NULL); - if (!family) - return; + if (family) + return ac_null_device_create(info, family); - for (size_t i = 0; i < ARRAY_SIZE(ac_fake_hw_db); i++) { - if (!strcmp(family, ac_fake_hw_db[i].name)) { - get_radeon_info(info, &ac_fake_hw_db[i]); - info->name = "NOOP"; - info->family_overridden = true; - info->chip_rev = 1; - return; - } - } - - fprintf(stderr, "radeonsi: Unknown family: %s\n", family); - exit(1); + return true; } enum ac_query_gpu_info_result @@ -265,7 +254,8 @@ ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info, STATIC_ASSERT(AMDGPU_HW_IP_VCN_JPEG == AMD_IP_VCN_JPEG); STATIC_ASSERT(AMDGPU_HW_IP_VPE == AMD_IP_VPE); - handle_env_var_force_family(info); + if (!handle_env_var_force_family(info)) + return AC_QUERY_GPU_INFO_UNIMPLEMENTED_HW; info->pci.valid = ac_drm_query_pci_bus_info(dev, info) == 0; if (require_pci_bus_info && !info->pci.valid) |