Control API

Control API Specification - Version 1

Common

Common Functions

ctlInit

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlInit(ctl_init_args_t *pInitDesc, ctl_api_handle_t *phAPIHandle)

Control Api Init.

  • Control Api Init

Parameters:
  • pInitDesc – [in][out] App’s control API version

  • phAPIHandle – [in][out][release] Control API handle

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pInitDesc

    • nullptr == phAPIHandle

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlClose

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlClose(ctl_api_handle_t hAPIHandle)

Control Api Destroy.

  • Control Api Close

Parameters:

hAPIHandle – [in][release] Control API implementation handle obtained during init call

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hAPIHandle

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlSetRuntimePath

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetRuntimePath(ctl_runtime_path_args_t *pArgs)

Runtime path.

  • Control Api set runtime path. Optional call from a loader which allows the loaded runtime to enumerate only the adapters which the specified runtime is responsible for. This is done usually by a loader or by callers who know how to get the specific runtime of interest. This call right now is reserved for use by Intel components.

Parameters:

pArgs – [in] Runtime path

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pArgs

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlWaitForPropertyChange

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlWaitForPropertyChange(ctl_device_adapter_handle_t hDeviceAdapter, ctl_wait_property_change_args_t *pArgs)

Wait for a property change. Note that this is a blocking call.

  • Wait for a property change in display, 3d, media etc.

Parameters:
  • hDeviceAdapter – [in][release] handle to control device adapter

  • pArgs – [in] Argument containing information about which property changes to listen for

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDeviceAdapter

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pArgs

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlReservedCall

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlReservedCall(ctl_device_adapter_handle_t hDeviceAdapter, ctl_reserved_args_t *pArgs)

Reserved function.

  • Reserved function

Parameters:
  • hDeviceAdapter – [in][release] handle to control device adapter

  • pArgs – [in] Argument containing information

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDeviceAdapter

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pArgs

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

Common Enums

ctl_init_flags_t

enum ctl_init_flag_t

Values:

enumerator CTL_INIT_FLAG_USE_LEVEL_ZERO

Use Level0 or not. This is usually required for telemetry, performance, frequency related APIs.

enumerator CTL_INIT_FLAG_MAX

ctl_property_value_type_t

enum ctl_property_value_type_t

Value type.

Values:

enumerator CTL_PROPERTY_VALUE_TYPE_BOOL

Boolean.

enumerator CTL_PROPERTY_VALUE_TYPE_FLOAT

Float.

enumerator CTL_PROPERTY_VALUE_TYPE_INT32

Int32.

enumerator CTL_PROPERTY_VALUE_TYPE_UINT32

Unsigned Int32.

enumerator CTL_PROPERTY_VALUE_TYPE_ENUM

Enum.

enumerator CTL_PROPERTY_VALUE_TYPE_CUSTOM

Custom argument.

enumerator CTL_PROPERTY_VALUE_TYPE_MAX

ctl_result_t

enum ctl_result_t

Defines Return/Error codes. All generic error (bit30) codes are between 0x40000000-0x4000FFFF. All 3D (bit 29) specific error codes are between 0x60000000-0x6000FFFF. All media (bit 28) specific error codes are between 0x50000000-0x5000FFFF. All display (bit 27) specific error codes are between 0x48000000-0x4800FFFF All core (bit 26) specific error codes are between 0x44000000-0x4400FFFF Success result code with additional info are between 0x00000001-0x0000FFFF.

Values:

enumerator CTL_RESULT_SUCCESS

success

enumerator CTL_RESULT_SUCCESS_STILL_OPEN_BY_ANOTHER_CALLER

success but still open by another caller

enumerator CTL_RESULT_ERROR_SUCCESS_END

“Success group error code end value, not to be used

enumerator CTL_RESULT_ERROR_GENERIC_START

Generic error code starting value, not to be used.

enumerator CTL_RESULT_ERROR_NOT_INITIALIZED

Result not initialized.

enumerator CTL_RESULT_ERROR_ALREADY_INITIALIZED

Already initialized.

enumerator CTL_RESULT_ERROR_DEVICE_LOST

Device hung, reset, was removed, or driver update occurred.

enumerator CTL_RESULT_ERROR_OUT_OF_HOST_MEMORY

Insufficient host memory to satisfy call.

enumerator CTL_RESULT_ERROR_OUT_OF_DEVICE_MEMORY

Insufficient device memory to satisfy call.

enumerator CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS

Access denied due to permission level.

enumerator CTL_RESULT_ERROR_NOT_AVAILABLE

Resource was removed.

enumerator CTL_RESULT_ERROR_UNINITIALIZED

Library not initialized.

enumerator CTL_RESULT_ERROR_UNSUPPORTED_VERSION

Generic error code for unsupported versions.

enumerator CTL_RESULT_ERROR_UNSUPPORTED_FEATURE

Generic error code for unsupported features.

enumerator CTL_RESULT_ERROR_INVALID_ARGUMENT

Generic error code for invalid arguments.

enumerator CTL_RESULT_ERROR_INVALID_API_HANDLE

API handle in invalid.

enumerator CTL_RESULT_ERROR_INVALID_NULL_HANDLE

Handle argument is not valid.

enumerator CTL_RESULT_ERROR_INVALID_NULL_POINTER

Pointer argument may not be nullptr.

enumerator CTL_RESULT_ERROR_INVALID_SIZE

Size argument is invalid (e.g., must not be zero)

enumerator CTL_RESULT_ERROR_UNSUPPORTED_SIZE

Size argument is not supported by the device (e.g., too large)

enumerator CTL_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT

Image format is not supported by the device.

enumerator CTL_RESULT_ERROR_DATA_READ

Data read error.

enumerator CTL_RESULT_ERROR_DATA_WRITE

Data write error.

enumerator CTL_RESULT_ERROR_DATA_NOT_FOUND

Data not found error.

enumerator CTL_RESULT_ERROR_NOT_IMPLEMENTED

Function not implemented.

enumerator CTL_RESULT_ERROR_OS_CALL

Operating system call failure.

enumerator CTL_RESULT_ERROR_KMD_CALL

Kernel mode driver call failure.

enumerator CTL_RESULT_ERROR_UNLOAD

Library unload failure.

enumerator CTL_RESULT_ERROR_ZE_LOADER

Level0 loader not found.

enumerator CTL_RESULT_ERROR_INVALID_OPERATION_TYPE

Invalid operation type.

enumerator CTL_RESULT_ERROR_NULL_OS_INTERFACE

Null OS interface.

enumerator CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE

Null OS adapter handle.

enumerator CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE

Null display output handle.

enumerator CTL_RESULT_ERROR_WAIT_TIMEOUT

Timeout in Wait function.

enumerator CTL_RESULT_ERROR_PERSISTANCE_NOT_SUPPORTED

Persistance not supported.

enumerator CTL_RESULT_ERROR_PLATFORM_NOT_SUPPORTED

Platform not supported.

enumerator CTL_RESULT_ERROR_UNKNOWN_APPLICATION_UID

Unknown Appplicaion UID in Initialization call.

enumerator CTL_RESULT_ERROR_INVALID_ENUMERATION

The enum is not valid.

enumerator CTL_RESULT_ERROR_FILE_DELETE

Error in file delete operation.

enumerator CTL_RESULT_ERROR_RESET_DEVICE_REQUIRED

The device requires a reset.

enumerator CTL_RESULT_ERROR_FULL_REBOOT_REQUIRED

The device requires a full reboot.

enumerator CTL_RESULT_ERROR_LOAD

Library load failure.

enumerator CTL_RESULT_ERROR_UNKNOWN

Unknown or internal error.

enumerator CTL_RESULT_ERROR_RETRY_OPERATION

Operation failed, retry previous operation again.

enumerator CTL_RESULT_ERROR_GENERIC_END

“Generic error code end value, not to be used

enumerator CTL_RESULT_ERROR_CORE_START

Core error code starting value, not to be used.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_NOT_SUPPORTED

The Overclock is not supported.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_VOLTAGE_OUTSIDE_RANGE

The Voltage exceeds the acceptable min/max.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_FREQUENCY_OUTSIDE_RANGE

The Frequency exceeds the acceptable min/max.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_POWER_OUTSIDE_RANGE

The Power exceeds the acceptable min/max.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_TEMPERATURE_OUTSIDE_RANGE

The Power exceeds the acceptable min/max.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_IN_VOLTAGE_LOCKED_MODE

The Overclock is in voltage locked mode.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_RESET_REQUIRED

It indicates that the requested change will not be applied until the device is reset.

enumerator CTL_RESULT_ERROR_CORE_OVERCLOCK_WAIVER_NOT_SET

The $OverclockWaiverSet function has not been called.

enumerator CTL_RESULT_ERROR_CORE_END

“Core error code end value, not to be used

enumerator CTL_RESULT_ERROR_3D_START

3D error code starting value, not to be used

enumerator CTL_RESULT_ERROR_3D_END

“3D error code end value, not to be used

enumerator CTL_RESULT_ERROR_MEDIA_START

Media error code starting value, not to be used.

enumerator CTL_RESULT_ERROR_MEDIA_END

“Media error code end value, not to be used

enumerator CTL_RESULT_ERROR_DISPLAY_START

Display error code starting value, not to be used.

enumerator CTL_RESULT_ERROR_INVALID_AUX_ACCESS_FLAG

Invalid flag for Aux access.

enumerator CTL_RESULT_ERROR_INVALID_SHARPNESS_FILTER_FLAG

Invalid flag for Sharpness.

enumerator CTL_RESULT_ERROR_DISPLAY_NOT_ATTACHED

Error for Display not attached.

enumerator CTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE

Error for display attached but not active.

enumerator CTL_RESULT_ERROR_INVALID_POWERFEATURE_OPTIMIZATION_FLAG

Error for invalid power optimization flag.

enumerator CTL_RESULT_ERROR_INVALID_POWERSOURCE_TYPE_FOR_DPST

DPST is supported only in DC Mode.

enumerator CTL_RESULT_ERROR_INVALID_PIXTX_GET_CONFIG_QUERY_TYPE

Invalid query type for pixel transformation get configuration.

enumerator CTL_RESULT_ERROR_INVALID_PIXTX_SET_CONFIG_OPERATION_TYPE

Invalid operation type for pixel transformation set configuration.

enumerator CTL_RESULT_ERROR_INVALID_SET_CONFIG_NUMBER_OF_SAMPLES

Invalid number of samples for pixel transformation set configuration.

enumerator CTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_ID

Invalid block id for pixel transformation.

enumerator CTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_TYPE

Invalid block type for pixel transformation.

enumerator CTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_NUMBER

Invalid block number for pixel transformation.

enumerator CTL_RESULT_ERROR_INSUFFICIENT_PIXTX_BLOCK_CONFIG_MEMORY

Insufficient memery allocated for BlockConfigs.

enumerator CTL_RESULT_ERROR_3DLUT_INVALID_PIPE

Invalid pipe for 3dlut.

enumerator CTL_RESULT_ERROR_3DLUT_INVALID_DATA

Invalid 3dlut data.

enumerator CTL_RESULT_ERROR_3DLUT_NOT_SUPPORTED_IN_HDR

3dlut not supported in HDR

enumerator CTL_RESULT_ERROR_3DLUT_INVALID_OPERATION

Invalid 3dlut operation.

enumerator CTL_RESULT_ERROR_3DLUT_UNSUCCESSFUL

3dlut call unsuccessful

enumerator CTL_RESULT_ERROR_AUX_DEFER

AUX defer failure.

enumerator CTL_RESULT_ERROR_AUX_TIMEOUT

AUX timeout failure.

enumerator CTL_RESULT_ERROR_AUX_INCOMPLETE_WRITE

AUX incomplete write failure.

enumerator CTL_RESULT_ERROR_I2C_AUX_STATUS_UNKNOWN

I2C/AUX unkonown failure.

enumerator CTL_RESULT_ERROR_I2C_AUX_UNSUCCESSFUL

I2C/AUX unsuccessful.

enumerator CTL_RESULT_ERROR_LACE_INVALID_DATA_ARGUMENT_PASSED

Lace Incorrrect AggressivePercent data or LuxVsAggressive Map data passed by user.

enumerator CTL_RESULT_ERROR_EXTERNAL_DISPLAY_ATTACHED

External Display is Attached hence fail the Display Switch.

enumerator CTL_RESULT_ERROR_CUSTOM_MODE_STANDARD_CUSTOM_MODE_EXISTS

Standard custom mode exists.

enumerator CTL_RESULT_ERROR_CUSTOM_MODE_NON_CUSTOM_MATCHING_MODE_EXISTS

Non custom matching mode exists.

enumerator CTL_RESULT_ERROR_CUSTOM_MODE_INSUFFICIENT_MEMORY

Custom mode insufficent memory.

enumerator CTL_RESULT_ERROR_ADAPTER_ALREADY_LINKED

Adapter is already linked.

enumerator CTL_RESULT_ERROR_ADAPTER_NOT_IDENTICAL

Adapter is not identical for linking.

enumerator CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY

Adapter is LDA Secondary, so not supporting requested operation.

enumerator CTL_RESULT_ERROR_SET_FBC_FEATURE_NOT_SUPPORTED

Set FBC Feature not supported.

enumerator CTL_RESULT_ERROR_DISPLAY_END

“Display error code end value, not to be used

enumerator CTL_RESULT_MAX

ctl_units_t

enum ctl_units_t

General Physical Units.

Values:

enumerator CTL_UNITS_FREQUENCY_MHZ

Type is Frequency with units in MHz.

enumerator CTL_UNITS_OPERATIONS_GTS

Type is Frequency with units in GT/s (gigatransfers per second).

enumerator CTL_UNITS_OPERATIONS_MTS

Type is Frequency with units in MT/s (megatransfers per second).

enumerator CTL_UNITS_VOLTAGE_VOLTS

Type is Voltage with units in Volts.

enumerator CTL_UNITS_POWER_WATTS

Type is Power with units in Watts.

enumerator CTL_UNITS_TEMPERATURE_CELSIUS

Type is Temperature with units in Celsius.

enumerator CTL_UNITS_ENERGY_JOULES

Type is Energy with units in Joules.

enumerator CTL_UNITS_TIME_SECONDS

Type is Time with units in Seconds.

enumerator CTL_UNITS_MEMORY_BYTES

Type is Memory with units in Bytes.

enumerator CTL_UNITS_ANGULAR_SPEED_RPM

Type is Angular Speed with units in Revolutions per Minute.

enumerator CTL_UNITS_POWER_MILLIWATTS

Type is Power with units in MilliWatts.

enumerator CTL_UNITS_PERCENT

Type is Percentage.

enumerator CTL_UNITS_MEM_SPEED_GBPS

Type is Memory Speed in Gigabyte per Seconds (Gbps)

enumerator CTL_UNITS_VOLTAGE_MILLIVOLTS

Type is Voltage with units in milliVolts.

enumerator CTL_UNITS_UNKNOWN

Type of units unknown.

enumerator CTL_UNITS_MAX

ctl_data_type_t

enum ctl_data_type_t

General Data Types.

Values:

enumerator CTL_DATA_TYPE_INT8

The data type is 8 bit signed integer.

enumerator CTL_DATA_TYPE_UINT8

The data type is 8 bit unsigned integer.

enumerator CTL_DATA_TYPE_INT16

The data type is 16 bit signed integer.

enumerator CTL_DATA_TYPE_UINT16

The data type is 16 bit unsigned integer.

enumerator CTL_DATA_TYPE_INT32

The data type is 32 bit signed integer.

enumerator CTL_DATA_TYPE_UINT32

The data type is 32 bit unsigned integer.

enumerator CTL_DATA_TYPE_INT64

The data type is 64 bit signed integer.

enumerator CTL_DATA_TYPE_UINT64

The data type is 64 bit unsigned integer.

enumerator CTL_DATA_TYPE_FLOAT

The data type is 32 bit floating point.

enumerator CTL_DATA_TYPE_DOUBLE

The data type is 64 bit floating point.

enumerator CTL_DATA_TYPE_STRING_ASCII

The data type is an array of 8 bit unsigned integers.

enumerator CTL_DATA_TYPE_STRING_UTF16

The data type is an array of 16 bit unsigned integers.

enumerator CTL_DATA_TYPE_STRING_UTF132

The data type is an array of 32 bit unsigned integers.

enumerator CTL_DATA_TYPE_UNKNOWN

The data type is unknown.

enumerator CTL_DATA_TYPE_MAX

ctl_supported_functions_flags_t

enum ctl_supported_functions_flag_t

Values:

enumerator CTL_SUPPORTED_FUNCTIONS_FLAG_DISPLAY

[out] Is Display supported

enumerator CTL_SUPPORTED_FUNCTIONS_FLAG_3D

[out] Is 3D supported

enumerator CTL_SUPPORTED_FUNCTIONS_FLAG_MEDIA

[out] Is Media supported

enumerator CTL_SUPPORTED_FUNCTIONS_FLAG_MAX

ctl_device_type_t

enum ctl_device_type_t

DeviceType.

Values:

enumerator CTL_DEVICE_TYPE_GRAPHICS

Graphics Device type.

enumerator CTL_DEVICE_TYPE_SYSTEM

System Device type.

enumerator CTL_DEVICE_TYPE_MAX

ctl_adapter_properties_flags_t

enum ctl_adapter_properties_flag_t

Values:

enumerator CTL_ADAPTER_PROPERTIES_FLAG_INTEGRATED

[out] Is Integrated Graphics adapter

enumerator CTL_ADAPTER_PROPERTIES_FLAG_LDA_PRIMARY

[out] Is Primary (Lead) adapter in a Linked Display Adapter (LDA) chain

enumerator CTL_ADAPTER_PROPERTIES_FLAG_LDA_SECONDARY

[out] Is Secondary (Linked) adapter in a Linked Display Adapter (LDA) chain

enumerator CTL_ADAPTER_PROPERTIES_FLAG_MAX

ctl_operation_type_t

enum ctl_operation_type_t

OperationType.

Values:

enumerator CTL_OPERATION_TYPE_READ

Read operation.

enumerator CTL_OPERATION_TYPE_WRITE

Write operation.

enumerator CTL_OPERATION_TYPE_MAX

ctl_property_type_flags_t

enum ctl_property_type_flag_t

Values:

enumerator CTL_PROPERTY_TYPE_FLAG_DISPLAY

Display type. Supported scenarios: Sharpness/gamma/CSC.

enumerator CTL_PROPERTY_TYPE_FLAG_3D

3D type. Supported scenarios: All set calls via IGCL’s 3D APIs

enumerator CTL_PROPERTY_TYPE_FLAG_MEDIA

Media type. Supported scenarios: All set calls via IGCL’s media APIs.

enumerator CTL_PROPERTY_TYPE_FLAG_CORE

For future: Core graphic event types like clocking, frequency etc.

enumerator CTL_PROPERTY_TYPE_FLAG_MAX

ctl_display_orientation_t

enum ctl_display_orientation_t

Display orientation (rotation)

Values:

enumerator CTL_DISPLAY_ORIENTATION_0

0 Degree

enumerator CTL_DISPLAY_ORIENTATION_90

90 Degree

enumerator CTL_DISPLAY_ORIENTATION_180

180 Degree

enumerator CTL_DISPLAY_ORIENTATION_270

270 Degree

enumerator CTL_DISPLAY_ORIENTATION_MAX

Common Structures

ctl_base_interface_t

struct ctl_base_interface_t

Base for all properties types.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_property_range_info_t

struct ctl_property_range_info_t

Property range details, a generic struct to hold min/max/step size information of various feature properties.

Public Members

float min_possible_value

[out] Minimum possible value

float max_possible_value

[out] Maximum possible value

float step_size

[out] Step size possible

float default_value

[out] Default value

ctl_property_range_info_int_t

struct ctl_property_range_info_int_t

Property range details of integer type, a generic struct to hold min/max/step size information of various feature properties.

Public Members

int32_t min_possible_value

[out] Minimum possible value

int32_t max_possible_value

[out] Maximum possible value

int32_t step_size

[out] Step size possible

int32_t default_value

[out] Default value

ctl_property_range_info_uint_t

struct ctl_property_range_info_uint_t

Property range details of unsigned integer type, a generic struct to hold min/max/step size information of various feature properties.

Public Members

uint32_t min_possible_value

[out] Minimum possible value

uint32_t max_possible_value

[out] Maximum possible value

uint32_t step_size

[out] Step size possible

uint32_t default_value

[out] Default value

ctl_property_info_boolean_t

struct ctl_property_info_boolean_t

Bool feature details.

Public Members

bool DefaultState

[out] Default state

ctl_property_boolean_t

struct ctl_property_boolean_t

Bool feature for get/set.

Public Members

bool Enable

[in,out] Enable

ctl_property_info_enum_t

struct ctl_property_info_enum_t

Enumeration feature details.

Public Members

uint64_t SupportedTypes

[out] Supported possible values represented as a bitmask

uint32_t DefaultType

[out] Default type

ctl_property_enum_t

struct ctl_property_enum_t

Enumeration feature for get/set.

Public Members

uint32_t EnableType

[in,out] Enable with specific type

ctl_property_info_float_t

struct ctl_property_info_float_t

Float feature details.

Public Members

bool DefaultEnable

[in,out] DefaultEnable

ctl_property_range_info_t RangeInfo

[out] Min/max/default/step details

ctl_property_float_t

struct ctl_property_float_t

Float feature for get/set.

Public Members

bool Enable

[in,out] Enable

float Value

[in,out] Value

ctl_property_info_int_t

struct ctl_property_info_int_t

Int32 feature details.

Public Members

bool DefaultEnable

[in,out] DefaultEnable

ctl_property_range_info_int_t RangeInfo

[out] Min/max/default/step details

ctl_property_int_t

struct ctl_property_int_t

Int32 feature for get/set.

Public Members

bool Enable

[in,out] Enable

int32_t Value

[in,out] Value

ctl_property_info_uint_t

struct ctl_property_info_uint_t

Int32 feature details.

Public Members

bool DefaultEnable

[in,out] DefaultEnable

ctl_property_range_info_uint_t RangeInfo

[out] Min/max/default/step details

ctl_property_uint_t

struct ctl_property_uint_t

Int32 feature for get/set.

Public Members

bool Enable

[in,out] Enable

uint32_t Value

[in,out] Value

ctl_property_info_t

union ctl_property_info_t
#include <igcl_api.h>

Feature element details, union of bool/float/enum property_info structs. Used for feature specific capability check.

Public Members

ctl_property_info_boolean_t BoolType

[in,out] Boolean type fields

ctl_property_info_float_t FloatType

[in,out] Float type fields

ctl_property_info_int_t IntType

[in,out] Int type fields

ctl_property_info_enum_t EnumType

[in,out] Enum type fields

ctl_property_info_uint_t UIntType

[in,out] Unsigned Int type fields

ctl_property_t

union ctl_property_t
#include <igcl_api.h>

Feature element details, union of bool/float/enum property structs. Used for get/set calls.

Public Members

ctl_property_boolean_t BoolType

[in,out] Boolean type fields

ctl_property_float_t FloatType

[in,out] Float type fields

ctl_property_int_t IntType

[in,out] Int type fields

ctl_property_enum_t EnumType

[in,out] Enum type fields

ctl_property_uint_t UIntType

[in,out] Unsigned Int type fields

ctl_data_value_t

union ctl_data_value_t
#include <igcl_api.h>

Union for Generic Data.

  • The telemetry data items could be of different types.

  • Refer to ctl_data_type_t to find the current type.

Public Members

int8_t data8

[out] The data type is 8 bit signed integer.

uint8_t datau8

[out] The data type is 8 bit unsigned integer.

int16_t data16

[out] The data type is 16 bit signed integer.

uint16_t datau16

[out] The data type is 16 bit unsigned integer.

int32_t data32

[out] The data type is 32 bit signed integer.

uint32_t datau32

[out] The data type is 32 bit unsigned integer.

int64_t data64

[out] The data type is 64 bit signed integer.

uint64_t datau64

[out] The data type is 64 bit unsigned integer.

float datafloat

[out] The data type is 32 bit floating point.

double datadouble

[out] The data type is 64 bit floating point.

ctl_base_properties_t

struct ctl_base_properties_t

Base for all properties types.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_application_id_t

struct ctl_application_id_t

Application Unique ID.

Public Members

uint32_t Data1

[in] Data1

uint16_t Data2

[in] Data2

uint16_t Data3

[in] Data3

uint8_t Data4[8]

[in] Data4

ctl_init_args_t

struct ctl_init_args_t

Init arguments.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_version_info_t AppVersion

[in][release] App’s IGCL version

ctl_init_flags_t flags

[in][release] Caller version

ctl_version_info_t SupportedVersion

[out][release] IGCL implementation version

ctl_application_id_t ApplicationUID

[in] Application Provided Unique ID.Application can pass all 0’s as the default ID

ctl_reserved_args_t

struct ctl_reserved_args_t

Reserved struct.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

void *pSpecialArg

[in] Reserved struct

uint32_t ArgSize

[in] struct size

ctl_reserved_args_base_t

struct ctl_reserved_args_base_t

Reserved base struct.

Public Members

ctl_application_id_t ReservedFuncID

[in] Unique ID for reserved/special function

ctl_unlock_capability_t

struct ctl_unlock_capability_t

Reserved - Unlock function capability.

Public Members

ctl_application_id_t ReservedFuncID

[in] Unique ID for reserved/special function

ctl_application_id_t UnlockCapsID

[in] Unique ID to unlock a specific function

ctl_runtime_path_args_t

struct ctl_runtime_path_args_t

Used by loader like modules to specify runtime implementation details.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_application_id_t UnlockID

[in] Unique ID for reserved/special function

wchar_t *pRuntimePath

[in] Path to runtime DLL

uint16_t DeviceID

[in] Device ID of interest to caller. pRuntimePath should not be NULL.

uint8_t RevID

[in] Revision ID of interest to caller. pRuntimePath should not be NULL.

ctl_firmware_version_t

struct ctl_firmware_version_t

Firmware version.

Public Members

uint64_t major_version

[out] Major version

uint64_t minor_version

[out] Minor version

uint64_t build_number

[out] Build number

ctl_adapter_bdf_t

struct ctl_adapter_bdf_t

Adapter Pci Bus, Device, Function.

Public Members

uint8_t bus

[out] PCI Bus Number

uint8_t device

[out] PCI device number

uint8_t function

[out] PCI function

ctl_device_adapter_properties_t

struct ctl_device_adapter_properties_t

Device Adapter properties.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

void *pDeviceID

[in,out] OS specific Device ID

uint32_t device_id_size

[in] size of the device ID

ctl_device_type_t device_type

[out] Device Type

ctl_supported_functions_flags_t supported_subfunction_flags

[out] Supported functions

uint64_t driver_version

[out] Driver version

ctl_firmware_version_t firmware_version

[out] Firmware version

uint32_t pci_vendor_id

[out] PCI Vendor ID

uint32_t pci_device_id

[out] PCI Device ID

uint32_t rev_id

[out] PCI Revision ID

uint32_t num_eus_per_sub_slice

[out] Number of EUs per sub-slice

uint32_t num_sub_slices_per_slice

[out] Number of sub-slices per slice

uint32_t num_slices

[out] Number of slices

char name[CTL_MAX_DEVICE_NAME_LEN]

[out] Device name

ctl_adapter_properties_flags_t graphics_adapter_properties

[out] Graphics Adapter Properties

uint32_t Frequency

[out] Clock frequency for this device. Supported only for Version > 0

uint16_t pci_subsys_id

[out] PCI SubSys ID, Supported only for Version > 1

uint16_t pci_subsys_vendor_id

[out] PCI SubSys Vendor ID, Supported only for Version > 1

ctl_adapter_bdf_t adapter_bdf

[out] Pci Bus, Device, Function. Supported only for Version > 1

char reserved[CTL_MAX_RESERVED_SIZE]

[out] Reserved

ctl_generic_void_datatype_t

struct ctl_generic_void_datatype_t

Generic Structure for Void* datatypes.

Public Members

void *pData

[in,out]void pointer to memory

uint32_t size

[in,out]size of the allocated memory

ctl_revision_datatype_t

struct ctl_revision_datatype_t

Generic Structure for Revision datatypes.

Public Members

uint8_t major_version

[in,out]Major Version

uint8_t minor_version

[in,out]Minor Version

uint8_t revision_version

