summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device_graph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/rendering/rendering_device_graph.cpp')
-rw-r--r--servers/rendering/rendering_device_graph.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/servers/rendering/rendering_device_graph.cpp b/servers/rendering/rendering_device_graph.cpp
index 83fb2d1918..4b85d1c2bf 100644
--- a/servers/rendering/rendering_device_graph.cpp
+++ b/servers/rendering/rendering_device_graph.cpp
@@ -53,8 +53,6 @@ bool RenderingDeviceGraph::_is_write_usage(ResourceUsage p_usage) {
case RESOURCE_USAGE_INDEX_BUFFER_READ:
case RESOURCE_USAGE_TEXTURE_SAMPLE:
case RESOURCE_USAGE_STORAGE_IMAGE_READ:
- case RESOURCE_USAGE_ATTACHMENT_COLOR_READ:
- case RESOURCE_USAGE_ATTACHMENT_DEPTH_STENCIL_READ:
return false;
case RESOURCE_USAGE_TRANSFER_TO:
case RESOURCE_USAGE_TEXTURE_BUFFER_READ_WRITE:
@@ -80,11 +78,8 @@ RDD::TextureLayout RenderingDeviceGraph::_usage_to_image_layout(ResourceUsage p_
case RESOURCE_USAGE_STORAGE_IMAGE_READ:
case RESOURCE_USAGE_STORAGE_IMAGE_READ_WRITE:
return RDD::TEXTURE_LAYOUT_GENERAL;
- case RESOURCE_USAGE_ATTACHMENT_COLOR_READ:
case RESOURCE_USAGE_ATTACHMENT_COLOR_READ_WRITE:
return RDD::TEXTURE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
- case RESOURCE_USAGE_ATTACHMENT_DEPTH_STENCIL_READ:
- return RDD::TEXTURE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
case RESOURCE_USAGE_ATTACHMENT_DEPTH_STENCIL_READ_WRITE:
return RDD::TEXTURE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
case RESOURCE_USAGE_NONE:
@@ -123,12 +118,8 @@ RDD::BarrierAccessBits RenderingDeviceGraph::_usage_to_access_bits(ResourceUsage
return RDD::BARRIER_ACCESS_VERTEX_ATTRIBUTE_READ_BIT;
case RESOURCE_USAGE_INDEX_BUFFER_READ:
return RDD::BARRIER_ACCESS_INDEX_READ_BIT;
- case RESOURCE_USAGE_ATTACHMENT_COLOR_READ:
- return RDD::BARRIER_ACCESS_COLOR_ATTACHMENT_READ_BIT;
case RESOURCE_USAGE_ATTACHMENT_COLOR_READ_WRITE:
return RDD::BarrierAccessBits(RDD::BARRIER_ACCESS_COLOR_ATTACHMENT_READ_BIT | RDD::BARRIER_ACCESS_COLOR_ATTACHMENT_WRITE_BIT);
- case RESOURCE_USAGE_ATTACHMENT_DEPTH_STENCIL_READ:
- return RDD::BARRIER_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
case RESOURCE_USAGE_ATTACHMENT_DEPTH_STENCIL_READ_WRITE:
return RDD::BarrierAccessBits(RDD::BARRIER_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | RDD::BARRIER_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT);
default:
@@ -1430,7 +1421,13 @@ void RenderingDeviceGraph::add_compute_list_usage(ResourceTracker *p_tracker, Re
compute_instruction_list.command_trackers.push_back(p_tracker);
compute_instruction_list.command_tracker_usages.push_back(p_usage);
p_tracker->compute_list_index = compute_instruction_list.index;
+ p_tracker->compute_list_usage = p_usage;
}
+#ifdef DEV_ENABLED
+ else if (p_tracker->compute_list_usage != p_usage) {
+ ERR_FAIL_MSG(vformat("Tracker can't have more than one type of usage in the same compute list. Compute list usage is %d and the requested usage is %d.", p_tracker->compute_list_usage, p_usage));
+ }
+#endif
}
void RenderingDeviceGraph::add_compute_list_usages(VectorView<ResourceTracker *> p_trackers, VectorView<ResourceUsage> p_usages) {
@@ -1614,7 +1611,13 @@ void RenderingDeviceGraph::add_draw_list_usage(ResourceTracker *p_tracker, Resou
draw_instruction_list.command_trackers.push_back(p_tracker);
draw_instruction_list.command_tracker_usages.push_back(p_usage);
p_tracker->draw_list_index = draw_instruction_list.index;
+ p_tracker->draw_list_usage = p_usage;
}
+#ifdef DEV_ENABLED
+ else if (p_tracker->draw_list_usage != p_usage) {
+ ERR_FAIL_MSG(vformat("Tracker can't have more than one type of usage in the same draw list. Draw list usage is %d and the requested usage is %d.", p_tracker->draw_list_usage, p_usage));
+ }
+#endif
}
void RenderingDeviceGraph::add_draw_list_usages(VectorView<ResourceTracker *> p_trackers, VectorView<ResourceUsage> p_usages) {