@@ -52,18 +52,6 @@ HWC2::Error Backend::ValidateDisplay(HwcDisplay *display, uint32_t *num_types,
5252 std::tie (client_start, client_size) = GetClientLayers (display, layers);
5353
5454 MarkValidated (layers, client_start, client_size);
55-
56- bool testing_needed = !(client_start == 0 && client_size == layers.size ());
57-
58- AtomicCommitArgs a_args = {.test_only = true };
59-
60- if (testing_needed &&
61- display->CreateComposition (a_args) != HWC2::Error::None) {
62- ++display->total_stats ().failed_kms_validate_ ;
63- client_start = 0 ;
64- client_size = layers.size ();
65- MarkValidated (layers, 0 , client_size);
66- }
6755 }
6856
6957 *num_types = client_size;
@@ -80,43 +68,15 @@ std::tuple<int, size_t> Backend::GetClientLayers(
8068 int client_start = -1 ;
8169 size_t client_size = 0 ;
8270
83- int device_start = -1 ;
84- size_t device_size = 0 ;
8571 for (size_t z_order = 0 ; z_order < layers.size (); ++z_order) {
8672 if (IsClientLayer (display, layers[z_order])) {
8773 if (client_start < 0 )
8874 client_start = (int )z_order;
8975 client_size = (z_order - client_start) + 1 ;
9076 }
91- if (IsVideoLayer (layers[z_order])) {
92- if (device_start < 0 )
93- device_start = (int )z_order;
94- device_size = (z_order - device_start) + 1 ;
95- }
96- }
97- if (device_size == 0 )
98- return GetExtraClientRange (display, layers, client_start, client_size);
99- else {
100- bool status = true ;
101- MarkValidated (layers, client_start, client_size);
102- for (size_t z_order = 0 ; z_order < layers.size (); ++z_order) {
103- if (z_order >= client_start &&
104- z_order <= (client_start + client_size - 1 ) &&
105- IsVideoLayer (layers[z_order]))
106- status = false ;
107-
108- if (z_order >= device_start &&
109- z_order <= (device_start + device_size - 1 ) &&
110- layers[z_order]->GetValidatedType () == HWC2::Composition::Client)
111- status = false ;
112- }
113- if (!status) {
114- ALOGE (" status is abnormal" );
115- return GetExtraClientRange (display, layers, client_start, client_size);
116- }
117- return GetExtraClientRange2 (display, layers, client_start, client_size, device_start, device_size);
11877 }
11978
79+ return std::make_tuple (client_start, client_size);
12080}
12181
12282bool Backend::IsClientLayer (HwcDisplay *display, HwcLayer *layer) {
@@ -155,10 +115,13 @@ uint32_t Backend::CalcPixOps(const std::vector<HwcLayer *> &layers,
155115void Backend::MarkValidated (std::vector<HwcLayer *> &layers,
156116 size_t client_first_z, size_t client_size) {
157117 for (size_t z_order = 0 ; z_order < layers.size (); ++z_order) {
158- if (z_order >= client_first_z && z_order < client_first_z + client_size)
118+ if (z_order >= client_first_z && z_order < client_first_z + client_size) {
159119 layers[z_order]->SetValidatedType (HWC2::Composition::Client);
160- else
120+ layers[z_order]->SetUseVPPCompose (false );
121+ } else {
161122 layers[z_order]->SetValidatedType (HWC2::Composition::Device);
123+ layers[z_order]->SetUseVPPCompose (true );
124+ }
162125 }
163126}
164127
0 commit comments