[in,out]Revision Version

ctl_wait_property_change_args_t

struct ctl_wait_property_change_args_t

Arguments related to wait for a property change function.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_property_type_flags_t PropertyType

[in] Type of the property

uint32_t TimeOutMilliSec

[in][release] Time-out interval in milliseconds. Specify 0xFFFFFFFF if time-out is not desired

uint32_t EventMiscFlags

[in][release] Event flags for future use

void *pReserved

[in][release] Reserved for future use

uint64_t ReservedOutFlags

[out] Reserved out argument for future use

ctl_rect_t

struct ctl_rect_t

Rectangle.

Public Members

int32_t Left

[in,out] Left

int32_t Top

[in,out] Top

int32_t Right

[in,out] Right

int32_t Bottom

[in,out] Bottom

_3d

_3d Functions

ctlGetSupported3DCapabilities

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSupported3DCapabilities(ctl_device_adapter_handle_t hDAhandle, ctl_3d_feature_caps_t *pFeatureCaps)

Get 3D capabilities.

  • The application gets 3D properties

Parameters:
  • hDAhandle – [in][release] Handle to display adapter

  • pFeatureCaps – [in,out][release] 3D properties

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDAhandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pFeatureCaps

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetSet3DFeature

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSet3DFeature(ctl_device_adapter_handle_t hDAhandle, ctl_3d_feature_getset_t *pFeature)

Get/Set 3D feature.

  • 3D feature details

Parameters:
  • hDAhandle – [in][release] Handle to display adapter

  • pFeature – [in][release] 3D feature get/set parameter

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDAhandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pFeature

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

_3d Enums

ctl_3d_feature_t

enum ctl_3d_feature_t

Feature type.

Values:

enumerator CTL_3D_FEATURE_FRAME_PACING

Frame pacing. Contains generic enum type fields.

enumerator CTL_3D_FEATURE_ENDURANCE_GAMING

Endurance gaming. Contains generic integer type fields. Value will be interpreted as the max FPS to be used when in DC mode globally or per application.

enumerator CTL_3D_FEATURE_FRAME_LIMIT

Frame limit for games. Contains generic integer type fields. Value will be interpreted as the max FPS to be used independent of system power state.

enumerator CTL_3D_FEATURE_ANISOTROPIC

ANISOTROPIC. Contains generic enum type fields.

enumerator CTL_3D_FEATURE_CMAA

CMAA. Contains generic enum type fields.

enumerator CTL_3D_FEATURE_TEXTURE_FILTERING_QUALITY

Texture filtering quality. Contains generic enum type fields.

enumerator CTL_3D_FEATURE_ADAPTIVE_TESSELLATION

Adaptive tessellation quality. Contains generic integer type fields.

enumerator CTL_3D_FEATURE_SHARPENING_FILTER

Sharpening Filter. Contains generic integer type fields.

enumerator CTL_3D_FEATURE_MSAA

Msaa. Contains generic enum type fields.

enumerator CTL_3D_FEATURE_GAMING_FLIP_MODES

Various Gaming flip modes like speed frame, smooth sync & force async flip. Contains generic enum type fields.

enumerator CTL_3D_FEATURE_ADAPTIVE_SYNC_PLUS

Adaptive sync plus. Refer custom field ctl_adaptivesync_caps_t & ctl_adaptivesync_getset_t.

enumerator CTL_3D_FEATURE_APP_PROFILES

Game Compatibility & Performance Profiles. Refer custom field ctl_3d_app_profiles_caps_t & ctl_3d_app_profiles_t.

enumerator CTL_3D_FEATURE_APP_PROFILE_DETAILS

Game Profile Customization. Refer custom field ctl_3d_tier_details_t.

enumerator CTL_3D_FEATURE_EMULATED_TYPED_64BIT_ATOMICS

Emulated Typed 64bit Atomics support in DG2.

enumerator CTL_3D_FEATURE_VRR_WINDOWED_BLT

VRR windowed blt. Control VRR for windowed mode game.

enumerator CTL_3D_FEATURE_GLOBAL_OR_PER_APP

Set global settings or per application settings.

enumerator CTL_3D_FEATURE_MAX

ctl_3d_feature_misc_flags_t

enum ctl_3d_feature_misc_flag_t

Values:

enumerator CTL_3D_FEATURE_MISC_FLAG_DX11

Feature supported on DX11.

enumerator CTL_3D_FEATURE_MISC_FLAG_DX12

Feature supported on DX12.

enumerator CTL_3D_FEATURE_MISC_FLAG_VULKAN

Feature supported on VULKAN.

enumerator CTL_3D_FEATURE_MISC_FLAG_LIVE_CHANGE

User can change feature live without restarting the game.

enumerator CTL_3D_FEATURE_MISC_FLAG_MAX

ctl_3d_anisotropic_types_t

enum ctl_3d_anisotropic_types_t

Anisotropic values possible.

Values:

enumerator CTL_3D_ANISOTROPIC_TYPES_APP_CHOICE

Application choice.

enumerator CTL_3D_ANISOTROPIC_TYPES_2X

2X

enumerator CTL_3D_ANISOTROPIC_TYPES_4X

4X

enumerator CTL_3D_ANISOTROPIC_TYPES_8X

8X

enumerator CTL_3D_ANISOTROPIC_TYPES_16X

16X

enumerator CTL_3D_ANISOTROPIC_TYPES_MAX

ctl_3d_texture_filtering_quality_types_t

enum ctl_3d_texture_filtering_quality_types_t

Texture filtering values possible.

Values:

enumerator CTL_3D_TEXTURE_FILTERING_QUALITY_TYPES_PERFORMANCE

Performance.

enumerator CTL_3D_TEXTURE_FILTERING_QUALITY_TYPES_BALANCED

Balanced.

enumerator CTL_3D_TEXTURE_FILTERING_QUALITY_TYPES_QUALITY

Quality.

enumerator CTL_3D_TEXTURE_FILTERING_QUALITY_TYPES_MAX

ctl_3d_frame_pacing_types_t

enum ctl_3d_frame_pacing_types_t

Frame pacing values possible.

Values:

enumerator CTL_3D_FRAME_PACING_TYPES_DISABLE

Disable.

enumerator CTL_3D_FRAME_PACING_TYPES_ENABLE_MODE_FRAME_NO_SMOOTHENING

Enable with scheduler without any frame smoothening.

enumerator CTL_3D_FRAME_PACING_TYPES_ENABLE_MODE_FRAME_MAX_SMOOTHENING

Enable with scheduler with maximum smoothness.

enumerator CTL_3D_FRAME_PACING_TYPES_ENABLE_MODE_COMPETITIVE_GAMING

Enable with scheduler in competitive gaming mode.

enumerator CTL_3D_FRAME_PACING_TYPES_MAX

ctl_3d_endurance_gaming_control_t

enum ctl_3d_endurance_gaming_control_t

Endurance Gaming control possible.

Values:

enumerator CTL_3D_ENDURANCE_GAMING_CONTROL_TURN_OFF

Endurance Gaming disable.

enumerator CTL_3D_ENDURANCE_GAMING_CONTROL_TURN_ON

Endurance Gaming enable.

enumerator CTL_3D_ENDURANCE_GAMING_CONTROL_AUTO

Endurance Gaming auto.

enumerator CTL_3D_ENDURANCE_GAMING_CONTROL_MAX

ctl_3d_endurance_gaming_mode_t

enum ctl_3d_endurance_gaming_mode_t

Endurance Gaming modes possible.

Values:

enumerator CTL_3D_ENDURANCE_GAMING_MODE_BETTER_PERFORMANCE

Endurance Gaming better performance mode.

enumerator CTL_3D_ENDURANCE_GAMING_MODE_BALANCED

Endurance Gaming balanced mode.

enumerator CTL_3D_ENDURANCE_GAMING_MODE_MAXIMUM_BATTERY

Endurance Gaming maximum battery mode.

enumerator CTL_3D_ENDURANCE_GAMING_MODE_MAX

ctl_3d_cmaa_types_t

enum ctl_3d_cmaa_types_t

Cmaa values possible.

Values:

enumerator CTL_3D_CMAA_TYPES_TURN_OFF

Turn off.

enumerator CTL_3D_CMAA_TYPES_OVERRIDE_MSAA

Override MSAA.

enumerator CTL_3D_CMAA_TYPES_ENHANCE_APPLICATION

Enhance Application.

enumerator CTL_3D_CMAA_TYPES_MAX

ctl_3d_adaptive_tessellation_types_t

enum ctl_3d_adaptive_tessellation_types_t

Adaptive Tessellation.

Values:

enumerator CTL_3D_ADAPTIVE_TESSELLATION_TYPES_TURN_OFF

Turn off.

enumerator CTL_3D_ADAPTIVE_TESSELLATION_TYPES_TURN_ON

Turn on.

enumerator CTL_3D_ADAPTIVE_TESSELLATION_TYPES_MAX

ctl_3d_sharpening_filter_types_t

enum ctl_3d_sharpening_filter_types_t

Sharpening filter values possible.

Values:

enumerator CTL_3D_SHARPENING_FILTER_TYPES_TURN_OFF

Turn off.

enumerator CTL_3D_SHARPENING_FILTER_TYPES_TURN_ON

Turn on.

enumerator CTL_3D_SHARPENING_FILTER_TYPES_MAX

ctl_3d_msaa_types_t

enum ctl_3d_msaa_types_t

MSAA values possible.

Values:

enumerator CTL_3D_MSAA_TYPES_APP_CHOICE

Application choice.

enumerator CTL_3D_MSAA_TYPES_DISABLED

Disabled. MSAA count 1.

enumerator CTL_3D_MSAA_TYPES_2X

2X

enumerator CTL_3D_MSAA_TYPES_4X

4X

enumerator CTL_3D_MSAA_TYPES_8X

8X

enumerator CTL_3D_MSAA_TYPES_16X

16X

enumerator CTL_3D_MSAA_TYPES_MAX

ctl_gaming_flip_mode_flags_t

enum ctl_gaming_flip_mode_flag_t

Values:

enumerator CTL_GAMING_FLIP_MODE_FLAG_APPLICATION_DEFAULT

Application Default.

enumerator CTL_GAMING_FLIP_MODE_FLAG_VSYNC_OFF

Convert all sync flips to async on the next possible scanline.

enumerator CTL_GAMING_FLIP_MODE_FLAG_VSYNC_ON

Convert all async flips to sync flips.

enumerator CTL_GAMING_FLIP_MODE_FLAG_SMOOTH_SYNC

Reduce tearing effect with async flips.

enumerator CTL_GAMING_FLIP_MODE_FLAG_SPEED_FRAME

Application unaware triple buffering.

enumerator CTL_GAMING_FLIP_MODE_FLAG_CAPPED_FPS

Limit the game FPS to panel RR.

enumerator CTL_GAMING_FLIP_MODE_FLAG_MAX

ctl_3d_tier_type_flags_t

enum ctl_3d_tier_type_flag_t

Values:

enumerator CTL_3D_TIER_TYPE_FLAG_COMPATIBILITY

Compatibility Tier.

enumerator CTL_3D_TIER_TYPE_FLAG_PERFORMANCE

Performance Tier.

enumerator CTL_3D_TIER_TYPE_FLAG_MAX

ctl_3d_tier_profile_flags_t

enum ctl_3d_tier_profile_flag_t

Values:

enumerator CTL_3D_TIER_PROFILE_FLAG_TIER_1

Tier 1 Profile.

enumerator CTL_3D_TIER_PROFILE_FLAG_TIER_2

Tier 2 Profile.

enumerator CTL_3D_TIER_PROFILE_FLAG_TIER_RECOMMENDED

Recommended Tier Profile. If set other tier values shouldn’t be set.

enumerator CTL_3D_TIER_PROFILE_FLAG_MAX

ctl_emulated_typed_64bit_atomics_types_t

enum ctl_emulated_typed_64bit_atomics_types_t

Emulated Typed 64bit Atomics.

Values:

enumerator CTL_EMULATED_TYPED_64BIT_ATOMICS_TYPES_DEFAULT

Default settings is based on workload/driver decision.

enumerator CTL_EMULATED_TYPED_64BIT_ATOMICS_TYPES_TURN_ON

Force Turn on.

enumerator CTL_EMULATED_TYPED_64BIT_ATOMICS_TYPES_TURN_OFF

Force Turn off.

enumerator CTL_EMULATED_TYPED_64BIT_ATOMICS_TYPES_MAX

ctl_3d_vrr_windowed_blt_reserved_t

enum ctl_3d_vrr_windowed_blt_reserved_t

VRR windowed BLT control possible. Reserved functionality.

Values:

enumerator CTL_3D_VRR_WINDOWED_BLT_RESERVED_AUTO

VRR windowed BLT auto.

enumerator CTL_3D_VRR_WINDOWED_BLT_RESERVED_TURN_ON

VRR windowed BLT enable.

enumerator CTL_3D_VRR_WINDOWED_BLT_RESERVED_TURN_OFF

VRR windowed BLT disable.

enumerator CTL_3D_VRR_WINDOWED_BLT_RESERVED_MAX

ctl_3d_global_or_per_app_types_t

enum ctl_3d_global_or_per_app_types_t

Global or per app values possible.

Values:

enumerator CTL_3D_GLOBAL_OR_PER_APP_TYPES_NONE

none

enumerator CTL_3D_GLOBAL_OR_PER_APP_TYPES_PER_APP

Opt for per app settings.

enumerator CTL_3D_GLOBAL_OR_PER_APP_TYPES_GLOBAL

Opt for global settings.

enumerator CTL_3D_GLOBAL_OR_PER_APP_TYPES_MAX

_3d Structures

ctl_endurance_gaming_caps_t

struct ctl_endurance_gaming_caps_t

Endurance Gaming caps.

Public Members

ctl_property_info_enum_t EGControlCaps

[out] Endurance Gaming control capability

ctl_property_info_enum_t EGModeCaps

[out] Endurance Gaming mode capability

ctl_endurance_gaming_t

struct ctl_endurance_gaming_t

Endurance Gaming Get/Set.

Public Members

ctl_3d_endurance_gaming_control_t EGControl

[in,out] Endurance Gaming control - Off/On/Auto

ctl_3d_endurance_gaming_mode_t EGMode

[in,out] Endurance Gaming mode - Better Performance/Balanced/Maximum Battery

