fix validation bugs. only remaining is screen tearing during resize
This commit is contained in:
@@ -76,6 +76,7 @@ pub fn create_swapchain(
|
|||||||
) !vk.Extent2D {
|
) !vk.Extent2D {
|
||||||
const extent = try gfx.find_swap_extent(pdev, vki, surface, window);
|
const extent = try gfx.find_swap_extent(pdev, vki, surface, window);
|
||||||
|
|
||||||
|
const prev_swapchain = swapchain.*;
|
||||||
swapchain.* = try vkd.createSwapchainKHR(dev, &.{
|
swapchain.* = try vkd.createSwapchainKHR(dev, &.{
|
||||||
.surface = surface,
|
.surface = surface,
|
||||||
.min_image_count = swap_image_count,
|
.min_image_count = swap_image_count,
|
||||||
@@ -89,8 +90,9 @@ pub fn create_swapchain(
|
|||||||
.composite_alpha = .{ .opaque_bit_khr = true },
|
.composite_alpha = .{ .opaque_bit_khr = true },
|
||||||
.present_mode = present_mode,
|
.present_mode = present_mode,
|
||||||
.clipped = vk.TRUE,
|
.clipped = vk.TRUE,
|
||||||
.old_swapchain = swapchain.*,
|
.old_swapchain = prev_swapchain,
|
||||||
}, null);
|
}, null);
|
||||||
|
vkd.destroySwapchainKHR(dev, prev_swapchain, null);
|
||||||
|
|
||||||
var image_count: u32 = undefined;
|
var image_count: u32 = undefined;
|
||||||
_ = try vkd.getSwapchainImagesKHR(dev, swapchain.*, &image_count, null);
|
_ = try vkd.getSwapchainImagesKHR(dev, swapchain.*, &image_count, null);
|
||||||
@@ -351,6 +353,8 @@ pub fn main() !void {
|
|||||||
try record_cmdbuf(cmdbuf, vkd, image, view, extent, pipeline, vertex_buffer, index_buffer);
|
try record_cmdbuf(cmdbuf, vkd, image, view, extent, pipeline, vertex_buffer, index_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
},
|
},
|
||||||
else => |errx| return errx,
|
else => |errx| return errx,
|
||||||
|
Reference in New Issue
Block a user