Validate OpenGL command pass barriers

This commit is contained in:
2026-06-02 21:16:58 +02:00
parent 55b725e876
commit 6a3cd867f0
4 changed files with 115 additions and 10 deletions

View File

@@ -370,21 +370,39 @@ OpenGlCommandPlan plan_recorded_render_commands(
break;
case OpenGlPlannedCommandKind::upload_texture:
++plan.upload_command_count;
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
case OpenGlPlannedCommandKind::generate_mipmaps:
++plan.mipmap_command_count;
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
case OpenGlPlannedCommandKind::transition_texture:
++plan.transition_command_count;
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
case OpenGlPlannedCommandKind::copy_texture:
++plan.copy_command_count;
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
case OpenGlPlannedCommandKind::read_texture:
++plan.readback_command_count;
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
case OpenGlPlannedCommandKind::capture_frame:
++plan.capture_command_count;
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
case OpenGlPlannedCommandKind::passthrough:
++plan.passthrough_command_count;
@@ -395,6 +413,11 @@ OpenGlCommandPlan plan_recorded_render_commands(
case OpenGlPlannedCommandKind::trace:
++plan.trace_command_count;
break;
case OpenGlPlannedCommandKind::blit_render_target:
if (in_render_pass) {
record_render_pass_order_error(plan, index);
}
break;
default:
if (planned.requires_render_pass && !in_render_pass) {
record_render_pass_order_error(plan, index);