|
@@ -22,6 +22,7 @@
|
|
|
|
|
|
// CHANGELOG
|
|
// CHANGELOG
|
|
// (minor and older changes stripped away, please see git history for details)
|
|
// (minor and older changes stripped away, please see git history for details)
|
|
|
|
+// 2021-03-22: Vulkan: Fix mapped memory validation error when buffer sizes are not multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize.
|
|
// 2021-02-18: Vulkan: Change blending equation to preserve alpha in output buffer.
|
|
// 2021-02-18: Vulkan: Change blending equation to preserve alpha in output buffer.
|
|
// 2021-01-27: Vulkan: Added support for custom function load and IMGUI_IMPL_VULKAN_NO_PROTOTYPES by using ImGui_ImplVulkan_LoadFunctions().
|
|
// 2021-01-27: Vulkan: Added support for custom function load and IMGUI_IMPL_VULKAN_NO_PROTOTYPES by using ImGui_ImplVulkan_LoadFunctions().
|
|
// 2020-11-11: Vulkan: Added support for specifying which subpass to reference during VkPipeline creation.
|
|
// 2020-11-11: Vulkan: Added support for specifying which subpass to reference during VkPipeline creation.
|
|
@@ -343,7 +344,7 @@ static void CreateOrResizeBuffer(VkBuffer& buffer, VkDeviceMemory& buffer_memory
|
|
|
|
|
|
err = vkBindBufferMemory(v->Device, buffer, buffer_memory, 0);
|
|
err = vkBindBufferMemory(v->Device, buffer, buffer_memory, 0);
|
|
check_vk_result(err);
|
|
check_vk_result(err);
|
|
- p_buffer_size = new_size;
|
|
|
|
|
|
+ p_buffer_size = req.size;
|
|
}
|
|
}
|
|
|
|
|
|
static void ImGui_ImplVulkan_SetupRenderState(ImDrawData* draw_data, VkPipeline pipeline, VkCommandBuffer command_buffer, ImGui_ImplVulkanH_FrameRenderBuffers* rb, int fb_width, int fb_height)
|
|
static void ImGui_ImplVulkan_SetupRenderState(ImDrawData* draw_data, VkPipeline pipeline, VkCommandBuffer command_buffer, ImGui_ImplVulkanH_FrameRenderBuffers* rb, int fb_width, int fb_height)
|
|
@@ -429,9 +430,9 @@ void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer comm
|
|
// Upload vertex/index data into a single contiguous GPU buffer
|
|
// Upload vertex/index data into a single contiguous GPU buffer
|
|
ImDrawVert* vtx_dst = NULL;
|
|
ImDrawVert* vtx_dst = NULL;
|
|
ImDrawIdx* idx_dst = NULL;
|
|
ImDrawIdx* idx_dst = NULL;
|
|
- VkResult err = vkMapMemory(v->Device, rb->VertexBufferMemory, 0, vertex_size, 0, (void**)(&vtx_dst));
|
|
|
|
|
|
+ VkResult err = vkMapMemory(v->Device, rb->VertexBufferMemory, 0, rb->VertexBufferSize, 0, (void**)(&vtx_dst));
|
|
check_vk_result(err);
|
|
check_vk_result(err);
|
|
- err = vkMapMemory(v->Device, rb->IndexBufferMemory, 0, index_size, 0, (void**)(&idx_dst));
|
|
|
|
|
|
+ err = vkMapMemory(v->Device, rb->IndexBufferMemory, 0, rb->IndexBufferSize, 0, (void**)(&idx_dst));
|
|
check_vk_result(err);
|
|
check_vk_result(err);
|
|
for (int n = 0; n < draw_data->CmdListsCount; n++)
|
|
for (int n = 0; n < draw_data->CmdListsCount; n++)
|
|
{
|
|
{
|