[Mesa-dev] [PATCH 3/7] ac: query high bits of 32-bit address space

Marek Olšák maraeo at gmail.com
Fri Feb 2 20:48:49 UTC 2018


From: Marek Olšák <marek.olsak at amd.com>

---
 src/amd/common/ac_gpu_info.c | 7 +++++++
 src/amd/common/ac_gpu_info.h | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
index 6d9dcb5..b5b059e 100644
--- a/src/amd/common/ac_gpu_info.c
+++ b/src/amd/common/ac_gpu_info.c
@@ -219,20 +219,26 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
 		return false;
 	}
 
 	r = amdgpu_query_firmware_version(dev, AMDGPU_INFO_FW_VCE, 0, 0,
 					&vce_version, &vce_feature);
 	if (r) {
 		fprintf(stderr, "amdgpu: amdgpu_query_firmware_version(vce) failed.\n");
 		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;
 
 	switch (info->pci_id) {
 #define CHIPSET(pci_id, cfamily) case pci_id: info->family = CHIP_##cfamily; break;
 #include "pci_ids/radeonsi_pci_ids.h"
 #undef CHIPSET
 
 	default:
@@ -364,20 +370,21 @@ void ac_print_gpu_info(struct radeon_info *info)
 	printf("family = %i\n", info->family);
 	printf("chip_class = %i\n", info->chip_class);
 	printf("pte_fragment_size = %u\n", info->pte_fragment_size);
 	printf("gart_page_size = %u\n", info->gart_page_size);
 	printf("gart_size = %i MB\n", (int)DIV_ROUND_UP(info->gart_size, 1024*1024));
 	printf("vram_size = %i MB\n", (int)DIV_ROUND_UP(info->vram_size, 1024*1024));
 	printf("vram_vis_size = %i MB\n", (int)DIV_ROUND_UP(info->vram_vis_size, 1024*1024));
 	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);
 	printf("has_hw_decode = %u\n", info->has_hw_decode);
 	printf("num_sdma_rings = %i\n", info->num_sdma_rings);
 	printf("num_compute_rings = %u\n", info->num_compute_rings);
 	printf("uvd_fw_version = %u\n", info->uvd_fw_version);
 	printf("vce_fw_version = %u\n", info->vce_fw_version);
 	printf("me_fw_version = %i\n", info->me_fw_version);
 	printf("me_fw_feature = %i\n", info->me_fw_feature);
diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h
index cca3e98..ae42aff 100644
--- a/src/amd/common/ac_gpu_info.h
+++ b/src/amd/common/ac_gpu_info.h
@@ -50,20 +50,21 @@ struct radeon_info {
 	uint32_t                    pci_id;
 	enum radeon_family          family;
 	enum chip_class             chip_class;
 	uint32_t                    pte_fragment_size;
 	uint32_t                    gart_page_size;
 	uint64_t                    gart_size;
 	uint64_t                    vram_size;
 	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;
 	bool                        has_hw_decode;
 	uint32_t                    num_sdma_rings;
 	uint32_t                    num_compute_rings;
 	uint32_t                    uvd_fw_version;
 	uint32_t                    vce_fw_version;
 	uint32_t                    me_fw_version;
 	uint32_t                    me_fw_feature;
-- 
2.7.4



More information about the mesa-dev mailing list