ctl_endurance_gaming2_t

struct ctl_endurance_gaming2_t

Endurance Gaming version2 Get/Set.

Public Members

ctl_3d_endurance_gaming_control_t EGControl

[in,out] Endurance Gaming control - Off/On/Auto

ctl_3d_endurance_gaming_mode_t EGMode

[in,out] Endurance Gaming mode - Better Performance/Balanced/Maximum Battery

bool IsFPRequired

[out] Is frame pacing required, dynamic state

double TargetFPS

[out] Target FPS for frame pacing

double RefreshRate

[out] Refresh rate used to calculate target fps

uint32_t Reserved[4]

[out] Reserved fields

ctl_adaptivesync_caps_t

struct ctl_adaptivesync_caps_t

Adaptive sync plus caps.

Public Members

bool AdaptiveBalanceSupported

[out] Adaptive balance supported

ctl_property_info_float_t AdaptiveBalanceStrengthCaps

[out] Strength of adaptive balance algorithm - min/max/steps/default

ctl_adaptivesync_getset_t

struct ctl_adaptivesync_getset_t

Adaptive sync plus.

Public Members

bool AdaptiveSync

[in,out] Adaptive sync. Note that in Windows, OS controls state of adaptive sync and which game gets the feature using it’s own policies

bool AdaptiveBalance

[in,out] Adaptive balance

bool AllowAsyncForHighFPS

[in,out] Allow async flips when FPS is higher than max refresh rate of the panel

float AdaptiveBalanceStrength

[in,out] Adaptive balance strength

ctl_3d_app_profiles_caps_t

struct ctl_3d_app_profiles_caps_t

Game Profile Capabilities. Typically these remain the same across games.

Public Members

ctl_3d_tier_type_flags_t SupportedTierTypes

[out] Tier of interest for capability check

uint64_t Reserved

[in,out] Reserved for future

ctl_3d_app_profiles_t

struct ctl_3d_app_profiles_t

Game Profile tiers.

Public Members

ctl_3d_tier_type_flag_t TierType

[in] Tier type

ctl_3d_tier_profile_flags_t SupportedTierProfiles

[out] Supported tier profiles bitmask

ctl_3d_tier_profile_flags_t DefaultEnabledTierProfiles

[out] Default tiers which driver will enable if there is no user specific setting for global or per application

ctl_3d_tier_profile_flags_t CustomizationSupportedTierProfiles

[out] Tiers supporting customization - reserved for future

ctl_3d_tier_profile_flags_t EnabledTierProfiles

[in,out] Tier profile(s) to be enabled/disabled in the case of a set call. For a get call this will return the currently enabled tiers

ctl_3d_tier_profile_flags_t CustomizationEnabledTierProfiles

[in,out] Tier profile(s) which are customized. Caller shall call ctl_3d_tier_details_t to get specifics if any.

uint64_t Reserved

[in,out] Reserved for future

ctl_3d_tier_details_t

struct ctl_3d_tier_details_t

Game Profile tiers details.

Public Members

ctl_3d_tier_type_flag_t TierType

[in] Tier type

ctl_3d_tier_profile_flag_t TierProfile

[in] Tier profile(s) for get/set details

uint64_t Reserved[4]

[in,out] Reserved for future

ctl_3d_feature_details_t

struct ctl_3d_feature_details_t

3D feature capability details which will have range/supported and default values

Public Members

ctl_3d_feature_t FeatureType

[out] 3D feature type

ctl_property_value_type_t ValueType

[out] Type of value

ctl_property_info_t Value

[out] Union of various type of values for 3D features. For enum types this can be anisotropic/frame pacing etc. This member is valid iff ValueType is not CTL_PROPERTY_VALUE_TYPE_CUSTOM

int32_t CustomValueSize

[in] CustomValue buffer size. Typically for a feature requiring custom struct, caller will know of it upfront and can provide the right size info here

void *pCustomValue

[in,out] Pointer to a custom structure. Caller should allocate this buffer with known custom feature structure size. This member is valid iff ValueType is CTL_PROPERTY_VALUE_TYPE_CUSTOM

bool PerAppSupport

[out] Flag indicating whether the feature is supported per application or not

int64_t ConflictingFeatures

[out] Mask of ctl_3d_feature_t values which can’t be enabled along with the mentioned FeatureType. If this is 0, it meant the feature doesn’t have any conflicts with other features

int16_t FeatureMiscSupport

[out] 3D Feature Miscellaneous support flags. This will be based on ctl_3d_feature_misc_flags_t

int16_t Reserved

[out] Reserved

int16_t Reserved1

[out] Reserved

int16_t Reserved2

[out] Reserved

ctl_3d_feature_caps_t

struct ctl_3d_feature_caps_t

3D feature which are controllable

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint32_t NumSupportedFeatures

[in,out] Number of elements in supported features array

ctl_3d_feature_details_t *pFeatureDetails

[in,out] Array of feature details

ctl_3d_feature_getset_t

struct ctl_3d_feature_getset_t

3D feature for get/set

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_3d_feature_t FeatureType

[in] Features interested in

char *ApplicationName

[in] Application name for which the property type is applicable. If this is an empty string then this will get/set global settings for the given adapter. Note that this should contain only the name of the application and not the system specific path

int8_t ApplicationNameLength

[in] Length of ApplicationName string

bool bSet

[in] Set this if it’s a set call

ctl_property_value_type_t ValueType

[in] Type of value. Caller has to ensure it provides the right value type which decides how one read the union structure below

ctl_property_t Value

[in,out] Union of various type of values for 3D features. For enum types this can be anisotropic/frame pacing etc. This member is valid iff ValueType is not CTL_PROPERTY_VALUE_TYPE_CUSTOM

int32_t CustomValueSize

[in] CustomValue buffer size. Typically for a feature requiring custom struct, caller will know of it upfront and cn provide the right size info here

void *pCustomValue

[in,out] Pointer to a custom structure. Caller should allocate this buffer with known custom feature structure size. This member is valid iff ValueType is CTL_PROPERTY_VALUE_TYPE_CUSTOM

ctl_kmd_load_features_t

struct ctl_kmd_load_features_t

Load KMD gaming features. Restricted function.

Public Members

ctl_application_id_t ReservedFuncID

[in] Unique ID for reserved/special function

bool bLoad

[in] If set, will load known KMD features. If not set will reset known KMD features to default

int64_t SubsetFeatureMask

[in,out] Mask indicating the subset of KMD features within ctl_3d_feature_t values. Default of 0 indicate all KMD features

char *ApplicationName

[in] Application name for which the KMD properties are loaded for. If this is an empty string then this will load global settings for the given adapter. Note that this should contain only the name of the application and not the system specific path

int8_t ApplicationNameLength

[in] Length of ApplicationName string

int8_t CallerComponent

[in] Caller component

int64_t Reserved[4]

[in] Reserved field

Display

Display Functions

ctlCheckDriverVersion

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlCheckDriverVersion(ctl_device_adapter_handle_t hDeviceAdapter, ctl_version_info_t version_info)

Check Driver version.

  • The application checks driver version

Parameters:
  • hDeviceAdapter – [in][release] handle to control device adapter

  • version_info – [in][release] Driver version info

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDeviceAdapter

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlEnumerateDevices

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumerateDevices(ctl_api_handle_t hAPIHandle, uint32_t *pCount, ctl_device_adapter_handle_t *phDevices)

Enumerate devices.

  • The application enumerates all device adapters in the system

Parameters:
  • hAPIHandle – [in][release] Applications should pass the Control API handle returned by the CtlInit function

  • pCount – [in,out][release] pointer to the number of device instances. If count is zero, then the api will update the value with the total number of drivers available. If count is non-zero, then the api will only retrieve the number of drivers. If count is larger than the number of drivers available, then the api will update the value with the correct number of drivers available.

  • phDevices – [in,out][optional][release][range(0, *pCount)] array of driver instance handles

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hAPIHandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pCount

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlEnumerateDisplayOutputs

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumerateDisplayOutputs(ctl_device_adapter_handle_t hDeviceAdapter, uint32_t *pCount, ctl_display_output_handle_t *phDisplayOutputs)

Enumerate display outputs.

  • Enumerates display output capabilities

Parameters:
  • hDeviceAdapter – [in][release] handle to control device adapter

  • pCount – [in,out][release] pointer to the number of display output instances. If count is zero, then the api will update the value with the total number of outputs available. If count is non-zero, then the api will only retrieve the number of outputs. If count is larger than the number of drivers available, then the api will update the value with the correct number of drivers available.

  • phDisplayOutputs – [in,out][optional][release][range(0, *pCount)] array of display output instance handles

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDeviceAdapter

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pCount

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlEnumerateI2CPinPairs

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumerateI2CPinPairs(ctl_device_adapter_handle_t hDeviceAdapter, uint32_t *pCount, ctl_i2c_pin_pair_handle_t *phI2cPinPairs)

Enumerate I2C Pin Pairs.

  • Returns available list of I2C Pin-Pairs on a requested adapter

Parameters:
  • hDeviceAdapter – [in][release] handle to device adapter

  • pCount – [in,out][release] pointer to the number of i2c pin-pair instances. If count is zero, then the api will update the value with the total number of i2c pin-pair instances available. If count is non-zero and matches the avaialble number of pin-pairs, then the api will only return the avaialble number of i2c pin-pair instances in phI2cPinPairs.

  • phI2cPinPairs – [out][optional][release][range(0, *pCount)] array of i2c pin pair instance handles. Need to be allocated by Caller when supplying the *pCount > 0. If Count is not equal to actual number of i2c pin-pair instances, it will return CTL_RESULT_ERROR_INVALID_SIZE.

Returns:

ctlGetDeviceProperties

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetDeviceProperties(ctl_device_adapter_handle_t hDAhandle, ctl_device_adapter_properties_t *pProperties)

Get Device Properties.

  • The application gets device properties

Parameters:
  • hDAhandle – [in][release] Handle to control device adapter

  • pProperties – [in,out][release] Query result for device properties

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDAhandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pProperties

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetDisplayProperties

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetDisplayProperties(ctl_display_output_handle_t hDisplayOutput, ctl_display_properties_t *pProperties)

Get Display Properties.

  • The application gets display properties

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pProperties – [in,out][release] Query result for display properties

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pProperties

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetAdaperDisplayEncoderProperties

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetAdaperDisplayEncoderProperties(ctl_display_output_handle_t hDisplayOutput, ctl_adapter_display_encoder_properties_t *pProperties)

Get Adapter Display encoder Properties.

  • The application gets the graphic adapters display encoder properties

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pProperties – [in,out][release] Query result for adapter display encoder properties

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pProperties

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetZeDevice

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetZeDevice(ctl_device_adapter_handle_t hDAhandle, void *pZeDevice, void **hInstance)

Get Level0 Device handle.

  • The application gets OneAPI Level0 Device handles

Parameters:
  • hDAhandle – [in][release] Handle to display adapter

  • pZeDevice – [out][release] ze_device handle

  • hInstance – [out][release] Module instance which caller can use to get export functions directly

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDAhandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pZeDevice

    • nullptr == hInstance

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetSharpnessCaps

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSharpnessCaps(ctl_display_output_handle_t hDisplayOutput, ctl_sharpness_caps_t *pSharpnessCaps)

Get Sharpness capability.

  • Returns sharpness capability

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pSharpnessCaps – [in,out][release] Query result for sharpness capability

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pSharpnessCaps

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetCurrentSharpness

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetCurrentSharpness(ctl_display_output_handle_t hDisplayOutput, ctl_sharpness_settings_t *pSharpnessSettings)

Get Sharpness setting.

  • Returns current sharpness settings

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pSharpnessSettings – [in,out][release] Query result for sharpness current settings

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pSharpnessSettings

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlSetCurrentSharpness

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetCurrentSharpness(ctl_display_output_handle_t hDisplayOutput, ctl_sharpness_settings_t *pSharpnessSettings)

Set Sharpness setting.

  • Set current sharpness settings

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pSharpnessSettings – [in][release] Set sharpness current settings

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pSharpnessSettings

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlI2CAccess

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlI2CAccess(ctl_display_output_handle_t hDisplayOutput, ctl_i2c_access_args_t *pI2cAccessArgs)

I2C Access.

  • Interface to access I2C using display handle as identifier.

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pI2cAccessArgs – [in,out] I2c access arguments

Returns:

ctlI2CAccessOnPinPair

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlI2CAccessOnPinPair(ctl_i2c_pin_pair_handle_t hI2cPinPair, ctl_i2c_access_pinpair_args_t *pI2cAccessArgs)

I2C Access On Pin Pair.

  • Interface to access I2C using pin-pair handle as identifier.

Parameters:
  • hI2cPinPair – [in] Handle to I2C pin pair.

  • pI2cAccessArgs – [in,out] I2c access arguments.

Returns:

ctlAUXAccess

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlAUXAccess(ctl_display_output_handle_t hDisplayOutput, ctl_aux_access_args_t *pAuxAccessArgs)

Aux Access.

  • The application does Aux access, PSR needs to be disabled for AUX call.

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pAuxAccessArgs – [in,out] Aux access arguments

Returns:

ctlGetPowerOptimizationCaps

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetPowerOptimizationCaps(ctl_display_output_handle_t hDisplayOutput, ctl_power_optimization_caps_t *pPowerOptimizationCaps)

Get Power optimization features.

  • Returns power optimization capabilities

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pPowerOptimizationCaps – [in,out][release] Query result for power optimization features

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pPowerOptimizationCaps

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetPowerOptimizationSetting

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetPowerOptimizationSetting(ctl_display_output_handle_t hDisplayOutput, ctl_power_optimization_settings_t *pPowerOptimizationSettings)

Get Power optimization setting.

  • Returns power optimization setting for a specific feature

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pPowerOptimizationSettings – [in,out][release] Power optimization data to be fetched

Returns:

ctlSetPowerOptimizationSetting

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetPowerOptimizationSetting(ctl_display_output_handle_t hDisplayOutput, ctl_power_optimization_settings_t *pPowerOptimizationSettings)

Set Power optimization setting.

  • Set power optimization setting for a specific feature

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pPowerOptimizationSettings – [in][release] Power optimization data to be applied

Returns:

ctlSetBrightnessSetting

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetBrightnessSetting(ctl_display_output_handle_t hDisplayOutput, ctl_set_brightness_t *pSetBrightnessSetting)

