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

Unified Diff: ui/ozone/platform/dri/hardware_display_plane_manager_unittest.cc

Issue 812913003: ozone: fix HDPMLegacy - do the PF after overlays, also clear old overlays (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add tests Created 5 years, 11 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: ui/ozone/platform/dri/hardware_display_plane_manager_unittest.cc
diff --git a/ui/ozone/platform/dri/hardware_display_plane_manager_unittest.cc b/ui/ozone/platform/dri/hardware_display_plane_manager_unittest.cc
index 76ca8d49ae6331a6edc1e16732ba5379381db87f..0a1f20a44bab700d6604cc44ce66e3daf52e7f65 100644
--- a/ui/ozone/platform/dri/hardware_display_plane_manager_unittest.cc
+++ b/ui/ozone/platform/dri/hardware_display_plane_manager_unittest.cc
@@ -6,11 +6,14 @@
#include "base/memory/scoped_ptr.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/ozone/platform/dri/crtc_controller.h"
#include "ui/ozone/platform/dri/hardware_display_controller.h"
#include "ui/ozone/platform/dri/hardware_display_plane.h"
#include "ui/ozone/platform/dri/hardware_display_plane_manager.h"
+#include "ui/ozone/platform/dri/hardware_display_plane_manager_legacy.h"
#include "ui/ozone/platform/dri/overlay_plane.h"
#include "ui/ozone/platform/dri/scanout_buffer.h"
+#include "ui/ozone/platform/dri/test/mock_dri_wrapper.h"
namespace {
@@ -28,7 +31,7 @@ class FakeScanoutBuffer : public ui::ScanoutBuffer {
FakeScanoutBuffer() {}
// ui::ScanoutBuffer:
- uint32_t GetFramebufferId() const override { return 0; }
+ uint32_t GetFramebufferId() const override { return 1; }
uint32_t GetHandle() const override { return 0; }
gfx::Size GetSize() const override { return gfx::Size(1, 1); }
@@ -184,6 +187,7 @@ TEST_F(HardwareDisplayPlaneManagerTest, MultipleFrames) {
default_crtcs_[0], nullptr));
EXPECT_EQ(1, plane_manager_->plane_count());
// Pretend we committed the frame.
+ state_.committed = true;
state_.plane_list.swap(state_.old_plane_list);
ui::HardwareDisplayPlane* old_plane = state_.old_plane_list[0];
// The same plane should be used.
@@ -225,4 +229,26 @@ TEST_F(HardwareDisplayPlaneManagerTest, SharedPlanes) {
default_crtcs_[0], nullptr));
}
+TEST(HardwareDisplayPlaneManagerLegacyTest, UnusedPlanesAreReleased) {
+ std::vector<uint32_t> crtcs;
+ crtcs.push_back(100);
+ ui::MockDriWrapper drm(3, false, crtcs, 2);
+ ui::OverlayPlaneList assigns;
+ scoped_refptr<FakeScanoutBuffer> fake_buffer = new FakeScanoutBuffer();
+ assigns.push_back(ui::OverlayPlane(fake_buffer));
+ assigns.push_back(ui::OverlayPlane(fake_buffer));
+ ui::HardwareDisplayPlaneList hdpl;
+ ui::CrtcController crtc(&drm, crtcs[0], 0);
+ EXPECT_TRUE(drm.plane_manager()->AssignOverlayPlanes(&hdpl, assigns, crtcs[0],
+ &crtc));
+ EXPECT_TRUE(drm.plane_manager()->Commit(&hdpl));
+ assigns.clear();
+ assigns.push_back(ui::OverlayPlane(fake_buffer));
+ EXPECT_TRUE(drm.plane_manager()->AssignOverlayPlanes(&hdpl, assigns, crtcs[0],
+ &crtc));
+ EXPECT_EQ(0, drm.get_overlay_clear_call_count());
+ EXPECT_TRUE(drm.plane_manager()->Commit(&hdpl));
+ EXPECT_EQ(1, drm.get_overlay_clear_call_count());
+}
+
} // namespace
« no previous file with comments | « ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc ('k') | ui/ozone/platform/dri/test/mock_dri_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698