diff options
Diffstat (limited to 'servers/rendering/rendering_device_graph.cpp')
| -rw-r--r-- | servers/rendering/rendering_device_graph.cpp | 21 |
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) { |
