Commit 9adcaaa2 authored by Brian Salomon's avatar Brian Salomon Committed by Commit Bot

Don't use SkBlendMode::kSrc when quads are opaque in SkiaRenderer.

If quads are antialiased this can trigger shader blending.

Also Skia has optimized code paths for textures drawn src-over.

Bug: 811523
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I9f0405d7651464aeb761c02f5d16f4de29dbbd75
Reviewed-on: https://chromium-review.googlesource.com/c/1259543Reviewed-by: default avatarweiliangc <weiliangc@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Cr-Commit-Position: refs/heads/master@{#596363}
parent 0e4fa12c
...@@ -493,14 +493,9 @@ void SkiaRenderer::DoDrawQuad(const DrawQuad* quad, ...@@ -493,14 +493,9 @@ void SkiaRenderer::DoDrawQuad(const DrawQuad* quad,
current_paint_.setFilterQuality(kLow_SkFilterQuality); current_paint_.setFilterQuality(kLow_SkFilterQuality);
} }
if (quad->ShouldDrawWithBlending() || current_paint_.setAlpha(quad->shared_quad_state->opacity * 255);
quad->shared_quad_state->blend_mode != SkBlendMode::kSrcOver) { current_paint_.setBlendMode(
current_paint_.setAlpha(quad->shared_quad_state->opacity * 255); static_cast<SkBlendMode>(quad->shared_quad_state->blend_mode));
current_paint_.setBlendMode(
static_cast<SkBlendMode>(quad->shared_quad_state->blend_mode));
} else {
current_paint_.setBlendMode(SkBlendMode::kSrc);
}
if (draw_region) { if (draw_region) {
gfx::QuadF local_draw_region(*draw_region); gfx::QuadF local_draw_region(*draw_region);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment