From 12bc3eb3fc2986152e3b8949f875ef4914dcaa18 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Fri, 9 Jul 2021 01:48:52 -0400 Subject: [PATCH] hal/dx12: set render targets --- wgpu-hal/src/dx12/command.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/wgpu-hal/src/dx12/command.rs b/wgpu-hal/src/dx12/command.rs index 7beffa8a01..672a29802b 100644 --- a/wgpu-hal/src/dx12/command.rs +++ b/wgpu-hal/src/dx12/command.rs @@ -393,6 +393,30 @@ impl crate::CommandEncoder for super::CommandEncoder { self.begin_debug_marker(label); self.has_pass_label = true; } + + self.temp.barriers.clear(); + + let mut color_views = [native::CpuDescriptor { ptr: 0 }; crate::MAX_COLOR_TARGETS]; + for (cv, cat) in color_views.iter_mut().zip(desc.color_attachments.iter()) { + *cv = cat.target.view.handle_rtv.unwrap().raw; + } + let ds_view = match desc.depth_stencil_attachment { + None => ptr::null(), + Some(ref ds) => { + if ds.target.usage == crate::TextureUses::DEPTH_STENCIL_WRITE { + &ds.target.view.handle_dsv_rw.as_ref().unwrap().raw + } else { + &ds.target.view.handle_dsv_ro.as_ref().unwrap().raw + } + } + }; + + self.list.unwrap().OMSetRenderTargets( + desc.color_attachments.len() as u32, + color_views.as_ptr(), + 0, + ds_view, + ); } unsafe fn end_render_pass(&mut self) { if self.has_pass_label {