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

Side by Side Diff: ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/ozone/platform/drm/gpu/drm_overlay_validator.h"
6
5 #include <drm_fourcc.h> 7 #include <drm_fourcc.h>
6 8
9 #include <memory>
7 #include <utility> 10 #include <utility>
8 11
9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
11 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h" 14 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h"
13 #include "ui/ozone/platform/drm/common/drm_util.h" 15 #include "ui/ozone/platform/drm/common/drm_util.h"
14 #include "ui/ozone/platform/drm/gpu/crtc_controller.h" 16 #include "ui/ozone/platform/drm/gpu/crtc_controller.h"
15 #include "ui/ozone/platform/drm/gpu/drm_device_generator.h" 17 #include "ui/ozone/platform/drm/gpu/drm_device_generator.h"
16 #include "ui/ozone/platform/drm/gpu/drm_device_manager.h" 18 #include "ui/ozone/platform/drm/gpu/drm_device_manager.h"
17 #include "ui/ozone/platform/drm/gpu/drm_overlay_validator.h"
18 #include "ui/ozone/platform/drm/gpu/drm_window.h" 19 #include "ui/ozone/platform/drm/gpu/drm_window.h"
19 #include "ui/ozone/platform/drm/gpu/fake_plane_info.h" 20 #include "ui/ozone/platform/drm/gpu/fake_plane_info.h"
20 #include "ui/ozone/platform/drm/gpu/hardware_display_controller.h" 21 #include "ui/ozone/platform/drm/gpu/hardware_display_controller.h"
21 #include "ui/ozone/platform/drm/gpu/mock_drm_device.h" 22 #include "ui/ozone/platform/drm/gpu/mock_drm_device.h"
22 #include "ui/ozone/platform/drm/gpu/mock_hardware_display_plane_manager.h" 23 #include "ui/ozone/platform/drm/gpu/mock_hardware_display_plane_manager.h"
23 #include "ui/ozone/platform/drm/gpu/mock_scanout_buffer.h" 24 #include "ui/ozone/platform/drm/gpu/mock_scanout_buffer.h"
24 #include "ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h" 25 #include "ui/ozone/platform/drm/gpu/mock_scanout_buffer_generator.h"
25 #include "ui/ozone/platform/drm/gpu/screen_manager.h" 26 #include "ui/ozone/platform/drm/gpu/screen_manager.h"
26 27
27 namespace { 28 namespace {
(...skipping 29 matching lines...) Expand all
57 ui::GetBufferFormatFromFourCCFormat(format); 58 ui::GetBufferFormatFromFourCCFormat(format);
58 return buffer_generator_->Create(drm_, buffer_format, size); 59 return buffer_generator_->Create(drm_, buffer_format, size);
59 } 60 }
60 61
61 scoped_refptr<ui::ScanoutBuffer> ReturnNullBuffer(const gfx::Size& size, 62 scoped_refptr<ui::ScanoutBuffer> ReturnNullBuffer(const gfx::Size& size,
62 uint32_t format) { 63 uint32_t format) {
63 return nullptr; 64 return nullptr;
64 } 65 }
65 66
66 protected: 67 protected:
67 scoped_ptr<base::MessageLoop> message_loop_; 68 std::unique_ptr<base::MessageLoop> message_loop_;
68 scoped_refptr<ui::MockDrmDevice> drm_; 69 scoped_refptr<ui::MockDrmDevice> drm_;
69 scoped_ptr<ui::MockScanoutBufferGenerator> buffer_generator_; 70 std::unique_ptr<ui::MockScanoutBufferGenerator> buffer_generator_;
70 scoped_ptr<ui::ScreenManager> screen_manager_; 71 std::unique_ptr<ui::ScreenManager> screen_manager_;
71 scoped_ptr<ui::DrmDeviceManager> drm_device_manager_; 72 std::unique_ptr<ui::DrmDeviceManager> drm_device_manager_;
72 ui::MockHardwareDisplayPlaneManager* plane_manager_; 73 ui::MockHardwareDisplayPlaneManager* plane_manager_;
73 ui::DrmWindow* window_; 74 ui::DrmWindow* window_;
74 scoped_ptr<ui::DrmOverlayValidator> overlay_validator_; 75 std::unique_ptr<ui::DrmOverlayValidator> overlay_validator_;
75 std::vector<ui::OverlayCheck_Params> overlay_params_; 76 std::vector<ui::OverlayCheck_Params> overlay_params_;
76 ui::OverlayPlaneList plane_list_; 77 ui::OverlayPlaneList plane_list_;
77 ui::OverlayPlane::ProcessBufferCallback process_buffer_handler_; 78 ui::OverlayPlane::ProcessBufferCallback process_buffer_handler_;
78 79
79 int on_swap_buffers_count_; 80 int on_swap_buffers_count_;
80 gfx::SwapResult last_swap_buffers_result_; 81 gfx::SwapResult last_swap_buffers_result_;
81 gfx::Rect overlay_rect_; 82 gfx::Rect overlay_rect_;
82 gfx::Rect primary_rect_; 83 gfx::Rect primary_rect_;
83 84
84 private: 85 private:
(...skipping 11 matching lines...) Expand all
96 crtcs.push_back(kDefaultCrtc); 97 crtcs.push_back(kDefaultCrtc);
97 drm_ = new ui::MockDrmDevice(false, crtcs, kPlanesPerCrtc); 98 drm_ = new ui::MockDrmDevice(false, crtcs, kPlanesPerCrtc);
98 buffer_generator_.reset(new ui::MockScanoutBufferGenerator()); 99 buffer_generator_.reset(new ui::MockScanoutBufferGenerator());
99 screen_manager_.reset(new ui::ScreenManager(buffer_generator_.get())); 100 screen_manager_.reset(new ui::ScreenManager(buffer_generator_.get()));
100 screen_manager_->AddDisplayController(drm_, kDefaultCrtc, kDefaultConnector); 101 screen_manager_->AddDisplayController(drm_, kDefaultCrtc, kDefaultConnector);
101 screen_manager_->ConfigureDisplayController( 102 screen_manager_->ConfigureDisplayController(
102 drm_, kDefaultCrtc, kDefaultConnector, gfx::Point(), kDefaultMode); 103 drm_, kDefaultCrtc, kDefaultConnector, gfx::Point(), kDefaultMode);
103 104
104 drm_device_manager_.reset(new ui::DrmDeviceManager(nullptr)); 105 drm_device_manager_.reset(new ui::DrmDeviceManager(nullptr));
105 106
106 scoped_ptr<ui::DrmWindow> window(new ui::DrmWindow( 107 std::unique_ptr<ui::DrmWindow> window(new ui::DrmWindow(
107 kDefaultWidgetHandle, drm_device_manager_.get(), screen_manager_.get())); 108 kDefaultWidgetHandle, drm_device_manager_.get(), screen_manager_.get()));
108 window->Initialize(buffer_generator_.get()); 109 window->Initialize(buffer_generator_.get());
109 window->SetBounds( 110 window->SetBounds(
110 gfx::Rect(gfx::Size(kDefaultMode.hdisplay, kDefaultMode.vdisplay))); 111 gfx::Rect(gfx::Size(kDefaultMode.hdisplay, kDefaultMode.vdisplay)));
111 screen_manager_->AddWindow(kDefaultWidgetHandle, std::move(window)); 112 screen_manager_->AddWindow(kDefaultWidgetHandle, std::move(window));
112 plane_manager_ = 113 plane_manager_ =
113 static_cast<ui::MockHardwareDisplayPlaneManager*>(drm_->plane_manager()); 114 static_cast<ui::MockHardwareDisplayPlaneManager*>(drm_->plane_manager());
114 window_ = screen_manager_->GetWindow(kDefaultWidgetHandle); 115 window_ = screen_manager_->GetWindow(kDefaultWidgetHandle);
115 overlay_validator_.reset( 116 overlay_validator_.reset(
116 new ui::DrmOverlayValidator(window_, buffer_generator_.get())); 117 new ui::DrmOverlayValidator(window_, buffer_generator_.get()));
(...skipping 20 matching lines...) Expand all
137 scoped_refptr<ui::ScanoutBuffer> scanout_buffer = 138 scoped_refptr<ui::ScanoutBuffer> scanout_buffer =
138 buffer_generator_->Create(drm, param.format, param.buffer_size); 139 buffer_generator_->Create(drm, param.format, param.buffer_size);
139 ui::OverlayPlane plane(std::move(scanout_buffer), param.plane_z_order, 140 ui::OverlayPlane plane(std::move(scanout_buffer), param.plane_z_order,
140 param.transform, param.display_rect, param.crop_rect, 141 param.transform, param.display_rect, param.crop_rect,
141 process_buffer_handler_); 142 process_buffer_handler_);
142 plane_list_.push_back(plane); 143 plane_list_.push_back(plane);
143 } 144 }
144 } 145 }
145 146
146 void DrmOverlayValidatorTest::TearDown() { 147 void DrmOverlayValidatorTest::TearDown() {
147 scoped_ptr<ui::DrmWindow> window = 148 std::unique_ptr<ui::DrmWindow> window =
148 screen_manager_->RemoveWindow(kDefaultWidgetHandle); 149 screen_manager_->RemoveWindow(kDefaultWidgetHandle);
149 window->Shutdown(); 150 window->Shutdown();
150 message_loop_.reset(); 151 message_loop_.reset();
151 } 152 }
152 153
153 TEST_F(DrmOverlayValidatorTest, WindowWithNoController) { 154 TEST_F(DrmOverlayValidatorTest, WindowWithNoController) {
154 // We should never promote layers to overlay when controller is not 155 // We should never promote layers to overlay when controller is not
155 // present. 156 // present.
156 ui::HardwareDisplayController* controller = window_->GetController(); 157 ui::HardwareDisplayController* controller = window_->GetController();
157 window_->SetController(nullptr); 158 window_->SetController(nullptr);
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 423
423 TEST_F(DrmOverlayValidatorTest, 424 TEST_F(DrmOverlayValidatorTest,
424 RejectYUVBuffersIfNotSupported_MirroredControllers) { 425 RejectYUVBuffersIfNotSupported_MirroredControllers) {
425 std::vector<uint32_t> crtcs{kDefaultCrtc, kSecondaryCrtc}; 426 std::vector<uint32_t> crtcs{kDefaultCrtc, kSecondaryCrtc};
426 plane_manager_->SetCrtcInfo(crtcs); 427 plane_manager_->SetCrtcInfo(crtcs);
427 428
428 std::vector<uint32_t> only_rgb_format{DRM_FORMAT_XRGB8888}; 429 std::vector<uint32_t> only_rgb_format{DRM_FORMAT_XRGB8888};
429 std::vector<uint32_t> xrgb_yuv_packed_formats{DRM_FORMAT_XRGB8888, 430 std::vector<uint32_t> xrgb_yuv_packed_formats{DRM_FORMAT_XRGB8888,
430 DRM_FORMAT_UYVY}; 431 DRM_FORMAT_UYVY};
431 ui::HardwareDisplayController* controller = window_->GetController(); 432 ui::HardwareDisplayController* controller = window_->GetController();
432 controller->AddCrtc(scoped_ptr<ui::CrtcController>( 433 controller->AddCrtc(std::unique_ptr<ui::CrtcController>(
433 new ui::CrtcController(drm_.get(), kSecondaryCrtc, kSecondaryConnector))); 434 new ui::CrtcController(drm_.get(), kSecondaryCrtc, kSecondaryConnector)));
434 ui::OverlayPlane plane1(scoped_refptr<ui::ScanoutBuffer>( 435 ui::OverlayPlane plane1(scoped_refptr<ui::ScanoutBuffer>(
435 new ui::MockScanoutBuffer(primary_rect_.size()))); 436 new ui::MockScanoutBuffer(primary_rect_.size())));
436 EXPECT_TRUE(controller->Modeset(plane1, kDefaultMode)); 437 EXPECT_TRUE(controller->Modeset(plane1, kDefaultMode));
437 438
438 gfx::RectF crop_rect = gfx::RectF(0, 0, 0.5, 0.5); 439 gfx::RectF crop_rect = gfx::RectF(0, 0, 0.5, 0.5);
439 overlay_params_.back().buffer_size = overlay_rect_.size(); 440 overlay_params_.back().buffer_size = overlay_rect_.size();
440 overlay_params_.back().display_rect = overlay_rect_; 441 overlay_params_.back().display_rect = overlay_rect_;
441 overlay_params_.back().crop_rect = crop_rect; 442 overlay_params_.back().crop_rect = crop_rect;
442 plane_list_.back().display_bounds = overlay_rect_; 443 plane_list_.back().display_bounds = overlay_rect_;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 EXPECT_FALSE(validated_params.back().is_overlay_candidate); 494 EXPECT_FALSE(validated_params.back().is_overlay_candidate);
494 controller->RemoveCrtc(drm_, kSecondaryCrtc); 495 controller->RemoveCrtc(drm_, kSecondaryCrtc);
495 } 496 }
496 497
497 TEST_F(DrmOverlayValidatorTest, OptimalFormatYUV_MirroredControllers) { 498 TEST_F(DrmOverlayValidatorTest, OptimalFormatYUV_MirroredControllers) {
498 std::vector<uint32_t> crtcs{kDefaultCrtc, kSecondaryCrtc}; 499 std::vector<uint32_t> crtcs{kDefaultCrtc, kSecondaryCrtc};
499 plane_manager_->SetCrtcInfo(crtcs); 500 plane_manager_->SetCrtcInfo(crtcs);
500 overlay_validator_->ClearCache(); 501 overlay_validator_->ClearCache();
501 502
502 ui::HardwareDisplayController* controller = window_->GetController(); 503 ui::HardwareDisplayController* controller = window_->GetController();
503 controller->AddCrtc(scoped_ptr<ui::CrtcController>( 504 controller->AddCrtc(std::unique_ptr<ui::CrtcController>(
504 new ui::CrtcController(drm_.get(), kSecondaryCrtc, kSecondaryConnector))); 505 new ui::CrtcController(drm_.get(), kSecondaryCrtc, kSecondaryConnector)));
505 ui::OverlayPlane plane1(scoped_refptr<ui::ScanoutBuffer>( 506 ui::OverlayPlane plane1(scoped_refptr<ui::ScanoutBuffer>(
506 new ui::MockScanoutBuffer(primary_rect_.size()))); 507 new ui::MockScanoutBuffer(primary_rect_.size())));
507 EXPECT_TRUE(controller->Modeset(plane1, kDefaultMode)); 508 EXPECT_TRUE(controller->Modeset(plane1, kDefaultMode));
508 509
509 overlay_params_.back().buffer_size = overlay_rect_.size(); 510 overlay_params_.back().buffer_size = overlay_rect_.size();
510 overlay_params_.back().display_rect = overlay_rect_; 511 overlay_params_.back().display_rect = overlay_rect_;
511 plane_list_.back().display_bounds = overlay_rect_; 512 plane_list_.back().display_bounds = overlay_rect_;
512 std::vector<uint32_t> only_rgb_format = {DRM_FORMAT_XRGB8888}; 513 std::vector<uint32_t> only_rgb_format = {DRM_FORMAT_XRGB8888};
513 std::vector<uint32_t> xrgb_yuv_packed_formats = {DRM_FORMAT_XRGB8888, 514 std::vector<uint32_t> xrgb_yuv_packed_formats = {DRM_FORMAT_XRGB8888,
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 plane_list.back().buffer->GetFramebufferPixelFormat()); 627 plane_list.back().buffer->GetFramebufferPixelFormat());
627 plane_list_.back().processing_callback = base::Bind( 628 plane_list_.back().processing_callback = base::Bind(
628 &DrmOverlayValidatorTest::ReturnNullBuffer, base::Unretained(this)); 629 &DrmOverlayValidatorTest::ReturnNullBuffer, base::Unretained(this));
629 630
630 plane_list = overlay_validator_->PrepareBuffersForPageFlip(plane_list_); 631 plane_list = overlay_validator_->PrepareBuffersForPageFlip(plane_list_);
631 EXPECT_EQ(plane_list_.back().buffer->GetFramebufferPixelFormat(), 632 EXPECT_EQ(plane_list_.back().buffer->GetFramebufferPixelFormat(),
632 plane_list.back().buffer->GetFramebufferPixelFormat()); 633 plane_list.back().buffer->GetFramebufferPixelFormat());
633 plane_list_.back().processing_callback = base::Bind( 634 plane_list_.back().processing_callback = base::Bind(
634 &DrmOverlayValidatorTest::ProcessBuffer, base::Unretained(this)); 635 &DrmOverlayValidatorTest::ProcessBuffer, base::Unretained(this));
635 } 636 }
OLDNEW
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc ('k') | ui/ozone/platform/drm/gpu/drm_thread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698