Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2696)

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 558083002: [cc] Add nearest neighbor filtering for TextureLayer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add nearest_neighbor field to TextureMailbox. Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 2cd7033b4e6abee45001242843777962fdeaa613..ca70fe80a5ac932bc2363e928e5b95fd4ca06ec6 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -706,12 +706,14 @@ static void AppendQuadsToFillScreen(
overhang_resource_scaled_size.height()),
screen_background_color,
vertex_opacity,
+ false,
false);
}
}
DrawResult LayerTreeHostImpl::CalculateRenderPasses(
FrameData* frame) {
+ //printf("LayerTreeHostImpl::CalculateRenderPasses\n");
DCHECK(frame->render_passes.empty());
DCHECK(CanDraw());
DCHECK(active_tree_->root_layer());
@@ -849,8 +851,10 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
DCHECK_EQ(active_tree_, it->layer_tree_impl());
frame->will_draw_layers.push_back(*it);
+ //printf("frame->will_draw_layers %p\n", *it);
if (it->HasContributingDelegatedRenderPasses()) {
+ //printf("HasContributingDelegatedRenderPasses\n");
RenderPassId contributing_render_pass_id =
it->FirstContributingRenderPassId();
while (frame->render_passes_by_id.find(contributing_render_pass_id) !=
@@ -878,6 +882,13 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
++layers_drawn;
}
+ /*for (auto& quad : target_render_pass->quad_list) {
+ if (quad.material == DrawQuad::TEXTURE_CONTENT) {
+ TextureDrawQuad tq = static_cast<TextureDrawQuad&>(quad);
+ printf("LayerTreeHostImpl::CalculateRenderPasses texture quad %d %d\n", tq.nearest_neighbor, tq.resource_id);
+ }
+ }*/
+
rendering_stats_instrumentation_->AddVisibleContentArea(
append_quads_data.visible_content_area);
rendering_stats_instrumentation_->AddApproximatedVisibleContentArea(
@@ -960,6 +971,7 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
frame->render_passes.size() == 1u)
<< frame->render_passes.size();
+ //printf("LayerTreeHostImpl::CalculateRenderPasses %d\n", (draw_result == DRAW_SUCCESS));
return draw_result;
}
@@ -1506,6 +1518,18 @@ static void LayerTreeHostImplDidBeginTracingCallback(LayerImpl* layer) {
void LayerTreeHostImpl::DrawLayers(FrameData* frame,
base::TimeTicks frame_begin_time) {
+ /*printf("LayerTreeHostImpl::DrawLayers start\n");
+ for (auto* render_pass : frame->render_passes) {
+ for (auto& quad : render_pass->quad_list) {
+ if (quad.material == DrawQuad::TEXTURE_CONTENT) {
+ TextureDrawQuad& tq = static_cast<TextureDrawQuad&>(quad);
+ printf("LayerTreeHostImpl::DrawLayers texture quad %d %d\n", tq.nearest_neighbor, tq.resource_id);
+ }
+ }
+ }
+ for (LayerImpl* li : frame->will_draw_layers) {
+ printf("LayerTreeHostImpl::DrawLayers %p\n", li);
+ }*/
TRACE_EVENT0("cc", "LayerTreeHostImpl::DrawLayers");
DCHECK(CanDraw());
@@ -1513,6 +1537,7 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame,
TRACE_EVENT_INSTANT0("cc", "EarlyOut_NoDamage", TRACE_EVENT_SCOPE_THREAD);
DCHECK(!output_surface_->capabilities()
.draw_and_swap_full_viewport_every_frame);
+ //printf("LayerTreeHostImpl::DrawFrame no damage\n");
return;
}
@@ -1590,6 +1615,7 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame,
DeviceClip(),
disable_picture_quad_image_filtering);
} else {
+ //printf("LayerTreeHostImpl::DrawLayers DrawFrame %p\n", renderer_.get());
renderer_->DrawFrame(&frame->render_passes,
device_scale_factor_,
DeviceViewport(),
@@ -1615,6 +1641,7 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame,
benchmark_instrumentation::IssueImplThreadRenderingStatsEvent(
rendering_stats_instrumentation_->impl_thread_rendering_stats());
rendering_stats_instrumentation_->AccumulateAndClearImplThreadStats();
+ //printf("LayerTreeHostImpl::DrawLayers done\n");
}
void LayerTreeHostImpl::DidDrawAllLayers(const FrameData& frame) {

Powered by Google App Engine
This is Rietveld 408576698