Set Brightness on companion display.

  • Set Brightness for a target display. Currently support is only for companion display.

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pSetBrightnessSetting – [in][release] Brightness settings to be applied

Returns:

ctlGetBrightnessSetting

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetBrightnessSetting(ctl_display_output_handle_t hDisplayOutput, ctl_get_brightness_t *pGetBrightnessSetting)

Get Brightness setting.

  • Get Brightness for a target display. Currently support is only for companion display.

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pGetBrightnessSetting – [out][release] Brightness settings data to be fetched

Returns:

ctlPixelTransformationGetConfig

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPixelTransformationGetConfig(ctl_display_output_handle_t hDisplayOutput, ctl_pixtx_pipe_get_config_t *pPixTxGetConfigArgs)

Pixel transformation get pipe configuration.

  • The application does pixel transformation get pipe configuration

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pPixTxGetConfigArgs – [in,out] Pixel transformation get pipe configiguration arguments

Returns:

ctlPixelTransformationSetConfig

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPixelTransformationSetConfig(ctl_display_output_handle_t hDisplayOutput, ctl_pixtx_pipe_set_config_t *pPixTxSetConfigArgs)

Pixel transformation set pipe configuration.

  • The application does pixel transformation set pipe configuration

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pPixTxSetConfigArgs – [in,out] Pixel transformation set pipe configiguration arguments

Returns:

ctlPanelDescriptorAccess

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPanelDescriptorAccess(ctl_display_output_handle_t hDisplayOutput, ctl_panel_descriptor_access_args_t *pPanelDescriptorAccessArgs)

Panel Descriptor Access.

  • The application does EDID or Display ID access

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pPanelDescriptorAccessArgs – [in,out] Panel descriptor access arguments

Returns:

ctlGetSupportedRetroScalingCapability

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSupportedRetroScalingCapability(ctl_device_adapter_handle_t hDAhandle, ctl_retro_scaling_caps_t *pRetroScalingCaps)

Get Supported Retro Scaling Types.

  • Returns supported retro scaling capabilities

Parameters:
  • hDAhandle – [in][release] Handle to adapter

  • pRetroScalingCaps – [in,out][release] Query result for supported retro scaling types

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDAhandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pRetroScalingCaps

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetSetRetroScaling

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetRetroScaling(ctl_device_adapter_handle_t hDAhandle, ctl_retro_scaling_settings_t *pGetSetRetroScalingType)

Get/Set Retro Scaling.

  • Get or Set the status of retro scaling.This Api will do a physical modeset resulting in flash on the screen

Parameters:
  • hDAhandle – [in][release] Handle to adapter

  • pGetSetRetroScalingType – [in,out][release] Get or Set the retro scaling type

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDAhandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pGetSetRetroScalingType

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetSupportedScalingCapability

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSupportedScalingCapability(ctl_display_output_handle_t hDisplayOutput, ctl_scaling_caps_t *pScalingCaps)

Get Supported Scaling Types.

  • Returns supported scaling capabilities

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pScalingCaps – [in,out][release] Query result for supported scaling types

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pScalingCaps

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetCurrentScaling

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetCurrentScaling(ctl_display_output_handle_t hDisplayOutput, ctl_scaling_settings_t *pGetCurrentScalingType)

Get Current Scaling.

  • Returns current active scaling

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pGetCurrentScalingType – [in,out][release] Query result for active scaling types

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pGetCurrentScalingType

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlSetCurrentScaling

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetCurrentScaling(ctl_display_output_handle_t hDisplayOutput, ctl_scaling_settings_t *pSetScalingType)

Set Scaling Type.

  • Returns current active scaling

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pSetScalingType – [in,out][release] Set scaling types

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pSetScalingType

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetLACEConfig

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetLACEConfig(ctl_display_output_handle_t hDisplayOutput, ctl_lace_config_t *pLaceConfig)

Get LACE Config.

  • Returns current LACE Config

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pLaceConfig – [out]Lace configuration

Returns:

ctlSetLACEConfig

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetLACEConfig(ctl_display_output_handle_t hDisplayOutput, ctl_lace_config_t *pLaceConfig)

Sets LACE Config.

  • Sets LACE Config

Parameters:
  • hDisplayOutput – [in]Handle to display output

  • pLaceConfig – [in]Lace configuration

Returns:

ctlSoftwarePSR

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSoftwarePSR(ctl_display_output_handle_t hDisplayOutput, ctl_sw_psr_settings_t *pSoftwarePsrSetting)

Get Software PSR caps/Set software PSR State.

  • Returns Software PSR status or Sets Software PSR capabilities. This is a reserved capability. By default, software PSR is not supported/will not be enabled, need application to activate it, please contact Intel for activation.

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pSoftwarePsrSetting – [in,out][release] Get Software PSR caps/state or Set Software PSR state

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pSoftwarePsrSetting

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetIntelArcSyncInfoForMonitor

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetIntelArcSyncInfoForMonitor(ctl_display_output_handle_t hDisplayOutput, ctl_intel_arc_sync_monitor_params_t *pIntelArcSyncMonitorParams)

Get Intel Arc Sync information for monitor.

  • Returns Intel Arc Sync information for selected monitor

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pIntelArcSyncMonitorParams – [in,out][release] Intel Arc Sync params for monitor

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pIntelArcSyncMonitorParams

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlEnumerateMuxDevices

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumerateMuxDevices(ctl_api_handle_t hAPIHandle, uint32_t *pCount, ctl_mux_output_handle_t *phMuxDevices)

Enumerate Display MUX Devices on this system across adapters.

  • The application enumerates all MUX devices in the system

Parameters:
  • hAPIHandle – [in][release] Applications should pass the Control API handle returned by the CtlInit function

  • pCount – [in,out][release] pointer to the number of MUX device instances. If input count is zero, then the api will update the value with the total number of MUX devices available and return the Count value. If input count is non-zero, then the api will only retrieve the number of MUX Devices. If count is larger than the number of MUX devices available, then the api will update the value with the correct number of MUX devices available.

  • phMuxDevices – [out][range(0, *pCount)] array of MUX device instance handles

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hAPIHandle

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pCount

    • nullptr == phMuxDevices

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetMuxProperties

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetMuxProperties(ctl_mux_output_handle_t hMuxDevice, ctl_mux_properties_t *pMuxProperties)

Get Display Mux properties.

  • Get the propeties of the Mux device

Parameters:
  • hMuxDevice – [in] MUX device instance handle

  • pMuxProperties – [in,out] MUX device properties

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hMuxDevice

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pMuxProperties

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlSwitchMux

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSwitchMux(ctl_mux_output_handle_t hMuxDevice, ctl_display_output_handle_t hInactiveDisplayOutput)

Switch Mux output.

  • Switches the MUX output

Parameters:
  • hMuxDevice – [in] MUX device instance handle

  • hInactiveDisplayOutput – [out] Input selection for this MUX, which if active will drive the output of this MUX device. This should be one of the display output handles reported under this MUX device’s properties.

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hMuxDevice

    • nullptr == hInactiveDisplayOutput

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlGetIntelArcSyncProfile

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetIntelArcSyncProfile(ctl_display_output_handle_t hDisplayOutput, ctl_intel_arc_sync_profile_params_t *pIntelArcSyncProfileParams)

Get Intel Arc Sync profile.

  • Returns Intel Arc Sync profile for selected monitor

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pIntelArcSyncProfileParams – [in,out][release] Intel Arc Sync params for monitor

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pIntelArcSyncProfileParams

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlSetIntelArcSyncProfile

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetIntelArcSyncProfile(ctl_display_output_handle_t hDisplayOutput, ctl_intel_arc_sync_profile_params_t *pIntelArcSyncProfileParams)

Set Intel Arc Sync profile.

  • Sets Intel Arc Sync profile for selected monitor. In a mux situation, this API should be called for all display IDs associated with a physical display.

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pIntelArcSyncProfileParams – [in][release] Intel Arc Sync params for monitor

Returns:

  • CTL_RESULT_SUCCESS

  • CTL_RESULT_ERROR_UNINITIALIZED

  • CTL_RESULT_ERROR_DEVICE_LOST

  • CTL_RESULT_ERROR_INVALID_NULL_HANDLE

    • nullptr == hDisplayOutput

  • CTL_RESULT_ERROR_INVALID_NULL_POINTER

    • nullptr == pIntelArcSyncProfileParams

  • CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”

ctlEdidManagement

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEdidManagement(ctl_display_output_handle_t hDisplayOutput, ctl_edid_management_args_t *pEdidManagementArgs)

EDID Management allows managing an output’s EDID or Plugged Status.

  • To manage output’s EDID or Display ID. Supports native DP SST and HDMI Display types.

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pEdidManagementArgs – [in,out] EDID management arguments

Returns:

ctlGetSetCustomMode

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetCustomMode(ctl_display_output_handle_t hDisplayOutput, ctl_get_set_custom_mode_args_t *pCustomModeArgs)

Get/Set Custom mode.

  • To get or set custom mode.

  • Add custom source mode operation supports only single mode additon at a time.

  • Remove custom source mode operation supports single or multiple mode removal at a time.

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pCustomModeArgs – [in,out] Custom mode arguments

Returns:

ctlGetSetCombinedDisplay

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetCombinedDisplay(ctl_device_adapter_handle_t hDeviceAdapter, ctl_combined_display_args_t *pCombinedDisplayArgs)

Get/Set Combined Display.

  • To get or set combined display with given Child Targets on a Single GPU or across identical GPUs. Multi-GPU(MGPU) combined display is reserved i.e. it is not public and requires special application GUID. MGPU Combined Display will get activated or deactivated in next boot. MGPU scenario will internally link the associated adapters via Linked Display Adapter Call, with supplied hDeviceAdapter being the LDA Primary. If Genlock and enabled in Driver registry and supported by given Display Config, MGPU Combined Display will enable MGPU Genlock with supplied hDeviceAdapter being the Genlock Primary Adapter and the First Child Display being the Primary Display.

Parameters:
  • hDeviceAdapter – [in][release] Handle to control device adapter

  • pCombinedDisplayArgs – [in,out] Setup and get combined display arguments

Returns:

ctlGetSetDisplayGenlock

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetDisplayGenlock(ctl_device_adapter_handle_t *hDeviceAdapter, ctl_genlock_args_t *pGenlockArgs, uint32_t AdapterCount, ctl_device_adapter_handle_t *hFailureDeviceAdapter)

Get/Set Display Genlock.

  • To get or set Display Genlock.

Parameters:
  • hDeviceAdapter – [in][release] Handle to control device adapter

  • pGenlockArgs – [in,out] Display Genlock operation and information

  • AdapterCount – [in] Number of device adapters

  • hFailureDeviceAdapter – [out] Handle to address the failure device adapter in an error case

Returns:

ctlGetVblankTimestamp

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetVblankTimestamp(ctl_display_output_handle_t hDisplayOutput, ctl_vblank_ts_args_t *pVblankTSArgs)

Get Vblank Timestamp.

  • To get a list of vblank timestamps in microseconds for each child target of a display.

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pVblankTSArgs – [out] Get vblank timestamp arguments

Returns:

ctlLinkDisplayAdapters

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlLinkDisplayAdapters(ctl_device_adapter_handle_t hPrimaryAdapter, ctl_lda_args_t *pLdaArgs)

Link Display Adapters.

  • To Link Display Adapters.

Parameters:
  • hPrimaryAdapter – [in][release] Handle to Primary adapter in LDA chain

  • pLdaArgs – [in] Link Display Adapters Arguments

Returns:

ctlUnlinkDisplayAdapters

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlUnlinkDisplayAdapters(ctl_device_adapter_handle_t hPrimaryAdapter)

Unlink Display Adapters.

  • To Unlink Display Adapters

Parameters:

hPrimaryAdapter – [in][release] Handle to Primary adapter in LDA chain

Returns:

ctlGetLinkedDisplayAdapters

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetLinkedDisplayAdapters(ctl_device_adapter_handle_t hPrimaryAdapter, ctl_lda_args_t *pLdaArgs)

Get Linked Display Adapters.

  • To return list of Linked Display Adapters.

Parameters:
  • hPrimaryAdapter – [in][release] Handle to Primary adapter in LDA chain

  • pLdaArgs – [out] Link Display Adapters Arguments

Returns:

ctlGetSetDynamicContrastEnhancement

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetDynamicContrastEnhancement(ctl_display_output_handle_t hDisplayOutput, ctl_dce_args_t *pDceArgs)

Get/Set Dynamic Contrast Enhancement.

  • To get the DCE feature status and, if feature is enabled, returns the current histogram, or to set the brightness at the phase-in speed

Parameters:
  • hDisplayOutput – [in] Handle to display output

  • pDceArgs – [in,out] Dynamic Contrast Enhancement arguments

Returns:

ctlGetSetWireFormat

CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetWireFormat(ctl_display_output_handle_t hDisplayOutput, ctl_get_set_wire_format_config_t *pGetSetWireFormatSetting)

Get/Set Color Format and Color Depth.

  • Get and Set the Color Format and Color Depth of a target

Parameters:
  • hDisplayOutput – [in][release] Handle to display output

  • pGetSetWireFormatSetting – [in][release] Get/Set Wire Format settings to be fetched/applied

Returns:

Display Enums

ctl_display_output_types_t

enum ctl_display_output_types_t

Various display types.

Values:

enumerator CTL_DISPLAY_OUTPUT_TYPES_INVALID

Invalid.

enumerator CTL_DISPLAY_OUTPUT_TYPES_DISPLAYPORT

DisplayPort.

enumerator CTL_DISPLAY_OUTPUT_TYPES_HDMI

HDMI.

enumerator CTL_DISPLAY_OUTPUT_TYPES_DVI

DVI.

enumerator CTL_DISPLAY_OUTPUT_TYPES_MIPI

MIPI.

enumerator CTL_DISPLAY_OUTPUT_TYPES_CRT

CRT.

enumerator CTL_DISPLAY_OUTPUT_TYPES_MAX

ctl_output_bpc_flags_t

enum ctl_output_bpc_flag_t

Values:

enumerator CTL_OUTPUT_BPC_FLAG_6BPC

[out] Is 6bpc supported

enumerator CTL_OUTPUT_BPC_FLAG_8BPC

