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( ...@@ -67,7 +67,7 @@ void CompositorFrameSinkImpl::SubmitCompositorFrameInternal(
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback callback) { mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback callback) {
const auto result = support_->MaybeSubmitCompositorFrame( const auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id, std::move(frame), std::move(hit_test_region_list), local_surface_id, std::move(frame), std::move(hit_test_region_list),
std::move(callback)); submit_time, std::move(callback));
if (result == CompositorFrameSinkSupport::ACCEPTED) if (result == CompositorFrameSinkSupport::ACCEPTED)
return; return;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <utility> #include <utility>
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/time/time.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h" #include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/common/quads/compositor_frame.h" #include "components/viz/common/quads/compositor_frame.h"
#include "components/viz/common/surfaces/surface_info.h" #include "components/viz/common/surfaces/surface_info.h"
...@@ -263,6 +264,7 @@ void CompositorFrameSinkSupport::SubmitCompositorFrame( ...@@ -263,6 +264,7 @@ void CompositorFrameSinkSupport::SubmitCompositorFrame(
uint64_t submit_time) { uint64_t submit_time) {
const auto result = MaybeSubmitCompositorFrame( const auto result = MaybeSubmitCompositorFrame(
local_surface_id, std::move(frame), std::move(hit_test_region_list), local_surface_id, std::move(frame), std::move(hit_test_region_list),
submit_time,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
DCHECK_EQ(result, ACCEPTED); DCHECK_EQ(result, ACCEPTED);
} }
...@@ -289,6 +291,7 @@ CompositorFrameSinkSupport::MaybeSubmitCompositorFrame( ...@@ -289,6 +291,7 @@ CompositorFrameSinkSupport::MaybeSubmitCompositorFrame(
const LocalSurfaceId& local_surface_id, const LocalSurfaceId& local_surface_id,
CompositorFrame frame, CompositorFrame frame,
base::Optional<HitTestRegionList> hit_test_region_list, base::Optional<HitTestRegionList> hit_test_region_list,
uint64_t submit_time,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback callback) { mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback callback) {
TRACE_EVENT1("viz", "CompositorFrameSinkSupport::MaybeSubmitCompositorFrame", TRACE_EVENT1("viz", "CompositorFrameSinkSupport::MaybeSubmitCompositorFrame",
"FrameSinkId", frame_sink_id_.ToString()); "FrameSinkId", frame_sink_id_.ToString());
...@@ -307,6 +310,21 @@ CompositorFrameSinkSupport::MaybeSubmitCompositorFrame( ...@@ -307,6 +310,21 @@ CompositorFrameSinkSupport::MaybeSubmitCompositorFrame(
"ReceiveCompositorFrame", "local_surface_id", "ReceiveCompositorFrame", "local_surface_id",
local_surface_id.ToString()); 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(local_surface_id.is_valid());
DCHECK(!frame.render_pass_list.empty()); DCHECK(!frame.render_pass_list.empty());
DCHECK(!frame.size_in_pixels().IsEmpty()); DCHECK(!frame.size_in_pixels().IsEmpty());
......
...@@ -137,6 +137,7 @@ class VIZ_SERVICE_EXPORT CompositorFrameSinkSupport ...@@ -137,6 +137,7 @@ class VIZ_SERVICE_EXPORT CompositorFrameSinkSupport
const LocalSurfaceId& local_surface_id, const LocalSurfaceId& local_surface_id,
CompositorFrame frame, CompositorFrame frame,
base::Optional<HitTestRegionList> hit_test_region_list, base::Optional<HitTestRegionList> hit_test_region_list,
uint64_t submit_time,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback);
// CapturableFrameSink implementation. // CapturableFrameSink implementation.
......
...@@ -131,7 +131,7 @@ class CompositorFrameSinkSupportTest : public testing::Test { ...@@ -131,7 +131,7 @@ class CompositorFrameSinkSupportTest : public testing::Test {
std::unique_ptr<CopyOutputRequest> request) { std::unique_ptr<CopyOutputRequest> request) {
frame.render_pass_list.back()->copy_requests.push_back(std::move(request)); frame.render_pass_list.back()->copy_requests.push_back(std::move(request));
const auto result = support_->MaybeSubmitCompositorFrame( 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()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
switch (result) { switch (result) {
case CompositorFrameSinkSupport::ACCEPTED: case CompositorFrameSinkSupport::ACCEPTED:
...@@ -555,27 +555,27 @@ TEST_F(CompositorFrameSinkSupportTest, MonotonicallyIncreasingLocalSurfaceIds) { ...@@ -555,27 +555,27 @@ TEST_F(CompositorFrameSinkSupportTest, MonotonicallyIncreasingLocalSurfaceIds) {
LocalSurfaceId local_surface_id5(8, 1, kArbitraryToken); LocalSurfaceId local_surface_id5(8, 1, kArbitraryToken);
LocalSurfaceId local_surface_id6(9, 3, kArbitraryToken); LocalSurfaceId local_surface_id6(9, 3, kArbitraryToken);
auto result = support->MaybeSubmitCompositorFrame( auto result = support->MaybeSubmitCompositorFrame(
local_surface_id1, MakeDefaultCompositorFrame(), base::nullopt, local_surface_id1, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result); EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
result = support->MaybeSubmitCompositorFrame( result = support->MaybeSubmitCompositorFrame(
local_surface_id2, MakeDefaultCompositorFrame(), base::nullopt, local_surface_id2, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result); EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
result = support->MaybeSubmitCompositorFrame( result = support->MaybeSubmitCompositorFrame(
local_surface_id3, MakeDefaultCompositorFrame(), base::nullopt, local_surface_id3, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result); EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
result = support->MaybeSubmitCompositorFrame( result = support->MaybeSubmitCompositorFrame(
local_surface_id4, MakeDefaultCompositorFrame(), base::nullopt, local_surface_id4, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result); EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
result = support->MaybeSubmitCompositorFrame( result = support->MaybeSubmitCompositorFrame(
local_surface_id5, MakeDefaultCompositorFrame(), base::nullopt, local_surface_id5, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result); EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
result = support->MaybeSubmitCompositorFrame( result = support->MaybeSubmitCompositorFrame(
local_surface_id6, MakeDefaultCompositorFrame(), base::nullopt, local_surface_id6, MakeDefaultCompositorFrame(), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result); EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
...@@ -807,7 +807,7 @@ TEST_F(CompositorFrameSinkSupportTest, ZeroDeviceScaleFactor) { ...@@ -807,7 +807,7 @@ TEST_F(CompositorFrameSinkSupportTest, ZeroDeviceScaleFactor) {
.SetDeviceScaleFactor(0.f) .SetDeviceScaleFactor(0.f)
.Build(); .Build();
const auto result = support_->MaybeSubmitCompositorFrame( 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()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result); EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
EXPECT_FALSE(GetSurfaceForId(id)); EXPECT_FALSE(GetSurfaceForId(id));
...@@ -823,7 +823,7 @@ TEST_F(CompositorFrameSinkSupportTest, FrameSizeMismatch) { ...@@ -823,7 +823,7 @@ TEST_F(CompositorFrameSinkSupportTest, FrameSizeMismatch) {
.AddRenderPass(gfx::Rect(5, 5), gfx::Rect()) .AddRenderPass(gfx::Rect(5, 5), gfx::Rect())
.Build(); .Build();
auto result = support_->MaybeSubmitCompositorFrame( auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt, local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result); EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
EXPECT_TRUE(GetSurfaceForId(id)); EXPECT_TRUE(GetSurfaceForId(id));
...@@ -838,7 +838,7 @@ TEST_F(CompositorFrameSinkSupportTest, FrameSizeMismatch) { ...@@ -838,7 +838,7 @@ TEST_F(CompositorFrameSinkSupportTest, FrameSizeMismatch) {
base::size(frame_resource_ids)); base::size(frame_resource_ids));
result = support_->MaybeSubmitCompositorFrame( result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt, local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result); EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
...@@ -860,7 +860,7 @@ TEST_F(CompositorFrameSinkSupportTest, DeviceScaleFactorMismatch) { ...@@ -860,7 +860,7 @@ TEST_F(CompositorFrameSinkSupportTest, DeviceScaleFactorMismatch) {
.SetDeviceScaleFactor(0.5f) .SetDeviceScaleFactor(0.5f)
.Build(); .Build();
auto result = support_->MaybeSubmitCompositorFrame( auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt, local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result); EXPECT_EQ(CompositorFrameSinkSupport::ACCEPTED, result);
EXPECT_TRUE(GetSurfaceForId(id)); EXPECT_TRUE(GetSurfaceForId(id));
...@@ -872,7 +872,7 @@ TEST_F(CompositorFrameSinkSupportTest, DeviceScaleFactorMismatch) { ...@@ -872,7 +872,7 @@ TEST_F(CompositorFrameSinkSupportTest, DeviceScaleFactorMismatch) {
.SetDeviceScaleFactor(0.4f) .SetDeviceScaleFactor(0.4f)
.Build(); .Build();
result = support_->MaybeSubmitCompositorFrame( result = support_->MaybeSubmitCompositorFrame(
local_surface_id_, std::move(frame), base::nullopt, local_surface_id_, std::move(frame), base::nullopt, 0,
mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback()); mojom::CompositorFrameSink::SubmitCompositorFrameSyncCallback());
EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result); EXPECT_EQ(CompositorFrameSinkSupport::SURFACE_INVARIANTS_VIOLATION, result);
} }
......
...@@ -154,7 +154,7 @@ void RootCompositorFrameSinkImpl::SubmitCompositorFrame( ...@@ -154,7 +154,7 @@ void RootCompositorFrameSinkImpl::SubmitCompositorFrame(
const auto result = support_->MaybeSubmitCompositorFrame( const auto result = support_->MaybeSubmitCompositorFrame(
local_surface_id, std::move(frame), std::move(hit_test_region_list), local_surface_id, std::move(frame), std::move(hit_test_region_list),
SubmitCompositorFrameSyncCallback()); submit_time, SubmitCompositorFrameSyncCallback());
if (result == CompositorFrameSinkSupport::ACCEPTED) if (result == CompositorFrameSinkSupport::ACCEPTED)
return; return;
......
...@@ -2889,9 +2889,6 @@ void RenderWidgetHostImpl::SubmitCompositorFrame( ...@@ -2889,9 +2889,6 @@ void RenderWidgetHostImpl::SubmitCompositorFrame(
viz::CompositorFrame frame, viz::CompositorFrame frame,
base::Optional<viz::HitTestRegionList> hit_test_region_list, base::Optional<viz::HitTestRegionList> hit_test_region_list,
uint64_t submit_time) { 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. // Ensure there are no CopyOutputRequests stowed-away in the CompositorFrame.
// For security/privacy reasons, renderers are not allowed to make copy // For security/privacy reasons, renderers are not allowed to make copy
// requests because they could use this to gain access to content from another // requests because they could use this to gain access to content from another
...@@ -2902,17 +2899,6 @@ void RenderWidgetHostImpl::SubmitCompositorFrame( ...@@ -2902,17 +2899,6 @@ void RenderWidgetHostImpl::SubmitCompositorFrame(
return; 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 = auto new_surface_properties =
RenderWidgetSurfaceProperties::FromCompositorFrame(frame); 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