From 7bbe686a44503647573a1815cb5df164daf02c2f Mon Sep 17 00:00:00 2001 From: Dustin Graves Date: Thu, 14 Apr 2016 17:29:20 -0600 Subject: layers: Fix 32-bit VS2013 build Change reinterpret_cast to reinterpret_cast for unique_objects generated and static code. Change-Id: I8be5680063ce8a26b58c444e59cb325c4cf6e98b --- layers/unique_objects.h | 48 ++++++++++++++++++++++++++---------------------- vk-layer-generate.py | 16 ++++++++-------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/layers/unique_objects.h b/layers/unique_objects.h index b4376a54..a64e8820 100644 --- a/layers/unique_objects.h +++ b/layers/unique_objects.h @@ -245,22 +245,24 @@ VkResult explicit_CreateComputePipelines(VkDevice device, VkPipelineCache pipeli local_pCreateInfos[idx0].initialize(&pCreateInfos[idx0]); if (pCreateInfos[idx0].basePipelineHandle) { local_pCreateInfos[idx0].basePipelineHandle = - (VkPipeline) - my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].basePipelineHandle)]; + (VkPipeline)my_device_data + ->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].basePipelineHandle)]; } if (pCreateInfos[idx0].layout) { local_pCreateInfos[idx0].layout = - (VkPipelineLayout)my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].layout)]; + (VkPipelineLayout) + my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].layout)]; } if (pCreateInfos[idx0].stage.module) { local_pCreateInfos[idx0].stage.module = - (VkShaderModule)my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].stage.module)]; + (VkShaderModule) + my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].stage.module)]; } } } if (pipelineCache) { std::lock_guard lock(global_lock); - pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast(pipelineCache)]; + pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast(pipelineCache)]; } VkResult result = get_dispatch_table(unique_objects_device_table_map, device) @@ -272,8 +274,8 @@ VkResult explicit_CreateComputePipelines(VkDevice device, VkPipelineCache pipeli std::lock_guard lock(global_lock); for (uint32_t i = 0; i < createInfoCount; ++i) { unique_id = my_device_data->unique_id++; - my_device_data->unique_id_mapping[unique_id] = reinterpret_cast(pPipelines[i]); - pPipelines[i] = reinterpret_cast(unique_id); + my_device_data->unique_id_mapping[unique_id] = reinterpret_cast(pPipelines[i]); + pPipelines[i] = reinterpret_cast(unique_id); } } return result; @@ -294,31 +296,33 @@ VkResult explicit_CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipel local_pCreateInfos[idx0].initialize(&pCreateInfos[idx0]); if (pCreateInfos[idx0].basePipelineHandle) { local_pCreateInfos[idx0].basePipelineHandle = - (VkPipeline) - my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].basePipelineHandle)]; + (VkPipeline)my_device_data + ->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].basePipelineHandle)]; } if (pCreateInfos[idx0].layout) { local_pCreateInfos[idx0].layout = - (VkPipelineLayout)my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].layout)]; + (VkPipelineLayout) + my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].layout)]; } if (pCreateInfos[idx0].pStages) { for (uint32_t idx1 = 0; idx1 < pCreateInfos[idx0].stageCount; ++idx1) { if (pCreateInfos[idx0].pStages[idx1].module) { local_pCreateInfos[idx0].pStages[idx1].module = (VkShaderModule)my_device_data - ->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].pStages[idx1].module)]; + ->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].pStages[idx1].module)]; } } } if (pCreateInfos[idx0].renderPass) { local_pCreateInfos[idx0].renderPass = - (VkRenderPass)my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].renderPass)]; + (VkRenderPass) + my_device_data->unique_id_mapping[reinterpret_cast(pCreateInfos[idx0].renderPass)]; } } } if (pipelineCache) { std::lock_guard lock(global_lock); - pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast(pipelineCache)]; + pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast(pipelineCache)]; } VkResult result = @@ -331,8 +335,8 @@ VkResult explicit_CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipel std::lock_guard lock(global_lock); for (uint32_t i = 0; i < createInfoCount; ++i) { unique_id = my_device_data->unique_id++; - my_device_data->unique_id_mapping[unique_id] = reinterpret_cast(pPipelines[i]); - pPipelines[i] = reinterpret_cast(unique_id); + my_device_data->unique_id_mapping[unique_id] = reinterpret_cast(pPipelines[i]); + pPipelines[i] = reinterpret_cast(unique_id); } } return result; @@ -347,11 +351,11 @@ VkResult explicit_CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInf std::lock_guard lock(global_lock); local_pCreateInfo = new safe_VkSwapchainCreateInfoKHR(pCreateInfo); local_pCreateInfo->oldSwapchain = - (VkSwapchainKHR)my_map_data->unique_id_mapping[reinterpret_cast(pCreateInfo->oldSwapchain)]; + (VkSwapchainKHR)my_map_data->unique_id_mapping[reinterpret_cast(pCreateInfo->oldSwapchain)]; // Need to pull surface mapping from the instance-level map layer_data *instance_data = get_my_data_ptr(get_dispatch_key(my_map_data->gpu), layer_data_map); local_pCreateInfo->surface = - (VkSurfaceKHR)instance_data->unique_id_mapping[reinterpret_cast(pCreateInfo->surface)]; + (VkSurfaceKHR)instance_data->unique_id_mapping[reinterpret_cast(pCreateInfo->surface)]; } VkResult result = get_dispatch_table(unique_objects_device_table_map, device) @@ -361,8 +365,8 @@ VkResult explicit_CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInf if (VK_SUCCESS == result) { std::lock_guard lock(global_lock); uint64_t unique_id = my_map_data->unique_id++; - my_map_data->unique_id_mapping[unique_id] = reinterpret_cast(*pSwapchain); - *pSwapchain = reinterpret_cast(unique_id); + my_map_data->unique_id_mapping[unique_id] = reinterpret_cast(*pSwapchain); + *pSwapchain = reinterpret_cast(unique_id); } return result; } @@ -374,7 +378,7 @@ VkResult explicit_GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchai layer_data *my_device_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); if (VK_NULL_HANDLE != swapchain) { std::lock_guard lock(global_lock); - swapchain = (VkSwapchainKHR)my_device_data->unique_id_mapping[reinterpret_cast(swapchain)]; + swapchain = (VkSwapchainKHR)my_device_data->unique_id_mapping[reinterpret_cast(swapchain)]; } VkResult result = get_dispatch_table(unique_objects_device_table_map, device) ->GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages); @@ -385,8 +389,8 @@ VkResult explicit_GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchai std::lock_guard lock(global_lock); for (uint32_t i = 0; i < *pSwapchainImageCount; ++i) { unique_id = my_device_data->unique_id++; - my_device_data->unique_id_mapping[unique_id] = reinterpret_cast(pSwapchainImages[i]); - pSwapchainImages[i] = reinterpret_cast(unique_id); + my_device_data->unique_id_mapping[unique_id] = reinterpret_cast(pSwapchainImages[i]); + pSwapchainImages[i] = reinterpret_cast(unique_id); } } } diff --git a/vk-layer-generate.py b/vk-layer-generate.py index 0a36b778..0f32807d 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -1499,7 +1499,7 @@ class UniqueObjectsSubcommand(Subcommand): pName = 'p%s' % (struct_uses[obj][2:]) if name not in vector_name_set: vector_name_set.add(name) - pre_code += '%slocal_%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast(%s%s)];\n' % (indent, prefix, name, struct_uses[obj], prefix, name) + pre_code += '%slocal_%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast(%s%s)];\n' % (indent, prefix, name, struct_uses[obj], prefix, name) if array != '': indent = indent[4:] pre_code += '%s}\n' % (indent) @@ -1511,9 +1511,9 @@ class UniqueObjectsSubcommand(Subcommand): if ptr_type: deref_txt = '' if '->' in prefix: # need to update local struct - pre_code += '%slocal_%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast(%s%s)];\n' % (indent, prefix, name, struct_uses[obj], prefix, name) + pre_code += '%slocal_%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast(%s%s)];\n' % (indent, prefix, name, struct_uses[obj], prefix, name) else: - pre_code += '%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast(%s)];\n' % (indent, name, struct_uses[obj], name) + pre_code += '%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast(%s)];\n' % (indent, name, struct_uses[obj], name) return decls, pre_code, post_code def generate_intercept(self, proto, qual): @@ -1575,7 +1575,7 @@ class UniqueObjectsSubcommand(Subcommand): if destroy_func: # only one object for del_obj in sorted(struct_uses): #pre_call_txt += '%s%s local_%s = %s;\n' % (indent, struct_uses[del_obj], del_obj, del_obj) - pre_call_txt += '%suint64_t local_%s = reinterpret_cast(%s);\n' % (indent, del_obj, del_obj) + pre_call_txt += '%suint64_t local_%s = reinterpret_cast(%s);\n' % (indent, del_obj, del_obj) pre_call_txt += '%s%s = (%s)my_map_data->unique_id_mapping[local_%s];\n' % (indent, del_obj, struct_uses[del_obj], del_obj) (pre_decl, pre_code, post_code) = ('', '', '') else: @@ -1617,15 +1617,15 @@ class UniqueObjectsSubcommand(Subcommand): post_call_txt += '%sfor (uint32_t i=0; i<%s; ++i) {\n' % (indent, custom_create_dict[obj_name]) indent += ' ' post_call_txt += '%suint64_t unique_id = my_map_data->unique_id++;\n' % (indent) - post_call_txt += '%smy_map_data->unique_id_mapping[unique_id] = reinterpret_cast(%s[i]);\n' % (indent, obj_name) - post_call_txt += '%s%s[i] = reinterpret_cast<%s>(unique_id);\n' % (indent, obj_name, obj_type) + post_call_txt += '%smy_map_data->unique_id_mapping[unique_id] = reinterpret_cast(%s[i]);\n' % (indent, obj_name) + post_call_txt += '%s%s[i] = reinterpret_cast<%s&>(unique_id);\n' % (indent, obj_name, obj_type) indent = indent[4:] post_call_txt += '%s}\n' % (indent) else: post_call_txt += '%s\n' % (self.lineinfo.get()) post_call_txt += '%suint64_t unique_id = my_map_data->unique_id++;\n' % (indent) - post_call_txt += '%smy_map_data->unique_id_mapping[unique_id] = reinterpret_cast(*%s);\n' % (indent, obj_name) - post_call_txt += '%s*%s = reinterpret_cast<%s>(unique_id);\n' % (indent, obj_name, obj_type) + post_call_txt += '%smy_map_data->unique_id_mapping[unique_id] = reinterpret_cast(*%s);\n' % (indent, obj_name) + post_call_txt += '%s*%s = reinterpret_cast<%s&>(unique_id);\n' % (indent, obj_name, obj_type) indent = indent[4:] post_call_txt += '%s}\n' % (indent) elif destroy_func: -- cgit v1.2.3