OpenRGB/dependencies/display-library/include/adl_structures.h
2023-05-28 23:23:55 +00:00

2244 lines
52 KiB
C

//
// Copyright (c) 2016 - 2022 Advanced Micro Devices, Inc. All rights reserved.
//
// MIT LICENSE:
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#ifndef ADL_STRUCTURES_H_
#define ADL_STRUCTURES_H_
#include "adl_defines.h"
#include <stdbool.h>
typedef struct AdapterInfo
{
int iSize;
int iAdapterIndex;
char strUDID[ADL_MAX_PATH];
int iBusNumber;
int iDeviceNumber;
int iFunctionNumber;
int iVendorID;
char strAdapterName[ADL_MAX_PATH];
char strDisplayName[ADL_MAX_PATH];
int iPresent;
#if defined (_WIN32) || defined (_WIN64)
int iExist;
char strDriverPath[ADL_MAX_PATH];
char strDriverPathExt[ADL_MAX_PATH];
char strPNPString[ADL_MAX_PATH];
int iOSDisplayIndex;
#endif /* (_WIN32) || (_WIN64) */
#if defined (LINUX)
int iXScreenNum;
int iDrvIndex;
char strXScreenConfigName[ADL_MAX_PATH];
#endif /* (LINUX) */
} AdapterInfo, *LPAdapterInfo;
#if defined (LINUX)
typedef struct XScreenInfo
{
int iXScreenNum;
char strXScreenConfigName[ADL_MAX_PATH];
} XScreenInfo, *LPXScreenInfo;
#endif /* (LINUX) */
typedef struct ADLAdapterCaps
{
int iAdapterID;
int iNumControllers;
int iNumDisplays;
int iNumOverlays;
int iNumOfGLSyncConnectors;
int iCapsMask;
int iCapsValue;
}ADLAdapterCaps;
typedef struct ADLMemoryInfo2
{
long long iMemorySize;
char strMemoryType[ADL_MAX_PATH];
long long iMemoryBandwidth;
long long iHyperMemorySize;
long long iInvisibleMemorySize;
long long iVisibleMemorySize;
} ADLMemoryInfo2, *LPADLMemoryInfo2;
typedef struct ADLMemoryInfo3
{
long long iMemorySize;
char strMemoryType[ADL_MAX_PATH];
long long iMemoryBandwidth;
long long iHyperMemorySize;
long long iInvisibleMemorySize;
long long iVisibleMemorySize;
long long iVramVendorRevId;
} ADLMemoryInfo3, *LPADLMemoryInfo3;
typedef struct ADLMemoryInfoX4
{
long long iMemorySize;
char strMemoryType[ADL_MAX_PATH];
long long iMemoryBandwidth;
long long iHyperMemorySize;
long long iInvisibleMemorySize;
long long iVisibleMemorySize;
long long iVramVendorRevId;
long long iMemoryBandwidthX2;
long long iMemoryBitRateX2;
} ADLMemoryInfoX4, *LPADLMemoryInfoX4;
// ADLvRamVendor Enumeration
enum ADLvRamVendors
{
ADLvRamVendor_Unsupported = 0x0,
ADLvRamVendor_SAMSUNG,
ADLvRamVendor_INFINEON,
ADLvRamVendor_ELPIDA,
ADLvRamVendor_ETRON,
ADLvRamVendor_NANYA,
ADLvRamVendor_HYNIX,
ADLvRamVendor_MOSEL,
ADLvRamVendor_WINBOND,
ADLvRamVendor_ESMT,
ADLvRamVendor_MICRON = 0xF,
ADLvRamVendor_Undefined
};
typedef struct ADLGcnInfo
{
int CuCount; //Number of compute units on the ASIC.
int TexCount; //Number of texture mapping units.
int RopCount; //Number of Render backend Units.
int ASICFamilyId; //Such SI, VI. See /inc/asic_reg/atiid.h for family ids
int ASICRevisionId; //Such as Ellesmere, Fiji. For example - VI family revision ids are stored in /inc/asic_reg/vi_id.h
}ADLGcnInfo;
typedef struct ADLVirtualSegmentSettingsOutput
{
int virtualSegmentSupported; // 1 - subsequent values are valid
int virtualSegmentDefault; //virtual segment default, 1: enable, 0: disable
int virtualSegmentCurrent; //virtual segment current, 1: enable, 0: disable
int iMinSizeInMB; //minimum value
int iMaxSizeInMB; //maximum value
int icurrentSizeInMB; //last configured otherwise same as factory default
int idefaultSizeInMB; //factory default
int iMask; //fileds for extension in the future
int iValue; //fileds for extension in the future
} ADLVirtualSegmentSettingsOutput;
typedef struct ADLChipSetInfo
{
int iBusType;
int iBusSpeedType;
int iMaxPCIELaneWidth;
int iCurrentPCIELaneWidth;
int iSupportedAGPSpeeds;
int iCurrentAGPSpeed;
} ADLChipSetInfo, *LPADLChipSetInfo;
typedef struct ADLMemoryInfo
{
long long iMemorySize;
char strMemoryType[ADL_MAX_PATH];
long long iMemoryBandwidth;
} ADLMemoryInfo, *LPADLMemoryInfo;
typedef struct ADLMemoryRequired
{
long long iMemoryReq;
int iType;
int iDisplayFeatureValue;
} ADLMemoryRequired, *LPADLMemoryRequired;
typedef struct ADLMemoryDisplayFeatures
{
int iDisplayIndex;
int iDisplayFeatureValue;
} ADLMemoryDisplayFeatures, *LPADLMemoryDisplayFeatures;
typedef struct ADLDDCInfo
{
int ulSize;
int ulSupportsDDC;
int ulManufacturerID;
int ulProductID;
char cDisplayName[ADL_MAX_DISPLAY_NAME];
int ulMaxHResolution;
int ulMaxVResolution;
int ulMaxRefresh;
int ulPTMCx;
int ulPTMCy;
int ulPTMRefreshRate;
int ulDDCInfoFlag;
} ADLDDCInfo, *LPADLDDCInfo;
typedef struct ADLDDCInfo2
{
int ulSize;
int ulSupportsDDC;
int ulManufacturerID;
int ulProductID;
char cDisplayName[ADL_MAX_DISPLAY_NAME];
int ulMaxHResolution;
int ulMaxVResolution;
int ulMaxRefresh;
int ulPTMCx;
int ulPTMCy;
int ulPTMRefreshRate;
int ulDDCInfoFlag;
int bPackedPixelSupported;
int iPanelPixelFormat;
int ulSerialID;
int ulMinLuminanceData;
int ulAvgLuminanceData;
int ulMaxLuminanceData;
int iSupportedTransferFunction;
int iSupportedColorSpace;
int iNativeDisplayChromaticityRedX;
int iNativeDisplayChromaticityRedY;
int iNativeDisplayChromaticityGreenX;
int iNativeDisplayChromaticityGreenY;
int iNativeDisplayChromaticityBlueX;
int iNativeDisplayChromaticityBlueY;
int iNativeDisplayChromaticityWhitePointX;
int iNativeDisplayChromaticityWhitePointY;
int iDiffuseScreenReflectance;
int iSpecularScreenReflectance;
int iSupportedHDR;
int iFreesyncFlags;
int ulMinLuminanceNoDimmingData;
int ulMaxBacklightMaxLuminanceData;
int ulMinBacklightMaxLuminanceData;
int ulMaxBacklightMinLuminanceData;
int ulMinBacklightMinLuminanceData;
// Reserved for future use
int iReserved[4];
} ADLDDCInfo2, *LPADLDDCInfo2;
typedef struct ADLGamma
{
float fRed;
float fGreen;
float fBlue;
} ADLGamma, *LPADLGamma;
typedef struct ADLCustomMode
{
int iFlags;
int iModeWidth;
int iModeHeight;
int iBaseModeWidth;
int iBaseModeHeight;
int iRefreshRate;
} ADLCustomMode, *LPADLCustomMode;
typedef struct ADLGetClocksOUT
{
long ulHighCoreClock;
long ulHighMemoryClock;
long ulHighVddc;
long ulCoreMin;
long ulCoreMax;
long ulMemoryMin;
long ulMemoryMax;
long ulActivityPercent;
long ulCurrentCoreClock;
long ulCurrentMemoryClock;
long ulReserved;
} ADLGetClocksOUT;
typedef struct ADLDisplayConfig
{
long ulSize;
long ulConnectorType;
long ulDeviceData;
long ulOverridedDeviceData;
long ulReserved;
} ADLDisplayConfig;
typedef struct ADLDisplayID
{
int iDisplayLogicalIndex;
int iDisplayPhysicalIndex;
int iDisplayLogicalAdapterIndex;
int iDisplayPhysicalAdapterIndex;
} ADLDisplayID, *LPADLDisplayID;
typedef struct ADLDisplayInfo
{
ADLDisplayID displayID;
int iDisplayControllerIndex;
char strDisplayName[ADL_MAX_PATH];
char strDisplayManufacturerName[ADL_MAX_PATH];
int iDisplayType;
int iDisplayOutputType;
int iDisplayConnector;
int iDisplayInfoMask;
int iDisplayInfoValue;
} ADLDisplayInfo, *LPADLDisplayInfo;
typedef struct ADLDisplayDPMSTInfo
{
ADLDisplayID displayID;
int iTotalAvailableBandwidthInMpbs;
int iAllocatedBandwidthInMbps;
// info from DAL DpMstSinkInfo
char strGlobalUniqueIdentifier[ADL_MAX_PATH];
int radLinkCount;
int iPhysicalConnectorID;
char rad[ADL_MAX_RAD_LINK_COUNT];
} ADLDisplayDPMSTInfo, *LPADLDisplayDPMSTInfo;
typedef struct ADLDisplayMode
{
int iPelsHeight;
int iPelsWidth;
int iBitsPerPel;
int iDisplayFrequency;
} ADLDisplayMode;
typedef struct ADLDetailedTiming
{
int iSize;
short sTimingFlags;
short sHTotal;
short sHDisplay;
short sHSyncStart;
short sHSyncWidth;
short sVTotal;
short sVDisplay;
short sVSyncStart;
short sVSyncWidth;
short sPixelClock;
short sHOverscanRight;
short sHOverscanLeft;
short sVOverscanBottom;
short sVOverscanTop;
short sOverscan8B;
short sOverscanGR;
} ADLDetailedTiming;
typedef struct ADLDisplayModeInfo
{
int iTimingStandard;
int iPossibleStandard;
int iRefreshRate;
int iPelsWidth;
int iPelsHeight;
ADLDetailedTiming sDetailedTiming;
} ADLDisplayModeInfo;
typedef struct ADLDisplayProperty
{
int iSize;
int iPropertyType;
int iExpansionMode;
int iSupport;
int iCurrent;
int iDefault;
} ADLDisplayProperty;
typedef struct ADLClockInfo
{
int iCoreClock;
int iMemoryClock;
} ADLClockInfo, *LPADLClockInfo;
typedef struct ADLI2C
{
int iSize;
int iLine;
int iAddress;
int iOffset;
int iAction;
int iSpeed;
int iDataSize;
char *pcData;
} ADLI2C;
typedef struct ADLDisplayEDIDData
{
int iSize;
int iFlag;
int iEDIDSize;
int iBlockIndex;
char cEDIDData[ADL_MAX_EDIDDATA_SIZE];
int iReserved[4];
}ADLDisplayEDIDData;
typedef struct ADLControllerOverlayInput
{
int iSize;
int iOverlayAdjust;
int iValue;
int iReserved;
} ADLControllerOverlayInput;
typedef struct ADLAdjustmentinfo
{
int iDefault;
int iMin;
int iMax;
int iStep;
} ADLAdjustmentinfo;
typedef struct ADLControllerOverlayInfo
{
int iSize;
ADLAdjustmentinfo sOverlayInfo;
int iReserved[3];
} ADLControllerOverlayInfo;
typedef struct ADLGLSyncModuleID
{
int iModuleID;
int iGlSyncGPUPort;
int iFWBootSectorVersion;
int iFWUserSectorVersion;
} ADLGLSyncModuleID , *LPADLGLSyncModuleID;
typedef struct ADLGLSyncPortCaps
{
int iPortType;
int iNumOfLEDs;
}ADLGLSyncPortCaps, *LPADLGLSyncPortCaps;
typedef struct ADLGLSyncGenlockConfig
{
int iValidMask;
int iSyncDelay;
int iFramelockCntlVector;
int iSignalSource;
int iSampleRate;
int iSyncField;
int iTriggerEdge;
int iScanRateCoeff;
}ADLGLSyncGenlockConfig, *LPADLGLSyncGenlockConfig;
typedef struct ADLGlSyncPortInfo
{
int iPortType;
int iNumOfLEDs;
int iPortState;
int iFrequency;
int iSignalType;
int iSignalSource;
} ADLGlSyncPortInfo, *LPADLGlSyncPortInfo;
typedef struct ADLGlSyncPortControl
{
int iPortType;
int iControlVector;
int iSignalSource;
} ADLGlSyncPortControl;
typedef struct ADLGlSyncMode
{
int iControlVector;
int iStatusVector;
int iGLSyncConnectorIndex;
} ADLGlSyncMode, *LPADLGlSyncMode;
typedef struct ADLGlSyncMode2
{
int iControlVector;
int iStatusVector;
int iGLSyncConnectorIndex;
int iDisplayIndex;
} ADLGlSyncMode2, *LPADLGlSyncMode2;
typedef struct ADLInfoPacket
{
char hb0;
char hb1;
char hb2;
char sb[28];
}ADLInfoPacket;
typedef struct ADLAVIInfoPacket //Valid user defined data/
{
char bPB3_ITC;
char bPB5;
}ADLAVIInfoPacket;
// Overdrive clock setting structure definition.
typedef struct ADLODClockSetting
{
int iDefaultClock;
int iCurrentClock;
int iMaxClock;
int iMinClock;
int iRequestedClock;
int iStepClock;
} ADLODClockSetting;
typedef struct ADLAdapterODClockInfo
{
int iSize;
int iFlags;
ADLODClockSetting sMemoryClock;
ADLODClockSetting sEngineClock;
} ADLAdapterODClockInfo;
typedef struct ADLAdapterODClockConfig
{
int iSize;
int iFlags;
int iMemoryClock;
int iEngineClock;
} ADLAdapterODClockConfig;
typedef struct ADLPMActivity
{
int iSize;
int iEngineClock;
int iMemoryClock;
int iVddc;
int iActivityPercent;
int iCurrentPerformanceLevel;
int iCurrentBusSpeed;
int iCurrentBusLanes;
int iMaximumBusLanes;
int iReserved;
} ADLPMActivity;
typedef struct ADLThermalControllerInfo
{
int iSize;
int iThermalDomain;
int iDomainIndex;
int iFlags;
} ADLThermalControllerInfo;
typedef struct ADLTemperature
{
int iSize;
int iTemperature;
} ADLTemperature;
typedef struct ADLFanSpeedInfo
{
int iSize;
int iFlags;
int iMinPercent;
int iMaxPercent;
int iMinRPM;
int iMaxRPM;
} ADLFanSpeedInfo;
typedef struct ADLFanSpeedValue
{
int iSize;
int iSpeedType;
int iFanSpeed;
int iFlags;
} ADLFanSpeedValue;
typedef struct ADLODParameterRange
{
int iMin;
int iMax;
int iStep;
} ADLODParameterRange;
typedef struct ADLODParameters
{
int iSize;
int iNumberOfPerformanceLevels;
int iActivityReportingSupported;
int iDiscretePerformanceLevels;
int iReserved;
ADLODParameterRange sEngineClock;
ADLODParameterRange sMemoryClock;
ADLODParameterRange sVddc;
} ADLODParameters;
typedef struct ADLODPerformanceLevel
{
int iEngineClock;
int iMemoryClock;
int iVddc;
} ADLODPerformanceLevel;
typedef struct ADLODPerformanceLevels
{
int iSize;
int iReserved;
ADLODPerformanceLevel aLevels [1];
} ADLODPerformanceLevels;
typedef struct ADLCrossfireComb
{
int iNumLinkAdapter;
int iAdaptLink[3];
} ADLCrossfireComb;
typedef struct ADLCrossfireInfo
{
int iErrorCode;
int iState;
int iSupported;
} ADLCrossfireInfo;
typedef struct ADLBiosInfo
{
char strPartNumber[ADL_MAX_PATH];
char strVersion[ADL_MAX_PATH];
char strDate[ADL_MAX_PATH];
} ADLBiosInfo, *LPADLBiosInfo;
typedef struct ADLAdapterLocation
{
int iBus;
int iDevice;
int iFunction;
} ADLAdapterLocation,ADLBdf;
typedef struct ADLVersionsInfo
{
char strDriverVer[ADL_MAX_PATH];
char strCatalystVersion[ADL_MAX_PATH];
char strCatalystWebLink[ADL_MAX_PATH];
} ADLVersionsInfo, *LPADLVersionsInfo;
typedef struct ADLVersionsInfoX2
{
char strDriverVer[ADL_MAX_PATH];
char strCatalystVersion[ADL_MAX_PATH];
char strCrimsonVersion[ADL_MAX_PATH];
char strCatalystWebLink[ADL_MAX_PATH];
} ADLVersionsInfoX2, *LPADLVersionsInfoX2;
typedef struct ADLMVPUCaps
{
int iSize;
int iAdapterCount;
int iPossibleMVPUMasters;
int iPossibleMVPUSlaves;
char cAdapterPath[ADL_DL_MAX_MVPU_ADAPTERS][ADL_DL_MAX_REGISTRY_PATH];
} ADLMVPUCaps;
typedef struct ADLMVPUStatus
{
int iSize;
int iActiveAdapterCount;
int iStatus;
ADLAdapterLocation aAdapterLocation[ADL_DL_MAX_MVPU_ADAPTERS];
} ADLMVPUStatus;
// Displays Manager structures
typedef struct ADLActivatableSource
{
int iAdapterIndex;
int iNumActivatableSources;
int iActivatableSourceMask;
int iActivatableSourceValue;
} ADLActivatableSource, *LPADLActivatableSource;
typedef struct ADLMode
{
int iAdapterIndex;
ADLDisplayID displayID;
int iXPos;
int iYPos;
int iXRes;
int iYRes;
int iColourDepth;
float fRefreshRate;
int iOrientation;
int iModeFlag;
int iModeMask;
int iModeValue;
} ADLMode, *LPADLMode;
typedef struct ADLDisplayTarget
{
ADLDisplayID displayID;
int iDisplayMapIndex;
int iDisplayTargetMask;
int iDisplayTargetValue;
} ADLDisplayTarget, *LPADLDisplayTarget;
typedef struct tagADLBezelTransientMode
{
int iAdapterIndex;
int iSLSMapIndex;
int iSLSModeIndex;
ADLMode displayMode;
int iNumBezelOffset;
int iFirstBezelOffsetArrayIndex;
int iSLSBezelTransientModeMask;
int iSLSBezelTransientModeValue;
} ADLBezelTransientMode, *LPADLBezelTransientMode;
typedef struct ADLAdapterDisplayCap
{
int iAdapterIndex;
int iAdapterDisplayCapMask;
int iAdapterDisplayCapValue;
} ADLAdapterDisplayCap, *LPADLAdapterDisplayCap;
typedef struct ADLDisplayMap
{
int iDisplayMapIndex;
ADLMode displayMode;
int iNumDisplayTarget;
int iFirstDisplayTargetArrayIndex;
int iDisplayMapMask;
int iDisplayMapValue;
} ADLDisplayMap, *LPADLDisplayMap;
typedef struct ADLPossibleMap
{
int iIndex;
int iAdapterIndex;
int iNumDisplayMap;
ADLDisplayMap* displayMap;
int iNumDisplayTarget;
ADLDisplayTarget* displayTarget;
} ADLPossibleMap, *LPADLPossibleMap;
typedef struct ADLPossibleMapping
{
int iDisplayIndex;
int iDisplayControllerIndex;
int iDisplayMannerSupported;
} ADLPossibleMapping, *LPADLPossibleMapping;
typedef struct ADLPossibleMapResult
{
int iIndex;
// The bit mask identifies the number of bits PossibleMapResult is currently using. It will be the sum all the bit definitions defined in ADL_DISPLAY_POSSIBLEMAPRESULT_VALID.
int iPossibleMapResultMask;
int iPossibleMapResultValue;
} ADLPossibleMapResult, *LPADLPossibleMapResult;
typedef struct ADLSLSGrid
{
int iAdapterIndex;
int iSLSGridIndex;
int iSLSGridRow;
int iSLSGridColumn;
int iSLSGridMask;
int iSLSGridValue;
} ADLSLSGrid, *LPADLSLSGrid;
typedef struct ADLSLSMap
{
int iAdapterIndex;
int iSLSMapIndex;
ADLSLSGrid grid;
int iSurfaceMapIndex;
int iOrientation;
int iNumSLSTarget;
int iFirstSLSTargetArrayIndex;
int iNumNativeMode;
int iFirstNativeModeArrayIndex;
int iNumBezelMode;
int iFirstBezelModeArrayIndex;
int iNumBezelOffset;
int iFirstBezelOffsetArrayIndex;
int iSLSMapMask;
int iSLSMapValue;
} ADLSLSMap, *LPADLSLSMap;
typedef struct ADLSLSOffset
{
int iAdapterIndex;
int iSLSMapIndex;
ADLDisplayID displayID;
int iBezelModeIndex;
int iBezelOffsetX;
int iBezelOffsetY;
int iDisplayWidth;
int iDisplayHeight;
int iBezelOffsetMask;
int iBezelffsetValue;
} ADLSLSOffset, *LPADLSLSOffset;
typedef struct ADLSLSMode
{
int iAdapterIndex;
int iSLSMapIndex;
int iSLSModeIndex;
ADLMode displayMode;
int iSLSNativeModeMask;
int iSLSNativeModeValue;
} ADLSLSMode, *LPADLSLSMode;
typedef struct ADLPossibleSLSMap
{
int iSLSMapIndex;
int iNumSLSMap;
ADLSLSMap* lpSLSMap;
int iNumSLSTarget;
ADLDisplayTarget* lpDisplayTarget;
} ADLPossibleSLSMap, *LPADLPossibleSLSMap;
typedef struct ADLSLSTarget
{
int iAdapterIndex;
int iSLSMapIndex;
ADLDisplayTarget displayTarget;
int iSLSGridPositionX;
int iSLSGridPositionY;
ADLMode viewSize;
int iSLSTargetMask;
int iSLSTargetValue;
} ADLSLSTarget, *LPADLSLSTarget;
typedef struct ADLBezelOffsetSteppingSize
{
int iAdapterIndex;
int iSLSMapIndex;
int iBezelOffsetSteppingSizeX;
int iBezelOffsetSteppingSizeY;
int iBezelOffsetSteppingSizeMask;
int iBezelOffsetSteppingSizeValue;
} ADLBezelOffsetSteppingSize, *LPADLBezelOffsetSteppingSize;
typedef struct ADLSLSOverlappedMode
{
ADLMode SLSMode;
int iNumSLSTarget;
int iFirstTargetArrayIndex;
}ADLSLSTargetOverlap, *LPADLSLSTargetOverlap;
typedef struct ADLPXConfigCaps
{
int iAdapterIndex;
int iPXConfigCapMask;
int iPXConfigCapValue;
} ADLPXConfigCaps, *LPADLPXConfigCaps;
typedef enum ADLPxType
{
//Not AMD related PX/HG or not PX or HG at all
ADL_PX_NONE = 0,
//A+A PX
ADL_SWITCHABLE_AMDAMD = 1,
// A+A HG
ADL_HG_AMDAMD = 2,
//A+I PX
ADL_SWITCHABLE_AMDOTHER = 3,
//A+I HG
ADL_HG_AMDOTHER = 4,
}ADLPxType;
typedef struct ADLApplicationData
{
char strPathName[ADL_MAX_PATH];
char strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
char strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
char strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
}ADLApplicationData;
typedef struct ADLApplicationDataX2
{
wchar_t strPathName[ADL_MAX_PATH];
wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
}ADLApplicationDataX2;
typedef struct ADLApplicationDataX3
{
wchar_t strPathName[ADL_MAX_PATH];
wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
//Application Process id
unsigned int iProcessId;
}ADLApplicationDataX3;
typedef struct PropertyRecord
{
char strName [ADL_APP_PROFILE_PROPERTY_LENGTH];
ADLProfilePropertyType eType;
int iDataSize;
unsigned char uData[1];
}PropertyRecord;
typedef struct ADLApplicationProfile
{
int iCount;
PropertyRecord record[1];
}ADLApplicationProfile;
typedef struct ADLPowerControlInfo
{
int iMinValue;
int iMaxValue;
int iStepValue;
} ADLPowerControlInfo;
typedef struct ADLControllerMode
{
int iModifiers;
int iViewPositionCx;
int iViewPositionCy;
int iViewPanLockLeft;
int iViewPanLockRight;
int iViewPanLockTop;
int iViewPanLockBottom;
int iViewResolutionCx;
int iViewResolutionCy;
}ADLControllerMode;
typedef struct ADLDisplayIdentifier
{
long ulDisplayIndex;
long ulManufacturerId;
long ulProductId;
long ulSerialNo;
} ADLDisplayIdentifier;
typedef struct ADLOD6ParameterRange
{
int iMin;
int iMax;
int iStep;
} ADLOD6ParameterRange;
typedef struct ADLOD6Capabilities
{
int iCapabilities;
int iSupportedStates;
int iNumberOfPerformanceLevels;
ADLOD6ParameterRange sEngineClockRange;
ADLOD6ParameterRange sMemoryClockRange;
int iExtValue;
int iExtMask;
} ADLOD6Capabilities;
typedef struct ADLOD6PerformanceLevel
{
int iEngineClock;
int iMemoryClock;
} ADLOD6PerformanceLevel;
typedef struct ADLOD6StateInfo
{
int iNumberOfPerformanceLevels;
int iExtValue;
int iExtMask;
ADLOD6PerformanceLevel aLevels [1];
} ADLOD6StateInfo;
typedef struct ADLOD6CurrentStatus
{
int iEngineClock;
int iMemoryClock;
int iActivityPercent;
int iCurrentPerformanceLevel;
int iCurrentBusSpeed;
int iCurrentBusLanes;
int iMaximumBusLanes;
int iExtValue;
int iExtMask;
} ADLOD6CurrentStatus;
typedef struct ADLOD6ThermalControllerCaps
{
int iCapabilities;
int iFanMinPercent;
int iFanMaxPercent;
int iFanMinRPM;
int iFanMaxRPM;
int iExtValue;
int iExtMask;
} ADLOD6ThermalControllerCaps;
typedef struct ADLOD6FanSpeedInfo
{
int iSpeedType;
int iFanSpeedPercent;
int iFanSpeedRPM;
int iExtValue;
int iExtMask;
} ADLOD6FanSpeedInfo;
typedef struct ADLOD6FanSpeedValue
{
int iSpeedType;
int iFanSpeed;
int iExtValue;
int iExtMask;
} ADLOD6FanSpeedValue;
typedef struct ADLOD6PowerControlInfo
{
int iMinValue;
int iMaxValue;
int iStepValue;
int iExtValue;
int iExtMask;
} ADLOD6PowerControlInfo;
typedef struct ADLOD6VoltageControlInfo
{
int iMinValue;
int iMaxValue;
int iStepValue;
int iExtValue;
int iExtMask;
} ADLOD6VoltageControlInfo;
typedef struct ADLECCData
{
// Single error count - count of errors that can be corrected
int iSec;
// Double error detect - count of errors that cannot be corrected
int iDed;
} ADLECCData;
typedef void *ADL_CONTEXT_HANDLE;
typedef void *ADL_FRAME_DURATION_HANDLE;
typedef struct ADLDisplayModeX2
{
int iWidth;
int iHeight;
int iScanType;
int iRefreshRate;
int iTimingStandard;
} ADLDisplayModeX2;
typedef enum ADLAppProcessState
{
APP_PROC_INVALID = 0, // Invalid Application
APP_PROC_PREMPTION = 1, // The Application is being set up for Process Creation
APP_PROC_CREATION = 2, // The Application's Main Process is created by the OS
APP_PROC_READ = 3, // The Application's Data is ready to be read
APP_PROC_WAIT = 4, // The Application is waiting for Timeout or Notification to Resume
APP_PROC_RUNNING = 5, // The Application is running
APP_PROC_TERMINATE = 6 // The Application is about to terminate
}ADLAppProcessState;
typedef enum ADLAppInterceptionListType
{
ADL_INVALID_FORMAT = 0,
ADL_IMAGEFILEFORMAT = 1,
ADL_ENVVAR = 2
}ADLAppInterceptionListType;
typedef struct ADLAppInterceptionInfo
{
wchar_t AppName[ADL_MAX_PATH]; // the file name of the application or env var
unsigned int ProcessId;
ADLAppInterceptionListType AppFormat;
ADLAppProcessState AppState;
} ADLAppInterceptionInfo;
typedef enum ADL_AP_DATABASE // same as _SHARED_AP_DATABASE in "inc/shared/shared_escape.h"
{
ADL_AP_DATABASE__SYSTEM,
ADL_AP_DATABASE__USER,
ADL_AP_DATABASE__OEM
} ADL_AP_DATABASE;
typedef struct ADLAppInterceptionInfoX2
{
wchar_t AppName[ADL_MAX_PATH]; // the file name of the application or env var
unsigned int ProcessId;
unsigned int WaitForResumeNeeded;
wchar_t CommandLine[ADL_MAX_PATH]; // The command line on app start/stop event
ADLAppInterceptionListType AppFormat;
ADLAppProcessState AppState;
} ADLAppInterceptionInfoX2;
typedef struct ADLAppInterceptionInfoX3
{
wchar_t AppName[ADL_MAX_PATH]; // the file name of the application or env var
unsigned int ProcessId;
unsigned int WaitForResumeNeeded;
unsigned int RayTracingStatus; // returns the Ray Tracing status if it is enabled atleast once in session.
wchar_t CommandLine[ADL_MAX_PATH]; // The command line on app start/stop event
ADLAppInterceptionListType AppFormat;
ADLAppProcessState AppState;
} ADLAppInterceptionInfoX3;
typedef struct ADLPropertyRecordCreate
{
wchar_t * strPropertyName;
ADLProfilePropertyType eType;
// Value of the property
wchar_t * strPropertyValue;
} ADLPropertyRecordCreate;
typedef struct ADLApplicationRecord
{
wchar_t * strTitle;
wchar_t * strPathName;
wchar_t * strFileName;
wchar_t * strVersion;
wchar_t * strNotes;
wchar_t * strArea;
wchar_t * strProfileName;
// Source where this application record come from
ADL_AP_DATABASE recordSource;
} ADLApplicationRecord;
typedef struct ADLOD6CapabilitiesEx
{
int iCapabilities;
int iSupportedStates;
ADLOD6ParameterRange sEngineClockPercent;
ADLOD6ParameterRange sMemoryClockPercent;
ADLOD6ParameterRange sPowerControlPercent;
int iExtValue;
int iExtMask;
} ADLOD6CapabilitiesEx;
typedef struct ADLOD6StateEx
{
int iEngineClockPercent;
int iMemoryClockPercent;
int iPowerControlPercent;
int iExtValue;
int iExtMask;
} ADLOD6StateEx;
typedef struct ADLOD6MaxClockAdjust
{
int iEngineClockMax;
int iMemoryClockMax;
int iExtValue;
int iExtMask;
} ADLOD6MaxClockAdjust;
typedef struct ADLConnectorInfo
{
int iConnectorIndex;
int iConnectorId;
int iSlotIndex;
int iType;
int iOffset;
int iLength;
} ADLConnectorInfo;
typedef struct ADLBracketSlotInfo
{
int iSlotIndex;
int iLength;
int iWidth;
} ADLBracketSlotInfo;
typedef struct ADLMSTRad
{
int iLinkNumber;
char rad[ADL_MAX_RAD_LINK_COUNT];
} ADLMSTRad;
typedef struct ADLDevicePort
{
int iConnectorIndex;
ADLMSTRad aMSTRad;
} ADLDevicePort;
typedef struct ADLSupportedConnections
{
int iSupportedConnections;
int iSupportedProperties[ADL_MAX_CONNECTION_TYPES];
} ADLSupportedConnections;
typedef struct ADLConnectionState
{
int iEmulationStatus;
int iEmulationMode;
int iDisplayIndex;
} ADLConnectionState;
typedef struct ADLConnectionProperties
{
//Bit vector. Represents actual properties. Supported properties for specific connection type. \ref define_connection_properties
int iValidProperties;
//Bitrate(in MHz). Could be used for MST branch, DP or DP active dongle. \ref define_linkrate_constants
int iBitrate;
//Number of lanes in DP connection. \ref define_lanecount_constants
int iNumberOfLanes;
//Color depth(in bits). \ref define_colordepth_constants
int iColorDepth;
//3D capabilities. It could be used for some dongles. For instance: alternate framepack. Value of this property is bit vector.
int iStereo3DCaps;
int iOutputBandwidth;
} ADLConnectionProperties;
typedef struct ADLConnectionData
{
int iConnectionType;
ADLConnectionProperties aConnectionProperties;
int iNumberofPorts;
int iActiveConnections;
int iDataSize;
char EdidData[ADL_MAX_DISPLAY_EDID_DATA_SIZE];
} ADLConnectionData;
typedef struct ADLAdapterCapsX2
{
int iAdapterID;
int iNumControllers;
int iNumDisplays;
int iNumOverlays;
int iNumOfGLSyncConnectors;
int iCapsMask;
int iCapsValue;
int iNumConnectors;
}ADLAdapterCapsX2;
typedef enum ADL_ERROR_RECORD_SEVERITY
{
ADL_GLOBALLY_UNCORRECTED = 1,
ADL_LOCALLY_UNCORRECTED = 2,
ADL_DEFFERRED = 3,
ADL_CORRECTED = 4
}ADL_ERROR_RECORD_SEVERITY;
typedef union _ADL_ECC_EDC_FLAG
{
struct
{
unsigned int isEccAccessing : 1;
unsigned int reserved : 31;
}bits;
unsigned int u32All;
}ADL_ECC_EDC_FLAG;
typedef struct ADLErrorRecord
{
// Severity of error
ADL_ERROR_RECORD_SEVERITY Severity;
// Is the counter valid?
int countValid;
// Counter value, if valid
unsigned int count;
// Is the location information valid?
int locationValid;
// Physical location of error
unsigned int CU; // CU number on which error occurred, if known
char StructureName[32]; // e.g. LDS, TCC, etc.
// Time of error record creation (e.g. time of query, or time of poison interrupt)
char tiestamp[32];
unsigned int padding[3];
}ADLErrorRecord;
typedef enum ADL_EDC_BLOCK_ID
{
ADL_EDC_BLOCK_ID_SQCIS = 1,
ADL_EDC_BLOCK_ID_SQCDS = 2,
ADL_EDC_BLOCK_ID_SGPR = 3,
ADL_EDC_BLOCK_ID_VGPR = 4,
ADL_EDC_BLOCK_ID_LDS = 5,
ADL_EDC_BLOCK_ID_GDS = 6,
ADL_EDC_BLOCK_ID_TCL1 = 7,
ADL_EDC_BLOCK_ID_TCL2 = 8
}ADL_EDC_BLOCK_ID;
typedef enum ADL_ERROR_INJECTION_MODE
{
ADL_ERROR_INJECTION_MODE_SINGLE = 1,
ADL_ERROR_INJECTION_MODE_MULTIPLE = 2,
ADL_ERROR_INJECTION_MODE_ADDRESS = 3
}ADL_ERROR_INJECTION_MODE;
typedef union _ADL_ERROR_PATTERN
{
struct
{
unsigned long EccInjVector : 16;
unsigned long EccInjEn : 9;
unsigned long EccBeatEn : 4;
unsigned long EccChEn : 4;
unsigned long reserved : 31;
} bits;
unsigned long long u64Value;
} ADL_ERROR_PATTERN;
typedef struct ADL_ERROR_INJECTION_DATA
{
unsigned long long errorAddress;
ADL_ERROR_PATTERN errorPattern;
}ADL_ERROR_INJECTION_DATA;
typedef struct ADLErrorInjection
{
ADL_EDC_BLOCK_ID blockId;
ADL_ERROR_INJECTION_MODE errorInjectionMode;
}ADLErrorInjection;
typedef struct ADLErrorInjectionX2
{
ADL_EDC_BLOCK_ID blockId;
ADL_ERROR_INJECTION_MODE errorInjectionMode;
ADL_ERROR_INJECTION_DATA errorInjectionData;
}ADLErrorInjectionX2;
typedef struct ADLFreeSyncCap
{
int iCaps;
int iMinRefreshRateInMicroHz;
int iMaxRefreshRateInMicroHz;
unsigned char ucLabelIndex;
char cReserved[3];
int iReserved[4];
} ADLFreeSyncCap;
typedef struct ADLDceSettings
{
DceSettingsType type; // Defines which structure is in the union below
union
{
struct
{
bool qualityDetectionEnabled;
} HdmiLq;
struct
{
DpLinkRate linkRate; // Read-only
unsigned int numberOfActiveLanes; // Read-only
unsigned int numberofTotalLanes; // Read-only
int relativePreEmphasis; // Allowable values are -2 to +2
int relativeVoltageSwing; // Allowable values are -2 to +2
int persistFlag;
} DpLink;
struct
{
bool linkProtectionEnabled; // Read-only
} Protection;
} Settings;
int iReserved[15];
} ADLDceSettings;
typedef struct ADLGraphicCoreInfo
{
int iGCGen;
union
{
int iNumCUs;
int iNumWGPs;
};
union
{
int iNumPEsPerCU;
int iNumPEsPerWGP;
};
int iNumSIMDs;
int iNumROPs;
int iReserved[11];
}ADLGraphicCoreInfo;
typedef struct ADLODNParameterRange
{
int iMode;
int iMin;
int iMax;
int iStep;
int iDefault;
} ADLODNParameterRange;
typedef struct ADLODNCapabilities
{
int iMaximumNumberOfPerformanceLevels;
ADLODNParameterRange sEngineClockRange;
ADLODNParameterRange sMemoryClockRange;
ADLODNParameterRange svddcRange;
ADLODNParameterRange power;
ADLODNParameterRange powerTuneTemperature;
ADLODNParameterRange fanTemperature;
ADLODNParameterRange fanSpeed;
ADLODNParameterRange minimumPerformanceClock;
} ADLODNCapabilities;
typedef struct ADLODNCapabilitiesX2
{
int iMaximumNumberOfPerformanceLevels;
int iFlags;
ADLODNParameterRange sEngineClockRange;
ADLODNParameterRange sMemoryClockRange;
ADLODNParameterRange svddcRange;
ADLODNParameterRange power;
ADLODNParameterRange powerTuneTemperature;
ADLODNParameterRange fanTemperature;
ADLODNParameterRange fanSpeed;
ADLODNParameterRange minimumPerformanceClock;
ADLODNParameterRange throttleNotificaion;
ADLODNParameterRange autoSystemClock;
} ADLODNCapabilitiesX2;
typedef struct ADLODNPerformanceLevel
{
int iClock;
int iVddc;
int iEnabled;
} ADLODNPerformanceLevel;
typedef struct ADLODNPerformanceLevels
{
int iSize;
//Automatic/manual
int iMode;
int iNumberOfPerformanceLevels;
ADLODNPerformanceLevel aLevels[1];
} ADLODNPerformanceLevels;
typedef struct ADLODNFanControl
{
int iMode;
int iFanControlMode;
int iCurrentFanSpeedMode;
int iCurrentFanSpeed;
int iTargetFanSpeed;
int iTargetTemperature;
int iMinPerformanceClock;
int iMinFanLimit;
} ADLODNFanControl;
typedef struct ADLODNPowerLimitSetting
{
int iMode;
int iTDPLimit;
int iMaxOperatingTemperature;
} ADLODNPowerLimitSetting;
typedef struct ADLODNPerformanceStatus
{
int iCoreClock;
int iMemoryClock;
int iDCEFClock;
int iGFXClock;
int iUVDClock;
int iVCEClock;
int iGPUActivityPercent;
int iCurrentCorePerformanceLevel;
int iCurrentMemoryPerformanceLevel;
int iCurrentDCEFPerformanceLevel;
int iCurrentGFXPerformanceLevel;
int iUVDPerformanceLevel;
int iVCEPerformanceLevel;
int iCurrentBusSpeed;
int iCurrentBusLanes;
int iMaximumBusLanes;
int iVDDC;
int iVDDCI;
} ADLODNPerformanceStatus;
typedef struct ADLODNPerformanceLevelX2
{
int iClock;
int iVddc;
int iEnabled;
int iControl;
} ADLODNPerformanceLevelX2;
typedef struct ADLODNPerformanceLevelsX2
{
int iSize;
//Automatic/manual
int iMode;
int iNumberOfPerformanceLevels;
ADLODNPerformanceLevelX2 aLevels[1];
} ADLODNPerformanceLevelsX2;
typedef enum ADLODNCurrentPowerType
{
ODN_GPU_TOTAL_POWER = 0,
ODN_GPU_PPT_POWER,
ODN_GPU_SOCKET_POWER,
ODN_GPU_CHIP_POWER
} ADLODNCurrentPowerType;
// in/out: CWDDEPM_CURRENTPOWERPARAMETERS
typedef struct ADLODNCurrentPowerParameters
{
int size;
ADLODNCurrentPowerType powerType;
int currentPower;
} ADLODNCurrentPowerParameters;
//ODN Ext range data structure
typedef struct ADLODNExtSingleInitSetting
{
int mode;
int minValue;
int maxValue;
int step;
int defaultValue;
} ADLODNExtSingleInitSetting;
//OD8 Ext range data structure
typedef struct ADLOD8SingleInitSetting
{
int featureID;
int minValue;
int maxValue;
int defaultValue;
} ADLOD8SingleInitSetting;
typedef struct ADLOD8InitSetting
{
int count;
int overdrive8Capabilities;
ADLOD8SingleInitSetting od8SettingTable[OD8_COUNT];
} ADLOD8InitSetting;
typedef struct ADLOD8CurrentSetting
{
int count;
int Od8SettingTable[OD8_COUNT];
} ADLOD8CurrentSetting;
typedef struct ADLOD8SingleSetSetting
{
int value;
int requested; // 0 - default , 1 - requested
int reset; // 0 - do not reset , 1 - reset setting back to default
} ADLOD8SingleSetSetting;
typedef struct ADLOD8SetSetting
{
int count;
ADLOD8SingleSetSetting od8SettingTable[OD8_COUNT];
} ADLOD8SetSetting;
typedef struct ADLSingleSensorData
{
int supported;
int value;
} ADLSingleSensorData;
typedef struct ADLPMLogDataOutput
{
int size;
ADLSingleSensorData sensors[ADL_PMLOG_MAX_SENSORS];
}ADLPMLogDataOutput;
typedef struct ADLPPLogSettings
{
int BreakOnAssert;
int BreakOnWarn;
int LogEnabled;
int LogFieldMask;
int LogDestinations;
int LogSeverityEnabled;
int LogSourceMask;
int PowerProfilingEnabled;
int PowerProfilingTimeInterval;
}ADLPPLogSettings;
typedef struct ADLFPSSettingsOutput
{
int ulSize;
int bACFPSEnabled;
int bDCFPSEnabled;
int ulACFPSCurrent;
int ulDCFPSCurrent;
int ulACFPSMaximum;
int ulACFPSMinimum;
int ulDCFPSMaximum;
int ulDCFPSMinimum;
} ADLFPSSettingsOutput;
typedef struct ADLFPSSettingsInput
{
int ulSize;
int bGlobalSettings;
int ulACFPSCurrent;
int ulDCFPSCurrent;
int ulReserved[6];
} ADLFPSSettingsInput;
enum { ADL_PMLOG_MAX_SUPPORTED_SENSORS = 256 };
typedef struct ADLPMLogSupportInfo
{
unsigned short usSensors[ADL_PMLOG_MAX_SUPPORTED_SENSORS];
int ulReserved[16];
} ADLPMLogSupportInfo;
typedef struct ADLPMLogStartInput
{
unsigned short usSensors[ADL_PMLOG_MAX_SUPPORTED_SENSORS];
unsigned long ulSampleRate;
int ulReserved[15];
} ADLPMLogStartInput;
typedef struct ADLPMLogData
{
unsigned int ulVersion;
unsigned int ulActiveSampleRate;
unsigned long long ulLastUpdated;
unsigned int ulValues[ADL_PMLOG_MAX_SUPPORTED_SENSORS][2];
unsigned int ulReserved[256];
} ADLPMLogData;
typedef struct ADLPMLogStartOutput
{
union
{
void* pLoggingAddress;
unsigned long long ptr_LoggingAddress;
};
int ulReserved[14];
} ADLPMLogStartOutput;
typedef struct ADLPMLogSensorLimits
{
int SensorLimits[ADL_PMLOG_MAX_SENSORS][2]; //index 0: min, 1: max
} ADLPMLogSensorLimits;
typedef struct ADLRASGetErrorCountsInput
{
unsigned int Reserved[16];
} ADLRASGetErrorCountsInput;
typedef struct ADLRASGetErrorCountsOutput
{
unsigned int CorrectedErrors; // includes both DRAM and SRAM ECC
unsigned int UnCorrectedErrors; // includes both DRAM and SRAM ECC
unsigned int Reserved[14];
} ADLRASGetErrorCountsOutput;
typedef struct ADLRASGetErrorCounts
{
unsigned int InputSize;
ADLRASGetErrorCountsInput Input;
unsigned int OutputSize;
ADLRASGetErrorCountsOutput Output;
} ADLRASGetErrorCounts;
typedef struct ADLRASResetErrorCountsInput
{
unsigned int Reserved[8];
} ADLRASResetErrorCountsInput;
typedef struct ADLRASResetErrorCountsOutput
{
unsigned int Reserved[8];
} ADLRASResetErrorCountsOutput;
typedef struct ADLRASResetErrorCounts
{
unsigned int InputSize;
ADLRASResetErrorCountsInput Input;
unsigned int OutputSize;
ADLRASResetErrorCountsOutput Output;
} ADLRASResetErrorCounts;
typedef struct ADLRASErrorInjectonInput
{
unsigned long long Address;
ADL_RAS_INJECTION_METHOD Value;
ADL_RAS_BLOCK_ID BlockId;
ADL_RAS_ERROR_TYPE InjectErrorType;
ADL_MEM_SUB_BLOCK_ID SubBlockIndex;
unsigned int padding[9];
} ADLRASErrorInjectonInput;
typedef struct ADLRASErrorInjectionOutput
{
unsigned int ErrorInjectionStatus;
unsigned int padding[15];
} ADLRASErrorInjectionOutput;
typedef struct ADLRASErrorInjection
{
unsigned int InputSize;
ADLRASErrorInjectonInput Input;
unsigned int OutputSize;
ADLRASErrorInjectionOutput Output;
} ADLRASErrorInjection;
typedef struct ADLSGApplicationInfo
{
wchar_t strFileName[ADL_MAX_PATH];
wchar_t strFilePath[ADL_MAX_PATH];
wchar_t strVersion[ADL_MAX_PATH];
long long int timeStamp;
unsigned int iProfileExists;
unsigned int iGPUAffinity;
ADLBdf GPUBdf;
} ADLSGApplicationInfo;
enum { ADLPreFlipPostProcessingInfoInvalidLUTIndex = 0xFFFFFFFF };
enum ADLPreFlipPostProcessingLUTAlgorithm
{
ADLPreFlipPostProcessingLUTAlgorithm_Default = 0,
ADLPreFlipPostProcessingLUTAlgorithm_Full,
ADLPreFlipPostProcessingLUTAlgorithm_Approximation
};
typedef struct ADLPreFlipPostProcessingInfo
{
int ulSize;
int bEnabled;
int ulSelectedLUTIndex;
int ulSelectedLUTAlgorithm;
int ulReserved[12];
} ADLPreFlipPostProcessingInfo;
typedef struct ADL_ERROR_REASON
{
int boost; //ON, when boost is Enabled
int delag; //ON, when delag is Enabled
int chill; //ON, when chill is Enabled
int proVsr; //ON, when proVsr is Enabled
}ADL_ERROR_REASON;
typedef struct ADL_DELAG_NOTFICATION_REASON
{
int HotkeyChanged; //Set when Hotkey value is changed
int GlobalEnableChanged; //Set when Global enable value is changed
int GlobalLimitFPSChanged; //Set when Global enable value is changed
}ADL_DELAG_NOTFICATION_REASON;
typedef struct ADL_DELAG_SETTINGS
{
int Hotkey; // Hotkey value
int GlobalEnable; //Global enable value
int GlobalLimitFPS; //Global Limit FPS
int GlobalLimitFPS_MinLimit; //Gloabl Limit FPS slider min limit value
int GlobalLimitFPS_MaxLimit; //Gloabl Limit FPS slider max limit value
int GlobalLimitFPS_Step; //Gloabl Limit FPS step value
}ADL_DELAG_SETTINGS;
typedef struct ADL_BOOST_NOTFICATION_REASON
{
int HotkeyChanged; //Set when Hotkey value is changed
int GlobalEnableChanged; //Set when Global enable value is changed
int GlobalMinResChanged; //Set when Global min resolution value is changed
}ADL_BOOST_NOTFICATION_REASON;
typedef struct ADL_BOOST_SETTINGS
{
int Hotkey; // Hotkey value
int GlobalEnable; //Global enable value
int GlobalMinRes; //Gloabl Min Resolution value
int GlobalMinRes_MinLimit; //Gloabl Min Resolution slider min limit value
int GlobalMinRes_MaxLimit; //Gloabl Min Resolution slider max limit value
int GlobalMinRes_Step; //Gloabl Min Resolution step value
}ADL_BOOST_SETTINGS;
typedef struct ADL_PROVSR_NOTFICATION_REASON
{
int HotkeyChanged; //Set when Hotkey value is changed
int GlobalEnableChanged; //Set when Global enable value is changed
}ADL_PROVSR_NOTFICATION_REASON;
typedef struct ADL_PROVSR_SETTINGS
{
int Hotkey; // Hotkey value
int GlobalEnable; //Global enable value
}ADL_PROVSR_SETTINGS;
typedef struct ADL_IMAGE_BOOST_NOTFICATION_REASON
{
int HotkeyChanged; //Set when Hotkey value is changed
int GlobalEnableChanged; //Set when Global enable value is changed
}ADL_IMAGE_BOOST_NOTFICATION_REASON;
typedef struct ADL_IMAGE_BOOST_SETTINGS
{
int Hotkey; // Hotkey value
int GlobalEnable; //Global enable value
}ADL_IMAGE_BOOST_SETTINGS;
typedef struct ADL_RIS_NOTFICATION_REASON
{
unsigned int GlobalEnableChanged; //Set when Global enable value is changed
unsigned int GlobalSharpeningDegreeChanged; //Set when Global sharpening Degree value is changed
}ADL_RIS_NOTFICATION_REASON;
typedef struct ADL_RIS_SETTINGS
{
int GlobalEnable; //Global enable value
int GlobalSharpeningDegree; //Global sharpening value
int GlobalSharpeningDegree_MinLimit; //Gloabl sharpening slider min limit value
int GlobalSharpeningDegree_MaxLimit; //Gloabl sharpening slider max limit value
int GlobalSharpeningDegree_Step; //Gloabl sharpening step value
}ADL_RIS_SETTINGS;
typedef struct ADL_CHILL_NOTFICATION_REASON
{
int HotkeyChanged; //Set when Hotkey value is changed
int GlobalEnableChanged; //Set when Global enable value is changed
int GlobalMinFPSChanged; //Set when Global min FPS value is changed
int GlobalMaxFPSChanged; //Set when Global max FPS value is changed
}ADL_CHILL_NOTFICATION_REASON;
typedef struct ADL_CHILL_SETTINGS
{
int Hotkey; // Hotkey value
int GlobalEnable; //Global enable value
int GlobalMinFPS; //Global Min FPS value
int GlobalMaxFPS; //Global Max FPS value
int GlobalFPS_MinLimit; //Gloabl FPS slider min limit value
int GlobalFPS_MaxLimit; //Gloabl FPS slider max limit value
int GlobalFPS_Step; //Gloabl FPS Slider step value
}ADL_CHILL_SETTINGS;
typedef struct ADL_DRIVERUPSCALE_NOTFICATION_REASON
{
int ModeOverrideEnabledChanged; //Set when Global min resolution value is changed
int GlobalEnabledChanged; //Set when Global enable value is changed
}ADL_DRIVERUPSCALE_NOTFICATION_REASON;
typedef struct ADL_DRIVERUPSCALE_SETTINGS
{
int ModeOverrideEnabled;
int GlobalEnabled;
}ADL_DRIVERUPSCALE_SETTINGS;
typedef struct ADL_RADEON_LED_COLOR_CONFIG
{
unsigned short R : 8; // Red Value
unsigned short G : 8; // Green Value
unsigned short B : 8; // Blue Value
}ADL_RADEON_LED_COLOR_CONFIG;
typedef struct ADL_RADEON_LED_PATTERN_CONFIG_GENERIC
{
short brightness : 8; // Brightness of LED
short speed : 8; // Speed of LED pattern
bool directionCounterClockWise; //Direction of LED Pattern
ADL_RADEON_LED_COLOR_CONFIG colorConfig; // RGB value of LED pattern
char morseCodeText[ADL_RADEON_LED_MAX_MORSE_CODE]; // Morse Code user input for Morse Code LED pattern
char morseCodeTextOutPut[ADL_RADEON_LED_MAX_MORSE_CODE]; // Driver set output representation of Morse Code
int morseCodeTextOutPutLen; // Length of Morse Code output
}ADL_RADEON_LED_PATTERN_CONFIG_GENERIC;
typedef struct ADL_RADEON_LED_CUSTOM_LED_CONFIG
{
short brightness : 8; // Brightness of LED
ADL_RADEON_LED_COLOR_CONFIG colorConfig[ADL_RADEON_LED_MAX_LED_ROW_ON_GRID][ADL_RADEON_LED_MAX_LED_COLUMN_ON_GRID]; // Full grid array representation of Radeon LED to be populated by user
}ADL_RADEON_LED_CUSTOM_GRID_LED_CONFIG;
typedef struct ADL_RADEON_LED_PATTERN_CONFIG
{
ADL_RADEON_USB_LED_BAR_CONTROLS control; //Requested LED pattern
union
{
ADL_RADEON_LED_PATTERN_CONFIG_GENERIC genericPararmeters; //Requested pattern configuration settings
ADL_RADEON_LED_CUSTOM_GRID_LED_CONFIG customGridConfig; //Requested custom grid configuration settings
};
}ADL_RADEON_LED_PATTERN_CONFIG;
typedef struct AdapterInfoX2
{
int iSize;
int iAdapterIndex;
char strUDID[ADL_MAX_PATH];
int iBusNumber;
int iDeviceNumber;
int iFunctionNumber;
int iVendorID;
char strAdapterName[ADL_MAX_PATH];
char strDisplayName[ADL_MAX_PATH];
int iPresent;
int iExist;
char strDriverPath[ADL_MAX_PATH];
char strDriverPathExt[ADL_MAX_PATH];
char strPNPString[ADL_MAX_PATH];
int iOSDisplayIndex;
int iInfoMask;
int iInfoValue;
} AdapterInfoX2, *LPAdapterInfoX2;
typedef struct ADLGamutReference
{
int iGamutRef;
}ADLGamutReference;
typedef struct ADLGamutInfo
{
int SupportedGamutSpace;
int SupportedWhitePoint;
} ADLGamutInfo;
typedef struct ADLPoint
{
int iX;
int iY;
} ADLPoint;
typedef struct ADLGamutCoordinates
{
ADLPoint Red;
ADLPoint Green;
ADLPoint Blue;
} ADLGamutCoordinates;
typedef struct ADLGamutData
{
int iFeature;
int iPredefinedGamut;
int iPredefinedWhitePoint;
ADLPoint CustomWhitePoint;
ADLGamutCoordinates CustomGamut;
} ADLGamutData;
typedef struct ADLDetailedTimingX2
{
int iSize;
int sTimingFlags;
int sHTotal;
int sHDisplay;
int sHSyncStart;
int sHSyncWidth;
int sVTotal;
int sVDisplay;
int sVSyncStart;
int sVSyncWidth;
int sPixelClock;
short sHOverscanRight;
short sHOverscanLeft;
short sVOverscanBottom;
short sVOverscanTop;
short sOverscan8B;
short sOverscanGR;
} ADLDetailedTimingX2;
typedef struct ADLDisplayModeInfoX2
{
int iTimingStandard;
int iPossibleStandard;
int iRefreshRate;
int iPelsWidth;
int iPelsHeight;
ADLDetailedTimingX2 sDetailedTiming;
} ADLDisplayModeInfoX2;
typedef struct ADLI2CLargePayload
{
int iSize;
int iLine;
int iAddress;
int iOffset;
int iAction;
int iSpeed;
int iFlags;
int iDataSize;
char *pcData;
} ADLI2CLargePayload;
#define ADL_FEATURE_NAME_LENGTH 16
typedef struct ADLFeatureName
{
char FeatureName[ADL_FEATURE_NAME_LENGTH];
} ADLFeatureName, *LPADLFeatureName;
typedef struct ADLFeatureCaps
{
ADLFeatureName Name;
// char strFeatureName[ADL_FEATURE_NAME_LENGTH];
int iGroupID;
int iVisualID;
int iPageID;
int iFeatureMask;
int iFeatureProperties;
int iControlType;
int iControlStyle;
int iAdjustmentType;
int iAdjustmentStyle;
int bDefault;
int iMin;
int iMax;
int iStep;
int iDefault;
float fMin;
float fMax;
float fStep;
float fDefault;
int EnumMask;
} ADLFeatureCaps, *LPADLFeatureCaps;
typedef struct ADLFeatureValues
{
ADLFeatureName Name;
// char strFeatureName[ADL_FEATURE_NAME_LENGTH];
int bCurrent;
int iCurrent;
float fCurrent;
int EnumStates;
} ADLFeatureValues, *LPADLFeatureValues;
typedef struct ADLHDCPSettings
{
int iHDCPProtectionVersion; // Version, starting from 1
int iHDCPCaps; //Caps used to ensure at least one protection scheme is supported, 1 is HDCP1X and 2 is HDCP22
int iAllowAll; //Allow all is true, disable all is false
int iHDCPVale;
int iHDCPMask;
} ADLHDCPSettings;
typedef struct ADLMantleAppInfo
{
int apiVersion;
long driverVersion;
long vendorId;
long deviceId;
int gpuType;
char gpuName[256];
int maxMemRefsPerSubmission;
long long virtualMemPageSize;
long long maxInlineMemoryUpdateSize;
long maxBoundDescriptorSets;
long maxThreadGroupSize;
long long timestampFrequency;
long multiColorTargetClears;
}ADLMantleAppInfo, *LPADLMantleAppInfo;
typedef struct ADLSDIData
{
int iSDIState;
int iSizeofSDISegment;
} ADLSDIData, *LPADLSDIData;
typedef struct ADL_FRTCPRO_Settings
{
int DefaultState; //The default status for FRTC pro
int CurrentState; //The current enable/disable status for FRTC pro
unsigned int DefaultValue; //The default FPS value for FRTC pro.
unsigned int CurrentValue; //The current FPS value for FRTC pro.
unsigned int maxSupportedFps; //The max value for FRTC pro.
unsigned int minSupportedFps; //The min value for FRTC pro.
}ADL_FRTCPRO_Settings, *LPADLFRTCProSettings;
typedef struct ADL_FRTCPRO_CHANGED_REASON
{
int StateChanged; // FRTCPro state changed
int ValueChanged; // FRTCPro value changed
}ADL_FRTCPRO_CHANGED_REASON;
typedef struct ADL_DL_DISPLAY_MODE
{
int iPelsHeight; // Vertical resolution (in pixels).
int iPelsWidth; // Horizontal resolution (in pixels).
int iBitsPerPel; // Color depth.
int iDisplayFrequency; // Refresh rate.
} ADL_DL_DISPLAY_MODE;
typedef union _ADLDCESupport
{
struct
{
unsigned int PrePhasis : 1;
unsigned int voltageSwing : 1;
unsigned int reserved : 30;
}bits;
unsigned int u32All;
}ADLDCESupport;
typedef struct ADLSmartShiftSettings
{
int iMinRange;
int iMaxRange;
int iDefaultMode; //Refer to CWDDEPM_ODN_CONTROL_TYPE
int iDefaultValue;
int iCurrentMode;
int iCurrentValue;
int iFlags; //refer to define_smartshift_bits
}ADLSmartShiftSettings, *LPADLSmartShiftSettings;
#endif /* ADL_STRUCTURES_H_ */