You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
Add validation to render graph for draw and compute lists.
This commit is contained in:
@@ -1430,7 +1430,13 @@ void RenderingDeviceGraph::add_compute_list_usage(ResourceTracker *p_tracker, Re
|
|||||||
compute_instruction_list.command_trackers.push_back(p_tracker);
|
compute_instruction_list.command_trackers.push_back(p_tracker);
|
||||||
compute_instruction_list.command_tracker_usages.push_back(p_usage);
|
compute_instruction_list.command_tracker_usages.push_back(p_usage);
|
||||||
p_tracker->compute_list_index = compute_instruction_list.index;
|
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) {
|
void RenderingDeviceGraph::add_compute_list_usages(VectorView<ResourceTracker *> p_trackers, VectorView<ResourceUsage> p_usages) {
|
||||||
@@ -1614,7 +1620,13 @@ void RenderingDeviceGraph::add_draw_list_usage(ResourceTracker *p_tracker, Resou
|
|||||||
draw_instruction_list.command_trackers.push_back(p_tracker);
|
draw_instruction_list.command_trackers.push_back(p_tracker);
|
||||||
draw_instruction_list.command_tracker_usages.push_back(p_usage);
|
draw_instruction_list.command_tracker_usages.push_back(p_usage);
|
||||||
p_tracker->draw_list_index = draw_instruction_list.index;
|
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) {
|
void RenderingDeviceGraph::add_draw_list_usages(VectorView<ResourceTracker *> p_trackers, VectorView<ResourceUsage> p_usages) {
|
||||||
|
|||||||
@@ -155,7 +155,9 @@ public:
|
|||||||
int32_t read_slice_command_list_index = -1;
|
int32_t read_slice_command_list_index = -1;
|
||||||
int32_t write_command_or_list_index = -1;
|
int32_t write_command_or_list_index = -1;
|
||||||
int32_t draw_list_index = -1;
|
int32_t draw_list_index = -1;
|
||||||
|
ResourceUsage draw_list_usage = RESOURCE_USAGE_NONE;
|
||||||
int32_t compute_list_index = -1;
|
int32_t compute_list_index = -1;
|
||||||
|
ResourceUsage compute_list_usage = RESOURCE_USAGE_NONE;
|
||||||
ResourceUsage usage = RESOURCE_USAGE_NONE;
|
ResourceUsage usage = RESOURCE_USAGE_NONE;
|
||||||
BitField<RDD::BarrierAccessBits> usage_access;
|
BitField<RDD::BarrierAccessBits> usage_access;
|
||||||
RDD::BufferID buffer_driver_id;
|
RDD::BufferID buffer_driver_id;
|
||||||
|
|||||||
Reference in New Issue
Block a user