Browse Source

Fix d3d12 stencil buffer not clearing

Jonas Seidl 2 weeks ago
parent
commit
d1246b099e
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/d3d12/rendering_device_driver_d3d12.cpp

+ 4 - 1
drivers/d3d12/rendering_device_driver_d3d12.cpp

@@ -4619,9 +4619,12 @@ void RenderingDeviceDriverD3D12::command_begin_render_pass(CommandBufferID p_cmd
 				tex_info->pending_clear.remove_from_list();
 			}
 		} else if ((tex_info->desc.Flags & D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL)) {
-			if (pass_info->attachments[i].stencil_load_op == ATTACHMENT_LOAD_OP_CLEAR) {
+			if (pass_info->attachments[i].load_op == ATTACHMENT_LOAD_OP_CLEAR) {
 				clear.aspect.set_flag(TEXTURE_ASPECT_DEPTH_BIT);
 			}
+			if (pass_info->attachments[i].stencil_load_op == ATTACHMENT_LOAD_OP_CLEAR) {
+				clear.aspect.set_flag(TEXTURE_ASPECT_STENCIL_BIT);
+			}
 		}
 		if (!clear.aspect.is_empty()) {
 			clear.value = p_attachment_clears[i];