Lines Matching +full:pre +full:- +full:configurable

43  * sub-pixel accuracy, which is scaled up to a pixel-aligned destination
79 * When a KMS client is performing front-buffer rendering, it should set
80 * FB_ID to the same front-buffer FB on each atomic commit. This implies
81 * to the driver that it needs to re-read the same FB again. Otherwise
102 * plane-wide opacity, from transparent (0) to opaque (0xffff). It can be
105 * pre-multiplied by the global alpha associated to the plane.
115 * "rotate-<degrees>":
119 * "reflect-<axis>":
123 * reflect-x::
126 * | | -> | |
129 * reflect-y::
132 * | | -> | |
143 * value can also be immutable, to inform userspace about the hard-coded
160 * (1 - plane_alpha) * bg.rgb
162 * "Pre-multiplied":
164 * have been already pre-multiplied with the alpha
168 * (1 - (plane_alpha * fg.alpha)) * bg.rgb
172 * been pre-multiplied and will do so when blending them to the
176 * (1 - (plane_alpha * fg.alpha)) * bg.rgb
213 * drm_plane_create_alpha_property - create a new alpha property
229 prop = drm_property_create_range(plane->dev, 0, "alpha",
232 return -ENOMEM;
234 drm_object_attach_property(&plane->base, prop, DRM_BLEND_ALPHA_OPAQUE);
235 plane->alpha_property = prop;
237 if (plane->state)
238 plane->state->alpha = DRM_BLEND_ALPHA_OPAQUE;
245 * drm_plane_create_rotation_property - create a new rotation property
261 * "rotate-0"
263 * "rotate-90"
265 * "rotate-180"
267 * "rotate-270"
269 * "reflect-x"
271 * "reflect-y"
283 { __builtin_ffs(DRM_MODE_ROTATE_0) - 1, "rotate-0" },
284 { __builtin_ffs(DRM_MODE_ROTATE_90) - 1, "rotate-90" },
285 { __builtin_ffs(DRM_MODE_ROTATE_180) - 1, "rotate-180" },
286 { __builtin_ffs(DRM_MODE_ROTATE_270) - 1, "rotate-270" },
287 { __builtin_ffs(DRM_MODE_REFLECT_X) - 1, "reflect-x" },
288 { __builtin_ffs(DRM_MODE_REFLECT_Y) - 1, "reflect-y" },
296 prop = drm_property_create_bitmask(plane->dev, 0, "rotation",
300 return -ENOMEM;
302 drm_object_attach_property(&plane->base, prop, rotation);
304 if (plane->state)
305 plane->state->rotation = rotation;
307 plane->rotation_property = prop;
314 * drm_rotation_simplify() - Try to simplify the rotation
346 * drm_plane_create_zpos_property - create mutable zpos property
354 * support for configurable planes arrangement during blending operation.
359 * should be set to 0 and max to maximal number of planes for given crtc - 1.
381 prop = drm_property_create_range(plane->dev, 0, "zpos", min, max);
383 return -ENOMEM;
385 drm_object_attach_property(&plane->base, prop, zpos);
387 plane->zpos_property = prop;
389 if (plane->state) {
390 plane->state->zpos = zpos;
391 plane->state->normalized_zpos = zpos;
399 * drm_plane_create_zpos_immutable_property - create immuttable zpos property
419 prop = drm_property_create_range(plane->dev, DRM_MODE_PROP_IMMUTABLE,
422 return -ENOMEM;
424 drm_object_attach_property(&plane->base, prop, zpos);
426 plane->zpos_property = prop;
428 if (plane->state) {
429 plane->state->zpos = zpos;
430 plane->state->normalized_zpos = zpos;
442 if (sa->zpos != sb->zpos)
443 return sa->zpos - sb->zpos;
445 return sa->plane->base.id - sb->plane->base.id;
451 struct drm_atomic_state *state = crtc_state->state;
452 struct drm_device *dev = crtc->dev;
453 int total_planes = dev->mode_config.num_total_plane;
460 crtc->base.id, crtc->name);
464 return -ENOMEM;
470 drm_for_each_plane_mask(plane, dev, crtc_state->plane_mask) {
479 plane->base.id, plane->name, plane_state->zpos);
485 plane = states[i]->plane;
487 states[i]->normalized_zpos = i;
489 plane->base.id, plane->name, i);
491 crtc_state->zpos_changed = true;
499 * drm_atomic_normalize_zpos - calculate normalized zpos values for all crtcs
514 * Zero for success or -errno
526 crtc = new_plane_state->crtc;
529 if (old_plane_state->zpos != new_plane_state->zpos) {
531 new_crtc_state->zpos_changed = true;
536 if (old_crtc_state->plane_mask != new_crtc_state->plane_mask ||
537 new_crtc_state->zpos_changed) {
549 * drm_plane_create_blend_mode_property - create a new blend mode property
565 * "Pre-multiplied":
567 * pre-multiplied with the alpha channel values.
571 * pre-multiplied and will do so when blending them to the background color
575 * Zero for success or -errno
580 struct drm_device *dev = plane->dev;
584 { DRM_MODE_BLEND_PREMULTI, "Pre-multiplied" },
594 return -EINVAL;
600 return -ENOMEM;
618 drm_object_attach_property(&plane->base, prop, DRM_MODE_BLEND_PREMULTI);
619 plane->blend_mode_property = prop;