[out] Is 8bpc supported

enumerator CTL_OUTPUT_BPC_FLAG_10BPC

[out] Is 10bpc supported

enumerator CTL_OUTPUT_BPC_FLAG_12BPC

[out] Is 12bpc supported

enumerator CTL_OUTPUT_BPC_FLAG_MAX

ctl_std_display_feature_flags_t

enum ctl_std_display_feature_flag_t

Values:

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_HDCP

[out] Is HDCP supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_HD_AUDIO

[out] Is HD Audio supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_PSR

[out] Is VESA PSR supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_ADAPTIVESYNC_VRR

[out] Is VESA Adaptive Sync or HDMI VRR supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_VESA_COMPRESSION

[out] Is display compression (VESA DSC) supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_HDR

[out] Is HDR supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_HDMI_QMS

[out] Is HDMI QMS supported

enumerator CTL_STD_DISPLAY_FEATURE_FLAG_MAX

ctl_intel_display_feature_flags_t

enum ctl_intel_display_feature_flag_t

Values:

enumerator CTL_INTEL_DISPLAY_FEATURE_FLAG_DPST

[out] Is DPST supported

enumerator CTL_INTEL_DISPLAY_FEATURE_FLAG_LACE

[out] Is LACE supported

enumerator CTL_INTEL_DISPLAY_FEATURE_FLAG_DRRS

[out] Is DRRS supported

enumerator CTL_INTEL_DISPLAY_FEATURE_FLAG_MAX

ctl_attached_display_mux_type_t

enum ctl_attached_display_mux_type_t

Attached Display Mux Type.

Values:

enumerator CTL_ATTACHED_DISPLAY_MUX_TYPE_NATIVE

[out] Native DP / HDMI

enumerator CTL_ATTACHED_DISPLAY_MUX_TYPE_THUNDERBOLT

[out] Thunderbolt

enumerator CTL_ATTACHED_DISPLAY_MUX_TYPE_TYPE_C

[out] USB Type C

enumerator CTL_ATTACHED_DISPLAY_MUX_TYPE_USB4

[out] USB4

enumerator CTL_ATTACHED_DISPLAY_MUX_TYPE_MAX

ctl_signal_standard_type_t

enum ctl_signal_standard_type_t

Signal Standard.

Values:

enumerator CTL_SIGNAL_STANDARD_TYPE_UNKNOWN

[out] Unknown Signal Standard

enumerator CTL_SIGNAL_STANDARD_TYPE_CUSTOM

[out] Custom added timing

enumerator CTL_SIGNAL_STANDARD_TYPE_DMT

[out] DMT timing

enumerator CTL_SIGNAL_STANDARD_TYPE_GTF

[out] GTF Timing

enumerator CTL_SIGNAL_STANDARD_TYPE_CVT

[out] CVT Timing

enumerator CTL_SIGNAL_STANDARD_TYPE_CTA

[out] CTA Timing

enumerator CTL_SIGNAL_STANDARD_TYPE_MAX

ctl_protocol_converter_location_flags_t

enum ctl_protocol_converter_location_flag_t

Values:

enumerator CTL_PROTOCOL_CONVERTER_LOCATION_FLAG_ONBOARD

[out] OnBoard Protocol Converter

enumerator CTL_PROTOCOL_CONVERTER_LOCATION_FLAG_EXTERNAL

[out] External Dongle

enumerator CTL_PROTOCOL_CONVERTER_LOCATION_FLAG_MAX

ctl_display_config_flags_t

enum ctl_display_config_flag_t

Values:

enumerator CTL_DISPLAY_CONFIG_FLAG_DISPLAY_ACTIVE

[out] DisplayActive 0: InActive 1: Active

enumerator CTL_DISPLAY_CONFIG_FLAG_DISPLAY_ATTACHED

[out] DisplayAttached.This Bit indicates if any dongle/display/hub is attached to the encoder. 0: Not Attached 1: Attached

enumerator CTL_DISPLAY_CONFIG_FLAG_IS_DONGLE_CONNECTED_TO_ENCODER

[out] This BIT will be set if a dongle/hub/onboard protocol converter , is attached to the encoder

enumerator CTL_DISPLAY_CONFIG_FLAG_DITHERING_ENABLED

[out] This BIT will be set if dithering is enabled on the encoder

enumerator CTL_DISPLAY_CONFIG_FLAG_MAX

ctl_encoder_config_flags_t

enum ctl_encoder_config_flag_t

Values:

enumerator CTL_ENCODER_CONFIG_FLAG_INTERNAL_DISPLAY

[out] Internal connection or not

enumerator CTL_ENCODER_CONFIG_FLAG_VESA_TILED_DISPLAY

[out] VESA DisplayID based tiled display which is driven by either multiple physical connections (DisplayPort SST) or virtual streams (DisplayPort MST)

enumerator CTL_ENCODER_CONFIG_FLAG_TYPEC_CAPABLE

[out] This is set if encoder supports type c display

enumerator CTL_ENCODER_CONFIG_FLAG_TBT_CAPABLE

[out] This is set if encoder supports Thunderbolt display

enumerator CTL_ENCODER_CONFIG_FLAG_DITHERING_SUPPORTED

[out] This BIT will be set if encoder supports dithering

enumerator CTL_ENCODER_CONFIG_FLAG_VIRTUAL_DISPLAY

[out] This BIT will be set if this is a virtual display.Hardware based features will not be applicable to this display.For collage display this will be set for the virtual output created by driver. For split display this will be set for the virtual split displays created out of one single physical display

enumerator CTL_ENCODER_CONFIG_FLAG_HIDDEN_DISPLAY

[out] This BIT will be set if display is hidden from OS

enumerator CTL_ENCODER_CONFIG_FLAG_COLLAGE_DISPLAY

[out] This BIT will be set if this is a collage display

enumerator CTL_ENCODER_CONFIG_FLAG_SPLIT_DISPLAY

[out] This BIT will be set if this is a split display

enumerator CTL_ENCODER_CONFIG_FLAG_COMPANION_DISPLAY

[out] This BIT will be set if this is a companion display

enumerator CTL_ENCODER_CONFIG_FLAG_MGPU_COLLAGE_DISPLAY

[out] This BIT will be set if this is a Multi GPU collage display

enumerator CTL_ENCODER_CONFIG_FLAG_MAX

ctl_sharpness_filter_type_flags_t

enum ctl_sharpness_filter_type_flag_t

Values:

enumerator CTL_SHARPNESS_FILTER_TYPE_FLAG_NON_ADAPTIVE

Non-adaptive sharpness.

enumerator CTL_SHARPNESS_FILTER_TYPE_FLAG_ADAPTIVE

Adaptive sharpness.

enumerator CTL_SHARPNESS_FILTER_TYPE_FLAG_MAX

ctl_i2c_flags_t

enum ctl_i2c_flag_t

Values:

enumerator CTL_I2C_FLAG_ATOMICI2C

Force Atomic I2C.

enumerator CTL_I2C_FLAG_1BYTE_INDEX

1-byte Indexed operation. If no Index Size flag set, decided based on Offset Value.

enumerator CTL_I2C_FLAG_2BYTE_INDEX

2-byte Indexed operation. If no Index Size flag set, decided based on Offset Value.

enumerator CTL_I2C_FLAG_4BYTE_INDEX

4-byte Indexed operation. If no Index Size flag set, decided based on Offset Value.

enumerator CTL_I2C_FLAG_SPEED_SLOW

If no Speed Flag is set, defaults to Best Option possible.

enumerator CTL_I2C_FLAG_SPEED_FAST

If no Speed Flag is set, defaults to Best Option possible.

enumerator CTL_I2C_FLAG_SPEED_BIT_BASH

Uses Slower access using SW bit bashing method. If no Speed Flag is set, defaults to Best Option possible.

enumerator CTL_I2C_FLAG_MAX

ctl_i2c_pinpair_flags_t

enum ctl_i2c_pinpair_flag_t

Values:

enumerator CTL_I2C_PINPAIR_FLAG_ATOMICI2C

Force Atomic I2C.

enumerator CTL_I2C_PINPAIR_FLAG_1BYTE_INDEX

1-byte Indexed operation. If no Index Size flag set, decided based on Offset Value.

enumerator CTL_I2C_PINPAIR_FLAG_2BYTE_INDEX

2-byte Indexed operation. If no Index Size flag set, decided based on Offset Value.

enumerator CTL_I2C_PINPAIR_FLAG_4BYTE_INDEX

4-byte Indexed operation. If no Index Size flag set, decided based on Offset Value.

enumerator CTL_I2C_PINPAIR_FLAG_SPEED_SLOW

If no Speed Flag is set, defaults to Best Option possible.

enumerator CTL_I2C_PINPAIR_FLAG_SPEED_FAST

If no Speed Flag is set, defaults to Best Option possible.

enumerator CTL_I2C_PINPAIR_FLAG_SPEED_BIT_BASH

Uses Slower access using SW bit bashing method. If no Speed Flag is set, defaults to Best Option possible.

enumerator CTL_I2C_PINPAIR_FLAG_MAX

ctl_aux_flags_t

enum ctl_aux_flag_t

Values:

enumerator CTL_AUX_FLAG_NATIVE_AUX

For Native AUX operation.

enumerator CTL_AUX_FLAG_I2C_AUX

For I2C AUX operation.

enumerator CTL_AUX_FLAG_I2C_AUX_MOT

For I2C AUX MOT operation.

enumerator CTL_AUX_FLAG_MAX

ctl_power_optimization_flags_t

enum ctl_power_optimization_flag_t

Values:

enumerator CTL_POWER_OPTIMIZATION_FLAG_FBC

Frame buffer compression.

enumerator CTL_POWER_OPTIMIZATION_FLAG_PSR

Panel self refresh.

enumerator CTL_POWER_OPTIMIZATION_FLAG_DPST

Display power saving technology (Panel technology dependent)

enumerator CTL_POWER_OPTIMIZATION_FLAG_LRR

Low refresh rate (LRR/ALRR/UBRR), UBRR is supported only for IGCC and NDA clients. UBZRR and UBLRR both can not be enabled at the same time, only one can be enabled at a given time.

enumerator CTL_POWER_OPTIMIZATION_FLAG_LACE

Lighting Aware Contrast Enhancement.

enumerator CTL_POWER_OPTIMIZATION_FLAG_MAX

ctl_power_optimization_dpst_flags_t

enum ctl_power_optimization_dpst_flag_t

Values:

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_BKLT

Intel DPST with Backlight control.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_PANEL_CABC

Panel TCON specific Content Adaptive Control mechanism.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_OPST

Intel OLED Power Saving Technology.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_ELP

TCON based Edge Luminance Profile.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_EPSM

Extra power saving mode.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_APD

Adaptive Pixel Dimming.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_PIXOPTIX

TCON+ based DPST like solution.

enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_MAX

ctl_power_source_t

enum ctl_power_source_t

Power Source.

Values:

enumerator CTL_POWER_SOURCE_AC

Power Source AC.

enumerator CTL_POWER_SOURCE_DC

Power Source DC.

enumerator CTL_POWER_SOURCE_MAX

ctl_power_optimization_plan_t

enum ctl_power_optimization_plan_t

Power Optimization Plan.

Values:

enumerator CTL_POWER_OPTIMIZATION_PLAN_BALANCED

Balanced mode.

enumerator CTL_POWER_OPTIMIZATION_PLAN_HIGH_PERFORMANCE

High Performance Mode.

enumerator CTL_POWER_OPTIMIZATION_PLAN_POWER_SAVER

Power Saver Mode.

enumerator CTL_POWER_OPTIMIZATION_PLAN_MAX

ctl_power_optimization_lrr_flags_t

enum ctl_power_optimization_lrr_flag_t

Values:

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_LRR10

LRR 1.0.

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_LRR20

LRR 2.0.

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_LRR25

LRR 2.5.

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_ALRR

Autonomous LRR.

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_UBLRR

User based low refresh rate.

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_UBZRR

User based zero refresh rate.

enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_MAX

ctl_pixtx_pipe_set_config_flags_t

enum ctl_pixtx_pipe_set_config_flag_t

Values:

enumerator CTL_PIXTX_PIPE_SET_CONFIG_FLAG_PERSIST_ACROSS_POWER_EVENTS

For maintaining persistance across power events.

enumerator CTL_PIXTX_PIPE_SET_CONFIG_FLAG_MAX

ctl_pixtx_block_type_t

enum ctl_pixtx_block_type_t

Pixel transformation block types.

Values:

enumerator CTL_PIXTX_BLOCK_TYPE_1D_LUT

Block type 1D LUT.

enumerator CTL_PIXTX_BLOCK_TYPE_3D_LUT

Block type 3D LUT.

enumerator CTL_PIXTX_BLOCK_TYPE_3X3_MATRIX

Block type 3x3 matrix.

enumerator CTL_PIXTX_BLOCK_TYPE_3X3_MATRIX_AND_OFFSETS

Block type 3x3 matrix and offsets.

enumerator CTL_PIXTX_BLOCK_TYPE_MAX

ctl_pixtx_lut_sampling_type_t

enum ctl_pixtx_lut_sampling_type_t

Pixel transformation LUT sampling types.

Values:

enumerator CTL_PIXTX_LUT_SAMPLING_TYPE_UNIFORM

Uniform LUT sampling.

enumerator CTL_PIXTX_LUT_SAMPLING_TYPE_NONUNIFORM

Non uniform LUT sampling, Required mainly in HDR mode.

enumerator CTL_PIXTX_LUT_SAMPLING_TYPE_MAX

ctl_pixtx_config_query_type_t

enum ctl_pixtx_config_query_type_t

Configuration query types.

Values:

enumerator CTL_PIXTX_CONFIG_QUERY_TYPE_CAPABILITY

Get complete pixel processing pipeline capability.

enumerator CTL_PIXTX_CONFIG_QUERY_TYPE_CURRENT

Get the configuration set through last set call.

enumerator CTL_PIXTX_CONFIG_QUERY_TYPE_MAX

ctl_pixtx_config_opertaion_type_t

enum ctl_pixtx_config_opertaion_type_t

Configuration operation types.

Values:

enumerator CTL_PIXTX_CONFIG_OPERTAION_TYPE_RESTORE_DEFAULT

Restore block by block or entire pipe line. Use NumBlocks = 0 to restore all.

