drm_hwcomposer: Fix client range selection logic
Original change aimed to fix clang-tidy checks, but
accidentally it caused wrong client range selection.
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/53
Fixes: e2f2c92924 ("drm_hwcomposer: enable code analysis using clang-tidy")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
This commit is contained in:
parent
747747127f
commit
3f89182bb9
1 changed files with 6 additions and 5 deletions
|
|
@ -60,18 +60,19 @@ HWC2::Error Backend::ValidateDisplay(DrmHwcTwo::HwcDisplay *display,
|
||||||
} else {
|
} else {
|
||||||
std::tie(client_start, client_size) = GetClientLayers(display, z_map);
|
std::tie(client_start, client_size) = GetClientLayers(display, z_map);
|
||||||
|
|
||||||
size_t extra_client = (z_map.size() - client_size) - avail_planes;
|
int extra_client = int(z_map.size() - client_size) - int(avail_planes);
|
||||||
if (extra_client > 0) {
|
if (extra_client > 0) {
|
||||||
int start = 0;
|
int start = 0;
|
||||||
size_t steps = 0;
|
size_t steps = 0;
|
||||||
if (client_size != 0) {
|
if (client_size != 0) {
|
||||||
size_t prepend = std::min((size_t)client_start, extra_client);
|
int prepend = std::min(client_start, extra_client);
|
||||||
size_t append = std::min(z_map.size() - (client_start + client_size),
|
int append = std::min(int(z_map.size()) -
|
||||||
extra_client);
|
int(client_start + client_size),
|
||||||
|
extra_client);
|
||||||
start = client_start - (int)prepend;
|
start = client_start - (int)prepend;
|
||||||
client_size += extra_client;
|
client_size += extra_client;
|
||||||
steps = 1 + std::min(std::min(append, prepend),
|
steps = 1 + std::min(std::min(append, prepend),
|
||||||
z_map.size() - (start + client_size));
|
int(z_map.size()) - int(start + client_size));
|
||||||
} else {
|
} else {
|
||||||
client_size = extra_client;
|
client_size = extra_client;
|
||||||
steps = 1 + z_map.size() - extra_client;
|
steps = 1 + z_map.size() - extra_client;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue