Mesa (staging/21.2): radv: fix build with mingw
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Aug 13 22:06:01 UTC 2021
Module: Mesa
Branch: staging/21.2
Commit: 9ed17f746519b3095d287f836dfd0ba66bdbf950
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9ed17f746519b3095d287f836dfd0ba66bdbf950
Author: Michel Zou <xantares09 at hotmail.com>
Date: Mon Jun 14 15:57:17 2021 +0200
radv: fix build with mingw
Cc: 21.2 mesa-stable
Reviewed-by: Joshua Ashton <joshua at froggi.es>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Closes #5092
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12178>
(cherry picked from commit e4c0a34bfe4c9cc45eba06363bce43fbce5b2813)
---
.pick_status.json | 2 +-
src/amd/common/ac_gpu_info.c | 30 +++++++++++++++---------------
src/amd/vulkan/meson.build | 4 +++-
src/amd/vulkan/radv_device.c | 7 +++++++
src/amd/vulkan/vulkan_radv.def | 4 ++++
5 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/.pick_status.json b/.pick_status.json
index 7ce6639c4dc..d69ded1b527 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -94,7 +94,7 @@
"description": "radv: fix build with mingw",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": null
},
diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
index 63c2058862b..603dec595f7 100644
--- a/src/amd/common/ac_gpu_info.c
+++ b/src/amd/common/ac_gpu_info.c
@@ -136,76 +136,76 @@ struct amdgpu_gpu_info {
uint32_t vce_harvest_config;
uint32_t pci_rev_id;
};
-int drmGetCap(int fd, uint64_t capability, uint64_t *value)
+static int drmGetCap(int fd, uint64_t capability, uint64_t *value)
{
return -EINVAL;
}
-void drmFreeDevice(drmDevicePtr *device)
+static void drmFreeDevice(drmDevicePtr *device)
{
}
-int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device)
+static int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device)
{
return -ENODEV;
}
-int amdgpu_bo_alloc(amdgpu_device_handle dev,
+static int amdgpu_bo_alloc(amdgpu_device_handle dev,
struct amdgpu_bo_alloc_request *alloc_buffer,
amdgpu_bo_handle *buf_handle)
{
return -EINVAL;
}
-int amdgpu_bo_free(amdgpu_bo_handle buf_handle)
+static int amdgpu_bo_free(amdgpu_bo_handle buf_handle)
{
return -EINVAL;
}
-int amdgpu_query_buffer_size_alignment(amdgpu_device_handle dev,
+static int amdgpu_query_buffer_size_alignment(amdgpu_device_handle dev,
struct amdgpu_buffer_size_alignments
*info)
{
return -EINVAL;
}
-int amdgpu_query_firmware_version(amdgpu_device_handle dev, unsigned fw_type,
+static int amdgpu_query_firmware_version(amdgpu_device_handle dev, unsigned fw_type,
unsigned ip_instance, unsigned index,
uint32_t *version, uint32_t *feature)
{
return -EINVAL;
}
-int amdgpu_query_hw_ip_info(amdgpu_device_handle dev, unsigned type,
+static int amdgpu_query_hw_ip_info(amdgpu_device_handle dev, unsigned type,
unsigned ip_instance,
struct drm_amdgpu_info_hw_ip *info)
{
return -EINVAL;
}
-int amdgpu_query_heap_info(amdgpu_device_handle dev, uint32_t heap,
+static int amdgpu_query_heap_info(amdgpu_device_handle dev, uint32_t heap,
uint32_t flags, struct amdgpu_heap_info *info)
{
return -EINVAL;
}
-int amdgpu_query_gpu_info(amdgpu_device_handle dev,
+static int amdgpu_query_gpu_info(amdgpu_device_handle dev,
struct amdgpu_gpu_info *info)
{
return -EINVAL;
}
-int amdgpu_query_info(amdgpu_device_handle dev, unsigned info_id,
+static int amdgpu_query_info(amdgpu_device_handle dev, unsigned info_id,
unsigned size, void *value)
{
return -EINVAL;
}
-int amdgpu_query_sw_info(amdgpu_device_handle dev, enum amdgpu_sw_info info,
+static int amdgpu_query_sw_info(amdgpu_device_handle dev, enum amdgpu_sw_info info,
void *value)
{
return -EINVAL;
}
-int amdgpu_query_gds_info(amdgpu_device_handle dev,
+static int amdgpu_query_gds_info(amdgpu_device_handle dev,
struct amdgpu_gds_resource_info *gds_info)
{
return -EINVAL;
}
-int amdgpu_query_video_caps_info(amdgpu_device_handle dev, unsigned cap_type,
+static int amdgpu_query_video_caps_info(amdgpu_device_handle dev, unsigned cap_type,
unsigned size, void *value)
{
return -EINVAL;
}
-const char *amdgpu_get_marketing_name(amdgpu_device_handle dev)
+static const char *amdgpu_get_marketing_name(amdgpu_device_handle dev)
{
return NULL;
}
diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
index f3c4363d794..c6a38cbb9fa 100644
--- a/src/amd/vulkan/meson.build
+++ b/src/amd/vulkan/meson.build
@@ -139,7 +139,6 @@ endif
if with_platform_windows
radv_flags += [
'-DVK_USE_PLATFORM_WIN32_KHR',
- '-DVK_NO_PROTOTYPES',
]
endif
@@ -153,9 +152,12 @@ if with_llvm and with_ld_version_script
libvulkan_radeon_link_depends += files('vulkan.sym')
endif
+vulkan_radv_def = 'vulkan_radv.def'
+
libvulkan_radeon = shared_library(
'vulkan_radeon',
[libradv_files, radv_entrypoints, sha1_h],
+ vs_module_defs : vulkan_radv_def,
include_directories : [
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_amd, inc_amd_common, inc_amd_common_llvm, inc_compiler, inc_util, inc_vulkan_wsi,
],
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index ecddf358738..73039ba766e 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -62,6 +62,7 @@ typedef void *drmDevicePtr;
#include "git_sha1.h"
#include "sid.h"
#include "vk_format.h"
+#include "vulkan/vk_icd.h"
/* The number of IBs per submit isn't infinite, it depends on the ring type
* (ie. some initial setup needed for a submit) and the number of IBs (4 DW).
@@ -5190,6 +5191,12 @@ radv_GetInstanceProcAddr(VkInstance _instance, const char *pName)
return vk_instance_get_proc_addr(&instance->vk, &radv_instance_entrypoints, pName);
}
+/* Windows will use a dll definition file to avoid build errors. */
+#ifdef _WIN32
+#undef PUBLIC
+#define PUBLIC
+#endif
+
/* The loader wants us to expose a second GetInstanceProcAddr function
* to work around certain LD_PRELOAD issues seen in apps.
*/
diff --git a/src/amd/vulkan/vulkan_radv.def b/src/amd/vulkan/vulkan_radv.def
new file mode 100644
index 00000000000..64a9caae593
--- /dev/null
+++ b/src/amd/vulkan/vulkan_radv.def
@@ -0,0 +1,4 @@
+EXPORTS
+vk_icdNegotiateLoaderICDInterfaceVersion
+vk_icdGetInstanceProcAddr
+vk_icdGetPhysicalDeviceProcAddr
More information about the mesa-commit
mailing list