igt-gpu-tools: respect display's max alpha
am: 05b972fad5
Change-Id: I5ee2ac9ff40cbe949b3dbef6679ddb00a47dd243
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index eb06e2b..4dfcc73 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1832,7 +1832,24 @@
igt_plane_set_prop_enum(plane, IGT_PLANE_PIXEL_BLEND_MODE, "Pre-multiplied");
if (igt_plane_has_prop(plane, IGT_PLANE_ALPHA))
- igt_plane_set_prop_value(plane, IGT_PLANE_ALPHA, 0xffff);
+ {
+ uint64_t max_alpha = 0xffff;
+ drmModePropertyPtr alpha_prop = drmModeGetProperty(
+ plane->pipe->display->drm_fd,
+ plane->props[IGT_PLANE_ALPHA]);
+
+ if (alpha_prop)
+ {
+ if (alpha_prop->flags & DRM_MODE_PROP_RANGE)
+ {
+ max_alpha = alpha_prop->values[1];
+ }
+
+ drmModeFreeProperty(alpha_prop);
+ }
+
+ igt_plane_set_prop_value(plane, IGT_PLANE_ALPHA, max_alpha);
+ }
igt_plane_clear_prop_changed(plane, IGT_PLANE_IN_FENCE_FD);