diff options
| author | Dustin Graves <dustin@lunarg.com> | 2016-04-14 17:29:20 -0600 |
|---|---|---|
| committer | Tobin Ehlis <tobine@google.com> | 2016-04-14 17:59:49 -0600 |
| commit | 7bbe686a44503647573a1815cb5df164daf02c2f (patch) | |
| tree | 63038edbcf5133170fed7a80e0d060836dee04c1 | |
| parent | 997954a940ac95f132e259a77a7926ecc693f0cf (diff) | |
| download | usermoji-7bbe686a44503647573a1815cb5df164daf02c2f.tar.xz | |
layers: Fix 32-bit VS2013 build
Change reinterpret_cast<uint64_t> to reinterpret_cast<uint64_t&> for
unique_objects generated and static code.
Change-Id: I8be5680063ce8a26b58c444e59cb325c4cf6e98b
| -rw-r--r-- | layers/unique_objects.h | 48 | ||||
| -rwxr-xr-x | 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<uint64_t>(pCreateInfos[idx0].basePipelineHandle)]; + (VkPipeline)my_device_data + ->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfos[idx0].basePipelineHandle)]; } if (pCreateInfos[idx0].layout) { local_pCreateInfos[idx0].layout = - (VkPipelineLayout)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(pCreateInfos[idx0].layout)]; + (VkPipelineLayout) + my_device_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfos[idx0].layout)]; } if (pCreateInfos[idx0].stage.module) { local_pCreateInfos[idx0].stage.module = - (VkShaderModule)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(pCreateInfos[idx0].stage.module)]; + (VkShaderModule) + my_device_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfos[idx0].stage.module)]; } } } if (pipelineCache) { std::lock_guard<std::mutex> lock(global_lock); - pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(pipelineCache)]; + pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t &>(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<std::mutex> 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<uint64_t>(pPipelines[i]); - pPipelines[i] = reinterpret_cast<VkPipeline>(unique_id); + my_device_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t &>(pPipelines[i]); + pPipelines[i] = reinterpret_cast<VkPipeline &>(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<uint64_t>(pCreateInfos[idx0].basePipelineHandle)]; + (VkPipeline)my_device_data + ->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfos[idx0].basePipelineHandle)]; } if (pCreateInfos[idx0].layout) { local_pCreateInfos[idx0].layout = - (VkPipelineLayout)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(pCreateInfos[idx0].layout)]; + (VkPipelineLayout) + my_device_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(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<uint64_t>(pCreateInfos[idx0].pStages[idx1].module)]; + ->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfos[idx0].pStages[idx1].module)]; } } } if (pCreateInfos[idx0].renderPass) { local_pCreateInfos[idx0].renderPass = - (VkRenderPass)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(pCreateInfos[idx0].renderPass)]; + (VkRenderPass) + my_device_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfos[idx0].renderPass)]; } } } if (pipelineCache) { std::lock_guard<std::mutex> lock(global_lock); - pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(pipelineCache)]; + pipelineCache = (VkPipelineCache)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t &>(pipelineCache)]; } VkResult result = @@ -331,8 +335,8 @@ VkResult explicit_CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipel std::lock_guard<std::mutex> 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<uint64_t>(pPipelines[i]); - pPipelines[i] = reinterpret_cast<VkPipeline>(unique_id); + my_device_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t &>(pPipelines[i]); + pPipelines[i] = reinterpret_cast<VkPipeline &>(unique_id); } } return result; @@ -347,11 +351,11 @@ VkResult explicit_CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInf std::lock_guard<std::mutex> lock(global_lock); local_pCreateInfo = new safe_VkSwapchainCreateInfoKHR(pCreateInfo); local_pCreateInfo->oldSwapchain = - (VkSwapchainKHR)my_map_data->unique_id_mapping[reinterpret_cast<uint64_t>(pCreateInfo->oldSwapchain)]; + (VkSwapchainKHR)my_map_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(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<uint64_t>(pCreateInfo->surface)]; + (VkSurfaceKHR)instance_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(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<std::mutex> lock(global_lock); uint64_t unique_id = my_map_data->unique_id++; - my_map_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t>(*pSwapchain); - *pSwapchain = reinterpret_cast<VkSwapchainKHR>(unique_id); + my_map_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t &>(*pSwapchain); + *pSwapchain = reinterpret_cast<VkSwapchainKHR &>(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<std::mutex> lock(global_lock); - swapchain = (VkSwapchainKHR)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t>(swapchain)]; + swapchain = (VkSwapchainKHR)my_device_data->unique_id_mapping[reinterpret_cast<uint64_t &>(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<std::mutex> 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<uint64_t>(pSwapchainImages[i]); - pSwapchainImages[i] = reinterpret_cast<VkImage>(unique_id); + my_device_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t &>(pSwapchainImages[i]); + pSwapchainImages[i] = reinterpret_cast<VkImage &>(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<uint64_t>(%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<const uint64_t &>(%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<uint64_t>(%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<const uint64_t &>(%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<uint64_t>(%s)];\n' % (indent, name, struct_uses[obj], name) + pre_code += '%s%s = (%s)my_map_data->unique_id_mapping[reinterpret_cast<uint64_t &>(%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<uint64_t>(%s);\n' % (indent, del_obj, del_obj) + pre_call_txt += '%suint64_t local_%s = reinterpret_cast<uint64_t &>(%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<uint64_t>(%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<uint64_t &>(%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<uint64_t>(*%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<uint64_t &>(*%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: |