enumerator CTL_PIXTX_CONFIG_OPERTAION_TYPE_SET_CUSTOM

Custom LUT or matrix can be set thorugh this option.

enumerator CTL_PIXTX_CONFIG_OPERTAION_TYPE_MAX

ctl_pixtx_gamma_encoding_type_t

enum ctl_pixtx_gamma_encoding_type_t

Pixel transformation gamma encoding types.

Values:

enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_SRGB

Gamma encoding SRGB.

enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_REC709

Gamma encoding REC709, Applicable for REC2020 as well.

enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_ST2084

Gamma encoding ST2084.

enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_HLG

Gamma encoding HLG.

enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_LINEAR

Gamma encoding linear.

enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_MAX

ctl_pixtx_color_space_t

enum ctl_pixtx_color_space_t

Pixel transformation color space types.

Values:

enumerator CTL_PIXTX_COLOR_SPACE_REC709

Color space REC709.

enumerator CTL_PIXTX_COLOR_SPACE_REC2020

Color space REC2020.

enumerator CTL_PIXTX_COLOR_SPACE_ADOBE_RGB

Color space AdobeRGB.

enumerator CTL_PIXTX_COLOR_SPACE_P3_D65

Color space P3_D65.

enumerator CTL_PIXTX_COLOR_SPACE_P3_DCI

Color space P3_DCI.

enumerator CTL_PIXTX_COLOR_SPACE_P3_D60

Color space P3_D60.

enumerator CTL_PIXTX_COLOR_SPACE_CUSTOM

Color space custom, Refer ctl_pixtx_color_primaries_t for color primary details.

enumerator CTL_PIXTX_COLOR_SPACE_MAX

ctl_pixtx_color_model_t

enum ctl_pixtx_color_model_t

Pixel transformation color model types.

Values:

enumerator CTL_PIXTX_COLOR_MODEL_RGB_FR

Color model RGB full range.

enumerator CTL_PIXTX_COLOR_MODEL_RGB_LR

Color model RGB limited range.

enumerator CTL_PIXTX_COLOR_MODEL_YCBCR_422_FR

Color model YCBCR 422 full range.

enumerator CTL_PIXTX_COLOR_MODEL_YCBCR_422_LR

Color model YCBCR 422 limited range.

enumerator CTL_PIXTX_COLOR_MODEL_YCBCR_420_FR

Color model YCBCR 420 full range.

enumerator CTL_PIXTX_COLOR_MODEL_YCBCR_420_LR

Color model YCBCR 420 limited range.

enumerator CTL_PIXTX_COLOR_MODEL_YCBCR_444_FR

Color model YCBCR 444 full range.

enumerator CTL_PIXTX_COLOR_MODEL_YCBCR_444_LR

Color model YCBCR 444 limited range.

enumerator CTL_PIXTX_COLOR_MODEL_MAX

ctl_retro_scaling_type_flags_t

enum ctl_retro_scaling_type_flag_t

Values:

enumerator CTL_RETRO_SCALING_TYPE_FLAG_INTEGER

Integer Scaling.

enumerator CTL_RETRO_SCALING_TYPE_FLAG_NEAREST_NEIGHBOUR

Nearest Neighbour Scaling.

enumerator CTL_RETRO_SCALING_TYPE_FLAG_MAX

ctl_scaling_type_flags_t

enum ctl_scaling_type_flag_t

Values:

enumerator CTL_SCALING_TYPE_FLAG_IDENTITY

No scaling is applied and display manages scaling itself when possible.

enumerator CTL_SCALING_TYPE_FLAG_CENTERED

Source is not scaled but place in the center of the target display.

enumerator CTL_SCALING_TYPE_FLAG_STRETCHED

Source is stretched to fit the target size.

enumerator CTL_SCALING_TYPE_FLAG_ASPECT_RATIO_CENTERED_MAX

The aspect ratio is maintained with the source centered.

enumerator CTL_SCALING_TYPE_FLAG_CUSTOM

None of the standard types match this .Additional parameters are required which should be set via a private driver interface.

enumerator CTL_SCALING_TYPE_FLAG_MAX

ctl_get_operation_flags_t

enum ctl_get_operation_flag_t

Values:

enumerator CTL_GET_OPERATION_FLAG_CURRENT

Get the details set through last set call.

enumerator CTL_GET_OPERATION_FLAG_DEFAULT

Get the driver default values.

enumerator CTL_GET_OPERATION_FLAG_CAPABILITY

Get capability.

enumerator CTL_GET_OPERATION_FLAG_MAX

ctl_set_operation_t

enum ctl_set_operation_t

Set Operations used for additional settings.

Values:

enumerator CTL_SET_OPERATION_RESTORE_DEFAULT

Restore default values.

enumerator CTL_SET_OPERATION_CUSTOM

Set custom values.

enumerator CTL_SET_OPERATION_MAX

ctl_lace_trigger_flags_t

enum ctl_lace_trigger_flag_t

Values:

enumerator CTL_LACE_TRIGGER_FLAG_AMBIENT_LIGHT

LACE enhancement depends on Ambient light.

enumerator CTL_LACE_TRIGGER_FLAG_FIXED_AGGRESSIVENESS

LACE enhancement is as per given fixed aggressiveness level.

enumerator CTL_LACE_TRIGGER_FLAG_MAX

ctl_intel_arc_sync_profile_t

enum ctl_intel_arc_sync_profile_t

Intel Arc Sync profile.

Values:

enumerator CTL_INTEL_ARC_SYNC_PROFILE_INVALID

Invalid profile.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_RECOMMENDED

Default. Selects appropriate profile based on the monitor. COMPATIBLE profile is applied if profile is not available for the monitor.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_EXCELLENT

Unconstrained. Full VRR range of the monitor can be used.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_GOOD

Some minor range constraints, unlikely to effect user experience but can reduce flicker on some monitors.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_COMPATIBLE

Significant constraints that will reduce flicker considerably but are likely to cause some level of judder onscreen especially when refresh rates are changing rapidly.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_OFF

Disable Intel Arc Sync on this monitor. This disables variable rate flips on this monitor. All sync flips will occur at the OS requested refresh rate.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_VESA

Applies vesa specified constraints if the monitor has provided them, COMPATIBLE profile if not.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_CUSTOM

Unlocks controls to set a custom Intel Arc Sync profile.

enumerator CTL_INTEL_ARC_SYNC_PROFILE_MAX

ctl_edid_management_optype_t

enum ctl_edid_management_optype_t

EDID Management operation type.

Values:

enumerator CTL_EDID_MANAGEMENT_OPTYPE_READ_EDID

This operation type is to read an output’s EDID. Set edid_type input arg to read MONITOR EDID or previously OVERRIDDEN EDID or CURRENT active EDID. Read EDID is a 2 pass call. First call with size = 0, pEdidBuf = nullptr to get the size, then call with allocated buffer to get the EDID data. READ operation is applicable for any normal, edid locked or edid overridden display output device.

enumerator CTL_EDID_MANAGEMENT_OPTYPE_LOCK_EDID

To make an output always connected with OVERRIDE or MONITOR EDID across reboots. When output isn’t connected call with OVERRIDE EDID; when connected, either set OVERRIDE and provide pEdidBuf or set MONITOR and driver will use monitor’s EDID. There is no change to EDID stored in Monitor. Cannot be called when override is active. Any OS EDID override will take precedence over IGCL override.

enumerator CTL_EDID_MANAGEMENT_OPTYPE_UNLOCK_EDID

To undo lock EDID operation, i.e. it makes output as detached in response to unplug. This operation removes past supplied EDID; output status is reported to OS as it is; output restores back to monitor’s EDID when it is connected.

enumerator CTL_EDID_MANAGEMENT_OPTYPE_OVERRIDE_EDID

To replace an output’s EDID with supplied one (pEdidBuf) only when physical display is connected. There is no change to EDID stored in Monitor. Cannot apply this operation on locked output. When no output device attached, the supplied EDID will be persisted in driver for future use. Any OS EDID override will take precedence over IGCL override.

enumerator CTL_EDID_MANAGEMENT_OPTYPE_UNDO_OVERRIDE_EDID

To undo override EDID operation, that is remove previously overridden EDID on an output. Output restores back to monitor’s EDID when it is connected.

enumerator CTL_EDID_MANAGEMENT_OPTYPE_MAX

ctl_edid_type_t

enum ctl_edid_type_t

EDID type. Used in LOCK_EDID and READ_EDID calls.

Values:

enumerator CTL_EDID_TYPE_CURRENT

[in] Used to return currently active EDID in READ_EDID call.

enumerator CTL_EDID_TYPE_OVERRIDE

[in] Is it user supplied EDID. Used in LOCK_EDID call with Supplied EDID or in READ_EDID to get Supplied EDID.

enumerator CTL_EDID_TYPE_MONITOR

[in] Is it Monitor’s EDID. Used in LOCK_EDID and READ_EDID calls.

enumerator CTL_EDID_TYPE_MAX

ctl_edid_management_out_flags_t

enum ctl_edid_management_out_flag_t

Values:

enumerator CTL_EDID_MANAGEMENT_OUT_FLAG_OS_CONN_NOTIFICATION

[out] If OS was notified about a connection change. App will need to wait for the OS action to complete.

enumerator CTL_EDID_MANAGEMENT_OUT_FLAG_SUPPLIED_EDID

[out] Is it previously supplied EDID, set for READ_EDID(CURRENT).

enumerator CTL_EDID_MANAGEMENT_OUT_FLAG_MONITOR_EDID

[out] Is it Monitor’s EDID, set for READ_EDID(CURRENT).

enumerator CTL_EDID_MANAGEMENT_OUT_FLAG_DISPLAY_CONNECTED

[out] Is Monitor physically connected

enumerator CTL_EDID_MANAGEMENT_OUT_FLAG_MAX

ctl_custom_mode_operation_types_t

enum ctl_custom_mode_operation_types_t

Custom mode operation types.

Values:

enumerator CTL_CUSTOM_MODE_OPERATION_TYPES_GET_CUSTOM_SOURCE_MODES

Get details of all previous applied custom modes if any.

enumerator CTL_CUSTOM_MODE_OPERATION_TYPES_ADD_CUSTOM_SOURCE_MODE

Add a new mode. Allows only single mode adition at a time.

enumerator CTL_CUSTOM_MODE_OPERATION_TYPES_REMOVE_CUSTOM_SOURCE_MODES

Remove previously added custom mode. Allows single or multiple mode removal at a time.

enumerator CTL_CUSTOM_MODE_OPERATION_TYPES_MAX

ctl_combined_display_optype_t

enum ctl_combined_display_optype_t

Combined Display operation type.

Values:

enumerator CTL_COMBINED_DISPLAY_OPTYPE_IS_SUPPORTED_CONFIG

To check whether given outputs can form a combined display, no changes are applied.

enumerator CTL_COMBINED_DISPLAY_OPTYPE_ENABLE

To setup and enable a combined display.

enumerator CTL_COMBINED_DISPLAY_OPTYPE_DISABLE

To disable combined display.

enumerator CTL_COMBINED_DISPLAY_OPTYPE_QUERY_CONFIG

To query combined display configuration.

enumerator CTL_COMBINED_DISPLAY_OPTYPE_MAX

ctl_genlock_operation_t

enum ctl_genlock_operation_t

Display Genlock Operations.

Values:

enumerator CTL_GENLOCK_OPERATION_GET_TIMING_DETAILS

Get details of GENLOCK support and timing information.

enumerator CTL_GENLOCK_OPERATION_VALIDATE

Driver to verify that the topology is Genlock capable.

enumerator CTL_GENLOCK_OPERATION_ENABLE

Enable GENLOCK.

enumerator CTL_GENLOCK_OPERATION_DISABLE

Disable GENLOCK.

enumerator CTL_GENLOCK_OPERATION_GET_TOPOLOGY

Get details of the current Genlock topology that is applied.

enumerator CTL_GENLOCK_OPERATION_MAX

ctl_wire_format_color_model_t

enum ctl_wire_format_color_model_t

Color model.

Values:

enumerator CTL_WIRE_FORMAT_COLOR_MODEL_RGB

Color model RGB.

enumerator CTL_WIRE_FORMAT_COLOR_MODEL_YCBCR_420

Color model YCBCR 420.

enumerator CTL_WIRE_FORMAT_COLOR_MODEL_YCBCR_422

Color model YCBCR 422.

enumerator CTL_WIRE_FORMAT_COLOR_MODEL_YCBCR_444

Color model YCBCR 444.

enumerator CTL_WIRE_FORMAT_COLOR_MODEL_MAX

ctl_wire_format_operation_type_t

enum ctl_wire_format_operation_type_t

Operation type.

Values:

enumerator CTL_WIRE_FORMAT_OPERATION_TYPE_GET

Get request.

enumerator CTL_WIRE_FORMAT_OPERATION_TYPE_SET

Set request.

enumerator CTL_WIRE_FORMAT_OPERATION_TYPE_RESTORE_DEFAULT

Restore to default values.

enumerator CTL_WIRE_FORMAT_OPERATION_TYPE_MAX

Display Structures

ctl_os_display_encoder_identifier_t

union ctl_os_display_encoder_identifier_t
#include <igcl_api.h>

OS specific Display identifiers.

Public Members

uint32_t WindowsDisplayEncoderID

[out] Windows OS Display encoder ID

ctl_generic_void_datatype_t DisplayEncoderID

[out] Display encoder ID for non-windows OS

ctl_display_timing_t

struct ctl_display_timing_t

Display Timing.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint64_t PixelClock

[out] Pixel Clock in Hz

uint32_t HActive

[out] Horizontal Active

uint32_t VActive

[out] Vertical Active

uint32_t HTotal

[out] Horizontal Total

uint32_t VTotal

[out] Vertical Total

uint32_t HBlank

[out] Horizontal Blank

uint32_t VBlank

[out] Vertical Blank

uint32_t HSync

[out] Horizontal Blank

uint32_t VSync

[out] Vertical Blank

float RefreshRate

[out] Refresh Rate

ctl_signal_standard_type_t SignalStandard

[out] Signal Standard

uint8_t VicId

[out] VIC ID for CTA timings

ctl_display_properties_t

struct ctl_display_properties_t

This structure will contain the properties of the display currently attached to the encoder.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_os_display_encoder_identifier_t Os_display_encoder_handle

