| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440 |
- //
- // Copyright (c) 2016 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.
-
- /// \file adl_structures.h
- ///\brief This file contains the structure declarations that are used by the public ADL interfaces for \ALL platforms.\n <b>Included in ADL SDK</b>
- ///
- /// All data structures used in AMD Display Library (ADL) public interfaces should be defined in this header file.
- ///
-
- #ifndef ADL_STRUCTURES_H_
- #define ADL_STRUCTURES_H_
-
- #include "adl_defines.h"
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the graphics adapter.
- ///
- /// This structure is used to store various information about the graphics adapter. This
- /// information can be returned to the user. Alternatively, it can be used to access various driver calls to set
- /// or fetch various settings upon the user's request.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct AdapterInfo
- {
- /// \ALL_STRUCT_MEM
-
- /// Size of the structure.
- int iSize;
- /// The ADL index handle. One GPU may be associated with one or two index handles
- int iAdapterIndex;
- /// The unique device ID associated with this adapter.
- char strUDID[ADL_MAX_PATH];
- /// The BUS number associated with this adapter.
- int iBusNumber;
- /// The driver number associated with this adapter.
- int iDeviceNumber;
- /// The function number.
- int iFunctionNumber;
- /// The vendor ID associated with this adapter.
- int iVendorID;
- /// Adapter name.
- char strAdapterName[ADL_MAX_PATH];
- /// Display name. For example, "\\\\Display0" for Windows or ":0:0" for Linux.
- char strDisplayName[ADL_MAX_PATH];
- /// Present or not; 1 if present and 0 if not present.It the logical adapter is present, the display name such as \\\\.\\Display1 can be found from OS
- int iPresent;
-
- #if defined (_WIN32) || defined (_WIN64)
- /// \WIN_STRUCT_MEM
-
- /// Exist or not; 1 is exist and 0 is not present.
- int iExist;
- /// Driver registry path.
- char strDriverPath[ADL_MAX_PATH];
- /// Driver registry path Ext for.
- char strDriverPathExt[ADL_MAX_PATH];
- /// PNP string from Windows.
- char strPNPString[ADL_MAX_PATH];
- /// It is generated from EnumDisplayDevices.
- int iOSDisplayIndex;
- #endif /* (_WIN32) || (_WIN64) */
-
- #if defined (LINUX)
- /// \LNX_STRUCT_MEM
-
- /// Internal X screen number from GPUMapInfo (DEPRICATED use XScreenInfo)
- int iXScreenNum;
- /// Internal driver index from GPUMapInfo
- int iDrvIndex;
- /// \deprecated Internal x config file screen identifier name. Use XScreenInfo instead.
- char strXScreenConfigName[ADL_MAX_PATH];
-
- #endif /* (LINUX) */
- } AdapterInfo, *LPAdapterInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the Linux X screen information.
- ///
- /// This structure is used to store the current screen number and xorg.conf ID name assoicated with an adapter index.
- /// This structure is updated during ADL_Main_Control_Refresh or ADL_ScreenInfo_Update.
- /// Note: This structure should be used in place of iXScreenNum and strXScreenConfigName in AdapterInfo as they will be
- /// deprecated.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- #if defined (LINUX)
- typedef struct XScreenInfo
- {
- /// Internal X screen number from GPUMapInfo.
- int iXScreenNum;
- /// Internal x config file screen identifier name.
- char strXScreenConfigName[ADL_MAX_PATH];
- } XScreenInfo, *LPXScreenInfo;
- #endif /* (LINUX) */
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the ASIC memory.
- ///
- /// This structure is used to store various information about the ASIC memory. This
- /// information can be returned to the user.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLMemoryInfo
- {
- /// Memory size in bytes.
- long long iMemorySize;
- /// Memory type in string.
- char strMemoryType[ADL_MAX_PATH];
- /// Memory bandwidth in Mbytes/s.
- long long iMemoryBandwidth;
- } ADLMemoryInfo, *LPADLMemoryInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about memory required by type
- ///
- /// This structure is returned by ADL_Adapter_ConfigMemory_Get, which given a desktop and display configuration
- /// will return the Memory used.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLMemoryRequired
- {
- long long iMemoryReq; /// Memory in bytes required
- int iType; /// Type of Memory \ref define_adl_validmemoryrequiredfields
- int iDisplayFeatureValue; /// Display features \ref define_adl_visiblememoryfeatures that are using this type of memory
- } ADLMemoryRequired, *LPADLMemoryRequired;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the features associated with a display
- ///
- /// This structure is a parameter to ADL_Adapter_ConfigMemory_Get, which given a desktop and display configuration
- /// will return the Memory used.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLMemoryDisplayFeatures
- {
- int iDisplayIndex; /// ADL Display index
- int iDisplayFeatureValue; /// features that the display is using \ref define_adl_visiblememoryfeatures
- } ADLMemoryDisplayFeatures, *LPADLMemoryDisplayFeatures;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing DDC information.
- ///
- /// This structure is used to store various DDC information that can be returned to the user.
- /// Note that all fields of type int are actually defined as unsigned int types within the driver.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDDCInfo
- {
- /// Size of the structure
- int ulSize;
- /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC information fields will be used.
- int ulSupportsDDC;
- /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
- int ulManufacturerID;
- /// Returns the product ID of the display device. Should be zeroed if this information is not available.
- int ulProductID;
- /// Returns the name of the display device. Should be zeroed if this information is not available.
- char cDisplayName[ADL_MAX_DISPLAY_NAME];
- /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
- int ulMaxHResolution;
- /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
- int ulMaxVResolution;
- /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
- int ulMaxRefresh;
- /// Returns the display device preferred timing mode's horizontal resolution.
- int ulPTMCx;
- /// Returns the display device preferred timing mode's vertical resolution.
- int ulPTMCy;
- /// Returns the display device preferred timing mode's refresh rate.
- int ulPTMRefreshRate;
- /// Return EDID flags.
- int ulDDCInfoFlag;
- } ADLDDCInfo, *LPADLDDCInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing DDC information.
- ///
- /// This structure is used to store various DDC information that can be returned to the user.
- /// Note that all fields of type int are actually defined as unsigned int types within the driver.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDDCInfo2
- {
- /// Size of the structure
- int ulSize;
- /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC
- /// information fields will be used.
- int ulSupportsDDC;
- /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
- int ulManufacturerID;
- /// Returns the product ID of the display device. Should be zeroed if this information is not available.
- int ulProductID;
- /// Returns the name of the display device. Should be zeroed if this information is not available.
- char cDisplayName[ADL_MAX_DISPLAY_NAME];
- /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
- int ulMaxHResolution;
- /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
- int ulMaxVResolution;
- /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
- int ulMaxRefresh;
- /// Returns the display device preferred timing mode's horizontal resolution.
- int ulPTMCx;
- /// Returns the display device preferred timing mode's vertical resolution.
- int ulPTMCy;
- /// Returns the display device preferred timing mode's refresh rate.
- int ulPTMRefreshRate;
- /// Return EDID flags.
- int ulDDCInfoFlag;
- /// Returns 1 if the display supported packed pixel, 0 otherwise
- int bPackedPixelSupported;
- /// Returns the Pixel formats the display supports \ref define_ddcinfo_pixelformats
- int iPanelPixelFormat;
- /// Return EDID serial ID.
- int ulSerialID;
- /// Return minimum monitor luminance data
- int ulMinLuminanceData;
- /// Return average monitor luminance data
- int ulAvgLuminanceData;
- /// Return maximum monitor luminance data
- int ulMaxLuminanceData;
-
- /// Bit vector of supported transfer functions \ref define_source_content_TF
- int iSupportedTransferFunction;
-
- /// Bit vector of supported color spaces \ref define_source_content_CS
- int iSupportedColorSpace;
-
- /// Display Red Chromaticity X coordinate multiplied by 10000
- int iNativeDisplayChromaticityRedX;
- /// Display Red Chromaticity Y coordinate multiplied by 10000
- int iNativeDisplayChromaticityRedY;
- /// Display Green Chromaticity X coordinate multiplied by 10000
- int iNativeDisplayChromaticityGreenX;
- /// Display Green Chromaticity Y coordinate multiplied by 10000
- int iNativeDisplayChromaticityGreenY;
- /// Display Blue Chromaticity X coordinate multiplied by 10000
- int iNativeDisplayChromaticityBlueX;
- /// Display Blue Chromaticity Y coordinate multiplied by 10000
- int iNativeDisplayChromaticityBlueY;
- /// Display White Point X coordinate multiplied by 10000
- int iNativeDisplayChromaticityWhitePointX;
- /// Display White Point Y coordinate multiplied by 10000
- int iNativeDisplayChromaticityWhitePointY;
- /// Display diffuse screen reflectance 0-1 (100%) in units of 0.01
- int iDiffuseScreenReflectance;
- /// Display specular screen reflectance 0-1 (100%) in units of 0.01
- int iSpecularScreenReflectance;
- /// Bit vector of supported color spaces \ref define_HDR_support
- int iSupportedHDR;
- /// Bit vector for freesync flags
- int iFreesyncFlags;
-
- /// Return minimum monitor luminance without dimming data
- int ulMinLuminanceNoDimmingData;
-
- int ulMaxBacklightMaxLuminanceData;
- int ulMinBacklightMaxLuminanceData;
- int ulMaxBacklightMinLuminanceData;
- int ulMinBacklightMinLuminanceData;
-
- // Reserved for future use
- int iReserved[4];
- } ADLDDCInfo2, *LPADLDDCInfo2;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information controller Gamma settings.
- ///
- /// This structure is used to store the red, green and blue color channel information for the.
- /// controller gamma setting. This information is returned by ADL, and it can also be used to
- /// set the controller gamma setting.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGamma
- {
- /// Red color channel gamma value.
- float fRed;
- /// Green color channel gamma value.
- float fGreen;
- /// Blue color channel gamma value.
- float fBlue;
- } ADLGamma, *LPADLGamma;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about component video custom modes.
- ///
- /// This structure is used to store the component video custom mode.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLCustomMode
- {
- /// Custom mode flags. They are returned by the ADL driver.
- int iFlags;
- /// Custom mode width.
- int iModeWidth;
- /// Custom mode height.
- int iModeHeight;
- /// Custom mode base width.
- int iBaseModeWidth;
- /// Custom mode base height.
- int iBaseModeHeight;
- /// Custom mode refresh rate.
- int iRefreshRate;
- } ADLCustomMode, *LPADLCustomMode;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing Clock information for OD5 calls.
- ///
- /// This structure is used to retrieve clock information for OD5 calls.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing HDTV information for display calls.
- ///
- /// This structure is used to retrieve HDTV information information for display calls.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayConfig
- {
- /// Size of the structure
- long ulSize;
- /// HDTV connector type.
- long ulConnectorType;
- /// HDTV capabilities.
- long ulDeviceData;
- /// Overridden HDTV capabilities.
- long ulOverridedDeviceData;
- /// Reserved field
- long ulReserved;
- } ADLDisplayConfig;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display device.
- ///
- /// This structure is used to store display device information
- /// such as display index, type, name, connection status, mapped adapter and controller indexes,
- /// whether or not multiple VPUs are supported, local display connections or not (through Lasso), etc.
- /// This information can be returned to the user. Alternatively, it can be used to access various driver calls to set
- /// or fetch various display device related settings upon the user's request.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayID
- {
- /// The logical display index belonging to this adapter.
- int iDisplayLogicalIndex;
-
- ///\brief The physical display index.
- /// For example, display index 2 from adapter 2 can be used by current adapter 1.\n
- /// So current adapter may enumerate this adapter as logical display 7 but the physical display
- /// index is still 2.
- int iDisplayPhysicalIndex;
-
- /// The persistent logical adapter index for the display.
- int iDisplayLogicalAdapterIndex;
-
- ///\brief The persistent physical adapter index for the display.
- /// It can be the current adapter or a non-local adapter. \n
- /// If this adapter index is different than the current adapter,
- /// the Display Non Local flag is set inside DisplayInfoValue.
- int iDisplayPhysicalAdapterIndex;
- } ADLDisplayID, *LPADLDisplayID;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display device.
- ///
- /// This structure is used to store various information about the display device. This
- /// information can be returned to the user, or used to access various driver calls to set
- /// or fetch various display-device-related settings upon the user's request
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayInfo
- {
- /// The DisplayID structure
- ADLDisplayID displayID;
-
- ///\deprecated The controller index to which the display is mapped.\n Will not be used in the future\n
- int iDisplayControllerIndex;
-
- /// The display's EDID name.
- char strDisplayName[ADL_MAX_PATH];
-
- /// The display's manufacturer name.
- char strDisplayManufacturerName[ADL_MAX_PATH];
-
- /// The Display type. For example: CRT, TV, CV, DFP.
- int iDisplayType;
-
- /// The display output type. For example: HDMI, SVIDEO, COMPONMNET VIDEO.
- int iDisplayOutputType;
-
- /// The connector type for the device.
- int iDisplayConnector;
-
- ///\brief The bit mask identifies the number of bits ADLDisplayInfo is currently using. \n
- /// It will be the sum all the bit definitions in ADL_DISPLAY_DISPLAYINFO_xxx.
- int iDisplayInfoMask;
-
- /// The bit mask identifies the display status. \ref define_displayinfomask
- int iDisplayInfoValue;
- } ADLDisplayInfo, *LPADLDisplayInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display port MST device.
- ///
- /// This structure is used to store various MST information about the display port device. This
- /// information can be returned to the user, or used to access various driver calls to
- /// fetch various display-device-related settings upon the user's request
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayDPMSTInfo
- {
- /// The ADLDisplayID structure
- ADLDisplayID displayID;
-
- /// total bandwidth available on the DP connector
- int iTotalAvailableBandwidthInMpbs;
- /// bandwidth allocated to this display
- int iAllocatedBandwidthInMbps;
-
- // info from DAL DpMstSinkInfo
- /// string identifier for the display
- char strGlobalUniqueIdentifier[ADL_MAX_PATH];
-
- /// The link count of relative address, rad[0] upto rad[linkCount] are valid
- int radLinkCount;
- /// The physical connector ID, used to identify the physical DP port
- int iPhysicalConnectorID;
-
- /// Relative address, address scheme starts from source side
- char rad[ADL_MAX_RAD_LINK_COUNT];
- } ADLDisplayDPMSTInfo, *LPADLDisplayDPMSTInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the display mode definition used per controller.
- ///
- /// This structure is used to store the display mode definition used per controller.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayMode
- {
- /// Vertical resolution (in pixels).
- int iPelsHeight;
- /// Horizontal resolution (in pixels).
- int iPelsWidth;
- /// Color depth.
- int iBitsPerPel;
- /// Refresh rate.
- int iDisplayFrequency;
- } ADLDisplayMode;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing detailed timing parameters.
- ///
- /// This structure is used to store the detailed timing parameters.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDetailedTiming
- {
- /// Size of the structure.
- int iSize;
- /// Timing flags. \ref define_detailed_timing_flags
- short sTimingFlags;
- /// Total width (columns).
- short sHTotal;
- /// Displayed width.
- short sHDisplay;
- /// Horizontal sync signal offset.
- short sHSyncStart;
- /// Horizontal sync signal width.
- short sHSyncWidth;
- /// Total height (rows).
- short sVTotal;
- /// Displayed height.
- short sVDisplay;
- /// Vertical sync signal offset.
- short sVSyncStart;
- /// Vertical sync signal width.
- short sVSyncWidth;
- /// Pixel clock value.
- short sPixelClock;
- /// Overscan right.
- short sHOverscanRight;
- /// Overscan left.
- short sHOverscanLeft;
- /// Overscan bottom.
- short sVOverscanBottom;
- /// Overscan top.
- short sVOverscanTop;
- short sOverscan8B;
- short sOverscanGR;
- } ADLDetailedTiming;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing display mode information.
- ///
- /// This structure is used to store the display mode information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayModeInfo
- {
- /// Timing standard of the current mode. \ref define_modetiming_standard
- int iTimingStandard;
- /// Applicable timing standards for the current mode.
- int iPossibleStandard;
- /// Refresh rate factor.
- int iRefreshRate;
- /// Num of pixels in a row.
- int iPelsWidth;
- /// Num of pixels in a column.
- int iPelsHeight;
- /// Detailed timing parameters.
- ADLDetailedTiming sDetailedTiming;
- } ADLDisplayModeInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about display property.
- ///
- /// This structure is used to store the display property for the current adapter.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayProperty
- {
- /// Must be set to sizeof the structure
- int iSize;
- /// Must be set to \ref ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE or \ref ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING
- int iPropertyType;
- /// Get or Set \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_CENTER or \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_FULLSCREEN or \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_ASPECTRATIO or \ref ADL_DL_DISPLAYPROPERTY_TYPE_ITCFLAGENABLE
- int iExpansionMode;
- /// Display Property supported? 1: Supported, 0: Not supported
- int iSupport;
- /// Display Property current value
- int iCurrent;
- /// Display Property Default value
- int iDefault;
- } ADLDisplayProperty;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Clock.
- ///
- /// This structure is used to store the clock information for the current adapter
- /// such as core clock and memory clock info.
- ///\nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLClockInfo
- {
- /// Core clock in 10 KHz.
- int iCoreClock;
- /// Memory clock in 10 KHz.
- int iMemoryClock;
- } ADLClockInfo, *LPADLClockInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about I2C.
- ///
- /// This structure is used to store the I2C information for the current adapter.
- /// This structure is used by the ADL_Display_WriteAndReadI2C() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLI2C
- {
- /// Size of the structure
- int iSize;
- /// Numerical value representing hardware I2C.
- int iLine;
- /// The 7-bit I2C slave device address, shifted one bit to the left.
- int iAddress;
- /// The offset of the data from the address.
- int iOffset;
- /// Read from or write to slave device. \ref ADL_DL_I2C_ACTIONREAD or \ref ADL_DL_I2C_ACTIONWRITE or \ref ADL_DL_I2C_ACTIONREAD_REPEATEDSTART
- int iAction;
- /// I2C clock speed in KHz.
- int iSpeed;
- /// A numerical value representing the number of bytes to be sent or received on the I2C bus.
- int iDataSize;
- /// Address of the characters which are to be sent or received on the I2C bus.
- char *pcData;
- } ADLI2C;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about EDID data.
- ///
- /// This structure is used to store the information about EDID data for the adapter.
- /// This structure is used by the ADL_Display_EdidData_Get() and ADL_Display_EdidData_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayEDIDData
- {
- /// Size of the structure
- int iSize;
- /// Set to 0
- int iFlag;
- /// Size of cEDIDData. Set by ADL_Display_EdidData_Get() upon return
- int iEDIDSize;
- /// 0, 1 or 2. If set to 3 or above an error ADL_ERR_INVALID_PARAM is generated
- int iBlockIndex;
- /// EDID data
- char cEDIDData[ADL_MAX_EDIDDATA_SIZE];
- /// Reserved
- int iReserved[4];
- }ADLDisplayEDIDData;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about input of controller overlay adjustment.
- ///
- /// This structure is used to store the information about input of controller overlay adjustment for the adapter.
- /// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get, ADL_Display_ControllerOverlayAdjustmentData_Get, and
- /// ADL_Display_ControllerOverlayAdjustmentData_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLControllerOverlayInput
- {
- /// Should be set to the sizeof the structure
- int iSize;
- ///\ref ADL_DL_CONTROLLER_OVERLAY_ALPHA or \ref ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX
- int iOverlayAdjust;
- /// Data.
- int iValue;
- /// Should be 0.
- int iReserved;
- } ADLControllerOverlayInput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about overlay adjustment.
- ///
- /// This structure is used to store the information about overlay adjustment for the adapter.
- /// This structure is used by the ADLControllerOverlayInfo() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAdjustmentinfo
- {
- /// Default value
- int iDefault;
- /// Minimum value
- int iMin;
- /// Maximum Value
- int iMax;
- /// Step value
- int iStep;
- } ADLAdjustmentinfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about controller overlay information.
- ///
- /// This structure is used to store information about controller overlay info for the adapter.
- /// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLControllerOverlayInfo
- {
- /// Should be set to the sizeof the structure
- int iSize;
- /// Data.
- ADLAdjustmentinfo sOverlayInfo;
- /// Should be 0.
- int iReserved[3];
- } ADLControllerOverlayInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync module information.
- ///
- /// This structure is used to retrieve GL-Sync module information for
- /// Workstation Framelock/Genlock.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGLSyncModuleID
- {
- /// Unique GL-Sync module ID.
- int iModuleID;
- /// GL-Sync GPU port index (to be passed into ADLGLSyncGenlockConfig.lSignalSource and ADLGlSyncPortControl.lSignalSource).
- int iGlSyncGPUPort;
- /// GL-Sync module firmware version of Boot Sector.
- int iFWBootSectorVersion;
- /// GL-Sync module firmware version of User Sector.
- int iFWUserSectorVersion;
- } ADLGLSyncModuleID , *LPADLGLSyncModuleID;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync ports capabilities.
- ///
- /// This structure is used to retrieve hardware capabilities for the ports of the GL-Sync module
- /// for Workstation Framelock/Genlock (such as port type and number of associated LEDs).
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGLSyncPortCaps
- {
- /// Port type. Bitfield of ADL_GLSYNC_PORTTYPE_* \ref define_glsync
- int iPortType;
- /// Number of LEDs associated for this port.
- int iNumOfLEDs;
- }ADLGLSyncPortCaps, *LPADLGLSyncPortCaps;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync Genlock settings.
- ///
- /// This structure is used to get and set genlock settings for the GPU ports of the GL-Sync module
- /// for Workstation Framelock/Genlock.\n
- /// \see define_glsync
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGLSyncGenlockConfig
- {
- /// Specifies what fields in this structure are valid \ref define_glsync
- int iValidMask;
- /// Delay (ms) generating a sync signal.
- int iSyncDelay;
- /// Vector of framelock control bits. Bitfield of ADL_GLSYNC_FRAMELOCKCNTL_* \ref define_glsync
- int iFramelockCntlVector;
- /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
- int iSignalSource;
- /// Use sampled sync signal. A value of 0 specifies no sampling.
- int iSampleRate;
- /// For interlaced sync signals, the value can be ADL_GLSYNC_SYNCFIELD_1 or *_BOTH \ref define_glsync
- int iSyncField;
- /// The signal edge that should trigger synchronization. ADL_GLSYNC_TRIGGEREDGE_* \ref define_glsync
- int iTriggerEdge;
- /// Scan rate multiplier applied to the sync signal. ADL_GLSYNC_SCANRATECOEFF_* \ref define_glsync
- int iScanRateCoeff;
- }ADLGLSyncGenlockConfig, *LPADLGLSyncGenlockConfig;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync port information.
- ///
- /// This structure is used to get status of the GL-Sync ports (BNC or RJ45s)
- /// for Workstation Framelock/Genlock.
- /// \see define_glsync
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGlSyncPortInfo
- {
- /// Type of GL-Sync port (ADL_GLSYNC_PORT_*).
- int iPortType;
- /// The number of LEDs for this port. It's also filled within ADLGLSyncPortCaps.
- int iNumOfLEDs;
- /// Port state ADL_GLSYNC_PORTSTATE_* \ref define_glsync
- int iPortState;
- /// Scanned frequency for this port (vertical refresh rate in milliHz; 60000 means 60 Hz).
- int iFrequency;
- /// Used for ADL_GLSYNC_PORT_BNC. It is ADL_GLSYNC_SIGNALTYPE_* \ref define_glsync
- int iSignalType;
- /// Used for ADL_GLSYNC_PORT_RJ45PORT*. It is GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_*. \ref define_glsync
- int iSignalSource;
-
- } ADLGlSyncPortInfo, *LPADLGlSyncPortInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync port control settings.
- ///
- /// This structure is used to configure the GL-Sync ports (RJ45s only)
- /// for Workstation Framelock/Genlock.
- /// \see define_glsync
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGlSyncPortControl
- {
- /// Port to control ADL_GLSYNC_PORT_RJ45PORT1 or ADL_GLSYNC_PORT_RJ45PORT2 \ref define_glsync
- int iPortType;
- /// Port control data ADL_GLSYNC_PORTCNTL_* \ref define_glsync
- int iControlVector;
- /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
- int iSignalSource;
- } ADLGlSyncPortControl;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync mode of a display.
- ///
- /// This structure is used to get and set GL-Sync mode settings for a display connected to
- /// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
- /// \see define_glsync
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGlSyncMode
- {
- /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
- int iControlVector;
- /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
- int iStatusVector;
- /// Index of GL-Sync connector used to genlock the display/controller.
- int iGLSyncConnectorIndex;
- } ADLGlSyncMode, *LPADLGlSyncMode;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing GL-Sync mode of a display.
- ///
- /// This structure is used to get and set GL-Sync mode settings for a display connected to
- /// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
- /// \see define_glsync
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGlSyncMode2
- {
- /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
- int iControlVector;
- /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
- int iStatusVector;
- /// Index of GL-Sync connector used to genlock the display/controller.
- int iGLSyncConnectorIndex;
- /// Index of the display to which this GLSync applies to.
- int iDisplayIndex;
- } ADLGlSyncMode2, *LPADLGlSyncMode2;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the packet info of a display.
- ///
- /// This structure is used to get and set the packet information of a display.
- /// This structure is used by ADLDisplayDataPacket.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLInfoPacket
- {
- char hb0;
- char hb1;
- char hb2;
- /// sb0~sb27
- char sb[28];
- }ADLInfoPacket;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the AVI packet info of a display.
- ///
- /// This structure is used to get and set AVI the packet info of a display.
- /// This structure is used by ADLDisplayDataPacket.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAVIInfoPacket //Valid user defined data/
- {
- /// byte 3, bit 7
- char bPB3_ITC;
- /// byte 5, bit [7:4].
- char bPB5;
- }ADLAVIInfoPacket;
-
- // Overdrive clock setting structure definition.
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the Overdrive clock setting.
- ///
- /// This structure is used to get the Overdrive clock setting.
- /// This structure is used by ADLAdapterODClockInfo.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODClockSetting
- {
- /// Deafult clock
- int iDefaultClock;
- /// Current clock
- int iCurrentClock;
- /// Maximum clcok
- int iMaxClock;
- /// Minimum clock
- int iMinClock;
- /// Requested clcock
- int iRequestedClock;
- /// Step
- int iStepClock;
- } ADLODClockSetting;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the Overdrive clock information.
- ///
- /// This structure is used to get the Overdrive clock information.
- /// This structure is used by the ADL_Display_ODClockInfo_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAdapterODClockInfo
- {
- /// Size of the structure
- int iSize;
- /// Flag \ref define_clockinfo_flags
- int iFlags;
- /// Memory Clock
- ADLODClockSetting sMemoryClock;
- /// Engine Clock
- ADLODClockSetting sEngineClock;
- } ADLAdapterODClockInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the Overdrive clock configuration.
- ///
- /// This structure is used to set the Overdrive clock configuration.
- /// This structure is used by the ADL_Display_ODClockConfig_Set() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAdapterODClockConfig
- {
- /// Size of the structure
- int iSize;
- /// Flag \ref define_clockinfo_flags
- int iFlags;
- /// Memory Clock
- int iMemoryClock;
- /// Engine Clock
- int iEngineClock;
- } ADLAdapterODClockConfig;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about current power management related activity.
- ///
- /// This structure is used to store information about current power management related activity.
- /// This structure (Overdrive 5 interfaces) is used by the ADL_PM_CurrentActivity_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPMActivity
- {
- /// Must be set to the size of the structure
- int iSize;
- /// Current engine clock.
- int iEngineClock;
- /// Current memory clock.
- int iMemoryClock;
- /// Current core voltage.
- int iVddc;
- /// GPU utilization.
- int iActivityPercent;
- /// Performance level index.
- int iCurrentPerformanceLevel;
- /// Current PCIE bus speed.
- int iCurrentBusSpeed;
- /// Number of PCIE bus lanes.
- int iCurrentBusLanes;
- /// Maximum number of PCIE bus lanes.
- int iMaximumBusLanes;
- /// Reserved for future purposes.
- int iReserved;
- } ADLPMActivity;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about thermal controller.
- ///
- /// This structure is used to store information about thermal controller.
- /// This structure is used by ADL_PM_ThermalDevices_Enum.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLThermalControllerInfo
- {
- /// Must be set to the size of the structure
- int iSize;
- /// Possible valies: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
- int iThermalDomain;
- /// GPU 0, 1, etc.
- int iDomainIndex;
- /// Possible valies: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
- int iFlags;
- } ADLThermalControllerInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about thermal controller temperature.
- ///
- /// This structure is used to store information about thermal controller temperature.
- /// This structure is used by the ADL_PM_Temperature_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLTemperature
- {
- /// Must be set to the size of the structure
- int iSize;
- /// Temperature in millidegrees Celsius.
- int iTemperature;
- } ADLTemperature;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about thermal controller fan speed.
- ///
- /// This structure is used to store information about thermal controller fan speed.
- /// This structure is used by the ADL_PM_FanSpeedInfo_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLFanSpeedInfo
- {
- /// Must be set to the size of the structure
- int iSize;
- /// \ref define_fanctrl
- int iFlags;
- /// Minimum possible fan speed value in percents.
- int iMinPercent;
- /// Maximum possible fan speed value in percents.
- int iMaxPercent;
- /// Minimum possible fan speed value in RPM.
- int iMinRPM;
- /// Maximum possible fan speed value in RPM.
- int iMaxRPM;
- } ADLFanSpeedInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about fan speed reported by thermal controller.
- ///
- /// This structure is used to store information about fan speed reported by thermal controller.
- /// This structure is used by the ADL_Overdrive5_FanSpeed_Get() and ADL_Overdrive5_FanSpeed_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLFanSpeedValue
- {
- /// Must be set to the size of the structure
- int iSize;
- /// Possible valies: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
- int iSpeedType;
- /// Fan speed value
- int iFanSpeed;
- /// The only flag for now is: \ref ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED
- int iFlags;
- } ADLFanSpeedValue;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the range of Overdrive parameter.
- ///
- /// This structure is used to store information about the range of Overdrive parameter.
- /// This structure is used by ADLODParameters.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODParameterRange
- {
- /// Minimum parameter value.
- int iMin;
- /// Maximum parameter value.
- int iMax;
- /// Parameter step value.
- int iStep;
- } ADLODParameterRange;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive parameters.
- ///
- /// This structure is used to store information about Overdrive parameters.
- /// This structure is used by the ADL_Overdrive5_ODParameters_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODParameters
- {
- /// Must be set to the size of the structure
- int iSize;
- /// Number of standard performance states.
- int iNumberOfPerformanceLevels;
- /// Indicates whether the GPU is capable to measure its activity.
- int iActivityReportingSupported;
- /// Indicates whether the GPU supports discrete performance levels or performance range.
- int iDiscretePerformanceLevels;
- /// Reserved for future use.
- int iReserved;
- /// Engine clock range.
- ADLODParameterRange sEngineClock;
- /// Memory clock range.
- ADLODParameterRange sMemoryClock;
- /// Core voltage range.
- ADLODParameterRange sVddc;
- } ADLODParameters;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive level.
- ///
- /// This structure is used to store information about Overdrive level.
- /// This structure is used by ADLODPerformanceLevels.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODPerformanceLevel
- {
- /// Engine clock.
- int iEngineClock;
- /// Memory clock.
- int iMemoryClock;
- /// Core voltage.
- int iVddc;
- } ADLODPerformanceLevel;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive performance levels.
- ///
- /// This structure is used to store information about Overdrive performance levels.
- /// This structure is used by the ADL_Overdrive5_ODPerformanceLevels_Get() and ADL_Overdrive5_ODPerformanceLevels_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODPerformanceLevels
- {
- /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
- int iSize;
- int iReserved;
- /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
- ADLODPerformanceLevel aLevels [1];
- } ADLODPerformanceLevels;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the proper CrossfireX chains combinations.
- ///
- /// This structure is used to store information about the CrossfireX chains combination for a particular adapter.
- /// This structure is used by the ADL_Adapter_Crossfire_Caps(), ADL_Adapter_Crossfire_Get(), and ADL_Adapter_Crossfire_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLCrossfireComb
- {
- /// Number of adapters in this combination.
- int iNumLinkAdapter;
- /// A list of ADL indexes of the linked adapters in this combination.
- int iAdaptLink[3];
- } ADLCrossfireComb;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing CrossfireX state and error information.
- ///
- /// This structure is used to store state and error information about a particular adapter CrossfireX combination.
- /// This structure is used by the ADL_Adapter_Crossfire_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLCrossfireInfo
- {
- /// Current error code of this CrossfireX combination.
- int iErrorCode;
- /// Current \ref define_crossfirestate
- int iState;
- /// If CrossfireX is supported by this combination. The value is either \ref ADL_TRUE or \ref ADL_FALSE.
- int iSupported;
- } ADLCrossfireInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about the BIOS.
- ///
- /// This structure is used to store various information about the Chipset. This
- /// information can be returned to the user.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLBiosInfo
- {
- char strPartNumber[ADL_MAX_PATH]; ///< Part number.
- char strVersion[ADL_MAX_PATH]; ///< Version number.
- char strDate[ADL_MAX_PATH]; ///< BIOS date in yyyy/mm/dd hh:mm format.
- } ADLBiosInfo, *LPADLBiosInfo;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about adapter location.
- ///
- /// This structure is used to store information about adapter location.
- /// This structure is used by ADLMVPUStatus.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAdapterLocation
- {
- /// PCI Bus number : 8 bits
- int iBus;
- /// Device number : 5 bits
- int iDevice;
- /// Function number : 3 bits
- int iFunction;
- } ADLAdapterLocation,ADLBdf;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing version information
- ///
- /// This structure is used to store software version information, description of the display device and a web link to the latest installed Catalyst drivers.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLVersionsInfo
- {
- /// Driver Release (Packaging) Version (e.g. 8.71-100128n-094835E-ATI)
- char strDriverVer[ADL_MAX_PATH];
- /// Catalyst Version(e.g. "10.1").
- char strCatalystVersion[ADL_MAX_PATH];
- /// Web link to an XML file with information about the latest AMD drivers and locations (e.g. "http://www.amd.com/us/driverxml" )
- char strCatalystWebLink[ADL_MAX_PATH];
-
- } ADLVersionsInfo, *LPADLVersionsInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing version information
- ///
- /// This structure is used to store software version information, description of the display device and a web link to the latest installed Catalyst drivers.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLVersionsInfoX2
- {
- /// Driver Release (Packaging) Version (e.g. "16.20.1035-160621a-303814C")
- char strDriverVer[ADL_MAX_PATH];
- /// Catalyst Version(e.g. "15.8").
- char strCatalystVersion[ADL_MAX_PATH];
- /// Crimson Version(e.g. "16.6.2").
- char strCrimsonVersion[ADL_MAX_PATH];
- /// Web link to an XML file with information about the latest AMD drivers and locations (e.g. "http://support.amd.com/drivers/xml/driver_09_us.xml" )
- char strCatalystWebLink[ADL_MAX_PATH];
-
- } ADLVersionsInfoX2, *LPADLVersionsInfoX2;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about MultiVPU capabilities.
- ///
- /// This structure is used to store information about MultiVPU capabilities.
- /// This structure is used by the ADL_Display_MVPUCaps_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLMVPUCaps
- {
- /// Must be set to sizeof( ADLMVPUCaps ).
- int iSize;
- /// Number of adapters.
- int iAdapterCount;
- /// Bits set for all possible MVPU masters. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
- int iPossibleMVPUMasters;
- /// Bits set for all possible MVPU slaves. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
- int iPossibleMVPUSlaves;
- /// Registry path for each adapter.
- char cAdapterPath[ADL_DL_MAX_MVPU_ADAPTERS][ADL_DL_MAX_REGISTRY_PATH];
- } ADLMVPUCaps;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about MultiVPU status.
- ///
- /// This structure is used to store information about MultiVPU status.
- /// Ths structure is used by the ADL_Display_MVPUStatus_Get() function.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLMVPUStatus
- {
- /// Must be set to sizeof( ADLMVPUStatus ).
- int iSize;
- /// Number of active adapters.
- int iActiveAdapterCount;
- /// MVPU status.
- int iStatus;
- /// PCI Bus/Device/Function for each active adapter participating in MVPU.
- ADLAdapterLocation aAdapterLocation[ADL_DL_MAX_MVPU_ADAPTERS];
- } ADLMVPUStatus;
-
- // Displays Manager structures
-
- ///////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about the activatable source.
- ///
- /// This structure is used to store activatable source information
- /// This information can be returned to the user.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLActivatableSource
- {
- /// The Persistent logical Adapter Index.
- int iAdapterIndex;
- /// The number of Activatable Sources.
- int iNumActivatableSources;
- /// The bit mask identifies the number of bits ActivatableSourceValue is using. (Not currnetly used)
- int iActivatableSourceMask;
- /// The bit mask identifies the status. (Not currnetly used)
- int iActivatableSourceValue;
- } ADLActivatableSource, *LPADLActivatableSource;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about display mode.
- ///
- /// This structure is used to store the display mode for the current adapter
- /// such as X, Y positions, screen resolutions, orientation,
- /// color depth, refresh rate, progressive or interlace mode, etc.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- typedef struct ADLMode
- {
- /// Adapter index.
- int iAdapterIndex;
- /// Display IDs.
- ADLDisplayID displayID;
- /// Screen position X coordinate.
- int iXPos;
- /// Screen position Y coordinate.
- int iYPos;
- /// Screen resolution Width.
- int iXRes;
- /// Screen resolution Height.
- int iYRes;
- /// Screen Color Depth. E.g., 16, 32.
- int iColourDepth;
- /// Screen refresh rate. Could be fractional E.g. 59.97
- float fRefreshRate;
- /// Screen orientation. E.g., 0, 90, 180, 270.
- int iOrientation;
- /// Vista mode flag indicating Progressive or Interlaced mode.
- int iModeFlag;
- /// The bit mask identifying the number of bits this Mode is currently using. It is the sum of all the bit definitions defined in \ref define_displaymode
- int iModeMask;
- /// The bit mask identifying the display status. The detailed definition is in \ref define_displaymode
- int iModeValue;
- } ADLMode, *LPADLMode;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about display target information.
- ///
- /// This structure is used to store the display target information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayTarget
- {
- /// The Display ID.
- ADLDisplayID displayID;
-
- /// The display map index identify this manner and the desktop surface.
- int iDisplayMapIndex;
-
- /// The bit mask identifies the number of bits DisplayTarget is currently using. It is the sum of all the bit definitions defined in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
- int iDisplayTargetMask;
-
- /// The bit mask identifies the display status. The detailed definition is in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
- int iDisplayTargetValue;
-
- } ADLDisplayTarget, *LPADLDisplayTarget;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display SLS bezel Mode information.
- ///
- /// This structure is used to store the display SLS bezel Mode information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct tagADLBezelTransientMode
- {
- /// Adapter Index
- int iAdapterIndex;
-
- /// SLS Map Index
- int iSLSMapIndex;
-
- /// The mode index
- int iSLSModeIndex;
-
- /// The mode
- ADLMode displayMode;
-
- /// The number of bezel offsets belongs to this map
- int iNumBezelOffset;
-
- /// The first bezel offset array index in the native mode array
- int iFirstBezelOffsetArrayIndex;
-
- /// The bit mask identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
- int iSLSBezelTransientModeMask;
-
- /// The bit mask identifies the display status. The detail definition is defined below.
- int iSLSBezelTransientModeValue;
-
- } ADLBezelTransientMode, *LPADLBezelTransientMode;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about the adapter display manner.
- ///
- /// This structure is used to store adapter display manner information
- /// This information can be returned to the user. Alternatively, it can be used to access various driver calls to
- /// fetch various display device related display manner settings upon the user's request.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAdapterDisplayCap
- {
- /// The Persistent logical Adapter Index.
- int iAdapterIndex;
- /// The bit mask identifies the number of bits AdapterDisplayCap is currently using. Sum all the bits defined in ADL_ADAPTER_DISPLAYCAP_XXX
- int iAdapterDisplayCapMask;
- /// The bit mask identifies the status. Refer to ADL_ADAPTER_DISPLAYCAP_XXX
- int iAdapterDisplayCapValue;
- } ADLAdapterDisplayCap, *LPADLAdapterDisplayCap;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about display mapping.
- ///
- /// This structure is used to store the display mapping data such as display manner.
- /// For displays with horizontal or vertical stretch manner,
- /// this structure also stores the display order, display row, and column data.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayMap
- {
- /// The current display map index. It is the OS desktop index. For example, if the OS index 1 is showing clone mode, the display map will be 1.
- int iDisplayMapIndex;
-
- /// The Display Mode for the current map
- ADLMode displayMode;
-
- /// The number of display targets belongs to this map\n
- int iNumDisplayTarget;
-
- /// The first target array index in the Target array\n
- int iFirstDisplayTargetArrayIndex;
-
- /// The bit mask identifies the number of bits DisplayMap is currently using. It is the sum of all the bit definitions defined in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
- int iDisplayMapMask;
-
- ///The bit mask identifies the display status. The detailed definition is in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
- int iDisplayMapValue;
-
- } ADLDisplayMap, *LPADLDisplayMap;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about the display device possible map for one GPU
- ///
- /// This structure is used to store the display device possible map
- /// This information can be returned to the user.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPossibleMap
- {
- /// The current PossibleMap index. Each PossibleMap is assigned an index
- int iIndex;
- /// The adapter index identifying the GPU for which to validate these Maps & Targets
- int iAdapterIndex;
- /// Number of display Maps for this GPU to be validated
- int iNumDisplayMap;
- /// The display Maps list to validate
- ADLDisplayMap* displayMap;
- /// the number of display Targets for these display Maps
- int iNumDisplayTarget;
- /// The display Targets list for these display Maps to be validated.
- ADLDisplayTarget* displayTarget;
- } ADLPossibleMap, *LPADLPossibleMap;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about display possible mapping.
- ///
- /// This structure is used to store the display possible mapping's controller index for the current display.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPossibleMapping
- {
- int iDisplayIndex; ///< The display index. Each display is assigned an index.
- int iDisplayControllerIndex; ///< The controller index to which display is mapped.
- int iDisplayMannerSupported; ///< The supported display manner.
- } ADLPossibleMapping, *LPADLPossibleMapping;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- /// \brief Structure containing information about the validated display device possible map result.
- ///
- /// This structure is used to store the validated display device possible map result
- /// This information can be returned to the user.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPossibleMapResult
- {
- /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
- 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;
- /// The bit mask identifies the possible map result. The detail definition is defined in ADL_DISPLAY_POSSIBLEMAPRESULT_XXX.
- int iPossibleMapResultValue;
- } ADLPossibleMapResult, *LPADLPossibleMapResult;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display SLS Grid information.
- ///
- /// This structure is used to store the display SLS Grid information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSLSGrid
- {
- /// The Adapter index.
- int iAdapterIndex;
-
- /// The grid index.
- int iSLSGridIndex;
-
- /// The grid row.
- int iSLSGridRow;
-
- /// The grid column.
- int iSLSGridColumn;
-
- /// The grid bit mask identifies the number of bits DisplayMap is currently using. Sum of all bits defined in ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
- int iSLSGridMask;
-
- /// The grid bit value identifies the display status. Refer to ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
- int iSLSGridValue;
-
- } ADLSLSGrid, *LPADLSLSGrid;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display SLS Map information.
- ///
- /// This structure is used to store the display SLS Map information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSLSMap
- {
- /// The Adapter Index
- int iAdapterIndex;
-
- /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
- int iSLSMapIndex;
-
- /// Indicate the current grid
- ADLSLSGrid grid;
-
- /// OS surface index
- int iSurfaceMapIndex;
-
- /// Screen orientation. E.g., 0, 90, 180, 270
- int iOrientation;
-
- /// The number of display targets belongs to this map
- int iNumSLSTarget;
-
- /// The first target array index in the Target array
- int iFirstSLSTargetArrayIndex;
-
- /// The number of native modes belongs to this map
- int iNumNativeMode;
-
- /// The first native mode array index in the native mode array
- int iFirstNativeModeArrayIndex;
-
- /// The number of bezel modes belongs to this map
- int iNumBezelMode;
-
- /// The first bezel mode array index in the native mode array
- int iFirstBezelModeArrayIndex;
-
- /// The number of bezel offsets belongs to this map
- int iNumBezelOffset;
-
- /// The first bezel offset array index in the
- int iFirstBezelOffsetArrayIndex;
-
- /// The bit mask identifies the number of bits DisplayMap is currently using. Sum all the bit definitions defined in ADL_DISPLAY_SLSMAP_XXX.
- int iSLSMapMask;
-
- /// The bit mask identifies the display map status. Refer to ADL_DISPLAY_SLSMAP_XXX
- int iSLSMapValue;
-
-
- } ADLSLSMap, *LPADLSLSMap;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display SLS Offset information.
- ///
- /// This structure is used to store the display SLS Offset information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSLSOffset
- {
- /// The Adapter Index
- int iAdapterIndex;
-
- /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
- int iSLSMapIndex;
-
- /// The Display ID.
- ADLDisplayID displayID;
-
- /// SLS Bezel Mode Index
- int iBezelModeIndex;
-
- /// SLS Bezel Offset X
- int iBezelOffsetX;
-
- /// SLS Bezel Offset Y
- int iBezelOffsetY;
-
- /// SLS Display Width
- int iDisplayWidth;
-
- /// SLS Display Height
- int iDisplayHeight;
-
- /// The bit mask identifies the number of bits Offset is currently using.
- int iBezelOffsetMask;
-
- /// The bit mask identifies the display status.
- int iBezelffsetValue;
- } ADLSLSOffset, *LPADLSLSOffset;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display SLS Mode information.
- ///
- /// This structure is used to store the display SLS Mode information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSLSMode
- {
- /// The Adapter Index
- int iAdapterIndex;
-
- /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
- int iSLSMapIndex;
-
- /// The mode index
- int iSLSModeIndex;
-
- /// The mode for this map.
- ADLMode displayMode;
-
- /// The bit mask identifies the number of bits Mode is currently using.
- int iSLSNativeModeMask;
-
- /// The bit mask identifies the display status.
- int iSLSNativeModeValue;
- } ADLSLSMode, *LPADLSLSMode;
-
-
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the display Possible SLS Map information.
- ///
- /// This structure is used to store the display Possible SLS Map information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPossibleSLSMap
- {
- /// The current display map index. It is the OS Desktop index.
- /// For example, OS Index 1 showing clone mode. The Display Map will be 1.
- int iSLSMapIndex;
-
- /// Number of display map to be validated.
- int iNumSLSMap;
-
- /// The display map list for validation
- ADLSLSMap* lpSLSMap;
-
- /// the number of display map config to be validated.
- int iNumSLSTarget;
-
- /// The display target list for validation.
- ADLDisplayTarget* lpDisplayTarget;
- } ADLPossibleSLSMap, *LPADLPossibleSLSMap;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the SLS targets.
- ///
- /// This structure is used to store the SLS targets information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSLSTarget
- {
- /// the logic adapter index
- int iAdapterIndex;
-
- /// The SLS map index
- int iSLSMapIndex;
-
- /// The target ID
- ADLDisplayTarget displayTarget;
-
- /// Target postion X in SLS grid
- int iSLSGridPositionX;
-
- /// Target postion Y in SLS grid
- int iSLSGridPositionY;
-
- /// The view size width, height and rotation angle per SLS Target
- ADLMode viewSize;
-
- /// The bit mask identifies the bits in iSLSTargetValue are currently used
- int iSLSTargetMask;
-
- /// The bit mask identifies status info. It is for function extension purpose
- int iSLSTargetValue;
-
- } ADLSLSTarget, *LPADLSLSTarget;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the Adapter offset stepping size.
- ///
- /// This structure is used to store the Adapter offset stepping size information.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLBezelOffsetSteppingSize
- {
- /// the logic adapter index
- int iAdapterIndex;
-
- /// The SLS map index
- int iSLSMapIndex;
-
- /// Bezel X stepping size offset
- int iBezelOffsetSteppingSizeX;
-
- /// Bezel Y stepping size offset
- int iBezelOffsetSteppingSizeY;
-
- /// Identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
- int iBezelOffsetSteppingSizeMask;
-
- /// Bit mask identifies the display status.
- int iBezelOffsetSteppingSizeValue;
-
- } ADLBezelOffsetSteppingSize, *LPADLBezelOffsetSteppingSize;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about the overlap offset info for all the displays for each SLS mode.
- ///
- /// This structure is used to store the no. of overlapped modes for each SLS Mode once user finishes the configuration from Overlap Widget
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSLSOverlappedMode
- {
- /// the SLS mode for which the overlap is configured
- ADLMode SLSMode;
- /// the number of target displays in SLS.
- int iNumSLSTarget;
- /// the first target array index in the target array
- int iFirstTargetArrayIndex;
- }ADLSLSTargetOverlap, *LPADLSLSTargetOverlap;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about driver supported PowerExpress Config Caps
- ///
- /// This structure is used to store the driver supported PowerExpress Config Caps
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPXConfigCaps
- {
- /// The Persistent logical Adapter Index.
- int iAdapterIndex;
-
- /// The bit mask identifies the number of bits PowerExpress Config Caps is currently using. It is the sum of all the bit definitions defined in ADL_PX_CONFIGCAPS_XXXX /ref define_powerxpress_constants.
- int iPXConfigCapMask;
-
- /// The bit mask identifies the PowerExpress Config Caps value. The detailed definition is in ADL_PX_CONFIGCAPS_XXXX /ref define_powerxpress_constants.
- int iPXConfigCapValue;
-
- } ADLPXConfigCaps, *LPADLPXConfigCaps;
-
- /////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Enum containing PX or HG type
- ///
- /// This enum is used to get PX or hG type
- ///
- /// \nosubgrouping
- //////////////////////////////////////////////////////////////////////////////////////////
- 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,
- };
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an application
- ///
- /// This structure is used to store basic information of an application
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLApplicationData
- {
- /// Path Name
- char strPathName[ADL_MAX_PATH];
- /// File Name
- char strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
- /// Creation timestamp
- char strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
- /// Version
- char strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
- }ADLApplicationData;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an application
- ///
- /// This structure is used to store basic information of an application
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLApplicationDataX2
- {
- /// Path Name
- wchar_t strPathName[ADL_MAX_PATH];
- /// File Name
- wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
- /// Creation timestamp
- wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
- /// Version
- wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
- }ADLApplicationDataX2;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an application
- ///
- /// This structure is used to store basic information of an application including process id
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLApplicationDataX3
- {
- /// Path Name
- wchar_t strPathName[ADL_MAX_PATH];
- /// File Name
- wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
- /// Creation timestamp
- wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
- /// Version
- wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
- //Application Process id
- unsigned int iProcessId;
- }ADLApplicationDataX3;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information of a property of an application profile
- ///
- /// This structure is used to store property information of an application profile
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _PropertyRecord
- {
- /// Property Name
- char strName [ADL_APP_PROFILE_PROPERTY_LENGTH];
- /// Property Type
- ADLProfilePropertyType eType;
- /// Data Size in bytes
- int iDataSize;
- /// Property Value, can be any data type
- unsigned char uData[1];
- }PropertyRecord;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an application profile
- ///
- /// This structure is used to store information of an application profile
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLApplicationProfile
- {
- /// Number of properties
- int iCount;
- /// Buffer to store all property records
- PropertyRecord record[1];
- }ADLApplicationProfile;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an OD5 Power Control feature
- ///
- /// This structure is used to store information of an Power Control feature
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPowerControlInfo
- {
- /// Minimum value.
- int iMinValue;
- /// Maximum value.
- int iMaxValue;
- /// The minimum change in between minValue and maxValue.
- int iStepValue;
- } ADLPowerControlInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an controller mode
- ///
- /// This structure is used to store information of an controller mode
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLControllerMode
- {
- /// This falg indicates actions that will be applied by set viewport
- /// The value can be a combination of ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION,
- /// ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK and ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE
- int iModifiers;
-
- /// Horizontal view starting position
- int iViewPositionCx;
-
- /// Vertical view starting position
- int iViewPositionCy;
-
- /// Horizontal left panlock position
- int iViewPanLockLeft;
-
- /// Horizontal right panlock position
- int iViewPanLockRight;
-
- /// Vertical top panlock position
- int iViewPanLockTop;
-
- /// Vertical bottom panlock position
- int iViewPanLockBottom;
-
- /// View resolution in pixels (width)
- int iViewResolutionCx;
-
- /// View resolution in pixels (hight)
- int iViewResolutionCy;
- }ADLControllerMode;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about a display
- ///
- /// This structure is used to store information about a display
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayIdentifier
- {
- /// ADL display index
- long ulDisplayIndex;
-
- /// manufacturer ID of the display
- long ulManufacturerId;
-
- /// product ID of the display
- long ulProductId;
-
- /// serial number of the display
- long ulSerialNo;
-
- } ADLDisplayIdentifier;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 clock range
- ///
- /// This structure is used to store information about Overdrive 6 clock range
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6ParameterRange
- {
- /// The starting value of the clock range
- int iMin;
- /// The ending value of the clock range
- int iMax;
- /// The minimum increment between clock values
- int iStep;
-
- } ADLOD6ParameterRange;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 capabilities
- ///
- /// This structure is used to store information about Overdrive 6 capabilities
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6Capabilities
- {
- /// Contains a bitmap of the OD6 capability flags. Possible values: \ref ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION,
- /// \ref ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION, \ref ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR
- int iCapabilities;
- /// Contains a bitmap indicating the power states
- /// supported by OD6. Currently only the performance state
- /// is supported. Possible Values: \ref ADL_OD6_SUPPORTEDSTATE_PERFORMANCE
- int iSupportedStates;
- /// Number of levels. OD6 will always use 2 levels, which describe
- /// the minimum to maximum clock ranges.
- /// The 1st level indicates the minimum clocks, and the 2nd level
- /// indicates the maximum clocks.
- int iNumberOfPerformanceLevels;
- /// Contains the hard limits of the sclk range. Overdrive
- /// clocks cannot be set outside this range.
- ADLOD6ParameterRange sEngineClockRange;
- /// Contains the hard limits of the mclk range. Overdrive
- /// clocks cannot be set outside this range.
- ADLOD6ParameterRange sMemoryClockRange;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6Capabilities;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 clock values.
- ///
- /// This structure is used to store information about Overdrive 6 clock values.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6PerformanceLevel
- {
- /// Engine (core) clock.
- int iEngineClock;
- /// Memory clock.
- int iMemoryClock;
-
- } ADLOD6PerformanceLevel;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 clocks.
- ///
- /// This structure is used to store information about Overdrive 6 clocks. This is a
- /// variable-sized structure. iNumberOfPerformanceLevels indicate how many elements
- /// are contained in the aLevels array.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6StateInfo
- {
- /// Number of levels. OD6 uses clock ranges instead of discrete performance levels.
- /// iNumberOfPerformanceLevels is always 2. The 1st level indicates the minimum clocks
- /// in the range. The 2nd level indicates the maximum clocks in the range.
- int iNumberOfPerformanceLevels;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- /// Variable-sized array of levels.
- /// The number of elements in the array is specified by iNumberofPerformanceLevels.
- ADLOD6PerformanceLevel aLevels [1];
-
- } ADLOD6StateInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about current Overdrive 6 performance status.
- ///
- /// This structure is used to store information about current Overdrive 6 performance status.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6CurrentStatus
- {
- /// Current engine clock in 10 KHz.
- int iEngineClock;
- /// Current memory clock in 10 KHz.
- int iMemoryClock;
- /// Current GPU activity in percent. This
- /// indicates how "busy" the GPU is.
- int iActivityPercent;
- /// Not used. Reserved for future use.
- int iCurrentPerformanceLevel;
- /// Current PCI-E bus speed
- int iCurrentBusSpeed;
- /// Current PCI-E bus # of lanes
- int iCurrentBusLanes;
- /// Maximum possible PCI-E bus # of lanes
- int iMaximumBusLanes;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6CurrentStatus;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 thermal contoller capabilities
- ///
- /// This structure is used to store information about Overdrive 6 thermal controller capabilities
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6ThermalControllerCaps
- {
- /// Contains a bitmap of thermal controller capability flags. Possible values: \ref ADL_OD6_TCCAPS_THERMAL_CONTROLLER, \ref ADL_OD6_TCCAPS_FANSPEED_CONTROL,
- /// \ref ADL_OD6_TCCAPS_FANSPEED_PERCENT_READ, \ref ADL_OD6_TCCAPS_FANSPEED_PERCENT_WRITE, \ref ADL_OD6_TCCAPS_FANSPEED_RPM_READ, \ref ADL_OD6_TCCAPS_FANSPEED_RPM_WRITE
- int iCapabilities;
- /// Minimum fan speed expressed as a percentage
- int iFanMinPercent;
- /// Maximum fan speed expressed as a percentage
- int iFanMaxPercent;
- /// Minimum fan speed expressed in revolutions-per-minute
- int iFanMinRPM;
- /// Maximum fan speed expressed in revolutions-per-minute
- int iFanMaxRPM;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6ThermalControllerCaps;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 fan speed information
- ///
- /// This structure is used to store information about Overdrive 6 fan speed information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6FanSpeedInfo
- {
- /// Contains a bitmap of the valid fan speed type flags. Possible values: \ref ADL_OD6_FANSPEED_TYPE_PERCENT, \ref ADL_OD6_FANSPEED_TYPE_RPM, \ref ADL_OD6_FANSPEED_USER_DEFINED
- int iSpeedType;
- /// Contains current fan speed in percent (if valid flag exists in iSpeedType)
- int iFanSpeedPercent;
- /// Contains current fan speed in RPM (if valid flag exists in iSpeedType)
- int iFanSpeedRPM;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6FanSpeedInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 fan speed value
- ///
- /// This structure is used to store information about Overdrive 6 fan speed value
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6FanSpeedValue
- {
- /// Indicates the units of the fan speed. Possible values: \ref ADL_OD6_FANSPEED_TYPE_PERCENT, \ref ADL_OD6_FANSPEED_TYPE_RPM
- int iSpeedType;
- /// Fan speed value (units as indicated above)
- int iFanSpeed;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6FanSpeedValue;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 PowerControl settings.
- ///
- /// This structure is used to store information about Overdrive 6 PowerControl settings.
- /// PowerControl is the feature which allows the performance characteristics of the GPU
- /// to be adjusted by changing the PowerTune power limits.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6PowerControlInfo
- {
- /// The minimum PowerControl adjustment value
- int iMinValue;
- /// The maximum PowerControl adjustment value
- int iMaxValue;
- /// The minimum difference between PowerControl adjustment values
- int iStepValue;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6PowerControlInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 PowerControl settings.
- ///
- /// This structure is used to store information about Overdrive 6 PowerControl settings.
- /// PowerControl is the feature which allows the performance characteristics of the GPU
- /// to be adjusted by changing the PowerTune power limits.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6VoltageControlInfo
- {
- /// The minimum VoltageControl adjustment value
- int iMinValue;
- /// The maximum VoltageControl adjustment value
- int iMaxValue;
- /// The minimum difference between VoltageControl adjustment values
- int iStepValue;
-
- /// Value for future extension
- int iExtValue;
- /// Mask for future extension
- int iExtMask;
-
- } ADLOD6VoltageControlInfo;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing ECC statistics namely SEC counts and DED counts
- /// Single error count - count of errors that can be corrected
- /// Doubt Error Detect - count of errors that cannot be corrected
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
-
-
-
- /// \brief Handle to ADL client context.
- ///
- /// ADL clients obtain context handle from initial call to \ref ADL2_Main_Control_Create.
- /// Clients have to pass the handle to each subsequent ADL call and finally destroy
- /// the context with call to \ref ADL2_Main_Control_Destroy
- /// \nosubgrouping
- typedef void *ADL_CONTEXT_HANDLE;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the display mode definition used per controller.
- ///
- /// This structure is used to store the display mode definition used per controller.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDisplayModeX2
- {
- /// Horizontal resolution (in pixels).
- int iWidth;
- /// Vertical resolution (in lines).
- int iHeight;
- /// Interlaced/Progressive. The value will be set for Interlaced as ADL_DL_TIMINGFLAG_INTERLACED. If not set it is progressive. Refer define_detailed_timing_flags.
- int iScanType;
- /// Refresh rate.
- int iRefreshRate;
- /// Timing Standard. Refer define_modetiming_standard.
- int iTimingStandard;
- } ADLDisplayModeX2;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 extension capabilities
- ///
- /// This structure is used to store information about Overdrive 6 extension capabilities
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6CapabilitiesEx
- {
- /// Contains a bitmap of the OD6 extension capability flags. Possible values: \ref ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION,
- /// \ref ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION, \ref ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR,
- /// \ref ADL_OD6_CAPABILITY_POWER_CONTROL, \ref ADL_OD6_CAPABILITY_VOLTAGE_CONTROL, \ref ADL_OD6_CAPABILITY_PERCENT_ADJUSTMENT,
- //// \ref ADL_OD6_CAPABILITY_THERMAL_LIMIT_UNLOCK
- int iCapabilities;
- /// The Power states that support clock and power customization. Only performance state is currently supported.
- /// Possible Values: \ref ADL_OD6_SUPPORTEDSTATE_PERFORMANCE
- int iSupportedStates;
- /// Returns the hard limits of the SCLK overdrive adjustment range. Overdrive clocks should not be adjusted outside of this range. The values are specified as +/- percentages.
- ADLOD6ParameterRange sEngineClockPercent;
- /// Returns the hard limits of the MCLK overdrive adjustment range. Overdrive clocks should not be adjusted outside of this range. The values are specified as +/- percentages.
- ADLOD6ParameterRange sMemoryClockPercent;
- /// Returns the hard limits of the Power Limit adjustment range. Power limit should not be adjusted outside this range. The values are specified as +/- percentages.
- ADLOD6ParameterRange sPowerControlPercent;
- /// Reserved for future expansion of the structure.
- int iExtValue;
- /// Reserved for future expansion of the structure.
- int iExtMask;
- } ADLOD6CapabilitiesEx;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 extension state information
- ///
- /// This structure is used to store information about Overdrive 6 extension state information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6StateEx
- {
- /// The current engine clock adjustment value, specified as a +/- percent.
- int iEngineClockPercent;
- /// The current memory clock adjustment value, specified as a +/- percent.
- int iMemoryClockPercent;
- /// The current power control adjustment value, specified as a +/- percent.
- int iPowerControlPercent;
- /// Reserved for future expansion of the structure.
- int iExtValue;
- /// Reserved for future expansion of the structure.
- int iExtMask;
- } ADLOD6StateEx;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive 6 extension recommended maximum clock adjustment values
- ///
- /// This structure is used to store information about Overdrive 6 extension recommended maximum clock adjustment values
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD6MaxClockAdjust
- {
- /// The recommended maximum engine clock adjustment in percent, for the specified power limit value.
- int iEngineClockMax;
- /// The recommended maximum memory clock adjustment in percent, for the specified power limit value.
- /// Currently the memory is independent of the Power Limit setting, so iMemoryClockMax will always return the maximum
- /// possible adjustment value. This field is here for future enhancement in case we add a dependency between Memory Clock
- /// adjustment and Power Limit setting.
- int iMemoryClockMax;
- /// Reserved for future expansion of the structure.
- int iExtValue;
- /// Reserved for future expansion of the structure.
- int iExtMask;
- } ADLOD6MaxClockAdjust;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the Connector information
- ///
- /// this structure is used to get the connector information like length, positions & etc.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLConnectorInfo
- {
- ///index of the connector(0-based)
- int iConnectorIndex;
- ///used for disply identification/ordering
- int iConnectorId;
- ///index of the slot, 0-based index.
- int iSlotIndex;
- ///Type of the connector. \ref define_connector_types
- int iType;
- ///Position of the connector(in millimeters), from the right side of the slot.
- int iOffset;
- ///Length of the connector(in millimeters).
- int iLength;
-
- } ADLConnectorInfo;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing the slot information
- ///
- /// this structure is used to get the slot information like length of the slot, no of connectors on the slot & etc.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLBracketSlotInfo
- {
- ///index of the slot, 0-based index.
- int iSlotIndex;
- ///length of the slot(in millimeters).
- int iLength;
- ///width of the slot(in millimeters).
- int iWidth;
- } ADLBracketSlotInfo;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing MST branch information
- ///
- /// this structure is used to store the MST branch information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLMSTRad
- {
- ///depth of the link.
- int iLinkNumber;
- /// Relative address, address scheme starts from source side
- char rad[ADL_MAX_RAD_LINK_COUNT];
- } ADLMSTRad;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing port information
- ///
- /// this structure is used to get the display or MST branch information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLDevicePort
- {
- ///index of the connector.
- int iConnectorIndex;
- ///Relative MST address. If MST RAD contains 0 it means DP or Root of the MST topology. For non DP connectors MST RAD is ignored.
- ADLMSTRad aMSTRad;
- } ADLDevicePort;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing supported connection types and properties
- ///
- /// this structure is used to get the supported connection types and supported properties of given connector
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLSupportedConnections
- {
- ///Bit vector of supported connections. Bitmask is defined in constants section. \ref define_connection_types
- int iSupportedConnections;
- ///Array of bitvectors. Each bit vector represents supported properties for one connection type. Index of this array is connection type (bit number in mask).
- int iSupportedProperties[ADL_MAX_CONNECTION_TYPES];
- } ADLSupportedConnections;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing connection state of the connector
- ///
- /// this structure is used to get the current Emulation status and mode of the given connector
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLConnectionState
- {
- ///The value is bit vector. Each bit represents status. See masks constants for details. \ref define_emulation_status
- int iEmulationStatus;
- ///It contains information about current emulation mode. See constants for details. \ref define_emulation_mode
- int iEmulationMode;
- ///If connection is active it will contain display id, otherwise CWDDEDI_INVALID_DISPLAY_INDEX
- int iDisplayIndex;
- } ADLConnectionState;
-
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing connection properties information
- ///
- /// this structure is used to retrieve the properties of connection type
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
- ///Output Bandwidth. Could be used for MST branch, DP or DP Active dongle. \ref define_linkrate_constants
- int iOutputBandwidth;
- } ADLConnectionProperties;
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing connection information
- ///
- /// this structure is used to retrieve the data from driver which includes
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLConnectionData
- {
- ///Connection type. based on the connection type either iNumberofPorts or IDataSize,EDIDdata is valid, \ref define_connection_types
- int iConnectionType;
- ///Specifies the connection properties.
- ADLConnectionProperties aConnectionProperties;
- ///Number of ports
- int iNumberofPorts;
- ///Number of Active Connections
- int iActiveConnections;
- ///actual size of EDID data block size.
- int iDataSize;
- ///EDID Data
- char EdidData[ADL_MAX_DISPLAY_EDID_DATA_SIZE];
- } ADLConnectionData;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an controller mode including Number of Connectors
- ///
- /// This structure is used to store information of an controller mode
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLAdapterCapsX2
- {
- /// AdapterID for this adapter
- int iAdapterID;
- /// Number of controllers for this adapter
- int iNumControllers;
- /// Number of displays for this adapter
- int iNumDisplays;
- /// Number of overlays for this adapter
- int iNumOverlays;
- /// Number of GLSyncConnectors
- int iNumOfGLSyncConnectors;
- /// The bit mask identifies the adapter caps
- int iCapsMask;
- /// The bit identifies the adapter caps \ref define_adapter_caps
- int iCapsValue;
- /// Number of Connectors for this adapter
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about EDC Error Record
- ///
- /// This structure is used to store EDC Error Record
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about EDC Error Injection
- ///
- /// This structure is used to store EDC Error Injection
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing per display FreeSync capability information.
- ///
- /// This structure is used to store the FreeSync capability of both the display and
- /// the GPU the display is connected to.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLFreeSyncCap
- {
- /// FreeSync capability flags. \ref define_freesync_caps
- int iCaps;
- /// Reports minimum FreeSync refresh rate supported by the display in micro hertz
- int iMinRefreshRateInMicroHz;
- /// Reports maximum FreeSync refresh rate supported by the display in micro hertz
- int iMaxRefreshRateInMicroHz;
- /// Reserved
- int iReserved[5];
- } ADLFreeSyncCap;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing per display Display Connectivty Experience Settings
- ///
- /// This structure is used to store the Display Connectivity Experience settings of a
- /// display
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Graphic Core
- ///
- /// This structure is used to get Graphic Core Info
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLGraphicCoreInfo
- {
- /// indicate the graphic core generation
- int iGCGen;
-
- union
- {
- /// Total number of CUs. Valid for GCN (iGCGen == GCN)
- int iNumCUs;
- /// Total number of WGPs. Valid for RDNA (iGCGen == RDNA)
- int iNumWGPs;
- };
-
- union
- {
- /// Number of processing elements per CU. Valid for GCN (iGCGen == GCN)
- int iNumPEsPerCU;
- /// Number of processing elements per WGP. Valid for RDNA (iGCGen == RDNA)
- int iNumPEsPerWGP;
- };
-
- /// Total number of SIMDs. Valid for Pre GCN (iGCGen == Pre-GCN)
- int iNumSIMDs;
-
- /// Total number of ROPs. Valid for both GCN and Pre GCN
- int iNumROPs;
-
- /// reserved for future use
- int iReserved[11];
- }ADLGraphicCoreInfo;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N clock range
- ///
- /// This structure is used to store information about Overdrive N clock range
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLODNParameterRange
- {
- /// The starting value of the clock range
- int iMode;
- /// The starting value of the clock range
- int iMin;
- /// The ending value of the clock range
- int iMax;
- /// The minimum increment between clock values
- int iStep;
- /// The default clock values
- int iDefault;
-
- } ADLODNParameterRange;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N capabilities
- ///
- /// This structure is used to store information about Overdrive N capabilities
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLODNCapabilities
- {
- /// Number of levels which describe the minimum to maximum clock ranges.
- /// The 1st level indicates the minimum clocks, and the 2nd level
- /// indicates the maximum clocks.
- int iMaximumNumberOfPerformanceLevels;
- /// Contains the hard limits of the sclk range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange sEngineClockRange;
- /// Contains the hard limits of the mclk range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange sMemoryClockRange;
- /// Contains the hard limits of the vddc range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange svddcRange;
- /// Contains the hard limits of the power range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange power;
- /// Contains the hard limits of the power range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange powerTuneTemperature;
- /// Contains the hard limits of the Temperature range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange fanTemperature;
- /// Contains the hard limits of the Fan range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange fanSpeed;
- /// Contains the hard limits of the Fan range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange minimumPerformanceClock;
- } ADLODNCapabilities;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N capabilities
- ///
- /// This structure is used to store information about Overdrive N capabilities
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLODNCapabilitiesX2
- {
- /// Number of levels which describe the minimum to maximum clock ranges.
- /// The 1st level indicates the minimum clocks, and the 2nd level
- /// indicates the maximum clocks.
- int iMaximumNumberOfPerformanceLevels;
- /// bit vector, which tells what are the features are supported.
- /// \ref: ADLODNFEATURECONTROL
- int iFlags;
- /// Contains the hard limits of the sclk range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange sEngineClockRange;
- /// Contains the hard limits of the mclk range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange sMemoryClockRange;
- /// Contains the hard limits of the vddc range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange svddcRange;
- /// Contains the hard limits of the power range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange power;
- /// Contains the hard limits of the power range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange powerTuneTemperature;
- /// Contains the hard limits of the Temperature range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange fanTemperature;
- /// Contains the hard limits of the Fan range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange fanSpeed;
- /// Contains the hard limits of the Fan range. Overdrive
- /// clocks cannot be set outside this range.
- ADLODNParameterRange minimumPerformanceClock;
- /// Contains the hard limits of the throttleNotification
- ADLODNParameterRange throttleNotificaion;
- /// Contains the hard limits of the Auto Systemclock
- ADLODNParameterRange autoSystemClock;
- } ADLODNCapabilitiesX2;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive level.
- ///
- /// This structure is used to store information about Overdrive level.
- /// This structure is used by ADLODPerformanceLevels.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODNPerformanceLevel
- {
- /// clock.
- int iClock;
- /// VDCC.
- int iVddc;
- /// enabled
- int iEnabled;
- } ADLODNPerformanceLevel;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N performance levels.
- ///
- /// This structure is used to store information about Overdrive performance levels.
- /// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODNPerformanceLevels
- {
- int iSize;
- //Automatic/manual
- int iMode;
- /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
- int iNumberOfPerformanceLevels;
- /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
- ADLODNPerformanceLevel aLevels[1];
- } ADLODNPerformanceLevels;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N Fan Speed.
- ///
- /// This structure is used to store information about Overdrive Fan control .
- /// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODNFanControl
- {
- int iMode;
- int iFanControlMode;
- int iCurrentFanSpeedMode;
- int iCurrentFanSpeed;
- int iTargetFanSpeed;
- int iTargetTemperature;
- int iMinPerformanceClock;
- int iMinFanLimit;
- } ADLODNFanControl;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N power limit.
- ///
- /// This structure is used to store information about Overdrive power limit.
- /// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- ///\brief Structure containing information about Overdrive level.
- ///
- /// This structure is used to store information about Overdrive level.
- /// This structure is used by ADLODPerformanceLevels.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODNPerformanceLevelX2
- {
- /// clock.
- int iClock;
- /// VDCC.
- int iVddc;
- /// enabled
- int iEnabled;
- /// MASK
- int iControl;
- } ADLODNPerformanceLevelX2;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive N performance levels.
- ///
- /// This structure is used to store information about Overdrive performance levels.
- /// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLODNPerformanceLevelsX2
- {
- int iSize;
- //Automatic/manual
- int iMode;
- /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
- int iNumberOfPerformanceLevels;
- /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
- 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;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive8 initial setting
- ///
- /// This structure is used to store information about Overdrive8 initial setting
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD8InitSetting
- {
- int count;
- int overdrive8Capabilities;
- ADLOD8SingleInitSetting od8SettingTable[OD8_COUNT];
- } ADLOD8InitSetting;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive8 current setting
- ///
- /// This structure is used to store information about Overdrive8 current setting
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLOD8CurrentSetting
- {
- int count;
- int Od8SettingTable[OD8_COUNT];
- } ADLOD8CurrentSetting;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Overdrive8 set setting
- ///
- /// This structure is used to store information about Overdrive8 set setting
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about Performance Metrics data
- ///
- /// This structure is used to store information about Performance Metrics data output
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLSingleSensorData
- {
- int supported;
- int value;
- } ADLSingleSensorData;
-
- typedef struct _ADLPMLogDataOutput
- {
- int size;
- ADLSingleSensorData sensors[ADL_PMLOG_MAX_SENSORS];
- }ADLPMLogDataOutput;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about PPLog settings.
- ///
- /// This structure is used to store information about PPLog settings.
- /// This structure is used by the ADL2_PPLogSettings_Set() and ADL2_PPLogSettings_Get() functions.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct ADLPPLogSettings
- {
- int BreakOnAssert;
- int BreakOnWarn;
- int LogEnabled;
- int LogFieldMask;
- int LogDestinations;
- int LogSeverityEnabled;
- int LogSourceMask;
- int PowerProfilingEnabled;
- int PowerProfilingTimeInterval;
- }ADLPPLogSettings;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related Frames Per Second for AC and DC.
- ///
- /// This structure is used to store information related AC and DC Frames Per Second settings
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLFPSSettingsOutput
- {
- /// size
- int ulSize;
- /// FPS Monitor is enabled in the AC state if 1
- int bACFPSEnabled;
- /// FPS Monitor is enabled in the DC state if 1
- int bDCFPSEnabled;
- /// Current Value of FPS Monitor in AC state
- int ulACFPSCurrent;
- /// Current Value of FPS Monitor in DC state
- int ulDCFPSCurrent;
- /// Maximum FPS Threshold allowed in PPLib for AC
- int ulACFPSMaximum;
- /// Minimum FPS Threshold allowed in PPLib for AC
- int ulACFPSMinimum;
- /// Maximum FPS Threshold allowed in PPLib for DC
- int ulDCFPSMaximum;
- /// Minimum FPS Threshold allowed in PPLib for DC
- int ulDCFPSMinimum;
-
- } ADLFPSSettingsOutput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related Frames Per Second for AC and DC.
- ///
- /// This structure is used to store information related AC and DC Frames Per Second settings
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLFPSSettingsInput
- {
- /// size
- int ulSize;
- /// Settings are for Global FPS (used by CCC)
- int bGlobalSettings;
- /// Current Value of FPS Monitor in AC state
- int ulACFPSCurrent;
- /// Current Value of FPS Monitor in DC state
- int ulDCFPSCurrent;
- /// Reserved
- int ulReserved[6];
-
- } ADLFPSSettingsInput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related power management logging.
- ///
- /// This structure is used to store support information for power management logging.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- enum { ADL_PMLOG_MAX_SUPPORTED_SENSORS = 256 };
-
- typedef struct _ADLPMLogSupportInfo
- {
- /// list of sensors defined by ADL_PMLOG_SENSORS
- unsigned short usSensors[ADL_PMLOG_MAX_SUPPORTED_SENSORS];
- /// Reserved
- int ulReserved[16];
-
- } ADLPMLogSupportInfo;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information to start power management logging.
- ///
- /// This structure is used as input to ADL2_Adapter_PMLog_Start
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLPMLogStartInput
- {
- /// list of sensors defined by ADL_PMLOG_SENSORS
- unsigned short usSensors[ADL_PMLOG_MAX_SUPPORTED_SENSORS];
- /// Sample rate in milliseconds
- unsigned long ulSampleRate;
- /// Reserved
- int ulReserved[15];
-
- } ADLPMLogStartInput;
-
- typedef struct _ADLPMLogData
- {
- /// Structure version
- unsigned int ulVersion;
- /// Current driver sample rate
- unsigned int ulActiveSampleRate;
- /// Timestamp of last update
- unsigned long long ulLastUpdated;
- /// 2D array of senesor and values
- unsigned int ulValues[ADL_PMLOG_MAX_SUPPORTED_SENSORS][2];
- /// Reserved
- unsigned int ulReserved[256];
-
- } ADLPMLogData;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information to start power management logging.
- ///
- /// This structure is returned as output from ADL2_Adapter_PMLog_Start
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLPMLogStartOutput
- {
- /// Pointer to memory address containing logging data
- union
- {
- void* pLoggingAddress;
- unsigned long long ptr_LoggingAddress;
- };
- /// Reserved
- int ulReserved[14];
-
- } ADLPMLogStartOutput;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Get Error Counts Information
- ///
- /// This structure is used to store RAS Error Counts Get Input Information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- typedef struct _ADLRASGetErrorCountsInput
- {
- unsigned int Reserved[16];
- } ADLRASGetErrorCountsInput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Get Error Counts Information
- ///
- /// This structure is used to store RAS Error Counts Get Output Information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
-
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Get Error Counts Information
- ///
- /// This structure is used to store RAS Error Counts Get Information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- typedef struct _ADLRASGetErrorCounts
- {
- unsigned int InputSize;
- ADLRASGetErrorCountsInput Input;
- unsigned int OutputSize;
- ADLRASGetErrorCountsOutput Output;
- } ADLRASGetErrorCounts;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Error Counts Reset Information
- ///
- /// This structure is used to store RAS Error Counts Reset Input Information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
-
- typedef struct _ADLRASResetErrorCountsInput
- {
- unsigned int Reserved[8];
- } ADLRASResetErrorCountsInput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Error Counts Reset Information
- ///
- /// This structure is used to store RAS Error Counts Reset Output Information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
-
- typedef struct _ADLRASResetErrorCountsOutput
- {
- unsigned int Reserved[8];
- } ADLRASResetErrorCountsOutput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Error Counts Reset Information
- ///
- /// This structure is used to store RAS Error Counts Reset Information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
-
- typedef struct _ADLRASResetErrorCounts
- {
- unsigned int InputSize;
- ADLRASResetErrorCountsInput Input;
- unsigned int OutputSize;
- ADLRASResetErrorCountsOutput Output;
- } ADLRASResetErrorCounts;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Error Injection information
- ///
- /// This structure is used to store RAS Error Injection input information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Error Injection information
- ///
- /// This structure is used to store RAS Error Injection output information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
-
- typedef struct _ADLRASErrorInjectionOutput
- {
- unsigned int ErrorInjectionStatus;
- unsigned int padding[15];
- } ADLRASErrorInjectionOutput;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related RAS Error Injection information
- ///
- /// This structure is used to store RAS Error Injection information
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
-
-
- typedef struct _ADLRASErrorInjection
- {
- unsigned int InputSize;
- ADLRASErrorInjectonInput Input;
- unsigned int OutputSize;
- ADLRASErrorInjectionOutput Output;
- } ADLRASErrorInjection;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about an application
- ///
- /// This structure is used to store basic information of a recently ran or currently running application
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct _ADLSGApplicationInfo
- {
- /// Application file name
- wchar_t strFileName[ADL_MAX_PATH];
- /// Application file path
- wchar_t strFilePath[ADL_MAX_PATH];
- /// Application version
- wchar_t strVersion[ADL_MAX_PATH];
- /// Timestamp at which application has run
- long long int timeStamp;
- /// Holds whether the applicaition profile exists or not
- unsigned int iProfileExists;
- /// The GPU on which application runs
- unsigned int iGPUAffinity;
- /// The BDF of the GPU on which application runs
- ADLBdf GPUBdf;
- } ADLSGApplicationInfo;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information related Frames Per Second for AC and DC.
- ///
- /// This structure is used to store information related AC and DC Frames Per Second settings
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- enum { ADLPreFlipPostProcessingInfoInvalidLUTIndex = 0xFFFFFFFF };
-
- enum ADLPreFlipPostProcessingLUTAlgorithm
- {
- ADLPreFlipPostProcessingLUTAlgorithm_Default = 0,
- ADLPreFlipPostProcessingLUTAlgorithm_Full,
- ADLPreFlipPostProcessingLUTAlgorithm_Approximation
- };
-
- typedef struct _ADLPreFlipPostProcessingInfo
- {
- /// size
- int ulSize;
- /// Current active state
- int bEnabled;
- /// Current selected LUT index. 0xFFFFFFF returned if nothing selected.
- int ulSelectedLUTIndex;
- /// Current selected LUT Algorithm
- int ulSelectedLUTAlgorithm;
- /// Reserved
- 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
- }ADL_ERROR_REASON;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about DELAG Settings change reason
- ///
- /// Elements of DELAG settings changed reason.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about DELAG Settings
- ///
- /// Elements of DELAG settings.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about BOOST Settings change reason
- ///
- /// Elements of BOOST settings changed reason.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about BOOST Settings
- ///
- /// Elements of BOOST settings.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about RIS Settings change reason
- ///
- /// Elements of RIS settings changed reason.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about RIS Settings
- ///
- /// Elements of RIS settings.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about CHILL Settings change reason
- ///
- /// Elements of Chiil settings changed reason.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///\brief Structure containing information about CHILL Settings
- ///
- /// Elements of Chiil settings.
- /// \nosubgrouping
- ////////////////////////////////////////////////////////////////////////////////////////////
- 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;
- #endif /* ADL_STRUCTURES_H_ */
|