Framebuffer depth fixes

This commit is contained in:
luboslenco
2025-09-01 12:26:30 +02:00
parent 83d59ead80
commit d092352f1a
2 changed files with 5 additions and 4 deletions
+3 -3
View File
@@ -552,7 +552,7 @@ static void create_swapchain() {
VkImageCreateInfo image = {
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.imageType = VK_IMAGE_TYPE_2D,
.format = VK_FORMAT_D16_UNORM,
.format = VK_FORMAT_D32_SFLOAT,
.extent.width = iron_window_width(),
.extent.height = iron_window_height(),
.extent.depth = 1,
@@ -560,7 +560,7 @@ static void create_swapchain() {
.arrayLayers = 1,
.samples = VK_SAMPLE_COUNT_1_BIT,
.tiling = VK_IMAGE_TILING_OPTIMAL,
.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
.flags = 0,
};
@@ -580,7 +580,7 @@ static void create_swapchain() {
VkImageViewCreateInfo view = {
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
.image = framebuffer_depth.impl.image,
.format = VK_FORMAT_D16_UNORM,
.format = VK_FORMAT_D32_SFLOAT,
.subresourceRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT,
.subresourceRange.baseMipLevel = 0,
.subresourceRange.levelCount = 1,
+2 -1
View File
@@ -46,14 +46,15 @@ void gpu_begin(gpu_texture_t **targets, int count, gpu_texture_t *depth_buffer,
if (targets == NULL) {
current_render_targets[0] = &framebuffers[framebuffer_index];
current_render_targets_count = 1;
current_depth_buffer = framebuffer_depth.width > 0 ? &framebuffer_depth : NULL;
}
else {
for (int i = 0; i < count; ++i) {
current_render_targets[i] = targets[i];
}
current_render_targets_count = count;
current_depth_buffer = depth_buffer;
}
current_depth_buffer = depth_buffer;
for (int i = 0; i < current_render_targets_count; ++i) {
gpu_barrier(current_render_targets[i], GPU_TEXTURE_STATE_RENDER_TARGET);