Control API
Control API Specification - Version 1
Common
Functions
Enumerations
Structures
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
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
-
enumerator CTL_PROPERTY_VALUE_TYPE_BOOL
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 Temperature 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_OVERCLOCK_DEPRECATED_API
The error indicates to switch to newer API version if applicable.
-
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
-
enumerator CTL_RESULT_SUCCESS
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 Gigabytes per second (GBps).
-
enumerator CTL_UNITS_VOLTAGE_MILLIVOLTS
Type is Voltage with units in milliVolts.
-
enumerator CTL_UNITS_BANDWIDTH_MBPS
Type is Bandwidth in Megabytes per second (MBps).
-
enumerator CTL_UNITS_UNKNOWN
Type of units unknown.
-
enumerator CTL_UNITS_MAX
-
enumerator CTL_UNITS_FREQUENCY_MHZ
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
-
enumerator CTL_DATA_TYPE_INT8
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
-
enumerator CTL_SUPPORTED_FUNCTIONS_FLAG_DISPLAY
ctl_device_type_t
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
-
enumerator CTL_ADAPTER_PROPERTIES_FLAG_INTEGRATED
ctl_operation_type_t
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
-
enumerator CTL_PROPERTY_TYPE_FLAG_DISPLAY
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
-
enumerator CTL_DISPLAY_ORIENTATION_0
Common Structures
ctl_base_interface_t
-
struct ctl_base_interface_t
Base for all properties types.
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.
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.
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.
ctl_property_info_boolean_t
ctl_property_boolean_t
ctl_property_info_enum_t
-
struct ctl_property_info_enum_t
Enumeration feature details.
ctl_property_enum_t
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
-
bool DefaultEnable
ctl_property_float_t
-
struct ctl_property_float_t
Float feature for get/set.
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
-
bool DefaultEnable
ctl_property_int_t
-
struct ctl_property_int_t
Int32 feature for get/set.
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
-
bool DefaultEnable
ctl_property_uint_t
-
struct ctl_property_uint_t
Int32 feature for get/set.
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_info_boolean_t BoolType
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_property_boolean_t BoolType
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.
ctl_application_id_t
-
struct ctl_application_id_t
Application Unique ID.
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
-
uint32_t Size
ctl_reserved_args_t
-
struct ctl_reserved_args_t
Reserved struct.
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_application_id_t ReservedFuncID
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_application_id_t ReservedFuncID
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.
-
uint32_t Size
ctl_firmware_version_t
-
struct ctl_firmware_version_t
Firmware version.
ctl_adapter_bdf_t
-
struct ctl_adapter_bdf_t
Adapter Pci Bus, Device, 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
-
uint32_t Size
ctl_generic_void_datatype_t
-
struct ctl_generic_void_datatype_t
Generic Structure for Void* datatypes.
ctl_revision_datatype_t
-
struct ctl_revision_datatype_t
Generic Structure for Revision datatypes.
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
-
uint32_t Size
ctl_rect_t
-
struct ctl_rect_t
Rectangle.
_3d
Functions
Enumerations
Structures
_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_LOW_LATENCY
Low latency mode. Contains generic enum type fields.
-
enumerator CTL_3D_FEATURE_MAX
-
enumerator CTL_3D_FEATURE_FRAME_PACING
ctl_3d_feature_misc_flags_t
-
enum ctl_3d_feature_misc_flag_t
Values:
-
enumerator CTL_3D_FEATURE_MISC_FLAG_DX9
Feature supported on DX9.
-
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
-
enumerator CTL_3D_FEATURE_MISC_FLAG_DX9
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
-
enumerator CTL_3D_ANISOTROPIC_TYPES_APP_CHOICE
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
-
enumerator CTL_3D_TEXTURE_FILTERING_QUALITY_TYPES_PERFORMANCE
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
-
enumerator CTL_3D_FRAME_PACING_TYPES_DISABLE
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
-
enumerator CTL_3D_ENDURANCE_GAMING_CONTROL_TURN_OFF
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
-
enumerator CTL_3D_ENDURANCE_GAMING_MODE_BETTER_PERFORMANCE
ctl_3d_low_latency_types_t
-
enum ctl_3d_low_latency_types_t
Low latency mode values possible.
Values:
-
enumerator CTL_3D_LOW_LATENCY_TYPES_TURN_OFF
Low latency mode disable.
-
enumerator CTL_3D_LOW_LATENCY_TYPES_TURN_ON
Low latency mode enable.
-
enumerator CTL_3D_LOW_LATENCY_TYPES_TURN_ON_BOOST_MODE_ON
Low latency mode enable with boost.
-
enumerator CTL_3D_LOW_LATENCY_TYPES_MAX
-
enumerator CTL_3D_LOW_LATENCY_TYPES_TURN_OFF
ctl_3d_cmaa_types_t
ctl_3d_adaptive_tessellation_types_t
ctl_3d_sharpening_filter_types_t
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
-
enumerator CTL_3D_MSAA_TYPES_APP_CHOICE
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
-
enumerator CTL_GAMING_FLIP_MODE_FLAG_APPLICATION_DEFAULT
ctl_3d_tier_type_flags_t
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
-
enumerator CTL_3D_TIER_PROFILE_FLAG_TIER_1
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
-
enumerator CTL_EMULATED_TYPED_64BIT_ATOMICS_TYPES_DEFAULT
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
-
enumerator CTL_3D_VRR_WINDOWED_BLT_RESERVED_AUTO
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
-
enumerator CTL_3D_GLOBAL_OR_PER_APP_TYPES_NONE
_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_property_info_enum_t EGControlCaps
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_3d_endurance_gaming_control_t EGControl
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_3d_endurance_gaming_control_t EGControl
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
-
bool AdaptiveBalanceSupported
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
-
bool AdaptiveSync
ctl_3d_app_profiles_caps_t
-
struct ctl_3d_app_profiles_caps_t
Game Profile Capabilities. Typically these remain the same across games.
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_type_flag_t TierType
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_tier_type_flag_t TierType
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_t FeatureType
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
-
uint32_t Size
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
-
uint32_t Size
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
-
ctl_application_id_t ReservedFuncID
Display
Functions
Enumerations
Structures
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:
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”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “The incoming pointer pCount is null”
CTL_RESULT_ERROR_INVALID_SIZE - “The supplied Count is not equal to actual number of i2c pin-pair instances”
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:
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 == pI2cAccessArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_SIZE - “Invalid I2C data size”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
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:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hI2cPinPair
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pI2cAccessArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_SIZE - “Invalid I2C data size”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid Args passed”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
CTL_RESULT_ERROR_INVALID_NULL_HANDLE - “Invalid or Null handle passed”
CTL_RESULT_ERROR_EXTERNAL_DISPLAY_ATTACHED - “Write to Address not allowed when Display is connected”
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:
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 == pAuxAccessArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_SIZE - “Invalid AUX data size”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_INVALID_AUX_ACCESS_FLAG - “Invalid flag for AUX access”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
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:
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 == pPowerOptimizationSettings
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_POWERFEATURE_OPTIMIZATION_FLAG - “Unsupported PowerOptimizationFeature”
CTL_RESULT_ERROR_INVALID_POWERSOURCE_TYPE_FOR_DPST - “DPST is supported only in DC Mode”
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:
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 == pPowerOptimizationSettings
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_POWERFEATURE_OPTIMIZATION_FLAG - “Unsupported PowerOptimizationFeature”
CTL_RESULT_ERROR_INVALID_POWERSOURCE_TYPE_FOR_DPST - “DPST is supported only in DC Mode”
CTL_RESULT_ERROR_SET_FBC_FEATURE_NOT_SUPPORTED - “Set FBC Feature not supported”
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:
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 == pSetBrightnessSetting
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid Brightness data passed as argument”
CTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE - “Display not active”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Currently Brightness API is supported only on companion display”
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:
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 == pGetBrightnessSetting
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE - “Display not active”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Currently Brightness API is supported only on companion display”
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:
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 == pPixTxGetConfigArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
CTL_RESULT_ERROR_INVALID_PIXTX_GET_CONFIG_QUERY_TYPE - “Invalid query type”
CTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_ID - “Invalid block id”
CTL_RESULT_ERROR_INSUFFICIENT_PIXTX_BLOCK_CONFIG_MEMORY - “Insufficient memery allocated for BlockConfigs”
CTL_RESULT_ERROR_3DLUT_INVALID_PIPE - “Invalid pipe for 3dlut”
CTL_RESULT_ERROR_3DLUT_INVALID_DATA - “Invalid 3dlut data”
CTL_RESULT_ERROR_3DLUT_NOT_SUPPORTED_IN_HDR - “3dlut not supported in HDR”
CTL_RESULT_ERROR_3DLUT_INVALID_OPERATION - “Invalid 3dlut operation”
CTL_RESULT_ERROR_3DLUT_UNSUCCESSFUL - “3dlut call unsuccessful”
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:
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 == pPixTxSetConfigArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
CTL_RESULT_ERROR_INVALID_PIXTX_SET_CONFIG_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_SET_CONFIG_NUMBER_OF_SAMPLES - “Invalid number of samples”
CTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_ID - “Invalid block id”
CTL_RESULT_ERROR_PERSISTANCE_NOT_SUPPORTED - “Persistance not supported”
CTL_RESULT_ERROR_3DLUT_INVALID_PIPE - “Invalid pipe for 3dlut”
CTL_RESULT_ERROR_3DLUT_INVALID_DATA - “Invalid 3dlut data”
CTL_RESULT_ERROR_3DLUT_NOT_SUPPORTED_IN_HDR - “3dlut not supported in HDR”
CTL_RESULT_ERROR_3DLUT_INVALID_OPERATION - “Invalid 3dlut operation”
CTL_RESULT_ERROR_3DLUT_UNSUCCESSFUL - “3dlut call unsuccessful”
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:
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 == pPanelDescriptorAccessArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
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:
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 == pLaceConfig
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_LACE_INVALID_DATA_ARGUMENT_PASSED - “Lace Incorrrect AggressivePercent data or LuxVsAggressive Map data passed by user”
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:
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 == pLaceConfig
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_LACE_INVALID_DATA_ARGUMENT_PASSED - “Lace Incorrrect AggressivePercent data or LuxVsAggressive Map data passed by user”
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:
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 == pEdidManagementArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid combination of parameters”
CTL_RESULT_ERROR_DISPLAY_NOT_ATTACHED - “Error for Output Device not attached”
CTL_RESULT_ERROR_OUT_OF_DEVICE_MEMORY - “Insufficient device memory to satisfy call”
CTL_RESULT_ERROR_DATA_NOT_FOUND - “Requested EDID data not present.”
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:
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 == pCustomModeArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernal mode driver call failure”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid combination of parameters”
CTL_RESULT_ERROR_CUSTOM_MODE_STANDARD_CUSTOM_MODE_EXISTS - “Standard custom mode exists”
CTL_RESULT_ERROR_CUSTOM_MODE_NON_CUSTOM_MATCHING_MODE_EXISTS - “Non custom matching mode exists”
CTL_RESULT_ERROR_CUSTOM_MODE_INSUFFICIENT_MEMORY - “Custom mode insufficent memory”
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:
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 == pCombinedDisplayArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
::CTL_RESULT_ERROR_FEATURE_NOT_SUPPORTED - “Combined Display feature is not supported in this platform”
CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - “Unsupported (secondary) adapter handle passed”
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:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == hDeviceAdapter
nullptr == pGenlockArgs
nullptr == hFailureDeviceAdapter
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_INVALID_SIZE - “Invalid topology structure size”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
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:
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 == pVblankTSArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - “Insufficient permissions”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
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:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPrimaryAdapter
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pLdaArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
CTL_RESULT_ERROR_ADAPTER_ALREADY_LINKED - “Adapter is already linked”
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:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPrimaryAdapter
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - “Unsupported (secondary) adapter handle passed”
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:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPrimaryAdapter
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pLdaArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - “Unsupported (secondary) adapter handle passed”
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:
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 == pDceArgs
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
CTL_RESULT_ERROR_INVALID_NULL_HANDLE - “Invalid or Null handle passed”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid combination of parameters”
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:
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 == pGetSetWireFormatSetting
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid data passed as argument, WireFormat is not supported”
CTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE - “Display not active”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
ctlGetSetDisplaySettings
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetDisplaySettings(ctl_display_output_handle_t hDisplayOutput, ctl_display_settings_t *pDisplaySettings)
Get/Set Display settings.
To get/set end display settings like low latency, HDR10+ signaling etc. which are controlled via info-frames/secondary data packets
- Parameters:
hDisplayOutput – [in] Handle to display output
pDisplaySettings – [in,out] End display capabilities
- 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 == pDisplaySettings
CTL_RESULT_ERROR_UNSUPPORTED_VERSION - “Unsupported version”
CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - “Null OS display output handle”
CTL_RESULT_ERROR_NULL_OS_INTERFACE - “Null OS interface”
CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - “Null OS adapter handle”
CTL_RESULT_ERROR_KMD_CALL - “Kernel mode driver call failure”
CTL_RESULT_ERROR_INVALID_NULL_HANDLE - “Invalid or Null handle passed”
CTL_RESULT_ERROR_INVALID_NULL_POINTER - “Invalid null pointer”
CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - “Invalid operation type”
CTL_RESULT_ERROR_INVALID_ARGUMENT - “Invalid combination of parameters”
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
-
enumerator CTL_DISPLAY_OUTPUT_TYPES_INVALID
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
-
enumerator CTL_OUTPUT_BPC_FLAG_6BPC
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_HDR10_PLUS_CERTIFIED
[out] Is HDR10+ certified
-
enumerator CTL_STD_DISPLAY_FEATURE_FLAG_VESA_HDR_CERTIFIED
[out] Is VESA HDR certified - for future use
-
enumerator CTL_STD_DISPLAY_FEATURE_FLAG_MAX
-
enumerator CTL_STD_DISPLAY_FEATURE_FLAG_HDCP
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_ARC_ADAPTIVE_SYNC_CERTIFIED
[out] Is Intel Arc certified adaptive sync display
-
enumerator CTL_INTEL_DISPLAY_FEATURE_FLAG_MAX
-
enumerator CTL_INTEL_DISPLAY_FEATURE_FLAG_DPST
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
-
enumerator CTL_ATTACHED_DISPLAY_MUX_TYPE_NATIVE
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
-
enumerator CTL_SIGNAL_STANDARD_TYPE_UNKNOWN
ctl_protocol_converter_location_flags_t
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
-
enumerator CTL_DISPLAY_CONFIG_FLAG_DISPLAY_ACTIVE
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
-
enumerator CTL_ENCODER_CONFIG_FLAG_INTERNAL_DISPLAY
ctl_sharpness_filter_type_flags_t
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
-
enumerator CTL_I2C_FLAG_ATOMICI2C
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
-
enumerator CTL_I2C_PINPAIR_FLAG_ATOMICI2C
ctl_aux_flags_t
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
-
enumerator CTL_POWER_OPTIMIZATION_FLAG_FBC
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
-
enumerator CTL_POWER_OPTIMIZATION_DPST_FLAG_BKLT
ctl_power_source_t
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
-
enumerator CTL_POWER_OPTIMIZATION_PLAN_BALANCED
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
-
enumerator CTL_POWER_OPTIMIZATION_LRR_FLAG_LRR10
ctl_pixtx_pipe_set_config_flags_t
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
-
enumerator CTL_PIXTX_BLOCK_TYPE_1D_LUT
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
-
enumerator CTL_PIXTX_LUT_SAMPLING_TYPE_UNIFORM
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
-
enumerator CTL_PIXTX_CONFIG_QUERY_TYPE_CAPABILITY
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
-
enumerator CTL_PIXTX_CONFIG_OPERTAION_TYPE_RESTORE_DEFAULT
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
-
enumerator CTL_PIXTX_GAMMA_ENCODING_TYPE_SRGB
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
-
enumerator CTL_PIXTX_COLOR_SPACE_REC709
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
-
enumerator CTL_PIXTX_COLOR_MODEL_RGB_FR
ctl_retro_scaling_type_flags_t
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
-
enumerator CTL_SCALING_TYPE_FLAG_IDENTITY
ctl_get_operation_flags_t
ctl_set_operation_t
ctl_lace_trigger_flags_t
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
-
enumerator CTL_INTEL_ARC_SYNC_PROFILE_INVALID
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
-
enumerator CTL_EDID_MANAGEMENT_OPTYPE_READ_EDID
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
-
enumerator CTL_EDID_TYPE_CURRENT
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
-
enumerator CTL_EDID_MANAGEMENT_OUT_FLAG_OS_CONN_NOTIFICATION
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
-
enumerator CTL_CUSTOM_MODE_OPERATION_TYPES_GET_CUSTOM_SOURCE_MODES
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
-
enumerator CTL_COMBINED_DISPLAY_OPTYPE_IS_SUPPORTED_CONFIG
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
-
enumerator CTL_GENLOCK_OPERATION_GET_TIMING_DETAILS
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
-
enumerator CTL_WIRE_FORMAT_COLOR_MODEL_RGB
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
-
enumerator CTL_WIRE_FORMAT_OPERATION_TYPE_GET
ctl_display_setting_flags_t
-
enum ctl_display_setting_flag_t
Values:
-
enumerator CTL_DISPLAY_SETTING_FLAG_LOW_LATENCY
Low latency.
-
enumerator CTL_DISPLAY_SETTING_FLAG_SOURCE_TM
Source tone mapping.
-
enumerator CTL_DISPLAY_SETTING_FLAG_CONTENT_TYPE
Content type.
-
enumerator CTL_DISPLAY_SETTING_FLAG_QUANTIZATION_RANGE
Quantization range, full range or limited range.
-
enumerator CTL_DISPLAY_SETTING_FLAG_PICTURE_AR
Picture aspect ratio.
-
enumerator CTL_DISPLAY_SETTING_FLAG_AUDIO
Audio settings.
-
enumerator CTL_DISPLAY_SETTING_FLAG_MAX
-
enumerator CTL_DISPLAY_SETTING_FLAG_LOW_LATENCY
ctl_display_setting_low_latency_t
-
enum ctl_display_setting_low_latency_t
Low latency setting.
Values:
-
enumerator CTL_DISPLAY_SETTING_LOW_LATENCY_DEFAULT
Default.
-
enumerator CTL_DISPLAY_SETTING_LOW_LATENCY_DISABLED
Disabled.
-
enumerator CTL_DISPLAY_SETTING_LOW_LATENCY_ENABLED
Enabled.
-
enumerator CTL_DISPLAY_SETTING_LOW_LATENCY_MAX
-
enumerator CTL_DISPLAY_SETTING_LOW_LATENCY_DEFAULT
ctl_display_setting_sourcetm_t
ctl_display_setting_content_type_t
-
enum ctl_display_setting_content_type_t
Content type settings.
Values:
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_DEFAULT
Default content type used by driver. Driver will use internal techniques to determine content type and indicate to panel.
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_DISABLED
Content type indication is disabled.
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_DESKTOP
Typical desktop with a mix of text and graphics.
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_MEDIA
Video or media content.
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_GAMING
Gaming content.
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_MAX
-
enumerator CTL_DISPLAY_SETTING_CONTENT_TYPE_DEFAULT
ctl_display_setting_quantization_range_t
-
enum ctl_display_setting_quantization_range_t
Quantization range.
Values:
-
enumerator CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_DEFAULT
Default based on video format.
-
enumerator CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_LIMITED_RANGE
Limited range.
-
enumerator CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_FULL_RANGE
Full range.
-
enumerator CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_MAX
-
enumerator CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_DEFAULT
ctl_display_setting_picture_ar_flags_t
-
enum ctl_display_setting_picture_ar_flag_t
Values:
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_DEFAULT
Default picture aspect ratio.
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_DISABLED
Picture aspect ratio indication is explicitly disabled.
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_4_3
Aspect ratio of 4:3.
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_16_9
Aspect ratio of 16:9.
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_64_27
Aspect ratio of 64:27 or 21:9 anamorphic.
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_256_135
Aspect ratio of 256:135.
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_MAX
-
enumerator CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_DEFAULT
ctl_display_setting_audio_t
-
enum ctl_display_setting_audio_t
Audio settings.
Values:
-
enumerator CTL_DISPLAY_SETTING_AUDIO_DEFAULT
Default audio settings, always enumerated and enabled if display supports it.
-
enumerator CTL_DISPLAY_SETTING_AUDIO_DISABLED
Forcefully disable display audio end point enumeration to OS.
-
enumerator CTL_DISPLAY_SETTING_AUDIO_MAX
-
enumerator CTL_DISPLAY_SETTING_AUDIO_DEFAULT
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
-
uint32_t WindowsDisplayEncoderID
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
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
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_filter_type_flags_t FilterType
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.
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
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.
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
ctl_power_optimization_psr_t
-
struct ctl_power_optimization_psr_t
PSR detailed settings.
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
-
uint32_t Size
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_lrr_t LRRInfo
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
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
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
-
uint32_t Size
ctl_pixtx_matrix_config_t
-
struct ctl_pixtx_matrix_config_t
Pixel transformation matrix configuration.
ctl_pixtx_3dlut_sample_t
-
struct ctl_pixtx_3dlut_sample_t
Pixel transformation 3D LUT sample. Samples are converted to integer based on underlying HW capabilities. Hence slight precision loss will be observed while getting sample values.
ctl_pixtx_3dlut_config_t
-
struct ctl_pixtx_3dlut_config_t
Pixel transformation 3D LUT configuration.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint32_t NumSamplesPerChannel
[in,out] Number of samples per channel
-
ctl_pixtx_3dlut_sample_t *pSampleValues
[in,out] Pointer to sample values, R in outer most loop followed by G and B
-
uint32_t Size
ctl_pixtx_config_t
-
union ctl_pixtx_config_t
- #include <igcl_api.h>
Pixel transformation configuration.
Public Members
-
ctl_pixtx_1dlut_config_t OneDLutConfig
[in,out] 1D LUT configuration
-
ctl_pixtx_3dlut_config_t ThreeDLutConfig
[in,out] 3D LUT configuration
-
ctl_pixtx_matrix_config_t MatrixConfig
[in,out] Matrix configuration
-
ctl_pixtx_1dlut_config_t OneDLutConfig
ctl_pixtx_block_config_t
-
struct ctl_pixtx_block_config_t
Pixel transformation block configuration.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint32_t BlockId
[in,out] Unique ID for each pixel processing block. Id for a block is fixed for a platform.
-
ctl_pixtx_block_type_t BlockType
[in,out] Block type
-
ctl_pixtx_config_t Config
[in,out] Configuration
-
uint32_t Size
ctl_pixtx_pipe_get_config_t
-
struct ctl_pixtx_pipe_get_config_t
Pixel transformation pipe get configuration.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_pixtx_config_query_type_t QueryType
[in] Query operation type
-
ctl_pixtx_pixel_format_t InputPixelFormat
[out] Input pixel format
-
ctl_pixtx_pixel_format_t OutputPixelFormat
[out] Output pixel format
-
uint32_t NumBlocks
[out] Number of blocks
-
ctl_pixtx_block_config_t *pBlockConfigs
[out] Pointer to specific configs
-
uint32_t Size
ctl_pixtx_pipe_set_config_t
-
struct ctl_pixtx_pipe_set_config_t
Pixel transformation pipe set configuration.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_pixtx_config_opertaion_type_t OpertaionType
[in] Set operation type
-
ctl_pixtx_pipe_set_config_flags_t Flags
[in] Config flags. Refer ctl_pixtx_pipe_set_config_flag_t
-
uint32_t NumBlocks
[in] Number of blocks
-
ctl_pixtx_block_config_t *pBlockConfigs
[in,out] Array of block specific configs
-
uint32_t Size
ctl_panel_descriptor_access_args_t
-
struct ctl_panel_descriptor_access_args_t
Panel descriptor 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. App needs to run with admin privileges for Write operation, Currently only Read operation is supported
-
uint32_t BlockNumber
[in] Block number, Need to provide only if acccessing EDID
-
uint32_t DescriptorDataSize
[in] Descriptor data size, Should be 0 for querying the size and should be DescriptorDataSize derived from query call otherwise
-
uint8_t *pDescriptorData
[in,out] Panel descriptor data
-
uint32_t Size
ctl_retro_scaling_settings_t
-
struct ctl_retro_scaling_settings_t
Set/Get Retro Scaling Type.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool Get
[in][release] Set to true to get current scaling . Set to False to Set the scaling
-
bool Enable
[in,out] State of the scaler
-
ctl_retro_scaling_type_flags_t RetroScalingType
[out] Requested retro scaling types. Refer ctl_retro_scaling_type_flag_t
-
uint32_t Size
ctl_retro_scaling_caps_t
-
struct ctl_retro_scaling_caps_t
Retro Scaling caps.
ctl_scaling_caps_t
-
struct ctl_scaling_caps_t
Scaling caps.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_scaling_type_flags_t SupportedScaling
[out] Supported scaling types. Refer ctl_scaling_type_flag_t
-
uint32_t Size
ctl_scaling_settings_t
-
struct ctl_scaling_settings_t
Set/Get Scaling type.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool Enable
[in,out] State of the scaler
-
ctl_scaling_type_flags_t ScalingType
[in,out] Requested scaling type. In Get call this field indicates ‘currunt’ scaling set. Refer ctl_scaling_type_flag_t
-
uint32_t CustomScalingX
[in,out] Custom Scaling X in percentage. This is percentage of current OS resolution. Valid values are 0 to 100. Up to 11% of native resolution can be downscaled
-
uint32_t CustomScalingY
[in,out] Custom Scaling Y in percentage. This is percentage of current OS resolution. Valid values are 0 to 100. Up to 11% of native resolution can be downscaled
-
bool HardwareModeSet
[in] Flag to indicate hardware modeset should be done to apply the scaling.Setting this to true would result in a flash on the screen. If this flag is set to false , API will request the OS to do a virtual modeset , but the OS can ignore this request and do a hardware modeset in some instances
-
ctl_scaling_type_flags_t PreferredScalingType
[out] Indicates OS persisted scaling type. This field is only valid when version > 0. Refer ctl_scaling_type_flag_t
-
uint32_t Size
ctl_lace_lux_aggr_map_entry_t
-
struct ctl_lace_lux_aggr_map_entry_t
Ambient light based enhancement table entry.
ctl_lace_lux_aggr_map_t
-
struct ctl_lace_lux_aggr_map_t
Ambient light based enhancement table.
Public Members
-
uint32_t MaxNumEntries
[out] Max Number of entries in mapping table supported
-
uint32_t NumEntries
[in,out] Number of entries in the given mapping table
-
ctl_lace_lux_aggr_map_entry_t *pLuxToAggrMappingTable
[in] Max number of Entries which can be passed in LuxToAggrMappingTable
-
uint32_t MaxNumEntries
ctl_lace_aggr_config_t
-
union ctl_lace_aggr_config_t
- #include <igcl_api.h>
Data specific to the mode caller is interested in.
Public Members
-
uint8_t FixedAggressivenessLevelPercent
[in,out] Fixed aggressiveness level, applicable for CTL_LACE_MODE_FIXED_AGGR_LEVEL
-
ctl_lace_lux_aggr_map_t AggrLevelMap
[in,out] Lux to enhancement mapping table, applicable for CTL_LACE_MODE_AMBIENT_ADAPTIVE
-
uint8_t FixedAggressivenessLevelPercent
ctl_lace_config_t
-
struct ctl_lace_config_t
Set/Get LACE Config.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool Enabled
[in,out] Enable or disable LACE feature
-
ctl_get_operation_flags_t OpTypeGet
[in] Get Operations used for additional settings
-
ctl_set_operation_t OpTypeSet
[in] Set Operations used for additional settings
-
ctl_lace_trigger_flags_t Trigger
[in,out] LACE operating mode to be Triggerd
-
ctl_lace_aggr_config_t LaceConfig
[in,out] Data specific to the mode, caller is interested in
-
uint32_t Size
ctl_sw_psr_settings_t
-
struct ctl_sw_psr_settings_t
Get Software PSR status/Set Software PSR settings.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool Set
[in][release] Set to False to Get Software PSR status. Set to True to Enable/Disable Software PSR
-
bool Supported
[out] When Get is True, returns if SW PSR is supported
-
bool Enable
[in,out] When Get is True, returns current state of Software PSR. When Get is False, Enables/Diasbles Software PSR
-
uint32_t Size
ctl_intel_arc_sync_monitor_params_t
-
struct ctl_intel_arc_sync_monitor_params_t
Intel Arc Sync Monitor Params.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool IsIntelArcSyncSupported
[out] Intel Arc Sync support for the monitor
-
float MinimumRefreshRateInHz
[out] Minimum Intel Arc Sync refresh rate supported by the monitor
-
float MaximumRefreshRateInHz
[out] Maximum Intel Arc Sync refresh rate supported by the monitor
-
uint32_t MaxFrameTimeIncreaseInUs
[out] Max frame time increase in micro seconds from DID2.1 Adaptive Sync block
-
uint32_t MaxFrameTimeDecreaseInUs
[out] Max frame time decrease in micro seconds from DID2.1 Adaptive Sync block
-
uint32_t Size
ctl_mux_properties_t
-
struct ctl_mux_properties_t
Display MUX device properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint8_t MuxId
[out] MUX ID of this MUX device enumerated
-
uint32_t Count
[in,out] Pointer to the number of display output instances this MUX object can drive. 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 display outputs MUX can drive, then the api will update the value with the correct number of display outputs MUX can driver.
-
ctl_display_output_handle_t *phDisplayOutputs
[in,out][range(0, *pCount)] Array of display output instance handles this MUX device can drive
-
uint8_t IndexOfDisplayOutputOwningMux
[out] [range(0, (Count-1))] This is the index into the phDisplayOutputs list to the display output which currently owns the MUX output. This doesn’t mean display is active
-
uint32_t Size
ctl_intel_arc_sync_profile_params_t
-
struct ctl_intel_arc_sync_profile_params_t
Intel Arc Sync Profile Params.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_intel_arc_sync_profile_t IntelArcSyncProfile
[in,out] Intel Arc Sync profile used by driver. Refer ctl_intel_arc_sync_profile_t
-
float MaxRefreshRateInHz
[in,out] Maximum refresh rate utilized by the driver
-
float MinRefreshRateInHz
[in,out] Minimum refresh rate utilized by the driver
-
uint32_t MaxFrameTimeIncreaseInUs
[in,out] Maximum frame time increase (in micro seconds) imposed by the driver
-
uint32_t MaxFrameTimeDecreaseInUs
[in,out] Maximum frame time decrease (in micro seconds) imposed by the driver
-
uint32_t Size
ctl_edid_management_args_t
-
struct ctl_edid_management_args_t
EDID management.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_edid_management_optype_t OpType
[in] EDID managmeent operation type
-
ctl_edid_type_t EdidType
[in] EDID Type, Monitor or Supplied
-
uint32_t EdidSize
[in,out] EDID Size, should be 0 for querying the size of EDID, should be previously returned size to read EDID. if buffer isn’t big enough to fit EDID, returns size of EDID bytes.
-
uint8_t *pEdidBuf
[in,out] buffer holding EDID data
-
ctl_edid_management_out_flags_t OutFlags
[out] Output flags to inform about status of EDID management operations
-
uint32_t Size
ctl_get_set_custom_mode_args_t
-
struct ctl_get_set_custom_mode_args_t
Get/Set Custom Mode.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_custom_mode_operation_types_t CustomModeOpType
[in] Custom mode operation type
-
uint32_t NumOfModes
[in,out] Number of Custom Src Modes to be added/removed/Read.
-
ctl_custom_src_mode_t *pCustomSrcModeList
[in,out] Custom mode source list which holds source modes to be added/removed/Read.
-
uint32_t Size
ctl_custom_src_mode_t
-
struct ctl_custom_src_mode_t
Get/Set Custom Mode.
ctl_child_display_target_mode_t
-
struct ctl_child_display_target_mode_t
Combined Display’s child display target mode.
ctl_combined_display_child_info_t
-
struct ctl_combined_display_child_info_t
Combined Display’s child display information.
Public Members
-
ctl_display_output_handle_t hDisplayOutput
[in,out] Display output handle under combined display configuration
-
ctl_rect_t FbSrc
[in,out] FrameBuffer source’s RECT within Combined Display respective
-
ctl_rect_t FbPos
[in,out] FrameBuffer target’s RECT within output size
-
ctl_display_orientation_t DisplayOrientation
[in,out] 0/180 Degree Display orientation (rotation)
-
ctl_child_display_target_mode_t TargetMode
[in,out] Desired target mode (width, height, refresh)
-
ctl_display_output_handle_t hDisplayOutput
ctl_combined_display_args_t
-
struct ctl_combined_display_args_t
Combined Display arguments.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_combined_display_optype_t OpType
[in] Combined display operation type
-
bool IsSupported
[out] Returns yes/no in response to IS_SUPPORTED_CONFIG command
-
uint8_t NumOutputs
[in,out] Number of outputs part of desired combined display configuration
-
uint32_t CombinedDesktopWidth
[in,out] Width of desired combined display configuration
-
uint32_t CombinedDesktopHeight
[in,out] Height of desired combined display configuration
-
ctl_combined_display_child_info_t *pChildInfo
[in,out] List of child display information respective to each output. Up to 16 displays are supported with up to 4 displays per GPU.
-
ctl_display_output_handle_t hCombinedDisplayOutput
[in,out] Handle to combined display output
-
uint32_t Size
ctl_genlock_display_info_t
-
struct ctl_genlock_display_info_t
Display Genlock Info.
ctl_genlock_target_mode_list_t
-
struct ctl_genlock_target_mode_list_t
Genlock Target Mode List.
Public Members
-
ctl_display_output_handle_t hDisplayOutput
[in] Display output handle for whom target mode list is required
-
uint32_t NumModes
[in,out] Number of supported Modes that is returned from a driver
-
ctl_display_timing_t *pTargetModes
[out] Display Genlock operation and information
-
ctl_display_output_handle_t hDisplayOutput
ctl_genlock_topology_t
-
struct ctl_genlock_topology_t
Genlock Topology.
Public Members
-
uint8_t NumGenlockDisplays
[in,out] Number of Genlock displays
-
bool IsPrimaryGenlockSystem
[in,out] Primary Genlock system
-
ctl_display_timing_t CommonTargetMode
[in] Common target mode
-
ctl_genlock_display_info_t *pGenlockDisplayInfo
[in,out] List of Genlock display info
-
ctl_genlock_target_mode_list_t *pGenlockModeList
[out] List of Genlock target modes
-
uint8_t NumGenlockDisplays
ctl_genlock_args_t
-
struct ctl_genlock_args_t
Display Genlock Arg type.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_genlock_operation_t Operation
[in] Display Genlock Operation
-
ctl_genlock_topology_t GenlockTopology
[in,out] Display Genlock array of topology structures
-
bool IsGenlockEnabled
[out] Whether the feature is currently enabled or not
-
bool IsGenlockPossible
[out] Indicates if Genlock can be enabled/disabled with the given topology
-
uint32_t Size
ctl_vblank_ts_args_t
-
struct ctl_vblank_ts_args_t
Vblank timestamp arguments.
ctl_lda_args_t
-
struct ctl_lda_args_t
Link Display Adapters Arguments.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint8_t NumAdapters
[in,out] Numbers of adapters to be linked. Up to 4 adapters are supported
-
ctl_device_adapter_handle_t *hLinkedAdapters
[in,out][release] List of Control device adapter handles to be linked, first one being Primary Adapter
-
uint64_t Reserved[4]
[out] Reserved fields. Set to zero.
-
uint32_t Size
ctl_dce_args_t
-
struct ctl_dce_args_t
Get/Set Dynamic Contrast Enhancement arguments.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool Set
[in] Flag to indicate Set or Get operation
-
uint32_t TargetBrightnessPercent
[in] Target brightness percent
-
double PhaseinSpeedMultiplier
[in] Phase-in speed multiplier for brightness to take effect
-
uint32_t NumBins
[in,out] Number of histogram bins
-
bool Enable
[in,out] For get calls, this represents current state & for set this represents future state
-
bool IsSupported
[out] is DCE feature supported
-
uint32_t *pHistogram
[out] Bin wise histogram data of size NumBins * sizeof(uint32_t) for current frame
-
uint32_t Size
ctl_wire_format_t
ctl_get_set_wire_format_config_t
-
struct ctl_get_set_wire_format_config_t
Get Set Wire Format.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_wire_format_operation_type_t Operation
[in] Get/Set Operation
-
ctl_wire_format_t SupportedWireFormat[CTL_MAX_WIREFORMAT_COLOR_MODELS_SUPPORTED]
[out] Array of WireFormats supported
-
ctl_wire_format_t WireFormat
[in,out] Current/Requested WireFormat based on Operation. During SET Operation, if multiple bpc is set, the MIN bpc will be applied
-
uint32_t Size
ctl_display_settings_t
-
struct ctl_display_settings_t
Get/Set end display settings.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool Set
[in] Flag to indicate Set or Get operation. Default option for all features are reserved for Set=true calls, which will reset the setting to driver defaults.
-
ctl_display_setting_flags_t SupportedFlags
[out] Display setting flags supported by the display.
-
ctl_display_setting_flags_t ControllableFlags
[out] Display setting flags which can be controlled by the caller. Features which doesn’t have this flag set cannot be changed by caller.
-
ctl_display_setting_flags_t ValidFlags
[in,out] Display setting flags which caller can use to indicate the features it’s interested in. This cannot have a bit set which is not supported by SupportedFlags and ControllableFlags.
-
ctl_display_setting_low_latency_t LowLatency
[in,out] Low latency state of panel. For HDR10+ Gaming this need to be in ENABLED state.
-
ctl_display_setting_sourcetm_t SourceTM
[in,out] Source tone mapping state known to panel. For HDR10+ Gaming this need to be in ENABLED state.
-
ctl_display_setting_content_type_t ContentType
[in,out] Source content type known to panel.
-
ctl_display_setting_quantization_range_t QuantizationRange
[in,out] Quantization range
-
ctl_display_setting_picture_ar_flags_t SupportedPictureAR
[out] Supported Picture aspect ratios
-
ctl_display_setting_picture_ar_flag_t PictureAR
[in,out] Picture aspect ratio
-
ctl_display_setting_audio_t AudioSettings
[in,out] Audio settings
-
uint32_t Reserved[25]
[out] Reserved fields for future enumerations
-
uint32_t Size
Engine
Functions
Enumerations
Structures
Engine Functions
ctlEnumEngineGroups
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumEngineGroups(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_engine_handle_t *phEngine)
Get handle of engine groups.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to adapter
pCount – [in,out] pointer to the number of components of this type. if count is zero, then the driver shall update the value with the total number of components of this type that are available. if count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phEngine – [in,out][optional][range(0, *pCount)] array of handle of components of this type. if count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlEngineGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEngineGetProperties(ctl_engine_handle_t hEngine, ctl_engine_properties_t *pProperties)
Get engine group properties.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hEngine – [in] Handle for the component.
pProperties – [in,out] The properties for the specified engine group.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hEngine
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlEngineGetActivity
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEngineGetActivity(ctl_engine_handle_t hEngine, ctl_engine_stats_t *pStats)
Get the activity stats for an engine group.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hEngine – [in] Handle for the component.
pStats – [in,out] Will contain a snapshot of the engine group activity counters.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hEngine
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pStats
Engine Enums
ctl_engine_group_t
-
enum ctl_engine_group_t
Accelerator engine groups.
Values:
-
enumerator CTL_ENGINE_GROUP_GT
Access information about all engines combined.
-
enumerator CTL_ENGINE_GROUP_RENDER
Access information about all render and compute engines combined.
-
enumerator CTL_ENGINE_GROUP_MEDIA
Access information about all media engines combined.
-
enumerator CTL_ENGINE_GROUP_MAX
-
enumerator CTL_ENGINE_GROUP_GT
Engine Structures
ctl_engine_properties_t
-
struct ctl_engine_properties_t
Engine group properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_engine_group_t type
[out] The engine group
-
uint32_t Size
ctl_engine_stats_t
-
struct ctl_engine_stats_t
Engine activity counters.
Percent utilization is calculated by taking two snapshots (s1, s2) and using the equation: util = (s2.activeTime - s1.activeTime) / (s2.timestamp - s1.timestamp)
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint64_t activeTime
[out] Monotonic counter for time in microseconds that this resource is actively running workloads.
-
uint64_t timestamp
[out] Monotonic timestamp counter in microseconds when activeTime counter was sampled. This timestamp should only be used to calculate delta time between snapshots of this structure. Never take the delta of this timestamp with the timestamp from a different structure since they are not guaranteed to have the same base. The absolute value of the timestamp is only valid during within the application and may be different on the next execution.
Fan
Functions
Enumerations
Structures
Fan Functions
ctlEnumFans
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumFans(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_fan_handle_t *phFan)
Get handle of fans.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to the adapter
pCount – [in,out] pointer to the number of components of this type. if count is zero, then the driver shall update the value with the total number of components of this type that are available. if count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phFan – [in,out][optional][range(0, *pCount)] array of handle of components of this type. if count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlFanGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFanGetProperties(ctl_fan_handle_t hFan, ctl_fan_properties_t *pProperties)
Get fan properties.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFan – [in] Handle for the component.
pProperties – [in,out] Will contain the properties of the fan.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFan
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlFanGetConfig
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFanGetConfig(ctl_fan_handle_t hFan, ctl_fan_config_t *pConfig)
Get fan configurations and the current fan speed mode (default, fixed, temp-speed table)
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFan – [in] Handle for the component.
pConfig – [in,out] Will contain the current configuration of the fan.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFan
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pConfig
ctlFanSetDefaultMode
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFanSetDefaultMode(ctl_fan_handle_t hFan)
Configure the fan to run with hardware factory settings (set mode to CTL_FAN_SPEED_MODE_DEFAULT)
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFan – [in] Handle for the component.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFan
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS
User does not have permissions to make these modifications.
ctlFanSetFixedSpeedMode
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFanSetFixedSpeedMode(ctl_fan_handle_t hFan, const ctl_fan_speed_t *speed)
Configure the fan to rotate at a fixed speed (set mode to CTL_FAN_SPEED_MODE_FIXED)
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFan – [in] Handle for the component.
speed – [in] The fixed fan speed setting
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFan
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == speed
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS
User does not have permissions to make these modifications.
CTL_RESULT_ERROR_UNSUPPORTED_FEATURE
Fixing the fan speed not supported by the hardware or the fan speed units are not supported. See ctl_fan_properties_t.supportedModes and ctl_fan_properties_t.supportedUnits.
ctlFanSetSpeedTableMode
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFanSetSpeedTableMode(ctl_fan_handle_t hFan, const ctl_fan_speed_table_t *speedTable)
Configure the fan to adjust speed based on a temperature/speed table (set mode to CTL_FAN_SPEED_MODE_TABLE)
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFan – [in] Handle for the component.
speedTable – [in] A table containing temperature/speed pairs.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFan
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == speedTable
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS
User does not have permissions to make these modifications.
CTL_RESULT_ERROR_INVALID_ARGUMENT
The temperature/speed pairs in the array are not sorted on temperature from lowest to highest.
CTL_RESULT_ERROR_UNSUPPORTED_FEATURE
Fan speed table not supported by the hardware or the fan speed units are not supported. See ctl_fan_properties_t.supportedModes and ctl_fan_properties_t.supportedUnits.
ctlFanGetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFanGetState(ctl_fan_handle_t hFan, ctl_fan_speed_units_t units, int32_t *pSpeed)
Get current state of a fan - current mode and speed.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFan – [in] Handle for the component.
units – [in] The units in which the fan speed should be returned.
pSpeed – [in,out] Will contain the current speed of the fan in the units requested. A value of -1 indicates that the fan speed cannot be measured.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFan
CTL_RESULT_ERROR_INVALID_ENUMERATION
CTL_FAN_SPEED_UNITS_PERCENT < units
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pSpeed
CTL_RESULT_ERROR_UNSUPPORTED_FEATURE
The requested fan speed units are not supported. See ctl_fan_properties_t.supportedUnits.
Fan Enums
ctl_fan_speed_mode_t
-
enum ctl_fan_speed_mode_t
Fan resource speed mode.
Values:
-
enumerator CTL_FAN_SPEED_MODE_DEFAULT
The fan speed is operating using the hardware default settings.
-
enumerator CTL_FAN_SPEED_MODE_FIXED
The fan speed is currently set to a fixed value.
-
enumerator CTL_FAN_SPEED_MODE_TABLE
The fan speed is currently controlled dynamically by hardware based on a temp/speed table.
-
enumerator CTL_FAN_SPEED_MODE_MAX
-
enumerator CTL_FAN_SPEED_MODE_DEFAULT
ctl_fan_speed_units_t
Fan Structures
ctl_fan_speed_t
-
struct ctl_fan_speed_t
Fan speed.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
int32_t speed
[in,out] The speed of the fan. On output, a value of -1 indicates that there is no fixed fan speed setting.
-
ctl_fan_speed_units_t units
[in,out] The units that the fan speed is expressed in. On output, if fan speed is -1 then units should be ignored.
-
uint32_t Size
ctl_fan_temp_speed_t
ctl_fan_speed_table_t
-
struct ctl_fan_speed_table_t
Fan speed table.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
int32_t numPoints
[in,out] The number of valid points in the fan speed table. 0 means that there is no fan speed table configured. -1 means that a fan speed table is not supported by the hardware.
-
ctl_fan_temp_speed_t table[CTL_FAN_TEMP_SPEED_PAIR_COUNT]
[in,out] Array of temperature/fan speed pairs. The table is ordered based on temperature from lowest to highest.
-
uint32_t Size
ctl_fan_properties_t
-
struct ctl_fan_properties_t
Fan properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool canControl
[out] Indicates if software can control the fan speed assuming the user has permissions
-
uint32_t supportedModes
[out] Bitfield of supported fan configuration modes (1<<ctl_fan_speed_mode_t)
-
uint32_t supportedUnits
[out] Bitfield of supported fan speed units (1<<ctl_fan_speed_units_t)
-
int32_t maxRPM
[out] The maximum RPM of the fan. A value of -1 means that this property is unknown.
-
int32_t maxPoints
[out] The maximum number of points in the fan temp/speed table. A value of -1 means that this fan doesn’t support providing a temp/speed table.
-
uint32_t Size
ctl_fan_config_t
-
struct ctl_fan_config_t
Fan configuration.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_fan_speed_mode_t mode
[in,out] The fan speed mode (fixed, temp-speed table)
-
ctl_fan_speed_t speedFixed
[in,out] The current fixed fan speed setting
-
ctl_fan_speed_table_t speedTable
[out] A table containing temperature/speed pairs
-
uint32_t Size
Frequency
Functions
Enumerations
Structures
Frequency Functions
ctlEnumFrequencyDomains
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumFrequencyDomains(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_freq_handle_t *phFrequency)
Get handle of frequency domains.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pCount – [in,out] pointer to the number of components of this type. if count is zero, then the driver shall update the value with the total number of components of this type that are available. if count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phFrequency – [in,out][optional][range(0, *pCount)] array of handle of components of this type. if count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlFrequencyGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFrequencyGetProperties(ctl_freq_handle_t hFrequency, ctl_freq_properties_t *pProperties)
Get frequency properties - available frequencies.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFrequency – [in] Handle for the component.
pProperties – [in,out] The frequency properties for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFrequency
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlFrequencyGetAvailableClocks
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFrequencyGetAvailableClocks(ctl_freq_handle_t hFrequency, uint32_t *pCount, double *phFrequency)
Get available non-overclocked hardware clock frequencies for the frequency domain.
The list of available frequencies is returned in order of slowest to fastest.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFrequency – [in] Device handle of the device.
pCount – [in,out] pointer to the number of frequencies. if count is zero, then the driver shall update the value with the total number of frequencies that are available. if count is greater than the number of frequencies that are available, then the driver shall update the value with the correct number of frequencies.
phFrequency – [in,out][optional][range(0, *pCount)] array of frequencies in units of MHz and sorted from slowest to fastest. if count is less than the number of frequencies that are available, then the driver shall only retrieve that number of frequencies.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFrequency
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pCount
ctlFrequencyGetRange
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFrequencyGetRange(ctl_freq_handle_t hFrequency, ctl_freq_range_t *pLimits)
Get current frequency limits.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFrequency – [in] Handle for the component.
pLimits – [in,out] The range between which the hardware can operate for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFrequency
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pLimits
ctlFrequencySetRange
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFrequencySetRange(ctl_freq_handle_t hFrequency, const ctl_freq_range_t *pLimits)
Set frequency range between which the hardware can operate.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFrequency – [in] Handle for the component.
pLimits – [in] The limits between which the hardware can operate for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFrequency
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pLimits
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS
User does not have permissions to make these modifications.
ctlFrequencyGetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFrequencyGetState(ctl_freq_handle_t hFrequency, ctl_freq_state_t *pState)
Get current frequency state - frequency request, actual frequency, TDP limits.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFrequency – [in] Handle for the component.
pState – [in,out] Frequency state for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFrequency
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pState
ctlFrequencyGetThrottleTime
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlFrequencyGetThrottleTime(ctl_freq_handle_t hFrequency, ctl_freq_throttle_time_t *pThrottleTime)
Get frequency throttle time.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hFrequency – [in] Handle for the component.
pThrottleTime – [in,out] Will contain a snapshot of the throttle time counters for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hFrequency
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pThrottleTime
Frequency Enums
ctl_freq_domain_t
ctl_freq_throttle_reason_flags_t
-
enum ctl_freq_throttle_reason_flag_t
Values:
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_AVE_PWR_CAP
frequency throttled due to average power excursion (PL1)
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_BURST_PWR_CAP
frequency throttled due to burst power excursion (PL2)
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_CURRENT_LIMIT
frequency throttled due to current excursion (PL4)
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_THERMAL_LIMIT
frequency throttled due to thermal excursion (T > TjMax)
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_PSU_ALERT
frequency throttled due to power supply assertion
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_SW_RANGE
frequency throttled due to software supplied frequency range
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_HW_RANGE
frequency throttled due to a sub block that has a lower frequency range when it receives clocks
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_MAX
-
enumerator CTL_FREQ_THROTTLE_REASON_FLAG_AVE_PWR_CAP
Frequency Structures
ctl_freq_properties_t
-
struct ctl_freq_properties_t
Frequency properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_freq_domain_t type
[out] The hardware block that this frequency domain controls (GPU, memory, …)
-
bool canControl
[out] Indicates if software can control the frequency of this domain assuming the user has permissions
-
double min
[out] The minimum hardware clock frequency in units of MHz.
-
double max
[out] The maximum non-overclock hardware clock frequency in units of MHz.
-
uint32_t Size
ctl_freq_range_t
-
struct ctl_freq_range_t
Frequency range between which the hardware can operate. The limits can be above or below the hardware limits - the hardware will clamp appropriately.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
double min
[in,out] The min frequency in MHz below which hardware frequency management will not request frequencies. On input, setting to 0 will permit the frequency to go down to the hardware minimum while setting to -1 will return the min frequency limit to the factory value (can be larger than the hardware min). On output, a negative value indicates that no external minimum frequency limit is in effect.
-
double max
[in,out] The max frequency in MHz above which hardware frequency management will not request frequencies. On input, setting to 0 or a very big number will permit the frequency to go all the way up to the hardware maximum while setting to -1 will return the max frequency to the factory value (which can be less than the hardware max). On output, a negative number indicates that no external maximum frequency limit is in effect.
-
uint32_t Size
ctl_freq_state_t
-
struct ctl_freq_state_t
Frequency state.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
double currentVoltage
[out] Current voltage in Volts. A negative value indicates that this property is not known.
-
double request
[out] The current frequency request in MHz. A negative value indicates that this property is not known.
-
double tdp
[out] The maximum frequency in MHz supported under the current TDP conditions. This fluctuates dynamically based on the power and thermal limits of the part. A negative value indicates that this property is not known.
-
double efficient
[out] The efficient minimum frequency in MHz. A negative value indicates that this property is not known.
-
double actual
[out] The resolved frequency in MHz. A negative value indicates that this property is not known.
-
ctl_freq_throttle_reason_flags_t throttleReasons
[out] The reasons that the frequency is being limited by the hardware. Returns 0 (frequency not throttled) or a combination of ctl_freq_throttle_reason_flag_t.
-
uint32_t Size
ctl_freq_throttle_time_t
-
struct ctl_freq_throttle_time_t
Frequency throttle time snapshot.
Percent time throttled is calculated by taking two snapshots (s1, s2) and using the equation: throttled = (s2.throttleTime - s1.throttleTime) / (s2.timestamp - s1.timestamp)
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint64_t throttleTime
[out] The monotonic counter of time in microseconds that the frequency has been limited by the hardware.
-
uint64_t timestamp
[out] Microsecond timestamp when throttleTime was captured. This timestamp should only be used to calculate delta time between snapshots of this structure. Never take the delta of this timestamp with the timestamp from a different structure since they are not guaranteed to have the same base. The absolute value of the timestamp is only valid during within the application and may be different on the next execution.
Led
Functions
Structures
Led Functions
ctlEnumLeds
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumLeds(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_led_handle_t *phLed)
Get handle of Leds.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pCount – [in,out] pointer to the number of components of this type. If count is zero, then the driver shall update the value with the total number of components of this type that are available. If count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phLed – [in,out][optional][range(0, *pCount)] array of handle of components of this type. If count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlLedGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlLedGetProperties(ctl_led_handle_t hLed, ctl_led_properties_t *pProperties)
Get Led properties.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hLed – [in] Handle for the component.
pProperties – [in,out] Will contain Led properties.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hLed
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlLedGetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlLedGetState(ctl_led_handle_t hLed, ctl_led_state_t *pState)
Get Led state.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hLed – [in] Handle for the component.
pState – [in,out] Will contain the current Led state. Returns Led state if canControl is true and isI2C is false. pwm and color structure members of ctl_led_state_t will be returned only if supported by Led, else they will be returned as 0.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hLed
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pState
ctlLedSetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlLedSetState(ctl_led_handle_t hLed, void *pBuffer, uint32_t bufferSize)
Set Led state.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hLed – [in] Handle for the component.
pBuffer – [in] Led State buffer. If isI2C is true, the pBuffer and bufferSize will be passed to the I2C Interface. pBuffer format in this case is OEM defined. If isI2C is false, the pBuffer will be typecasted to ctl_led_state_t* and bufferSize needs to be sizeof ctl_led_state_t. pwm and color structure members of ctl_led_state_t will be set only if supported by Led, else they will be ignored.
bufferSize – [in] Led State buffer size.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hLed
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pBuffer
Led Structures
ctl_led_properties_t
-
struct ctl_led_properties_t
Led properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool canControl
[out] Indicates if software can control the Led assuming the user has permissions.
-
bool isI2C
[out] Indicates support for control via I2C interface.
-
bool isPWM
[out] Returns a valid value if canControl is true and isI2C is false. Indicates if the Led is PWM capable. If isPWM is false, only turn Led on/off is supported.
-
bool haveRGB
[out] Returns a valid value if canControl is true and isI2C is false. Indicates if the Led is RGB capable.
-
uint32_t Size
ctl_led_color_t
-
struct ctl_led_color_t
Led color.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
double red
[in,out][range(0.0, 1.0)] The Led red value. On output, a value less than 0.0 indicates that the color is not known.
-
double green
[in,out][range(0.0, 1.0)] The Led green value. On output, a value less than 0.0 indicates that the color is not known.
-
double blue
[in,out][range(0.0, 1.0)] The Led blue value. On output, a value less than 0.0 indicates that the color is not known.
-
uint32_t Size
ctl_led_state_t
-
struct ctl_led_state_t
Led state.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool isOn
[in,out] Indicates if the Led is on or off.
-
double pwm
[in,out] Led On/Off Ratio, PWM range(0.0, 1.0). A value greater than 1.0 is capped at 1.0.
-
ctl_led_color_t color
[in,out] Color of the Led.
-
uint32_t Size
Media
Functions
Enumerations
Structures
Media Functions
ctlGetSupportedVideoProcessingCapabilities
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSupportedVideoProcessingCapabilities(ctl_device_adapter_handle_t hDAhandle, ctl_video_processing_feature_caps_t *pFeatureCaps)
Get Video Processing capabilities.
The application gets Video Processing properties
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pFeatureCaps – [in,out][release] Video Processing 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”
ctlGetSetVideoProcessingFeature
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetVideoProcessingFeature(ctl_device_adapter_handle_t hDAhandle, ctl_video_processing_feature_getset_t *pFeature)
Get/Set Video Processing feature details.
Video Processing feature details
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pFeature – [in][release] Video Processing 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”
Media Enums
ctl_video_processing_feature_t
-
enum ctl_video_processing_feature_t
Feature type.
Values:
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_FILM_MODE_DETECTION
Film mode detection. Contains CTL_PROPERTY_VALUE_TYPE_BOOL ValueType.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_NOISE_REDUCTION
Noise reduction. Contains CTL_PROPERTY_VALUE_TYPE_CUSTOM type field using struct ctl_video_processing_noise_reduction_t.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_SHARPNESS
Sharpness. Contains CTL_PROPERTY_VALUE_TYPE_UINT32 ValueType.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_ADAPTIVE_CONTRAST_ENHANCEMENT
Adaptive contrast enhancement. Contains CTL_PROPERTY_VALUE_TYPE_CUSTOM type field using struct ctl_video_processing_adaptive_contrast_enhancement_t.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_SUPER_RESOLUTION
Super resolution. Contains CTL_PROPERTY_VALUE_TYPE_CUSTOM ValueType using ctl_video_processing_super_resolution_t. By defaut, Super resolution is not active, need application to activate it, please contact Intel for super resolution activation.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_STANDARD_COLOR_CORRECTION
Standard color correction. Controls Hue, Saturation, Contrast, Brightness. Contains CTL_PROPERTY_VALUE_TYPE_CUSTOM type field using struct ctl_video_processing_standard_color_correction_t.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_TOTAL_COLOR_CORRECTION
Total color correction. Controls Red, Green, Blue, Yellow, Cyan, Magenta. Contains CTL_PROPERTY_VALUE_TYPE_CUSTOM type field using struct ctl_video_processing_total_color_correction_t.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_SKIN_TONE_ENHANCEMENT
Skin tone enhancement. Contains CTL_PROPERTY_VALUE_TYPE_UINT32 ValueType.
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_MAX
-
enumerator CTL_VIDEO_PROCESSING_FEATURE_FILM_MODE_DETECTION
ctl_video_processing_super_resolution_flags_t
-
enum ctl_video_processing_super_resolution_flag_t
Values:
-
enumerator CTL_VIDEO_PROCESSING_SUPER_RESOLUTION_FLAG_DISABLE
Disable.
-
enumerator CTL_VIDEO_PROCESSING_SUPER_RESOLUTION_FLAG_ENABLE_DEFAULT_SCENARIO_MODE
Enable with default super resolution mode.
-
enumerator CTL_VIDEO_PROCESSING_SUPER_RESOLUTION_FLAG_ENABLE_CONFERENCE_SCENARIO_MODE
Super resolution mode targeted at video conference content.
-
enumerator CTL_VIDEO_PROCESSING_SUPER_RESOLUTION_FLAG_ENABLE_CAMERA_SCENARIO_MODE
Super resolution mode targeted at camera capture content (e.g. security camera)
-
enumerator CTL_VIDEO_PROCESSING_SUPER_RESOLUTION_FLAG_MAX
-
enumerator CTL_VIDEO_PROCESSING_SUPER_RESOLUTION_FLAG_DISABLE
Media Structures
ctl_video_processing_super_resolution_info_t
-
struct ctl_video_processing_super_resolution_info_t
Super Resolution feature details structure to be used with SUPER_RESOLUTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_video_processing_super_resolution_flags_t super_resolution_flag
[in,out] SUPER_RESOLUTION flag
-
ctl_property_info_uint_t super_resolution_range_in_width
[in,out] The range of input width information(min, max, default and step size)which super resolution is capable of supporting.
-
ctl_property_info_uint_t super_resolution_range_in_height
[in,out] The range of input height information(min, max, default and step size)which super resolution is capable of supporting.
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_super_resolution_t
-
struct ctl_video_processing_super_resolution_t
Super Resolution Get/Set structure to be used with SUPER_RESOLUTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_video_processing_super_resolution_flags_t super_resolution_flag
[in,out] SUPER_RESOLUTION flag
-
bool super_resolution_max_in_enabled
[in,out] The enabling of maximum input width and height limition. If enabled, super resolution will always take effect if the input resolution is smaller than the below specified max resolution; otherwise, super_resolution_max_in_width and super_resolution_max_in_height will be ignored
-
uint32_t super_resolution_max_in_width
[in,out] The maximum input width limition value setting which super resolution will be allowed to enabled.
-
uint32_t super_resolution_max_in_height
[in,out] The maximum input height limiation value setting which super resolution will be allowed to enabled.
-
bool super_resolution_reboot_reset
[in,out] Resetting of super resolution after rebooting.
-
uint32_t ReservedFields[15]
[out] Reserved field of 60 bytes
-
char ReservedBytes[3]
[out] Reserved field of 3 bytes
-
uint32_t Size
ctl_video_processing_noise_reduction_info_t
-
struct ctl_video_processing_noise_reduction_info_t
Noise Reduction feature details structure to be used with NOISE_REDUCTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_property_info_uint_t noise_reduction
[in,out] Noise reduction min, max, default and step size information
-
bool noise_reduction_auto_detect_supported
[in,out] Noise reduction Auto Detect is supported; only valid if NOISE_REDUCTION is enabled. If enabled, noise reduction level is automatically determined and set value is not used.
-
ctl_property_info_boolean_t noise_reduction_auto_detect
[in,out] Noise reduction auto detect default information
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_noise_reduction_t
-
struct ctl_video_processing_noise_reduction_t
Noise Reduction Get/Set structure to be used with NOISE_REDUCTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_property_uint_t noise_reduction
[in,out] Noise reduction enable and value setting
-
ctl_property_boolean_t noise_reduction_auto_detect
[in,out] Noise reduction auto detect setting
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_adaptive_contrast_enhancement_info_t
-
struct ctl_video_processing_adaptive_contrast_enhancement_info_t
Adaptive Contrast Enhancement feature details structure to be used with ADAPTIVE_CONTRAST_ENHANCEMENT.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_property_info_uint_t adaptive_contrast_enhancement
[in,out] Adaptive Contrast Enhancement min, max, default and step size information
-
bool adaptive_contrast_enhancement_coexistence_supported
[in,out] Adaptive contrast enhancement coexistance is supported; only valid if ADAPTIVE_CONTRAST_ENHANCEMENT is enabled. If enabled, Video adaptive contrast ehancement will be allowed to be enabled and coexist with Display adaptive contrast ehancement feature.
-
ctl_property_info_boolean_t adaptive_contrast_enhancement_coexistence
[in,out] Adaptive contrast enhancement coexistence default information
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_adaptive_contrast_enhancement_t
-
struct ctl_video_processing_adaptive_contrast_enhancement_t
Adaptive Contrast Enhancement Get/Set structure to be used with ADAPTIVE_CONTRAST_ENHANCEMENT.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_property_uint_t adaptive_contrast_enhancement
[in,out] Adaptive Contrast Enhancement enable and value setting
-
ctl_property_boolean_t adaptive_contrast_enhancement_coexistence
[in,out] Adaptive contrast enhancement coexistance setting
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_standard_color_correction_info_t
-
struct ctl_video_processing_standard_color_correction_info_t
Standard Color Correction feature details structure to be used with STANDARD_COLOR_CORRECTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool standard_color_correction_default_enable
[in,out] STANDARD_COLOR_CORRECTION default enable setting. This global settings controls all of Hue, Saturation, Contrast, Brightness enabling. Individual Enable controls shall be ignored.
-
ctl_property_info_float_t brightness
[in,out] Brightness min, max, default and step size information
-
ctl_property_info_float_t contrast
[in,out] Contrast min, max, default and step size information
-
ctl_property_info_float_t hue
[in,out] Hue min, max, default and step size information
-
ctl_property_info_float_t saturation
[in,out] Saturation min, max, default and step size information
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_standard_color_correction_t
-
struct ctl_video_processing_standard_color_correction_t
Standard Color Correction Get/Set structure to be used with STANDARD_COLOR_CORRECTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool standard_color_correction_enable
[in,out] STANDARD_COLOR_CORRECTION enable setting. This global setting controls all of Hue, Saturation, Contrast, Brightness enabling.
-
float brightness
[in,out] Brightness value
-
float contrast
[in,out] Contrast value
-
float hue
[in,out] Hue value
-
float saturation
[in,out] Saturation value
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_total_color_correction_info_t
-
struct ctl_video_processing_total_color_correction_info_t
Total Color Correction Get/Set structure to be used with TOTAL_COLOR_CORRECTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool total_color_correction_default_enable
[in,out] TOTAL_COLOR_CORRECTION enable setting. This global setting controls all of Red, Green, Blue, Yellow, Cyan, Magenta enabling. Individual Enable controls shall be ignored.
-
ctl_property_info_uint_t red
[in,out] Red min, max, default and step size information
-
ctl_property_info_uint_t green
[in,out] Green min, max, default and step size information
-
ctl_property_info_uint_t blue
[in,out] Blue min, max, default and step size information
-
ctl_property_info_uint_t yellow
[in,out] Yellow min, max, default and step size information
-
ctl_property_info_uint_t cyan
[in,out] Cyan min, max, default and step size information
-
ctl_property_info_uint_t magenta
[in,out] Magenta min, max, default and step size information
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_total_color_correction_t
-
struct ctl_video_processing_total_color_correction_t
Total Color Correction Get/Set structure to be used with TOTAL_COLOR_CORRECTION.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool total_color_correction_enable
[in,out] TOTAL_COLOR_CORRECTION enable setting. This global setting controls all of Red, Green, Blue, Yellow, Cyan, Magenta enabling.
-
uint32_t red
[in,out] Red value
-
uint32_t green
[in,out] Green value
-
uint32_t blue
[in,out] Blue value
-
uint32_t yellow
[in,out] Yellow value
-
uint32_t cyan
[in,out] Cyan value
-
uint32_t magenta
[in,out] Magenta value
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_feature_details_t
-
struct ctl_video_processing_feature_details_t
Video Processing feature details which will have range supported and default values.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_video_processing_feature_t FeatureType
[out] Video processing 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 Video Processing features. For enum types this can be noise reduction, color control etc. This member is valid iff ValueType is not CTL_PROPERTY_VALUE_TYPE_CUSTOM
-
int32_t CustomValueSize
[in] CustomValue buffer size
-
void *pCustomValue
[in,out] Pointer to a custom structure. Features that use CustomType, after the first query for all of the supported features the user needs to allocate this buffer and then query again just this specific feature for the structure to be filled in. Caller should allocate this buffer with known custom feature structure size. This member is valid iff ValueType is CTL_PROPERTY_VALUE_TYPE_CUSTOM.
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_feature_caps_t
-
struct ctl_video_processing_feature_caps_t
Video Processing features 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_video_processing_feature_details_t *pFeatureDetails
[in,out] Array of supported features and their details
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
ctl_video_processing_feature_getset_t
-
struct ctl_video_processing_feature_getset_t
Video Processing feature for get/set.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_video_processing_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. [This is not currently supported and should be an empty string.]
-
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 Video Processing features. For enum types this can be noise reduction, color control etc. This member is valid iff ValueType is not CTL_PROPERTY_VALUE_TYPE_CUSTOM
-
int32_t CustomValueSize
[in] CustomValue buffer size. For a feature requiring custom struct, caller will know of it upfront the struct to use based on the feautre 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
-
uint32_t ReservedFields[16]
[out] Reserved field of 64 bytes
-
uint32_t Size
Memory
Functions
Enumerations
Structures
Memory Functions
ctlEnumMemoryModules
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumMemoryModules(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_mem_handle_t *phMemory)
Get handle of memory modules.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pCount – [in,out] pointer to the number of components of this type. if count is zero, then the driver shall update the value with the total number of components of this type that are available. if count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phMemory – [in,out][optional][range(0, *pCount)] array of handle of components of this type. if count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlMemoryGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlMemoryGetProperties(ctl_mem_handle_t hMemory, ctl_mem_properties_t *pProperties)
Get memory properties.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hMemory – [in] Handle for the component.
pProperties – [in,out] Will contain memory properties.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hMemory
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlMemoryGetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlMemoryGetState(ctl_mem_handle_t hMemory, ctl_mem_state_t *pState)
Get memory state - health, allocated.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hMemory – [in] Handle for the component.
pState – [in,out] Will contain the current health and allocated memory.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hMemory
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pState
ctlMemoryGetBandwidth
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlMemoryGetBandwidth(ctl_mem_handle_t hMemory, ctl_mem_bandwidth_t *pBandwidth)
Get memory bandwidth.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hMemory – [in] Handle for the component.
pBandwidth – [in,out] Will contain the current health, free memory, total memory size.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hMemory
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pBandwidth
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS
User does not have permissions to query this telemetry.
Memory Enums
ctl_mem_type_t
-
enum ctl_mem_type_t
Memory module types.
Values:
-
enumerator CTL_MEM_TYPE_HBM
HBM memory.
-
enumerator CTL_MEM_TYPE_DDR
DDR memory.
-
enumerator CTL_MEM_TYPE_DDR3
DDR3 memory.
-
enumerator CTL_MEM_TYPE_DDR4
DDR4 memory.
-
enumerator CTL_MEM_TYPE_DDR5
DDR5 memory.
-
enumerator CTL_MEM_TYPE_LPDDR
LPDDR memory.
-
enumerator CTL_MEM_TYPE_LPDDR3
LPDDR3 memory.
-
enumerator CTL_MEM_TYPE_LPDDR4
LPDDR4 memory.
-
enumerator CTL_MEM_TYPE_LPDDR5
LPDDR5 memory.
-
enumerator CTL_MEM_TYPE_GDDR4
GDDR4 memory.
-
enumerator CTL_MEM_TYPE_GDDR5
GDDR5 memory.
-
enumerator CTL_MEM_TYPE_GDDR5X
GDDR5X memory.
-
enumerator CTL_MEM_TYPE_GDDR6
GDDR6 memory.
-
enumerator CTL_MEM_TYPE_GDDR6X
GDDR6X memory.
-
enumerator CTL_MEM_TYPE_GDDR7
GDDR7 memory.
-
enumerator CTL_MEM_TYPE_UNKNOWN
UNKNOWN memory.
-
enumerator CTL_MEM_TYPE_MAX
-
enumerator CTL_MEM_TYPE_HBM
ctl_mem_loc_t
Memory Structures
ctl_mem_properties_t
-
struct ctl_mem_properties_t
Memory properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_mem_type_t type
[out] The memory type
-
ctl_mem_loc_t location
[out] Location of this memory (system, device)
-
uint64_t physicalSize
[out] Physical memory size in bytes. A value of 0 indicates that this property is not known. However, a call to ctlMemoryGetState() will correctly return the total size of usable memory.
-
int32_t busWidth
[out] Width of the memory bus. A value of -1 means that this property is unknown.
-
int32_t numChannels
[out] The number of memory channels. A value of -1 means that this property is unknown.
-
uint32_t Size
ctl_mem_state_t
-
struct ctl_mem_state_t
Memory state - health, allocated.
Percent allocation is given by 100 * (size - free / size.
Percent free is given by 100 * free / size.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint64_t free
[out] The free memory in bytes
-
uint64_t size
[out] The total allocatable memory in bytes (can be less than ctl_mem_properties_t.physicalSize)
ctl_mem_bandwidth_t
-
struct ctl_mem_bandwidth_t
Memory bandwidth.
Percent bandwidth is calculated by taking two snapshots (s1, s2) and using the equation: bw = 10^6 * ((s2.readCounter - s1.readCounter) + (s2.writeCounter - s1.writeCounter)) / (s2.maxBandwidth * (s2.timestamp - s1.timestamp))
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint64_t maxBandwidth
[out] Current maximum bandwidth in units of bytes/sec
-
uint64_t timestamp
[out] The timestamp (in microseconds) when these measurements were sampled. This timestamp should only be used to calculate delta time between snapshots of this structure. Never take the delta of this timestamp with the timestamp from a different structure since they are not guaranteed to have the same base. The absolute value of the timestamp is only valid during within the application and may be different on the next execution.
-
uint64_t readCounter
[out] Total bytes read from memory. Supported only for Version > 0
-
uint64_t writeCounter
[out] Total bytes written to memory. Supported only for Version > 0
Overclock
Functions
Enumerations
Structures
Overclock Functions
ctlOverclockGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGetProperties(ctl_device_adapter_handle_t hDeviceHandle, ctl_oc_properties_t *pOcProperties)
Get overclock properties - available properties.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pOcProperties – [in,out] The overclocking properties for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pOcProperties
ctlOverclockWaiverSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockWaiverSet(ctl_device_adapter_handle_t hDeviceHandle)
Overclock Waiver - Warranty Waiver.
Most of the overclock functions will return an error if the waiver is not set. This is because most overclock settings will increase the electric/thermal stress on the part and thus reduce its lifetime.
By setting the waiver, the user is indicate that they are accepting a reduction in the lifetime of the part.
It is the responsibility of overclock applications to notify each user at least once with a popup of the dangers and requiring acceptance.
Only once the user has accepted should this function be called by the application.
It is acceptable for the application to cache the user choice and call this function on future executions without issuing the popup.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockGpuFrequencyOffsetGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGpuFrequencyOffsetGet(ctl_device_adapter_handle_t hDeviceHandle, double *pOcFrequencyOffset)
Get the Overclock Frequency Offset for the GPU in MHz.
Determine the current frequency offset in effect (refer to ctlOverclockGpuFrequencyOffsetSet() for details).
The value returned may be different from the value that was previously set by the application depending on hardware limitations or if the function ctlOverclockGpuFrequencyOffsetSet() has been called or another application that has changed the value.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pOcFrequencyOffset – [in,out] The Turbo Overclocking Frequency Desired in MHz.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pOcFrequencyOffset
ctlOverclockGpuFrequencyOffsetSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGpuFrequencyOffsetSet(ctl_device_adapter_handle_t hDeviceHandle, double ocFrequencyOffset)
Set the Overclock Frequency Offset for the GPU in MHZ.
The purpose of this function is to increase/decrease the frequency at which typical workloads will run within the same thermal budget.
The frequency offset is expressed in units of ±1MHz.
The actual operating frequency for each workload is not guaranteed to change exactly by the specified offset.
For positive frequency offsets, the factory maximum frequency may increase by up to the specified amount.
For negative frequency offsets, the overclock waiver must have been set since this can result in running the part at voltages beyond the part warrantee limits. An error is returned if the waiver has not been set.
Specifying large values for the frequency offset can lead to instability. It is recommended that changes are made in small increments and stability/performance measured running intense GPU workloads before increasing further.
This setting is not persistent through system reboots or driver resets/hangs. It is up to the overclock application to reapply the settings in those cases.
This setting can cause system/device instability. It is up to the overclock application to detect if the system has rebooted unexpectedly or the device was restarted. When this occurs, the application should not reapply the overclock settings automatically but instead return to previously known good settings or notify the user that the settings are not being applied.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
ocFrequencyOffset – [in] The Turbo Overclocking Frequency Desired in MHz.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockGpuVoltageOffsetGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGpuVoltageOffsetGet(ctl_device_adapter_handle_t hDeviceHandle, double *pOcVoltageOffset)
Get the Overclock Gpu Voltage Offset in mV.
Determine the current voltage offset in effect on the hardware (refer to ctlOverclockGpuVoltageOffsetSet for details).
The value returned may be different from the value that was previously set by the application depending on hardware limitations or if the function ctlOverclockGpuVoltageOffsetSet has been called or another application that has changed the value.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pOcVoltageOffset – [in,out] The Turbo Overclocking Frequency Desired in mV.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pOcVoltageOffset
ctlOverclockGpuVoltageOffsetSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGpuVoltageOffsetSet(ctl_device_adapter_handle_t hDeviceHandle, double ocVoltageOffset)
Set the Overclock Gpu Voltage Offset in mV.
The purpose of this function is to attempt to run the GPU up to higher voltages beyond the part warrantee limits. This can permit running at even higher frequencies than can be obtained using the frequency offset setting, but at the risk of reducing the lifetime of the part.
The voltage offset is expressed in units of ±millivolts with values permitted down to a resolution of 1 millivolt.
The overclock waiver must be set before calling this function otherwise and error will be returned.
There is no guarantee that a workload can operate at the higher frequencies permitted by this setting. Significantly more heat will be generated at these high frequencies/voltages which will necessitate a good cooling solution.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
ocVoltageOffset – [in] The Turbo Overclocking Frequency Desired in mV.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockGpuLockGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGpuLockGet(ctl_device_adapter_handle_t hDeviceHandle, ctl_oc_vf_pair_t *pVfPair)
Gets the Locked GPU Voltage for Overclocking in mV.
The purpose of this function is to determine if the current values of the frequency/voltage lock.
If the lock is not currently active, will return 0 for frequency and voltage.
Note that the operating frequency/voltage may be lower than these settings if power/thermal limits are exceeded.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pVfPair – [out] The current locked voltage and frequency.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pVfPair
ctlOverclockGpuLockSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockGpuLockSet(ctl_device_adapter_handle_t hDeviceHandle, ctl_oc_vf_pair_t vFPair)
Locks the GPU voltage for Overclocking in mV.
The purpose of this function is to provide an interface for scanners to lock the frequency and voltage to fixed values.
The frequency is expressed in units of MHz with a resolution of 1MHz.
The voltage is expressed in units of ±millivolts with values permitted down to a resolution of 1 millivolt.
The overclock waiver must be set since fixing the voltage at a high value puts unnecessary stress on the part.
The actual frequency may reduce depending on power/thermal limitations.
Requesting a frequency and/or voltage of 0 will return the hardware to dynamic frequency/voltage management with any previous frequency offset or voltage offset settings reapplied.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
vFPair – [in] The current locked voltage and frequency.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockVramFrequencyOffsetGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockVramFrequencyOffsetGet(ctl_device_adapter_handle_t hDeviceHandle, double *pOcFrequencyOffset)
Get the current Vram Frequency Offset in GT/s.
The purpose of this function is to return the current VRAM frequency offset in units of GT/s.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pOcFrequencyOffset – [in,out] The current Memory Frequency in GT/s.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pOcFrequencyOffset
ctlOverclockVramFrequencyOffsetSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockVramFrequencyOffsetSet(ctl_device_adapter_handle_t hDeviceHandle, double ocFrequencyOffset)
Set the desired Vram frquency Offset in GT/s.
The purpose of this function is to increase/decrease the frequency of VRAM.
The frequency offset is expressed in units of GT/s with a minimum step size given by ctlOverclockGetProperties.
The actual operating frequency for each workload is not guaranteed to change exactly by the specified offset.
The waiver must be set using clibOverclockWaiverSet() before this function can be called.
This setting is not persistent through system reboots or driver resets/hangs. It is up to the overclock application to reapply the settings in those cases.
This setting can cause system/device instability. It is up to the overclock application to detect if the system has rebooted unexpectedly or the device was restarted. When this occurs, the application should not reapply the overclock settings automatically but instead return to previously known good settings or notify the user that the settings are not being applied.
If the memory controller doesn’t support changes to frequency on the fly, one of the following return codes will be given:
CTL_RESULT_ERROR_RESET_DEVICE_REQUIRED: The requested memory overclock will be applied when the device is reset or the system is rebooted. In this case, the overclock software should check if the overclock request was applied after the reset/reboot. If it was and when the overclock application shuts down gracefully and if the overclock application wants the setting to be persistent, the application should request the same overclock settings again so that they will be applied on the next reset/reboot. If this is not done, then every time the device is reset and overclock is requested, the device needs to be reset a second time.
CTL_RESULT_ERROR_FULL_REBOOT_REQUIRED: The requested memory overclock will be applied when the system is rebooted. In this case, the overclock software should check if the overclock request was applied after the reboot. If it was and when the overclock application shuts down gracefully and if the overclock application wants the setting to be persistent, the application should request the same overclock settings again so that they will be applied on the next reset/reboot. If this is not done and the overclock setting is requested after the reboot has occurred, a second reboot will be required.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
ocFrequencyOffset – [in] The desired Memory Frequency in GT/s.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockVramVoltageOffsetGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockVramVoltageOffsetGet(ctl_device_adapter_handle_t hDeviceHandle, double *pVoltage)
Get the Overclock Vram Voltage Offset in mV.
The purpose of this function is to increase/decrease the voltage of VRAM.
The voltage offset is expressed in units of millivolts with a minimum step size given by ctlOverclockGetProperties.
The waiver must be set using ctlOverclockWaiverSet before this function can be called.
This setting is not persistent through system reboots or driver resets/hangs. It is up to the overclock application to reapply the settings in those cases.
This setting can cause system/device instability. It is up to the overclock application to detect if the system has rebooted unexpectedly or the device was restarted. When this occurs, the application should not reapply the overclock settings automatically but instead return to previously known good settings or notify the user that the settings are not being applied.
If the memory controller doesn’t support changes to voltage on the fly, one of the following return codes will be given:
CTL_RESULT_ERROR_RESET_DEVICE_REQUIRED: The requested memory overclock will be applied when the device is reset or the system is rebooted. In this case, the overclock software should check if the overclock request was applied after the reset/reboot. If it was and when the overclock application shuts down gracefully and if the overclock application wants the setting to be persistent, the application should request the same overclock settings again so that they will be applied on the next reset/reboot. If this is not done, then every time the device is reset and overclock is requested, the device needs to be reset a second time.
CTL_RESULT_ERROR_FULL_REBOOT_REQUIRED: The requested memory overclock will be applied when the system is rebooted. In this case, the overclock software should check if the overclock request was applied after the reboot. If it was and when the overclock application shuts down gracefully and if the overclock application wants the setting to be persistent, the application should request the same overclock settings again so that they will be applied on the next reset/reboot. If this is not done and the overclock setting is requested after the reboot has occurred, a second reboot will be required.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pVoltage – [out] The current locked voltage in mV.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pVoltage
ctlOverclockVramVoltageOffsetSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockVramVoltageOffsetSet(ctl_device_adapter_handle_t hDeviceHandle, double voltage)
Set the Overclock Vram Voltage Offset in mV.
The purpose of this function is to set the maximum sustained power limit. If the average GPU power averaged over a few seconds exceeds this value, the frequency of the GPU will be throttled.
Set a value of 0 to disable this power limit. In this case, the GPU frequency will not throttle due to average power but may hit other limits.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
voltage – [in] The voltage to be locked in mV.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockPowerLimitGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockPowerLimitGet(ctl_device_adapter_handle_t hDeviceHandle, double *pSustainedPowerLimit)
Get the sustained power limit in mW.
The purpose of this function is to read the current sustained power limit.
A value of 0 means that the limit is disabled - the GPU frequency can run as high as possible until other limits are hit.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pSustainedPowerLimit – [in,out] The current sustained power limit in mW.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pSustainedPowerLimit
ctlOverclockPowerLimitSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockPowerLimitSet(ctl_device_adapter_handle_t hDeviceHandle, double sustainedPowerLimit)
Set the sustained power limit in mW.
The purpose of this function is to set the maximum sustained power limit. If the average GPU power averaged over a few seconds exceeds this value, the frequency of the GPU will be throttled.
Set a value of 0 to disable this power limit. In this case, the GPU frequency will not throttle due to average power but may hit other limits.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
sustainedPowerLimit – [in] The desired sustained power limit in mW.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlOverclockTemperatureLimitGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockTemperatureLimitGet(ctl_device_adapter_handle_t hDeviceHandle, double *pTemperatureLimit)
Get the current temperature limit in Celsius.
The purpose of this function is to read the current thermal limit.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pTemperatureLimit – [in,out] The current temperature limit in Celsius.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pTemperatureLimit
ctlOverclockTemperatureLimitSet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockTemperatureLimitSet(ctl_device_adapter_handle_t hDeviceHandle, double temperatureLimit)
Set the temperature limit in Celsius.
The purpose of this function is to change the maximum thermal limit. When the GPU temperature exceeds this value, the GPU frequency will be throttled.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
temperatureLimit – [in] The desired temperature limit in Celsius.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
ctlPowerTelemetryGet
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPowerTelemetryGet(ctl_device_adapter_handle_t hDeviceHandle, ctl_power_telemetry_t *pTelemetryInfo)
Get Power Telemetry.
Limited rate of 50 ms, any call under 50 ms will return the same information.
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
pTelemetryInfo – [out] The overclocking properties for the specified domain.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pTelemetryInfo
ctlOverclockResetToDefault
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlOverclockResetToDefault(ctl_device_adapter_handle_t hDeviceHandle)
Reset all Overclock Settings to stock.
Reset all Overclock setting to default using single API call
This request resets any changes made to GpuFrequencyOffset, GpuVoltageOffset, PowerLimit, TemperatureLimit, GpuLock
This Doesn’t reset any Fan Curve Changes. It can be reset using ctlFanSetDefaultMode
- Parameters:
hDeviceHandle – [in][release] Handle to display adapter
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hDeviceHandle
Overclock Enums
ctl_psu_type_t
-
enum ctl_psu_type_t
PSU Type.
Values:
-
enumerator CTL_PSU_TYPE_PSU_NONE
Type of the PSU is unknown.
-
enumerator CTL_PSU_TYPE_PSU_PCIE
Type of the PSU is PCIe.
-
enumerator CTL_PSU_TYPE_PSU_6PIN
Type of the PSU is 6 PIN.
-
enumerator CTL_PSU_TYPE_PSU_8PIN
Type of the PSU is 8 PIN.
-
enumerator CTL_PSU_TYPE_MAX
-
enumerator CTL_PSU_TYPE_PSU_NONE
Overclock Structures
ctl_oc_telemetry_item_t
-
struct ctl_oc_telemetry_item_t
Telemetry Item for each telemetry property.
If the supported field is true, then the entire structure has valid information.
The ctl_data_value_t is of type ctl_data_type_t and units ctl_units_t
Public Members
-
bool bSupported
[out] Indicates if the value is supported.
-
ctl_units_t units
[out] Indicates the units of the value.
-
ctl_data_type_t type
[out] Indicates the data type.
-
ctl_data_value_t value
[out] The value of type ctl_data_type_t and units ctl_units_t.
ctl_oc_control_info_t
-
struct ctl_oc_control_info_t
Overclocking Control Information.
Whether the device supports overclocking.
The bSupported/bRelative/bReference/units/min/max/step/default/reference values for the available overclock controls
The idea is to facilitate the way the applications present overclock settings to the user. If bSupported is false, the corresponding overclock control is not supported
The setting units will be an enum that enables the application to know the units for the control setting e.g. MHz. The min and max settings give the limits for the control.
The step setting gives the minimum change in the control value (plus or minus) - if a control is not changed by at least this amount, the hardware may round up or down.
The default values gives the manufacturing setting for the control. Some controls such as frequency offset and voltage offset are relative; in this case, bRelative will be true, otherwise the control settings are absolute values.
For relative controls and if bReference is true, the reference value gives the absolute value at the default setting.
If bReference is false, the absolute value of the default setting is no not known and it is probably better to display the setting to users as percentage offsets.
Public Members
-
bool bSupported
[out] Indicates if the values are known.
-
bool bRelative
[out] Indicates if the values are meant to be taken as relative values instead of absolut values.
-
bool bReference
[out] For relative values, this indicates if a reference is available.
-
ctl_units_t units
[out] Units for the values.
-
double min
[out] Minimum Value.
-
double max
[out] Maximum Value.
-
double step
[out] Step Value.
-
double Default
[out] Default Value.
-
double reference
[out] Reference Value if the bReference is true.
ctl_oc_properties_t
-
struct ctl_oc_properties_t
Overclock properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool bSupported
[out] Indicates if the adapter supports overclocking.
-
ctl_oc_control_info_t gpuFrequencyOffset
[out] related to function ctlOverclockGpuFrequencyOffsetSet
-
ctl_oc_control_info_t gpuVoltageOffset
[out] related to function ctlOverclockGpuVoltageOffsetSet
-
ctl_oc_control_info_t vramFrequencyOffset
[out] Property Field Deprecated / No Longer Supported
-
ctl_oc_control_info_t vramVoltageOffset
[out] Property Field Deprecated / No Longer Supported
-
ctl_oc_control_info_t powerLimit
[out] related to function ctlOverclockPowerLimitSet
-
ctl_oc_control_info_t temperatureLimit
[out] related to function ctlOverclockTemperatureLimitSet
-
uint32_t Size
ctl_oc_vf_pair_t
-
struct ctl_oc_vf_pair_t
Overclock Voltage Frequency Pair.
ctl_psu_info_t
-
struct ctl_psu_info_t
PSU Info.
Public Members
-
bool bSupported
[out] Indicates if this PSU entry is supported.
-
ctl_psu_type_t psuType
[out] Type of the PSU.
-
ctl_oc_telemetry_item_t energyCounter
[out] Snapshot of the monotonic energy counter maintained by hardware. It measures the total energy consumed this power source. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average power.
-
ctl_oc_telemetry_item_t voltage
[out] Instantaneous snapshot of the voltage of this power source.
-
bool bSupported
ctl_power_telemetry_t
-
struct ctl_power_telemetry_t
Power Telemetry.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_oc_telemetry_item_t timeStamp
[out] Snapshot of the timestamp counter that measures the total time since Jan 1, 1970 UTC. It is a decimal value in seconds with a minimum accuracy of 1 millisecond.
-
ctl_oc_telemetry_item_t gpuEnergyCounter
[out] Snapshot of the monotonic energy counter maintained by hardware. It measures the total energy consumed by the GPU chip. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average power.
-
ctl_oc_telemetry_item_t gpuVoltage
[out] Instantaneous snapshot of the voltage feeding the GPU chip. It is measured at the power supply output - chip input will be lower.
-
ctl_oc_telemetry_item_t gpuCurrentClockFrequency
[out] Instantaneous snapshot of the GPU chip frequency.
-
ctl_oc_telemetry_item_t gpuCurrentTemperature
[out] Instantaneous snapshot of the GPU chip temperature, read from the sensor reporting the highest value.
-
ctl_oc_telemetry_item_t globalActivityCounter
[out] Snapshot of the monotonic global activity counter. It measures the time in seconds (accurate down to 1 millisecond) that any GPU engine is busy. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average percentage utilization of the GPU..
-
ctl_oc_telemetry_item_t renderComputeActivityCounter
[out] Snapshot of the monotonic 3D/compute activity counter. It measures the time in seconds (accurate down to 1 millisecond) that any 3D render/compute engine is busy. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average percentage utilization of all 3D render/compute blocks in the GPU.
-
ctl_oc_telemetry_item_t mediaActivityCounter
[out] Snapshot of the monotonic media activity counter. It measures the time in seconds (accurate down to 1 millisecond) that any media engine is busy. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average percentage utilization of all media blocks in the GPU.
-
bool gpuPowerLimited
[out] Instantaneous indication that the desired GPU frequency is being throttled because the GPU chip is exceeding the maximum power limits. Increasing the power limits using ctlOverclockPowerLimitSet() is one way to remove this limitation.
-
bool gpuTemperatureLimited
[out] Instantaneous indication that the desired GPU frequency is being throttled because the GPU chip is exceeding the temperature limits. Increasing the temperature limits using ctlOverclockTemperatureLimitSet() is one way to reduce this limitation. Improving the cooling solution is another way.
-
bool gpuCurrentLimited
[out] Instantaneous indication that the desired GPU frequency is being throttled because the GPU chip has exceeded the power supply current limits. A better power supply is required to reduce this limitation.
-
bool gpuVoltageLimited
[out] Instantaneous indication that the GPU frequency cannot be increased because the voltage limits have been reached. Increase the voltage offset using ctlOverclockGpuVoltageOffsetSet() is one way to reduce this limitation.
-
bool gpuUtilizationLimited
[out] Instantaneous indication that due to lower GPU utilization, the hardware has lowered the GPU frequency.
-
ctl_oc_telemetry_item_t vramEnergyCounter
[out] Snapshot of the monotonic energy counter maintained by hardware. It measures the total energy consumed by the local memory modules. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average power.
-
ctl_oc_telemetry_item_t vramVoltage
[out] Instantaneous snapshot of the voltage feeding the memory modules.
-
ctl_oc_telemetry_item_t vramCurrentClockFrequency
[out] Instantaneous snapshot of the raw clock frequency driving the memory modules.
-
ctl_oc_telemetry_item_t vramCurrentEffectiveFrequency
[out] Instantaneous snapshot of the effective data transfer rate that the memory modules can sustain based on the current clock frequency..
-
ctl_oc_telemetry_item_t vramReadBandwidthCounter
[out] Instantaneous snapshot of the monotonic counter that measures the read traffic from the memory modules. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average read bandwidth.
-
ctl_oc_telemetry_item_t vramWriteBandwidthCounter
[out] Instantaneous snapshot of the monotonic counter that measures the write traffic to the memory modules. By taking the delta between two snapshots and dividing by the delta time in seconds, an application can compute the average write bandwidth.
-
ctl_oc_telemetry_item_t vramCurrentTemperature
[out] Instantaneous snapshot of the GPU chip temperature, read from the sensor reporting the highest value.
-
bool vramPowerLimited
[out] Instantaneous indication that the memory frequency is being throttled because the memory modules are exceeding the maximum power limits.
-
bool vramTemperatureLimited
[out] Instantaneous indication that the memory frequency is being throttled because the memory modules are exceeding the temperature limits.
-
bool vramCurrentLimited
[out] Instantaneous indication that the memory frequency is being throttled because the memory modules have exceeded the power supply current limits.
-
bool vramVoltageLimited
[out] Instantaneous indication that the memory frequency cannot be increased because the voltage limits have been reached.
-
bool vramUtilizationLimited
[out] Instantaneous indication that due to lower memory traffic, the hardware has lowered the memory frequency.
-
ctl_oc_telemetry_item_t totalCardEnergyCounter
[out] Total Card Energy Counter.
-
ctl_psu_info_t psu[CTL_PSU_COUNT]
[out] PSU voltage and power.
-
ctl_oc_telemetry_item_t fanSpeed[CTL_FAN_COUNT]
[out] Fan speed.
-
uint32_t Size
Pci
Functions
Structures
Pci Functions
ctlPciGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPciGetProperties(ctl_device_adapter_handle_t hDAhandle, ctl_pci_properties_t *pProperties)
Get PCI properties - address, max speed.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pProperties – [in,out] Will contain the PCI 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
ctlPciGetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPciGetState(ctl_device_adapter_handle_t hDAhandle, ctl_pci_state_t *pState)
Get current PCI state - current speed.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pState – [in,out] Will contain the PCI 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 == pState
Pci Structures
ctl_pci_address_t
-
struct ctl_pci_address_t
PCI address.
ctl_pci_speed_t
-
struct ctl_pci_speed_t
PCI speed.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
int32_t gen
[out] The link generation. A value of -1 means that this property is unknown.
-
int32_t width
[out] The number of lanes. A value of -1 means that this property is unknown.
-
int64_t maxBandwidth
[out] The maximum bandwidth in bytes/sec (sum of all lanes). A value of -1 means that this property is unknown.
-
uint32_t Size
ctl_pci_properties_t
-
struct ctl_pci_properties_t
Static PCI properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_pci_address_t address
[out] The BDF address
-
ctl_pci_speed_t maxSpeed
[out] Fastest port configuration supported by the device (sum of all lanes)
-
bool resizable_bar_supported
[out] Support for Resizable Bar on this device.
-
bool resizable_bar_enabled
[out] Resizable Bar enabled on this device
-
uint32_t Size
ctl_pci_state_t
-
struct ctl_pci_state_t
Dynamic PCI state.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_pci_speed_t speed
[out] The current port configure speed
-
uint32_t Size
Power
Functions
Structures
Power Functions
ctlEnumPowerDomains
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumPowerDomains(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_pwr_handle_t *phPower)
Get handle of power domains.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pCount – [in,out] pointer to the number of components of this type. if count is zero, then the driver shall update the value with the total number of components of this type that are available. if count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phPower – [in,out][optional][range(0, *pCount)] array of handle of components of this type. if count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlPowerGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPowerGetProperties(ctl_pwr_handle_t hPower, ctl_power_properties_t *pProperties)
Get properties related to a power domain.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hPower – [in] Handle for the component.
pProperties – [in,out] Structure that will contain property data.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPower
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlPowerGetEnergyCounter
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPowerGetEnergyCounter(ctl_pwr_handle_t hPower, ctl_power_energy_counter_t *pEnergy)
Get energy counter.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hPower – [in] Handle for the component.
pEnergy – [in,out] Will contain the latest snapshot of the energy counter and timestamp when the last counter value was measured.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPower
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pEnergy
ctlPowerGetLimits
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPowerGetLimits(ctl_pwr_handle_t hPower, ctl_power_limits_t *pPowerLimits)
Get power limits.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hPower – [in] Handle for the component.
pPowerLimits – [in,out][optional] Structure that will contain the power limits.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPower
ctlPowerSetLimits
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlPowerSetLimits(ctl_pwr_handle_t hPower, const ctl_power_limits_t *pPowerLimits)
Set power limits.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hPower – [in] Handle for the component.
pPowerLimits – [in][optional] Structure that will contain the power limits.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hPower
CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS
User does not have permissions to make these modifications.
CTL_RESULT_ERROR_NOT_AVAILABLE
The device is in use, meaning that the GPU is under Over clocking, applying power limits under overclocking is not supported.
Power Structures
ctl_power_properties_t
-
struct ctl_power_properties_t
Properties related to device power settings.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool canControl
[out] Software can change the power limits of this domain assuming the user has permissions.
-
int32_t defaultLimit
[out] The factory default TDP power limit of the part in milliwatts. A value of -1 means that this is not known.
-
int32_t minLimit
[out] The minimum power limit in milliwatts that can be requested.
-
int32_t maxLimit
[out] The maximum power limit in milliwatts that can be requested.
-
uint32_t Size
ctl_power_energy_counter_t
-
struct ctl_power_energy_counter_t
Energy counter snapshot.
Average power is calculated by taking two snapshots (s1, s2) and using the equation: PowerWatts = (s2.energy - s1.energy) / (s2.timestamp - s1.timestamp)
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
uint64_t energy
[out] The monotonic energy counter in microjoules.
-
uint64_t timestamp
[out] Microsecond timestamp when energy was captured. This timestamp should only be used to calculate delta time between snapshots of this structure. Never take the delta of this timestamp with the timestamp from a different structure since they are not guaranteed to have the same base. The absolute value of the timestamp is only valid during within the application and may be different on the next execution.
ctl_power_sustained_limit_t
-
struct ctl_power_sustained_limit_t
Sustained power limits.
The power controller (Punit) will throttle the operating frequency if the power averaged over a window (typically seconds) exceeds this limit.
ctl_power_burst_limit_t
-
struct ctl_power_burst_limit_t
Burst power limit.
The power controller (Punit) will throttle the operating frequency of the device if the power averaged over a few milliseconds exceeds a limit known as PL2. Typically PL2 > PL1 so that it permits the frequency to burst higher for short periods than would be otherwise permitted by PL1.
ctl_power_peak_limit_t
-
struct ctl_power_peak_limit_t
Peak power limit.
The power controller (Punit) will preemptively throttle the operating frequency of the device when the instantaneous power exceeds this limit. The limit is known as PL4. It expresses the maximum power that can be drawn from the power supply.
If this power limit is removed or set too high, the power supply will generate an interrupt when it detects an overcurrent condition and the power controller will throttle the device frequencies down to min. It is thus better to tune the PL4 value in order to avoid such excursions.
Public Members
-
int32_t powerAC
[in,out] power limit in milliwatts for the AC power source.
-
int32_t powerDC
[in,out] power limit in milliwatts for the DC power source. On input, this is ignored if the product does not have a battery. On output, this will be -1 if the product does not have a battery.
ctl_power_limits_t
-
struct ctl_power_limits_t
Power limits.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_power_sustained_limit_t sustainedPowerLimit
[in,out] sustained power limit.
-
ctl_power_burst_limit_t burstPowerLimit
[in,out] burst power limit.
-
ctl_power_peak_limit_t peakPowerLimits
[in,out] peak power limit.
-
uint32_t Size
ctl_energy_threshold_t
-
struct ctl_energy_threshold_t
Energy threshold.
.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
bool enable
[in,out] Indicates if the energy threshold is enabled.
-
double threshold
[in,out] The energy threshold in Joules. Will be 0.0 if no threshold has been set.
-
uint32_t processId
[in,out] The host process ID that set the energy threshold. Will be 0xFFFFFFFF if no threshold has been set.
Temperature
Functions
Enumerations
Structures
Temperature Functions
ctlEnumTemperatureSensors
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlEnumTemperatureSensors(ctl_device_adapter_handle_t hDAhandle, uint32_t *pCount, ctl_temp_handle_t *phTemperature)
Get handle of temperature sensors.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hDAhandle – [in][release] Handle to display adapter
pCount – [in,out] pointer to the number of components of this type. if count is zero, then the driver shall update the value with the total number of components of this type that are available. if count is greater than the number of components of this type that are available, then the driver shall update the value with the correct number of components.
phTemperature – [in,out][optional][range(0, *pCount)] array of handle of components of this type. if count is less than the number of components of this type that are available, then the driver shall only retrieve that number of component handles.
- 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 == pCount
ctlTemperatureGetProperties
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlTemperatureGetProperties(ctl_temp_handle_t hTemperature, ctl_temp_properties_t *pProperties)
Get temperature sensor properties.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hTemperature – [in] Handle for the component.
pProperties – [in,out] Will contain the temperature sensor properties.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hTemperature
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pProperties
ctlTemperatureGetState
-
CTL_APIEXPORT ctl_result_t CTL_APICALL ctlTemperatureGetState(ctl_temp_handle_t hTemperature, double *pTemperature)
Get the temperature from a specified sensor.
The application may call this function from simultaneous threads.
The implementation of this function should be lock-free.
- Parameters:
hTemperature – [in] Handle for the component.
pTemperature – [in,out] Will contain the temperature read from the specified sensor in degrees Celsius.
- Returns:
CTL_RESULT_SUCCESS
CTL_RESULT_ERROR_UNINITIALIZED
CTL_RESULT_ERROR_DEVICE_LOST
CTL_RESULT_ERROR_INVALID_NULL_HANDLE
nullptr == hTemperature
CTL_RESULT_ERROR_INVALID_NULL_POINTER
nullptr == pTemperature
Temperature Enums
ctl_temp_sensors_t
-
enum ctl_temp_sensors_t
Temperature sensors.
Values:
-
enumerator CTL_TEMP_SENSORS_GLOBAL
The maximum temperature across all device sensors.
-
enumerator CTL_TEMP_SENSORS_GPU
The maximum temperature across all sensors in the GPU.
-
enumerator CTL_TEMP_SENSORS_MEMORY
The maximum temperature across all sensors in the local memory.
-
enumerator CTL_TEMP_SENSORS_GLOBAL_MIN
The minimum temperature across all device sensors.
-
enumerator CTL_TEMP_SENSORS_GPU_MIN
The minimum temperature across all sensors in the GPU.
-
enumerator CTL_TEMP_SENSORS_MEMORY_MIN
The minimum temperature across all sensors in the local device memory.
-
enumerator CTL_TEMP_SENSORS_MAX
-
enumerator CTL_TEMP_SENSORS_GLOBAL
Temperature Structures
ctl_temp_properties_t
-
struct ctl_temp_properties_t
Temperature sensor properties.
Public Members
-
uint32_t Size
[in] size of this structure
-
uint8_t Version
[in] version of this structure
-
ctl_temp_sensors_t type
[out] Which part of the device the temperature sensor measures
-
double maxTemperature
[out] Will contain the maximum temperature for the specific device in degrees Celsius.
-
uint32_t Size