diff options
author | Emil Velikov <[email protected]> | 2016-11-24 20:30:38 +0000 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2016-11-28 19:46:05 +0000 |
commit | de138e9cede4b1996fac9256d894c80e7b48a6d7 (patch) | |
tree | c8b97b1c50dbbb89363cbee147422b10e44c403c /src | |
parent | 3f9397753b9db577ad41ff1e8e72d9ae90401261 (diff) |
anv: Store UUID in physical device.
Port of an equivalent commit for radv.
v2: Move the call just after MMAP_VERSION (Ken).
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 17 | ||||
-rw-r--r-- | src/intel/vulkan/anv_pipeline_cache.c | 8 | ||||
-rw-r--r-- | src/intel/vulkan/anv_private.h | 4 |
3 files changed, 15 insertions, 14 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 51f0dc4185b..d5fbb8c8324 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -53,6 +53,13 @@ compiler_perf_log(void *data, const char *fmt, ...) va_end(args); } +static void +anv_device_get_cache_uuid(void *uuid) +{ + memset(uuid, 0, VK_UUID_SIZE); + snprintf(uuid, VK_UUID_SIZE, "anv-%s", ANV_TIMESTAMP); +} + static VkResult anv_physical_device_init(struct anv_physical_device *device, struct anv_instance *instance, @@ -134,6 +141,7 @@ anv_physical_device_init(struct anv_physical_device *device, goto fail; } + anv_device_get_cache_uuid(device->uuid); bool swizzled = anv_gem_get_bit6_swizzle(fd, I915_TILING_X); /* GENs prior to 8 do not support EU/Subslice info */ @@ -454,13 +462,6 @@ void anv_GetPhysicalDeviceFeatures( pdevice->compiler->scalar_stage[MESA_SHADER_GEOMETRY]; } -void -anv_device_get_cache_uuid(void *uuid) -{ - memset(uuid, 0, VK_UUID_SIZE); - snprintf(uuid, VK_UUID_SIZE, "anv-%s", ANV_TIMESTAMP); -} - void anv_GetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) @@ -601,7 +602,7 @@ void anv_GetPhysicalDeviceProperties( }; strcpy(pProperties->deviceName, pdevice->name); - anv_device_get_cache_uuid(pProperties->pipelineCacheUUID); + memcpy(pProperties->pipelineCacheUUID, pdevice->uuid, VK_UUID_SIZE); } void anv_GetPhysicalDeviceQueueFamilyProperties( diff --git a/src/intel/vulkan/anv_pipeline_cache.c b/src/intel/vulkan/anv_pipeline_cache.c index ddd51dbfd77..a8ea80f51f5 100644 --- a/src/intel/vulkan/anv_pipeline_cache.c +++ b/src/intel/vulkan/anv_pipeline_cache.c @@ -333,8 +333,8 @@ anv_pipeline_cache_load(struct anv_pipeline_cache *cache, const void *data, size_t size) { struct anv_device *device = cache->device; + struct anv_physical_device *pdevice = &device->instance->physicalDevice; struct cache_header header; - uint8_t uuid[VK_UUID_SIZE]; if (cache->cache == NULL) return; @@ -350,8 +350,7 @@ anv_pipeline_cache_load(struct anv_pipeline_cache *cache, return; if (header.device_id != device->chipset_id) return; - anv_device_get_cache_uuid(uuid); - if (memcmp(header.uuid, uuid, VK_UUID_SIZE) != 0) + if (memcmp(header.uuid, pdevice->uuid, VK_UUID_SIZE) != 0) return; const void *end = data + size; @@ -470,6 +469,7 @@ VkResult anv_GetPipelineCacheData( { ANV_FROM_HANDLE(anv_device, device, _device); ANV_FROM_HANDLE(anv_pipeline_cache, cache, _cache); + struct anv_physical_device *pdevice = &device->instance->physicalDevice; struct cache_header *header; if (pData == NULL) { @@ -497,7 +497,7 @@ VkResult anv_GetPipelineCacheData( header->header_version = VK_PIPELINE_CACHE_HEADER_VERSION_ONE; header->vendor_id = 0x8086; header->device_id = device->chipset_id; - anv_device_get_cache_uuid(header->uuid); + memcpy(header->uuid, pdevice->uuid, VK_UUID_SIZE); p += align_u32(header->header_size, 8); uint32_t *count = p; diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index edc008db715..4949a8008fa 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -506,6 +506,8 @@ struct anv_physical_device { uint32_t eu_total; uint32_t subslice_total; + uint8_t uuid[VK_UUID_SIZE]; + struct wsi_device wsi_device; }; @@ -597,8 +599,6 @@ struct anv_device { pthread_cond_t queue_submit; }; -void anv_device_get_cache_uuid(void *uuid); - void anv_device_init_blorp(struct anv_device *device); void anv_device_finish_blorp(struct anv_device *device); |