@@ -75,15 +75,15 @@ bool supply_depth(void* pDepthTextureResource) {
75
75
const resource_desc rs_depth_desc (device->get_resource_desc (rs_depth));
76
76
const resource_desc rs_depth_target_desc (dev_data.depth_texture != 0 ? device->get_resource_desc (dev_data.depth_texture ) : resource_desc ());
77
77
78
- if (dev_data.depth_texture != 0 && (rs_depth_desc.texture .width != rs_depth_target_desc.texture .width || rs_depth_desc.texture .height != rs_depth_desc.texture .height )) {
78
+ if (dev_data.depth_texture != 0 && (rs_depth_desc.texture .width != rs_depth_target_desc.texture .width || rs_depth_desc.texture .height != rs_depth_desc.texture .height ) || true ) {
79
79
dev_data.free_resources ();
80
80
}
81
81
82
82
if (dev_data.depth_texture == 0 ) {
83
83
resource_desc desc (rs_depth_desc);
84
84
desc.type = resource_type::texture_2d;
85
85
desc.heap = memory_heap::gpu_only;
86
- desc.usage = resource_usage::shader_resource | resource_usage::render_target ;
86
+ desc.usage = resource_usage::shader_resource | resource_usage::copy_dest ;
87
87
desc.texture .format = format::r32_float;
88
88
89
89
if (device->create_resource (desc, nullptr , resource_usage::copy_dest, &dev_data.depth_texture ))
@@ -92,7 +92,7 @@ bool supply_depth(void* pDepthTextureResource) {
92
92
return false ;
93
93
94
94
resource_view_desc view_desc (format_to_default_typed (desc.texture .format ));
95
- if (!device->create_resource_view (dev_data.depth_texture , resource_usage::shader_resource | resource_usage::render_target , view_desc, &dev_data.depth_texture_view ))
95
+ if (!device->create_resource_view (dev_data.depth_texture , resource_usage::shader_resource, view_desc, &dev_data.depth_texture_view ))
96
96
return false ;
97
97
98
98
float vertex_data[4 ][3 ] = {
@@ -123,12 +123,13 @@ bool supply_depth(void* pDepthTextureResource) {
123
123
rts.store_op = render_pass_store_op::store;
124
124
rts.view = dev_data.depth_texture_view ;
125
125
126
- // Ensure barriers are not created with 'D3D12_RESOURCE_STATE_[...]_SHADER_RESOURCE' when resource has 'D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE' flag set
127
- const resource_usage old_state = rs_depth_desc. usage & (resource_usage::depth_stencil | resource_usage::shader_resource );
126
+ g_MainCommandList-> barrier (dev_data. depth_texture , resource_usage::shader_resource, resource_usage::copy_dest);
127
+ g_MainCommandList-> barrier (rs_depth, resource_usage::render_target, resource_usage::copy_source );
128
128
129
- g_MainCommandList->barrier (rs_depth, old_state, resource_usage::copy_source);
130
129
g_MainCommandList->copy_resource (rs_depth, dev_data.depth_texture );
131
- g_MainCommandList->barrier (rs_depth, resource_usage::copy_source, old_state);
130
+
131
+ g_MainCommandList->barrier (rs_depth, resource_usage::copy_source, resource_usage::render_target);
132
+ g_MainCommandList->barrier (dev_data.depth_texture , resource_usage::copy_dest, resource_usage::shader_resource);
132
133
133
134
return true ;
134
135
}
0 commit comments