ac: change ac_query_gpu_info() signature
authorEmil Velikov <emil.velikov@collabora.com>
Fri, 21 Jun 2019 16:26:44 +0000 (17:26 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Fri, 28 Jun 2019 16:49:32 +0000 (17:49 +0100)
Currently libdrm_amdgpu provides a typedef of the various handles. While
the goal was to make those opaque, it effectively became part of the API

To the best of my knowledge there are two ways to have opaque handles:
 - "typedef void *foo;" - rather messy IMHO
 - "stuct foo;" and use "struct foo *" through the API

In our case amdgpu_device_handle is used only internally, plus
respective code is not used or applicable for r300 and r600. Hence we
copied the typedef.

Seemingly this will be a problem since libdrm_amdgpu wants to change the
API, while not updating the code(?).

Either way, we can safely s/amdgpU_device_handle/void */ and carry on.

Cc: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
src/amd/common/ac_gpu_info.c
src/amd/common/ac_gpu_info.h

index cd81c5757f3dfefb685f21bcd6fa07df2f874aea..c51a442b540f81628527af62432ee1bea72f1afe 100644 (file)
@@ -91,7 +91,7 @@ static bool has_syncobj(int fd)
        return value ? true : false;
 }
 
-bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
+bool ac_query_gpu_info(int fd, void *dev_p,
                       struct radeon_info *info,
                       struct amdgpu_gpu_info *amdinfo)
 {
@@ -103,6 +103,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
        struct amdgpu_gds_resource_info gds = {};
        uint32_t vce_version = 0, vce_feature = 0, uvd_version = 0, uvd_feature = 0;
        int r, i, j;
+       amdgpu_device_handle dev = dev_p;
        drmDevicePtr devinfo;
 
        /* Get PCI info. */
index d296c7eb89f33e6ac7782bffae26dcb0ef52537f..cea6181dc7ecd145b704112bca4f37aeed05baed 100644 (file)
@@ -35,8 +35,6 @@
 extern "C" {
 #endif
 
-/* Prior to C11 the following may trigger a typedef redeclaration warning */
-typedef struct amdgpu_device *amdgpu_device_handle;
 struct amdgpu_gpu_info;
 
 struct radeon_info {
@@ -151,7 +149,7 @@ struct radeon_info {
        uint32_t                    cik_macrotile_mode_array[16];
 };
 
-bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
+bool ac_query_gpu_info(int fd, void *dev_p,
                       struct radeon_info *info,
                       struct amdgpu_gpu_info *amdinfo);