Add blend gate regression for draw merge
This commit is contained in:
@@ -3139,6 +3139,38 @@ void canvas_blend_gate_preserves_legacy_fallbacks(pp::tests::Harness& h)
|
||||
}
|
||||
}
|
||||
|
||||
void canvas_blend_gate_combines_layer_and_stroke_complexity(pp::tests::Harness& h)
|
||||
{
|
||||
const std::vector<int> layer_blend_modes { 0, 4, 0 };
|
||||
const auto plan = plan_canvas_blend_gate(
|
||||
RenderDeviceFeatures { .framebuffer_fetch = true, .texture_copy = true, .render_target_blit = true },
|
||||
CanvasBlendGateRequest {
|
||||
.extent = Extent2D { .width = 64, .height = 32 },
|
||||
.layer_blend_modes = layer_blend_modes,
|
||||
.has_stroke_blend_mode = true,
|
||||
.stroke_blend_mode = 10,
|
||||
.dual_brush_blend = true,
|
||||
.pattern_blend = true,
|
||||
});
|
||||
|
||||
PP_EXPECT(h, plan);
|
||||
if (!plan) {
|
||||
return;
|
||||
}
|
||||
|
||||
PP_EXPECT(h, plan.value().shader_blend);
|
||||
PP_EXPECT(h, plan.value().complex_blend);
|
||||
PP_EXPECT(h, plan.value().stroke_complex);
|
||||
PP_EXPECT(h, plan.value().dual_brush_complex);
|
||||
PP_EXPECT(h, plan.value().pattern_complex);
|
||||
PP_EXPECT(h, plan.value().first_complex_layer_index == 1);
|
||||
PP_EXPECT(h, plan.value().reads_destination_color);
|
||||
PP_EXPECT(h, plan.value().requires_auxiliary_texture);
|
||||
PP_EXPECT(h, plan.value().requires_texture_copy);
|
||||
PP_EXPECT(h, plan.value().requires_render_target_blit);
|
||||
PP_EXPECT(h, plan.value().path == StrokeCompositePath::framebuffer_fetch);
|
||||
}
|
||||
|
||||
void plans_canvas_stroke_feedback_paths(pp::tests::Harness& h)
|
||||
{
|
||||
const Extent2D extent { .width = 32, .height = 16 };
|
||||
@@ -3498,6 +3530,7 @@ int main()
|
||||
legacy_node_stroke_preview_pass_orchestration_plan_preserves_feedback_material_and_composite_inputs);
|
||||
harness.run("plans_canvas_blend_gate_from_persisted_indices", plans_canvas_blend_gate_from_persisted_indices);
|
||||
harness.run("canvas_blend_gate_preserves_legacy_fallbacks", canvas_blend_gate_preserves_legacy_fallbacks);
|
||||
harness.run("canvas_blend_gate_combines_layer_and_stroke_complexity", canvas_blend_gate_combines_layer_and_stroke_complexity);
|
||||
harness.run("plans_canvas_stroke_feedback_paths", plans_canvas_stroke_feedback_paths);
|
||||
harness.run("canvas_stroke_feedback_preserves_legacy_fallback", canvas_stroke_feedback_preserves_legacy_fallback);
|
||||
harness.run("plans_canvas_stroke_rasterization_boundary", plans_canvas_stroke_rasterization_boundary);
|
||||
|
||||
Reference in New Issue
Block a user