diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 07:31:19 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 07:31:19 +0300 |
| commit | 4b741fb19c495a29bc12f6f057df01c91c1d9097 (patch) | |
| tree | 02983585bfdec0b14f84d02bed99d3f7a9eb1f62 /adapters/fparkan-render-vulkan/src/ffi/smoke.rs | |
| parent | 645eca551004f9eea8e2276e9110f3a66a1ddc69 (diff) | |
| download | fparkan-4b741fb19c495a29bc12f6f057df01c91c1d9097.tar.xz fparkan-4b741fb19c495a29bc12f6f057df01c91c1d9097.zip | |
feat(vulkan): add depth attachment pipeline support
Diffstat (limited to 'adapters/fparkan-render-vulkan/src/ffi/smoke.rs')
| -rw-r--r-- | adapters/fparkan-render-vulkan/src/ffi/smoke.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs index 71af2a8..92db1a0 100644 --- a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs +++ b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs @@ -228,6 +228,7 @@ impl VulkanSmokeRenderer { frame_sync: Vec::new(), images_in_flight: Vec::new(), current_frame: 0, + depth_request: create_info.render_request.depth, pending_extent: None, swapchain_recreate_count: 0, report: VulkanSmokeRendererReport { @@ -554,6 +555,7 @@ impl VulkanSmokeRenderer { let swapchain = self.swapchain_ref()?; let resources = RollbackOnDrop::new( create_swapchain_resources( + self.instance_ref()?, device, swapchain, self.command_pool, @@ -561,6 +563,7 @@ impl VulkanSmokeRenderer { self.index_buffer_ref()?, self.textures_ref()?, &self.draw_ranges, + self.depth_request, reuse_command_pool, )?, |resources| destroy_swapchain_resources(device, self.command_pool, resources), @@ -608,11 +611,19 @@ impl VulkanSmokeRenderer { result: error, })?; - let clear_values = [vk::ClearValue { - color: vk::ClearColorValue { - float32: [0.05, 0.08, 0.11, 1.0], + let clear_values = [ + vk::ClearValue { + color: vk::ClearColorValue { + float32: [0.05, 0.08, 0.11, 1.0], + }, }, - }]; + vk::ClearValue { + depth_stencil: vk::ClearDepthStencilValue { + depth: 1.0, + stencil: 0, + }, + }, + ]; let render_area = vk::Rect2D { offset: vk::Offset2D { x: 0, y: 0 }, extent: vk::Extent2D { |
