From 0977b7f7b3b6356500889f5a15348e0a3180e683 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 2 Feb 2018 18:22:15 +0100 Subject: [PATCH] ac: query high bits of 32-bit address space --- configure.ac | 2 +- meson.build | 2 +- src/amd/common/ac_gpu_info.c | 7 +++++++ src/amd/common/ac_gpu_info.h | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8ed606c7694..994052d5c41 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,7 @@ AC_SUBST([OPENCL_VERSION]) # in the first entry. LIBDRM_REQUIRED=2.4.75 LIBDRM_RADEON_REQUIRED=2.4.71 -LIBDRM_AMDGPU_REQUIRED=2.4.89 +LIBDRM_AMDGPU_REQUIRED=2.4.90 LIBDRM_INTEL_REQUIRED=2.4.75 LIBDRM_NVVIEUX_REQUIRED=2.4.66 LIBDRM_NOUVEAU_REQUIRED=2.4.66 diff --git a/meson.build b/meson.build index a3d1b3d670b..6fc7ec7fc96 100644 --- a/meson.build +++ b/meson.build @@ -980,7 +980,7 @@ dep_libdrm_nouveau = [] dep_libdrm_etnaviv = [] dep_libdrm_freedreno = [] if with_amd_vk or with_gallium_radeonsi - dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.89') + dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.90') endif if (with_gallium_radeonsi or with_dri_r100 or with_dri_r200 or with_gallium_r300 or with_gallium_r600) diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 6d9dcb5c56d..b5b059e1202 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -226,6 +226,12 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev, return false; } + r = amdgpu_query_sw_info(dev, amdgpu_sw_info_address32_hi, &info->address32_hi); + if (r) { + fprintf(stderr, "amdgpu: amdgpu_query_sw_info(address32_hi) failed.\n"); + return false; + } + /* Set chip identification. */ info->pci_id = amdinfo->asic_id; /* TODO: is this correct? */ info->vce_harvest_config = amdinfo->vce_harvest_config; @@ -371,6 +377,7 @@ void ac_print_gpu_info(struct radeon_info *info) printf("max_alloc_size = %i MB\n", (int)DIV_ROUND_UP(info->max_alloc_size, 1024*1024)); printf("min_alloc_size = %u\n", info->min_alloc_size); + printf("address32_hi = %u\n", info->address32_hi); printf("has_dedicated_vram = %u\n", info->has_dedicated_vram); printf("has_virtual_memory = %i\n", info->has_virtual_memory); printf("gfx_ib_pad_with_type2 = %i\n", info->gfx_ib_pad_with_type2); diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h index cca3e98d366..ae42aff6017 100644 --- a/src/amd/common/ac_gpu_info.h +++ b/src/amd/common/ac_gpu_info.h @@ -57,6 +57,7 @@ struct radeon_info { uint64_t vram_vis_size; uint64_t max_alloc_size; uint32_t min_alloc_size; + uint32_t address32_hi; bool has_dedicated_vram; bool has_virtual_memory; bool gfx_ib_pad_with_type2; -- 2.30.2