summaryrefslogtreecommitdiffstats
path: root/src/amd
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2019-09-08 12:57:16 +0300
committerLionel Landwerlin <[email protected]>2019-09-15 15:37:02 +0300
commit6d5f11ab345b05759c22acbcd2f79928311689e3 (patch)
tree65047e2a987e4c143b443318988e08958d6f5e2d /src/amd
parent9466e4cfabc0419264a1d53372cda8c970267b0c (diff)
radv: store engine name
We'll use this later for a new driconfig matching parameter. v2: Avoid leak in device creation error case (Bas) Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Cc: 19.2 <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/vulkan/radv_device.c13
-rw-r--r--src/amd/vulkan/radv_private.h3
2 files changed, 16 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index beeec37e54a..57f492088bd 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -588,6 +588,13 @@ VkResult radv_CreateInstance(
client_version = VK_API_VERSION_1_0;
}
+ const char *engine_name = NULL;
+ uint32_t engine_version = 0;
+ if (pCreateInfo->pApplicationInfo) {
+ engine_name = pCreateInfo->pApplicationInfo->pEngineName;
+ engine_version = pCreateInfo->pApplicationInfo->engineVersion;
+ }
+
instance = vk_zalloc2(&default_alloc, pAllocator, sizeof(*instance), 8,
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
if (!instance)
@@ -631,6 +638,10 @@ VkResult radv_CreateInstance(
return vk_error(instance, result);
}
+ instance->engineName = vk_strdup(&instance->alloc, engine_name,
+ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
+ instance->engineVersion = engine_version;
+
_mesa_locale_init();
glsl_type_singleton_init_or_ref();
@@ -657,6 +668,8 @@ void radv_DestroyInstance(
radv_physical_device_finish(instance->physicalDevices + i);
}
+ vk_free(&instance->alloc, instance->engineName);
+
VG(VALGRIND_DESTROY_MEMPOOL(instance));
glsl_type_singleton_decref();
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index bf62ccc9c1d..d6c446abd06 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -315,6 +315,9 @@ struct radv_instance {
int physicalDeviceCount;
struct radv_physical_device physicalDevices[RADV_MAX_DRM_DEVICES];
+ char * engineName;
+ uint32_t engineVersion;
+
uint64_t debug_flags;
uint64_t perftest_flags;