struct drm_crtc_state
Prev | KMS Data Structures | Next

## Name

struct drm_crtc_state — mutable CRTC state

## Synopsis

    struct drm_crtc_state {
      struct drm_crtc * crtc;
      bool enable;
      bool active;
      bool planes_changed:1;
      bool mode_changed:1;
      bool active_changed:1;
      bool connectors_changed:1;
      bool color_mgmt_changed:1;
      u32 plane_mask;
      u32 connector_mask;
      u32 encoder_mask;
      u32 last_vblank_count;
      struct drm_display_mode adjusted_mode;
      struct drm_display_mode mode;
      struct drm_property_blob * degamma_lut;
      struct drm_property_blob * ctm;
      struct drm_property_blob * gamma_lut;
      struct drm_pending_vblank_event * event;
      struct drm_atomic_state * state;
    };

## Members

crtc

  backpointer to the CRTC

enable

  whether the CRTC should be enabled, gates all other state

active

  whether the CRTC is actively displaying (used for DPMS)

planes_changed

  planes on this crtc are updated

mode_changed

  crtc_state->mode or crtc_state->enable has been changed

active_changed

  crtc_state->active has been toggled.

connectors_changed

  connectors to this crtc have been updated

color_mgmt_changed

  color management properties have changed (degamma or gamma LUT or CSC matrix)

plane_mask

  bitmask of (1 << drm_plane_index(plane)) of attached planes

connector_mask

  bitmask of (1 << drm_connector_index(connector)) of attached connectors

encoder_mask

  bitmask of (1 << drm_encoder_index(encoder)) of attached encoders

last_vblank_count

  for helpers and drivers to capture the vblank of the update to ensure framebuffer cleanup isn't done too early

adjusted_mode

  for use by helpers and drivers to compute adjusted mode timings

mode

  current mode timings

degamma_lut

  Lookup table for converting framebuffer pixel data before apply the conversion matrix

ctm

  Transformation matrix

gamma_lut

  Lookup table for converting pixel data after the conversion matrix

event

  optional pointer to a DRM event to signal upon completion of the state update

state

  backpointer to global drm_atomic_state

## Description

Note that the distinction between `enable` and `active` is rather subtile: Flipping `active` while `enable` is set without changing anything else may never return in a failure from the ->atomic_check callback. Userspace assumes that a DPMS On will always succeed. In other words: `enable` controls resource assignment, `active` controls the actual hardware state.

Prev | Up | Next
drm_mode_create_tile_group | Home | struct drm_crtc_funcs