[out] OS specific Display ID

ctl_display_output_types_t Type

[out] Device Type from display HW stand point. If a DisplayPort protocol converter is involved, this will indicate it’s DisplayPort. The protocol converter’s output will be available from ProtocolConverterOutput field

ctl_attached_display_mux_type_t AttachedDisplayMuxType

[out] Attached Display Mux Type

ctl_display_output_types_t ProtocolConverterOutput

[out] Protocol output type which can be used if config flags indicate it’s a protocol converter. If it’s not a protocol converter this will be set to CTL_DISPLAY_OUTPUT_TYPES_INVALID

ctl_revision_datatype_t SupportedSpec

[out] Supported industry spec version.

ctl_output_bpc_flags_t SupportedOutputBPCFlags

[out] Supported output bits per color. Refer ctl_output_bpc_flag_t. This is independent of RGB or YCbCr output.This is the max BPC supported.BPC will vary per mode based on restrictions like bandwidth and monitor support

ctl_protocol_converter_location_flags_t ProtocolConverterType

[out] Currently Active Protocol Converter. Refer ctl_protocol_converter_location_flag_t

ctl_display_config_flags_t DisplayConfigFlags

[out] Output configuration related flags which indicate how the output pixel stream drive the panel. Refer ctl_display_config_flag_t

ctl_std_display_feature_flags_t FeatureEnabledFlags

[out] Enabled Display features.Refer ctl_std_display_feature_flag_t.

ctl_std_display_feature_flags_t FeatureSupportedFlags

[out] Display Supported feature.Refer ctl_std_display_feature_flag_t

ctl_intel_display_feature_flags_t AdvancedFeatureEnabledFlags

[out] Enabled advanced feature.Refer ctl_intel_display_feature_flag_t.

ctl_intel_display_feature_flags_t AdvancedFeatureSupportedFlags

[out] Supported advanced feature.Refer ctl_intel_display_feature_flag_t.

ctl_display_timing_t Display_Timing_Info

[out] Applied Timing on the Display

uint32_t ReservedFields[16]

[out] Reserved field of 64 bytes

ctl_adapter_display_encoder_properties_t

struct ctl_adapter_display_encoder_properties_t

Adapter’s display encoder properties.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_os_display_encoder_identifier_t Os_display_encoder_handle

[out] OS specific Display ID

ctl_display_output_types_t Type

[out] Device Type from display HW stand point. If a DisplayPort protocol converter is involved, this will indicate it’s DisplayPort. The protocol converter’s output will be available from ProtocolConverterOutput field

bool IsOnBoardProtocolConverterOutputPresent

[out] Protocol output type which can be used if it’s a protocol converter. If it’s not a protocol converter this will be set to CTL_DISPLAY_OUTPUT_TYPES_INVALID

ctl_revision_datatype_t SupportedSpec

[out] Supported industry spec version

ctl_output_bpc_flags_t SupportedOutputBPCFlags

[out] Supported output bits per color. Refer ctl_output_bpc_flag_t. This is independent of RGB or YCbCr output.This is the max BPC supported.BPC will vary per mode based on restrictions like bandwidth and monitor support

ctl_encoder_config_flags_t EncoderConfigFlags

[out] Output configuration related flags which indicate how the output pixel stream drive the panel. Refer ctl_encoder_config_flag_t

Note:

Virtual = 1: This indicates that its a software display. Hardware based features will not be applicable to this display. Collage=1,Virtual=1: Indicates the fake display output created by driver which has the combined resolution of multiple physical displays involved in collage configuration

Collage=1,Virtual=0: Indicates the child physical displays involved in a collage configuration. These are real physical outputs

Split=1,Virtual=1 : Indicates the fake display output created by driver which occupies a portion of a real physical display

Split=1,Virtual=0 : Indicates the physical display which got split to form multiple split displays

Split=1,Collage=1 : Invalid combination

MgpuCollage=1,Collage=1,Virtual=1: Indicates the fake display output created by driver which has the combined resolution of multiple physical displays spread across multiple GPUs involved in Multi-GPU collage configuration MgpuCollage=1,Collage=1,Virtual=0: Indicates the child physical displays involved in a Multi-GPU collage configuration. These are real physical outputs

ctl_std_display_feature_flags_t FeatureSupportedFlags

[out] Adapter Supported feature flags. Refer ctl_std_display_feature_flag_t

ctl_intel_display_feature_flags_t AdvancedFeatureSupportedFlags

[out] Advanced Features Supported by the Adapter. Refer ctl_intel_display_feature_flag_t

uint32_t ReservedFields[16]

[out] Reserved field of 60 bytes

ctl_sharpness_filter_properties_t

struct ctl_sharpness_filter_properties_t

Sharpness filter properties.

Public Members

ctl_sharpness_filter_type_flags_t FilterType

[out] Filter type. Refer ctl_sharpness_filter_type_flag_t

ctl_property_range_info_t FilterDetails

[out] Min, max & step size information

ctl_sharpness_caps_t

struct ctl_sharpness_caps_t

Various sharpness filter types.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_sharpness_filter_type_flags_t SupportedFilterFlags

[out] Supported sharpness filters for a given display output. Refer ctl_sharpness_filter_type_flag_t

uint8_t NumFilterTypes

[out] Number of elements in filter properties array

ctl_sharpness_filter_properties_t *pFilterProperty

[in,out] Array of filter properties structure describing supported filter capabilities. Caller should provide a pre-allocated memory for this.

ctl_sharpness_settings_t

struct ctl_sharpness_settings_t

Current sharpness setting.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

bool Enable

[in,out] Current or new state of sharpness setting

ctl_sharpness_filter_type_flags_t FilterType

[in,out] Current or new filter to be set. Refer ctl_sharpness_filter_type_flag_t

float Intensity

[in,out] Setting intensity to be applied

ctl_i2c_access_args_t

struct ctl_i2c_access_args_t

I2C access arguments.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint32_t DataSize

[in,out] Valid data size

uint32_t Address

[in] Address to read or write

ctl_operation_type_t OpType

[in] Operation type, 1 for Read, 2 for Write, for Write operation, App needs to run with admin privileges

uint32_t Offset

[in] Offset

ctl_i2c_flags_t Flags

[in] I2C Flags. Refer ctl_i2c_flag_t

uint64_t RAD

[in] RAD, For Future use, to be used for branch devices, Interface will be provided to get RAD

uint8_t Data[CTL_I2C_MAX_DATA_SIZE]

[in,out] Data array

ctl_i2c_access_pinpair_args_t

struct ctl_i2c_access_pinpair_args_t

I2C access on Pin Pair arguments.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint32_t DataSize

[in,out] Valid data size

uint32_t Address

[in] Address to read or write

ctl_operation_type_t OpType

[in] Operation type, 1 for Read, 2 for Write, for Write operation, App needs to run with admin privileges

uint32_t Offset

[in] Offset

ctl_i2c_pinpair_flags_t Flags

[in] I2C Flags. Refer ctl_i2c_pinpair_flag_t

uint8_t Data[CTL_I2C_MAX_DATA_SIZE]

[in,out] Data array

uint32_t ReservedFields[4]

[in] Reserved for future use, must be set to Zero.

ctl_aux_access_args_t

struct ctl_aux_access_args_t

AUX access arguments.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_operation_type_t OpType

[in] Operation type, 1 for Read, 2 for Write, for Write operation, App needs to run with admin privileges

ctl_aux_flags_t Flags

[in] Aux Flags. Refer ctl_aux_flag_t

uint32_t Address

[in] Address to read or write

uint64_t RAD

[in] RAD, For Future use, to be used for branch devices, Interface will be provided to get RAD

uint32_t PortID

[in] Port ID, For Future use, to be used for SST tiled devices

uint32_t DataSize

[in,out] Valid data size

uint8_t Data[CTL_AUX_MAX_DATA_SIZE]

[in,out] Data array

ctl_power_optimization_caps_t

struct ctl_power_optimization_caps_t

Power optimization caps.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_power_optimization_flags_t SupportedFeatures

[out] Supported power optimization features. Refer ctl_power_optimization_flag_t

ctl_power_optimization_lrr_t

struct ctl_power_optimization_lrr_t

LRR detailed settings.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_power_optimization_lrr_flags_t SupportedLRRTypes

[out] LRR type(s). Refer ctl_power_optimization_lrr_flag_t

ctl_power_optimization_lrr_flags_t CurrentLRRTypes

[in,out] Current enabled LRR type(s) or the LRR type(s) to set to. Refer ctl_power_optimization_lrr_flag_t

bool bRequirePSRDisable

[out] Require PSR disable for any change in the selected LRR feature. Caller can re-enable PSR once the respective LRR feature is enable/disabled. E.g. for UBRR based on platform this flag may not be set in which case caller doesn’t need to do an explicit PSR disable

uint16_t LowRR

[out] Lowest RR used for LRR functionality if known to source

ctl_power_optimization_psr_t

struct ctl_power_optimization_psr_t

PSR detailed settings.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint8_t PSRVersion

[in,out] A value of 1 means PSR1, 2 means PSR2

bool FullFetchUpdate

[in,out] Full fetch and update

ctl_power_optimization_dpst_t

struct ctl_power_optimization_dpst_t

DPST detailed settings.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint8_t MinLevel

[out] Minimum supported aggressiveness level

uint8_t MaxLevel

[out] Maximum supported aggressiveness level

uint8_t Level

[in,out] Current aggressiveness level to be set

ctl_power_optimization_dpst_flags_t SupportedFeatures

[out] Supported features

ctl_power_optimization_dpst_flags_t EnabledFeatures

[in,out] Features enabled or to be enabled. Fill only one feature for SET call

ctl_power_optimization_feature_specific_info_t

union ctl_power_optimization_feature_specific_info_t
#include <igcl_api.h>

Feature specific power optimization data.

Public Members

ctl_power_optimization_lrr_t LRRInfo

[out] LRR info

ctl_power_optimization_psr_t PSRInfo

[in,out] PSR info

ctl_power_optimization_dpst_t DPSTInfo

[in,out] DPST info

ctl_power_optimization_settings_t

struct ctl_power_optimization_settings_t

Power optimization settings.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_power_optimization_plan_t PowerOptimizationPlan

[in] Power optimization power plan (max power/max perf/balanced)

ctl_power_optimization_flags_t PowerOptimizationFeature

[in] Power optimization feature interested in. Refer ctl_power_optimization_flag_t

bool Enable

[in,out] Enable state

ctl_power_optimization_feature_specific_info_t FeatureSpecificData

[in,out] Data specific to the feature caller is interested in

ctl_power_source_t PowerSource

[in] AC/DC

ctl_set_brightness_t

struct ctl_set_brightness_t

Brightness settings for SET call.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint32_t TargetBrightness

[in] The brightness level that the display need to transitioning to in milli-percentage. Range is 0-100000 (100%)

uint32_t SmoothTransitionTimeInMs

[in] Transition Time for brightness to take effect in milli-seconds. If its 0 then it will be an immediate change. Maximum possible value is 1000ms.

uint32_t ReservedFields[4]

[in] Reserved for future use

ctl_get_brightness_t

struct ctl_get_brightness_t

Brightness settings for GET call.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint32_t TargetBrightness

[out] The brightness level that the display is currently transitioning to in milli-percentage. If not in a transition, this should equal the current brightness. Range is 0-100000 (100%)

uint32_t CurrentBrightness

[out] The current brightness level of the display in milli-percentage

uint32_t ReservedFields[4]

[out] Reserved for future use

ctl_pixtx_color_primaries_t

struct ctl_pixtx_color_primaries_t

Pixel transformation color primaries.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

double xR

[out] CIE1931 x value with maximum red pixel value

double yR

[out] CIE1931 y value with maximum red pixel value

double xG

[out] CIE1931 x value with maximum green pixel value

double yG

[out] CIE1931 y value with maximum green pixel value

double xB

[out] CIE1931 x value with maximum blue pixel value

double yB

[out] CIE1931 y value with maximum blue pixel value

double xW

[out] CIE1931 x value with maximum white pixel value

double yW

[out] CIE1931 y value with maximum white pixel value

ctl_pixtx_pixel_format_t

struct ctl_pixtx_pixel_format_t

Pixel transformation pixel format.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

uint32_t BitsPerColor

[out] Bits per color, It Will be 16 for FP16 case

bool IsFloat

[out] Will be set for FP16 or other floating point encoding schemes

ctl_pixtx_gamma_encoding_type_t EncodingType

[out] Encoding type

ctl_pixtx_color_space_t ColorSpace

[out] Color space

ctl_pixtx_color_model_t ColorModel

[out] Color model

ctl_pixtx_color_primaries_t ColorPrimaries

[out] Color primaries, Used mainly for custom color space

double MaxBrightness

[out] Maximum brightness of pixel values. If no input is given, default will be set to sRGB during set call. If panel capability is not known get call will default to sRGB.

double MinBrightness

[out] Minimum brightness of pixel values

ctl_pixtx_1dlut_config_t

struct ctl_pixtx_1dlut_config_t

Pixel transformation 1D LUT configuration.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

ctl_pixtx_lut_sampling_type_t SamplingType

[in,out] Blocks with non-uniform sampling capability support unifrom sampling also but not vice versa.

uint32_t NumSamplesPerChannel

[in,out] Number of samples per channel. Resampled internally based on HW capability for uniformly sampled LUT.Maximum supported value is CTL_MAX_NUM_SAMPLES_PER_CHANNEL_1D_LUT Caller needs to use exact sampling position given in pSamplePositions for non-uniformly sampled LUTs.

uint32_t NumChannels

[in,out] Number of channels, 1 for Grey scale LUT, 3 for RGB LUT

double *pSampleValues

[in,out] Pointer to sample values, R array followed by G and B arrays in case of multi-channel LUT. Allocation size for pSampleValues should be NumSamplesPerChannel * NumChannels * sizeof(double)

double *pSamplePositions

[out] LUT (same for all channels) to represent sampling positions for non-uniformly sampled LUTs.Can be NULL in case uniformly sampled LUTs

ctl_pixtx_matrix_config_t

struct ctl_pixtx_matrix_config_t

Pixel transformation matrix configuration.

Public Members

uint32_t Size

[in] size of this structure

uint8_t Version

[in] version of this structure

double<