XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_plane_state Struct Reference

#include <drm_plane.h>

Collaboration diagram for drm_plane_state:
Collaboration graph
[legend]

Public Attributes

struct drm_plane * plane
 
struct drm_crtc * crtc
 
struct drm_framebuffer * fb
 
struct dma_fence * fence
 
int32_t crtc_x
 
int32_t crtc_y
 
uint32_t crtc_w
 
uint32_t crtc_h
 
uint32_t src_x
 
uint32_t src_y
 
uint32_t src_h
 
uint32_t src_w
 
int32_t hotspot_x
 
int32_t hotspot_y
 
u16 alpha
 
uint16_t pixel_blend_mode
 
unsigned int rotation
 
unsigned int zpos
 
unsigned int normalized_zpos
 
enum drm_color_encoding color_encoding
 
enum drm_color_range color_range
 
struct drm_property_blob * fb_damage_clips
 
bool ignore_damage_clips
 
struct drm_rect src dst
 
bool visible
 
enum drm_scaling_filter scaling_filter
 
struct drm_colorop * color_pipeline
 
struct drm_crtc_commit * commit
 
struct drm_atomic_commit * state
 
bool color_mgmt_changed: 1
 

Detailed Description

struct drm_plane_state - mutable plane state

Please note that the destination coordinates @crtc_x, @crtc_y, @crtc_h and @crtc_w and the source coordinates @src_x, @src_y, @src_h and @src_w are the raw coordinates provided by userspace. Drivers should use drm_atomic_helper_check_plane_state() and only use the derived rectangles in @src and @dst to program the hardware.

Member Data Documentation

◆ alpha

u16 drm_plane_state::alpha

@alpha: Opacity of the plane with 0 as completely transparent and 0xffff as completely opaque. See drm_plane_create_alpha_property() for more details.

◆ color_encoding

enum drm_color_encoding drm_plane_state::color_encoding

@color_encoding:

Color encoding for non RGB formats

◆ color_mgmt_changed

bool drm_plane_state::color_mgmt_changed

@color_mgmt_changed: Color management properties have changed. Used by the atomic helpers and drivers to steer the atomic commit control flow.

◆ color_pipeline

struct drm_colorop* drm_plane_state::color_pipeline

@color_pipeline:

The first colorop of the active color pipeline, or NULL, if no color pipeline is active.

◆ color_range

enum drm_color_range drm_plane_state::color_range

@color_range:

Color range for non RGB formats

◆ commit

struct drm_crtc_commit* drm_plane_state::commit

@commit: Tracks the pending commit to prevent use-after-free conditions, and for async plane updates.

May be NULL.

◆ crtc

struct drm_crtc* drm_plane_state::crtc

@crtc:

Currently bound CRTC, NULL if disabled. Do not write this directly, use drm_atomic_set_crtc_for_plane()

◆ crtc_h

uint32_t drm_plane_state::crtc_h

◆ crtc_w

uint32_t drm_plane_state::crtc_w

@crtc_w: width of visible portion of plane on crtc @crtc_h: height of visible portion of plane on crtc

◆ crtc_x

int32_t drm_plane_state::crtc_x

@crtc_x:

Left position of visible portion of plane on crtc, signed dest location allows it to be partially off screen.

◆ crtc_y

int32_t drm_plane_state::crtc_y

@crtc_y:

Upper position of visible portion of plane on crtc, signed dest location allows it to be partially off screen.

◆ dst

struct drm_rect src drm_plane_state::dst

@src:

source coordinates of the plane (in 16.16).

When using drm_atomic_helper_check_plane_state(), the coordinates are clipped, but the driver may choose to use unclipped coordinates instead when the hardware performs the clipping automatically. @dst:

clipped destination coordinates of the plane.

When using drm_atomic_helper_check_plane_state(), the coordinates are clipped, but the driver may choose to use unclipped coordinates instead when the hardware performs the clipping automatically.

◆ fb

struct drm_framebuffer* drm_plane_state::fb

@fb:

Currently bound framebuffer. Do not write this directly, use drm_atomic_set_fb_for_plane()

◆ fb_damage_clips

struct drm_property_blob* drm_plane_state::fb_damage_clips

@fb_damage_clips:

Blob representing damage (area in plane framebuffer that changed since last plane update) as an array of &drm_mode_rect in framebuffer coodinates of the attached framebuffer. Note that unlike plane src, damage clips are not in 16.16 fixed point.

See drm_plane_get_damage_clips() and drm_plane_get_damage_clips_count() for accessing these.

◆ fence

struct dma_fence* drm_plane_state::fence

@fence:

Optional fence to wait for before scanning out @fb. The core atomic code will set this when userspace is using explicit fencing. Do not write this field directly for a driver's implicit fence.

Drivers should store any implicit fence in this from their &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_plane_helper_prepare_fb() for a suitable helper.

◆ hotspot_x

int32_t drm_plane_state::hotspot_x

@hotspot_x: x offset to mouse cursor hotspot @hotspot_y: y offset to mouse cursor hotspot

◆ hotspot_y

int32_t drm_plane_state::hotspot_y

◆ ignore_damage_clips

bool drm_plane_state::ignore_damage_clips

@ignore_damage_clips:

Set by drivers to indicate the drm_atomic_helper_damage_iter_init() helper that the @fb_damage_clips blob property should be ignored.

See :ref:damage_tracking_properties for more information.

◆ normalized_zpos

unsigned int drm_plane_state::normalized_zpos

@normalized_zpos: Normalized value of zpos: unique, range from 0 to N-1 where N is the number of active planes for given crtc. Note that the driver must set &drm_mode_config.normalize_zpos or call drm_atomic_normalize_zpos() to update this before it can be trusted.

◆ pixel_blend_mode

uint16_t drm_plane_state::pixel_blend_mode

@pixel_blend_mode: The alpha blending equation selection, describing how the pixels from the current plane are composited with the background. Value can be one of DRM_MODE_BLEND_*

◆ plane

struct drm_plane* drm_plane_state::plane

@plane: backpointer to the plane

◆ rotation

unsigned int drm_plane_state::rotation

@rotation: Rotation of the plane. See drm_plane_create_rotation_property() for more details.

◆ scaling_filter

enum drm_scaling_filter drm_plane_state::scaling_filter

@scaling_filter:

Scaling filter to be applied

◆ src_h

uint32_t drm_plane_state::src_h

@src_w: width of visible portion of plane (in 16.16) @src_h: height of visible portion of plane (in 16.16)

◆ src_w

uint32_t drm_plane_state::src_w

◆ src_x

uint32_t drm_plane_state::src_x

@src_x: left position of visible portion of plane within plane (in 16.16 fixed point).

◆ src_y

uint32_t drm_plane_state::src_y

@src_y: upper position of visible portion of plane within plane (in 16.16 fixed point).

◆ state

struct drm_atomic_commit* drm_plane_state::state

@state: backpointer to global drm_atomic_commit

◆ visible

bool drm_plane_state::visible

@visible:

Visibility of the plane. This can be false even if fb!=NULL and crtc!=NULL, due to clipping.

◆ zpos

unsigned int drm_plane_state::zpos

@zpos: Priority of the given plane on crtc (optional).

User-space may set mutable zpos properties so that multiple active planes on the same CRTC have identical zpos values. This is a user-space bug, but drivers can solve the conflict by comparing the plane object IDs; the plane with a higher ID is stacked on top of a plane with a lower ID.

See drm_plane_create_zpos_property() and drm_plane_create_zpos_immutable_property() for more details.


The documentation for this struct was generated from the following file: