Commit 33aecd5c authored by Saman Sami's avatar Saman Sami Committed by Commit Bot

Move trace events from RenderWidgeHostImpl to CompositorFrameSinkSupport

This will allow us to see these events for all clients and not just
RenderWidgets. Also will make it work with OOP-D

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Id7a65a0129d27821797f8a46408ece32c580fc3b
Reviewed-on: https://chromium-review.googlesource.com/1132323Reviewed-by: default avatarFady Samuel <fsamuel@chromium.org>
Commit-Queue: Saman Sami <samans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574157}
parent da3f7030
......@@ -67,7 +67,7 @@ void CompositorFrameSinkImpl::SubmitCompositorFrameInternal(
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback callback) {
const auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id, std::move(frame), std::move(hit_test_region_list),
std::move(callback));
submit_time, std::move(callback));
if (result == CompositorFrameSinkSupport::ACCEPTED)
return;
......
......@@ -8,6 +8,7 @@
#include <utility>
#include "base/stl_util.h"
#include "base/time/time.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/common/quads/compositor_frame.h"
#include "components/viz/common/surfaces/surface_info.h"
......@@ -263,6 +264,7 @@ void CompositorFrameSinkSupport::SubmitCompositorFrame(
uint64_t submit_time) {
const auto result = MaybeSubmitCompositorFrame(
local_surface_id, std::move(frame), std::move(hit_test_region_list),
submit_time,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
DCHECK_EQ(result, ACCEPTED);
}
......@@ -289,6 +291,7 @@ CompositorFrameSinkSupport::MaybeSubmitCompositorFrame(
const LocalSurfaceId& local_surface_id,
CompositorFrame frame,
base::Optional<HitTestRegionList> hit_test_region_list,
uint64_t submit_time,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback callback) {
TRACE_EVENT1("viz", "CompositorFrameSinkSupport::MaybeSubmitCompositorFrame",
"FrameSinkId", frame_sink_id_.ToString());
......@@ -307,6 +310,21 @@ CompositorFrameSinkSupport::MaybeSubmitCompositorFrame(
"ReceiveCompositorFrame", "local_surface_id",
local_surface_id.ToString());
TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("cc.debug.ipc"),
"SubmitCompositorFrame", local_surface_id.hash());
bool tracing_enabled;
TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("cc.debug.ipc"),
&tracing_enabled);
if (tracing_enabled) {
base::TimeDelta elapsed = base::TimeTicks::Now().since_origin() -
base::TimeDelta::FromMicroseconds(submit_time);
TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("cc.debug.ipc"),
"SubmitCompositorFrame::TimeElapsed",
TRACE_EVENT_SCOPE_THREAD,
"elapsed time:", elapsed.InMicroseconds());
}
DCHECK(local_surface_id.is_valid());
DCHECK(!frame.render_pass_list.empty());
DCHECK(!frame.size_in_pixels().IsEmpty());
......
......@@ -137,6 +137,7 @@ class VIZ_SERVICE_EXPORT CompositorFrameSinkSupport
const LocalSurfaceId& local_surface_id,
CompositorFrame frame,
base::Optional<HitTestRegionList> hit_test_region_list,
uint64_t submit_time,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback);
// CapturableFrameSink implementation.
......
......@@ -131,7 +131,7 @@ class CompositorFrameSinkSupportTest : public testing::Test {
std::unique_ptr<CopyOutputRequest> request) {
frame.render_pass_list.back()->copy_requests.push_back(std::move(request));
const auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt,
local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
switch (result) {
case CompositorFrameSinkSupport::ACCEPTED:
......@@ -555,27 +555,27 @@ TEST_F(CompositorFrameSinkSupportTest, MonotonicallyIncreasingLocalSurfaceIds) {
LocalSurfaceId local_surface_id5(8, 1, kArbitraryToken);
LocalSurfaceId local_surface_id6(9, 3, kArbitraryToken);
auto result = support->MaybeSubmitCompositorFrame(
local_surface_id1, MakeDefaultCompositorFrame(), base::nullopt,
local_surface_id1, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
result = support->MaybeSubmitCompositorFrame(
local_surface_id2, MakeDefaultCompositorFrame(), base::nullopt,
local_surface_id2, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
result = support->MaybeSubmitCompositorFrame(
local_surface_id3, MakeDefaultCompositorFrame(), base::nullopt,
local_surface_id3, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
result = support->MaybeSubmitCompositorFrame(
local_surface_id4, MakeDefaultCompositorFrame(), base::nullopt,
local_surface_id4, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
result = support->MaybeSubmitCompositorFrame(
local_surface_id5, MakeDefaultCompositorFrame(), base::nullopt,
local_surface_id5, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
result = support->MaybeSubmitCompositorFrame(
local_surface_id6, MakeDefaultCompositorFrame(), base::nullopt,
local_surface_id6, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
......@@ -807,7 +807,7 @@ TEST_F(CompositorFrameSinkSupportTest, ZeroDeviceScaleFactor) {
.SetDeviceScaleFactor(0.f)
.Build();
const auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt,
local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
EXPECT_FALSE(GetSurfaceForId(id));
......@@ -823,7 +823,7 @@ TEST_F(CompositorFrameSinkSupportTest, FrameSizeMismatch) {
.AddRenderPass(gfx::Rect(5, 5), gfx::Rect())
.Build();
auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt,
local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
EXPECT_TRUE(GetSurfaceForId(id));
......@@ -838,7 +838,7 @@ TEST_F(CompositorFrameSinkSupportTest, FrameSizeMismatch) {
base::size(frame_resource_ids));
result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt,
local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
......@@ -860,7 +860,7 @@ TEST_F(CompositorFrameSinkSupportTest, DeviceScaleFactorMismatch) {
.SetDeviceScaleFactor(0.5f)
.Build();
auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt,
local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
EXPECT_TRUE(GetSurfaceForId(id));
......@@ -872,7 +872,7 @@ TEST_F(CompositorFrameSinkSupportTest, DeviceScaleFactorMismatch) {
.SetDeviceScaleFactor(0.4f)
.Build();
result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt,
local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
}
......
......@@ -154,7 +154,7 @@ void RootCompositorFrameSinkImpl::SubmitCompositorFrame(
const auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id, std::move(frame), std::move(hit_test_region_list),
SubmitCompositorFrameSyncCallback());
submit_time, SubmitCompositorFrameSyncCallback());
if (result == CompositorFrameSinkSupport::ACCEPTED)
return;
......
......@@ -2889,9 +2889,6 @@ void RenderWidgetHostImpl::SubmitCompositorFrame(
viz::CompositorFrame frame,
base::Optional<viz::HitTestRegionList> hit_test_region_list,
uint64_t submit_time) {
TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("cc.debug.ipc"),
"SubmitCompositorFrame", local_surface_id.hash());
// Ensure there are no CopyOutputRequests stowed-away in the CompositorFrame.
// For security/privacy reasons, renderers are not allowed to make copy
// requests because they could use this to gain access to content from another
......@@ -2902,17 +2899,6 @@ void RenderWidgetHostImpl::SubmitCompositorFrame(
return;
}
bool tracing_enabled;
TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("cc.debug.ipc"),
&tracing_enabled);
if (tracing_enabled) {
TimeDelta elapsed = clock_->NowTicks().since_origin() -
TimeDelta::FromMicroseconds(submit_time);
TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("cc.debug.ipc"),
"SubmitCompositorFrame::TimeElapsed",
TRACE_EVENT_SCOPE_THREAD,
"elapsed time:", elapsed.InMicroseconds());
}
auto new_surface_properties =
RenderWidgetSurfaceProperties::FromCompositorFrame(frame);
......
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