This series is, Acked-by: Edward O'Callaghan <funfunc...@folklore1984.net>
On 11/22/2016 12:19 PM, Bas Nieuwenhuizen wrote: > No sense in repeatedly determining it. Also, it might be dependent > on the device as shaders get compiled differently for SI/CIK/VI etc. > > Signed-off-by: Bas Nieuwenhuizen <ba...@google.com> > --- > src/amd/vulkan/radv_device.c | 18 ++++++++++-------- > src/amd/vulkan/radv_pipeline_cache.c | 8 ++++---- > src/amd/vulkan/radv_private.h | 4 ++-- > 3 files changed, 16 insertions(+), 14 deletions(-) > > diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c > index 390fde0..b731171 100644 > --- a/src/amd/vulkan/radv_device.c > +++ b/src/amd/vulkan/radv_device.c > @@ -44,6 +44,13 @@ > #include "util/debug.h" > struct radv_dispatch_table dtable; > > +static void > +radv_device_get_cache_uuid(void *uuid) > +{ > + memset(uuid, 0, VK_UUID_SIZE); > + snprintf(uuid, VK_UUID_SIZE, "radv-%s", RADV_TIMESTAMP); > +} > + > static VkResult > radv_physical_device_init(struct radv_physical_device *device, > struct radv_instance *instance, > @@ -89,6 +96,8 @@ radv_physical_device_init(struct radv_physical_device > *device, > goto fail; > } > > + radv_device_get_cache_uuid(device->uuid); > + > fprintf(stderr, "WARNING: radv is not a conformant vulkan > implementation, testing use only.\n"); > device->name = device->rad_info.name; > return VK_SUCCESS; > @@ -361,13 +370,6 @@ void radv_GetPhysicalDeviceFeatures( > }; > } > > -void > -radv_device_get_cache_uuid(void *uuid) > -{ > - memset(uuid, 0, VK_UUID_SIZE); > - snprintf(uuid, VK_UUID_SIZE, "radv-%s", RADV_TIMESTAMP); > -} > - > void radv_GetPhysicalDeviceProperties( > VkPhysicalDevice physicalDevice, > VkPhysicalDeviceProperties* pProperties) > @@ -498,7 +500,7 @@ void radv_GetPhysicalDeviceProperties( > }; > > strcpy(pProperties->deviceName, pdevice->name); > - radv_device_get_cache_uuid(pProperties->pipelineCacheUUID); > + memcpy(pProperties->pipelineCacheUUID, pdevice->uuid, VK_UUID_SIZE); > } > > void radv_GetPhysicalDeviceQueueFamilyProperties( > diff --git a/src/amd/vulkan/radv_pipeline_cache.c > b/src/amd/vulkan/radv_pipeline_cache.c > index b429355..db824a2 100644 > --- a/src/amd/vulkan/radv_pipeline_cache.c > +++ b/src/amd/vulkan/radv_pipeline_cache.c > @@ -308,8 +308,8 @@ radv_pipeline_cache_load(struct radv_pipeline_cache > *cache, > const void *data, size_t size) > { > struct radv_device *device = cache->device; > + struct radv_physical_device *pdevice = > &device->instance->physicalDevice; > struct cache_header header; > - uint8_t uuid[VK_UUID_SIZE]; > > if (size < sizeof(header)) > return; > @@ -322,8 +322,7 @@ radv_pipeline_cache_load(struct radv_pipeline_cache > *cache, > return; > if (header.device_id != > device->instance->physicalDevice.rad_info.pci_id) > return; > - radv_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; > > char *end = (void *) data + size; > @@ -405,6 +404,7 @@ VkResult radv_GetPipelineCacheData( > { > RADV_FROM_HANDLE(radv_device, device, _device); > RADV_FROM_HANDLE(radv_pipeline_cache, cache, _cache); > + struct radv_physical_device *pdevice = > &device->instance->physicalDevice; > struct cache_header *header; > VkResult result = VK_SUCCESS; > const size_t size = sizeof(*header) + cache->total_size; > @@ -422,7 +422,7 @@ VkResult radv_GetPipelineCacheData( > header->header_version = VK_PIPELINE_CACHE_HEADER_VERSION_ONE; > header->vendor_id = 0x1002; > header->device_id = device->instance->physicalDevice.rad_info.pci_id; > - radv_device_get_cache_uuid(header->uuid); > + memcpy(header->uuid, pdevice->uuid, VK_UUID_SIZE); > p += header->header_size; > > struct cache_entry *entry; > diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h > index ad5232b..3d17895 100644 > --- a/src/amd/vulkan/radv_private.h > +++ b/src/amd/vulkan/radv_private.h > @@ -258,6 +258,8 @@ struct radv_physical_device { > uint32_t pci_vendor_id; > uint32_t pci_device_id; > > + uint8_t uuid[VK_UUID_SIZE]; > + > struct wsi_device wsi_device; > }; > > @@ -453,8 +455,6 @@ struct radv_device { > float sample_locations_16x[16][2]; > }; > > -void radv_device_get_cache_uuid(void *uuid); > - > struct radv_device_memory { > struct radeon_winsys_bo *bo; > uint32_t type_index; >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev