d3d12.h 1.5 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330283312833228333283342833528336283372833828339283402834128342283432834428345283462834728348283492835028351283522835328354283552835628357283582835928360283612836228363283642836528366283672836828369283702837128372283732837428375283762837728378283792838028381283822838328384283852838628387283882838928390283912839228393283942839528396283972839828399284002840128402284032840428405284062840728408284092841028411284122841328414284152841628417284182841928420284212842228423284242842528426284272842828429284302843128432284332843428435284362843728438284392844028441284422844328444284452844628447284482844928450284512845228453284542845528456284572845828459284602846128462284632846428465284662846728468284692847028471284722847328474284752847628477284782847928480284812848228483284842848528486284872848828489284902849128492284932849428495284962849728498284992850028501285022850328504285052850628507285082850928510285112851228513285142851528516285172851828519285202852128522285232852428525285262852728528285292853028531285322853328534285352853628537285382853928540285412854228543285442854528546285472854828549285502855128552285532855428555285562855728558285592856028561285622856328564285652856628567285682856928570285712857228573285742857528576285772857828579285802858128582285832858428585285862858728588285892859028591285922859328594285952859628597285982859928600286012860228603286042860528606286072860828609286102861128612286132861428615286162861728618286192862028621286222862328624286252862628627286282862928630286312863228633286342863528636286372863828639286402864128642286432864428645286462864728648286492865028651286522865328654286552865628657286582865928660286612866228663286642866528666286672866828669286702867128672286732867428675286762867728678286792868028681286822868328684286852868628687286882868928690286912869228693286942869528696286972869828699287002870128702287032870428705287062870728708287092871028711287122871328714287152871628717287182871928720287212872228723287242872528726287272872828729287302873128732287332873428735287362873728738287392874028741287422874328744287452874628747287482874928750287512875228753287542875528756287572875828759287602876128762287632876428765287662876728768287692877028771287722877328774287752877628777287782877928780287812878228783287842878528786287872878828789287902879128792287932879428795287962879728798287992880028801288022880328804288052880628807288082880928810288112881228813288142881528816288172881828819288202882128822288232882428825288262882728828288292883028831288322883328834288352883628837288382883928840288412884228843288442884528846288472884828849288502885128852288532885428855288562885728858288592886028861288622886328864288652886628867288682886928870288712887228873288742887528876288772887828879288802888128882288832888428885288862888728888288892889028891288922889328894288952889628897288982889928900289012890228903289042890528906289072890828909289102891128912289132891428915289162891728918289192892028921289222892328924289252892628927289282892928930289312893228933289342893528936289372893828939289402894128942289432894428945289462894728948289492895028951289522895328954289552895628957289582895928960289612896228963289642896528966289672896828969289702897128972289732897428975289762897728978289792898028981289822898328984289852898628987289882898928990289912899228993289942899528996289972899828999290002900129002290032900429005290062900729008290092901029011290122901329014290152901629017290182901929020290212902229023290242902529026290272902829029290302903129032290332903429035290362903729038290392904029041290422904329044290452904629047290482904929050290512905229053290542905529056290572905829059290602906129062290632906429065290662906729068290692907029071290722907329074290752907629077290782907929080290812908229083290842908529086290872908829089290902909129092290932909429095290962909729098290992910029101291022910329104291052910629107291082910929110291112911229113291142911529116291172911829119291202912129122291232912429125291262912729128291292913029131291322913329134291352913629137291382913929140291412914229143291442914529146291472914829149291502915129152291532915429155291562915729158291592916029161291622916329164291652916629167291682916929170291712917229173291742917529176291772917829179291802918129182291832918429185291862918729188291892919029191291922919329194291952919629197291982919929200292012920229203292042920529206292072920829209292102921129212292132921429215292162921729218292192922029221292222922329224292252922629227292282922929230292312923229233292342923529236292372923829239292402924129242292432924429245292462924729248292492925029251292522925329254292552925629257292582925929260292612926229263292642926529266292672926829269292702927129272292732927429275292762927729278292792928029281292822928329284292852928629287292882928929290292912929229293292942929529296292972929829299293002930129302293032930429305293062930729308293092931029311293122931329314293152931629317293182931929320293212932229323293242932529326293272932829329293302933129332293332933429335293362933729338293392934029341293422934329344293452934629347293482934929350293512935229353293542935529356293572935829359293602936129362293632936429365293662936729368293692937029371293722937329374293752937629377293782937929380293812938229383293842938529386293872938829389293902939129392293932939429395293962939729398293992940029401294022940329404294052940629407294082940929410294112941229413294142941529416294172941829419294202942129422294232942429425294262942729428294292943029431294322943329434294352943629437294382943929440294412944229443294442944529446294472944829449294502945129452294532945429455294562945729458294592946029461294622946329464294652946629467294682946929470294712947229473294742947529476294772947829479294802948129482294832948429485294862948729488294892949029491294922949329494294952949629497294982949929500295012950229503295042950529506295072950829509295102951129512295132951429515295162951729518295192952029521295222952329524295252952629527295282952929530295312953229533295342953529536295372953829539295402954129542295432954429545295462954729548295492955029551295522955329554295552955629557295582955929560295612956229563295642956529566295672956829569295702957129572295732957429575295762957729578295792958029581295822958329584295852958629587295882958929590295912959229593295942959529596295972959829599296002960129602296032960429605296062960729608296092961029611296122961329614296152961629617296182961929620296212962229623296242962529626296272962829629296302963129632296332963429635296362963729638296392964029641296422964329644296452964629647296482964929650296512965229653296542965529656296572965829659296602966129662296632966429665296662966729668296692967029671296722967329674296752967629677296782967929680296812968229683296842968529686296872968829689296902969129692296932969429695296962969729698296992970029701297022970329704297052970629707297082970929710297112971229713297142971529716297172971829719297202972129722297232972429725297262972729728297292973029731297322973329734297352973629737297382973929740297412974229743297442974529746297472974829749297502975129752297532975429755297562975729758297592976029761297622976329764297652976629767297682976929770297712977229773297742977529776297772977829779297802978129782297832978429785297862978729788297892979029791297922979329794297952979629797297982979929800298012980229803298042980529806298072980829809298102981129812298132981429815298162981729818298192982029821298222982329824298252982629827298282982929830298312983229833298342983529836298372983829839298402984129842298432984429845298462984729848298492985029851298522985329854298552985629857298582985929860298612986229863298642986529866298672986829869298702987129872298732987429875298762987729878298792988029881298822988329884298852988629887298882988929890298912989229893298942989529896298972989829899299002990129902299032990429905299062990729908299092991029911299122991329914299152991629917299182991929920299212992229923299242992529926299272992829929299302993129932299332993429935299362993729938299392994029941299422994329944299452994629947299482994929950299512995229953299542995529956299572995829959299602996129962299632996429965299662996729968299692997029971299722997329974299752997629977299782997929980299812998229983299842998529986299872998829989299902999129992299932999429995299962999729998299993000030001300023000330004300053000630007300083000930010300113001230013300143001530016300173001830019300203002130022300233002430025300263002730028300293003030031300323003330034300353003630037300383003930040300413004230043300443004530046300473004830049300503005130052300533005430055300563005730058300593006030061300623006330064300653006630067300683006930070300713007230073300743007530076300773007830079300803008130082300833008430085300863008730088300893009030091300923009330094300953009630097300983009930100301013010230103301043010530106301073010830109301103011130112301133011430115301163011730118301193012030121301223012330124301253012630127301283012930130301313013230133301343013530136301373013830139301403014130142301433014430145301463014730148301493015030151301523015330154301553015630157301583015930160301613016230163301643016530166301673016830169301703017130172301733017430175301763017730178301793018030181301823018330184301853018630187301883018930190301913019230193301943019530196301973019830199302003020130202302033020430205302063020730208302093021030211302123021330214302153021630217302183021930220302213022230223302243022530226302273022830229302303023130232302333023430235302363023730238302393024030241302423024330244302453024630247302483024930250302513025230253302543025530256302573025830259302603026130262302633026430265302663026730268302693027030271302723027330274302753027630277302783027930280302813028230283302843028530286302873028830289302903029130292302933029430295302963029730298302993030030301303023030330304303053030630307303083030930310303113031230313303143031530316303173031830319303203032130322303233032430325303263032730328303293033030331303323033330334303353033630337303383033930340303413034230343303443034530346303473034830349303503035130352303533035430355303563035730358303593036030361303623036330364303653036630367303683036930370303713037230373303743037530376303773037830379303803038130382303833038430385303863038730388303893039030391303923039330394303953039630397303983039930400304013040230403304043040530406304073040830409304103041130412304133041430415304163041730418304193042030421304223042330424304253042630427304283042930430304313043230433304343043530436304373043830439304403044130442304433044430445304463044730448304493045030451304523045330454304553045630457304583045930460304613046230463304643046530466304673046830469304703047130472304733047430475304763047730478304793048030481304823048330484304853048630487304883048930490304913049230493304943049530496304973049830499305003050130502305033050430505305063050730508305093051030511305123051330514305153051630517305183051930520305213052230523305243052530526305273052830529305303053130532305333053430535305363053730538305393054030541305423054330544305453054630547305483054930550305513055230553305543055530556305573055830559305603056130562305633056430565305663056730568305693057030571305723057330574305753057630577305783057930580305813058230583305843058530586305873058830589305903059130592305933059430595305963059730598305993060030601306023060330604306053060630607306083060930610306113061230613306143061530616306173061830619306203062130622306233062430625306263062730628306293063030631306323063330634306353063630637306383063930640306413064230643306443064530646306473064830649306503065130652306533065430655306563065730658306593066030661306623066330664306653066630667306683066930670306713067230673306743067530676306773067830679306803068130682306833068430685306863068730688306893069030691306923069330694306953069630697306983069930700307013070230703307043070530706307073070830709307103071130712307133071430715307163071730718307193072030721307223072330724307253072630727307283072930730307313073230733307343073530736307373073830739307403074130742307433074430745307463074730748307493075030751307523075330754307553075630757307583075930760307613076230763307643076530766307673076830769307703077130772307733077430775307763077730778307793078030781307823078330784307853078630787307883078930790307913079230793307943079530796307973079830799308003080130802308033080430805308063080730808308093081030811308123081330814308153081630817308183081930820308213082230823308243082530826308273082830829308303083130832308333083430835308363083730838308393084030841308423084330844308453084630847308483084930850308513085230853308543085530856308573085830859308603086130862308633086430865308663086730868308693087030871308723087330874308753087630877308783087930880308813088230883308843088530886308873088830889308903089130892308933089430895308963089730898308993090030901309023090330904309053090630907309083090930910309113091230913309143091530916309173091830919309203092130922309233092430925309263092730928309293093030931309323093330934309353093630937309383093930940309413094230943309443094530946309473094830949309503095130952309533095430955309563095730958309593096030961309623096330964309653096630967309683096930970309713097230973309743097530976309773097830979309803098130982309833098430985309863098730988309893099030991309923099330994309953099630997309983099931000310013100231003310043100531006310073100831009310103101131012310133101431015310163101731018310193102031021310223102331024310253102631027310283102931030310313103231033310343103531036310373103831039310403104131042310433104431045310463104731048310493105031051310523105331054310553105631057310583105931060310613106231063310643106531066310673106831069310703107131072310733107431075310763107731078310793108031081310823108331084310853108631087310883108931090310913109231093310943109531096310973109831099311003110131102311033110431105311063110731108311093111031111311123111331114311153111631117311183111931120311213112231123311243112531126311273112831129311303113131132311333113431135311363113731138311393114031141311423114331144311453114631147311483114931150311513115231153311543115531156311573115831159311603116131162311633116431165311663116731168311693117031171311723117331174311753117631177311783117931180311813118231183311843118531186311873118831189311903119131192311933119431195311963119731198311993120031201312023120331204312053120631207312083120931210312113121231213312143121531216312173121831219312203122131222312233122431225312263122731228312293123031231312323123331234312353123631237312383123931240312413124231243312443124531246312473124831249312503125131252312533125431255312563125731258312593126031261312623126331264312653126631267312683126931270312713127231273312743127531276312773127831279312803128131282312833128431285312863128731288312893129031291312923129331294312953129631297312983129931300313013130231303313043130531306313073130831309313103131131312313133131431315313163131731318313193132031321313223132331324313253132631327313283132931330313313133231333313343133531336313373133831339313403134131342313433134431345313463134731348313493135031351313523135331354313553135631357313583135931360313613136231363313643136531366313673136831369313703137131372313733137431375313763137731378313793138031381313823138331384313853138631387313883138931390313913139231393313943139531396313973139831399314003140131402314033140431405314063140731408314093141031411314123141331414314153141631417314183141931420314213142231423314243142531426314273142831429314303143131432314333143431435314363143731438314393144031441314423144331444314453144631447314483144931450314513145231453314543145531456314573145831459314603146131462314633146431465314663146731468314693147031471314723147331474314753147631477314783147931480314813148231483314843148531486314873148831489314903149131492314933149431495314963149731498314993150031501315023150331504315053150631507315083150931510315113151231513315143151531516315173151831519315203152131522315233152431525315263152731528315293153031531315323153331534315353153631537315383153931540315413154231543315443154531546315473154831549315503155131552315533155431555315563155731558315593156031561315623156331564315653156631567315683156931570315713157231573315743157531576315773157831579315803158131582315833158431585315863158731588315893159031591315923159331594315953159631597315983159931600316013160231603316043160531606316073160831609316103161131612316133161431615316163161731618316193162031621316223162331624316253162631627316283162931630316313163231633316343163531636316373163831639316403164131642316433164431645316463164731648316493165031651316523165331654316553165631657316583165931660316613166231663316643166531666316673166831669316703167131672316733167431675316763167731678316793168031681316823168331684316853168631687316883168931690316913169231693316943169531696316973169831699317003170131702317033170431705317063170731708317093171031711317123171331714317153171631717317183171931720317213172231723317243172531726317273172831729317303173131732317333173431735317363173731738317393174031741317423174331744317453174631747317483174931750317513175231753317543175531756317573175831759317603176131762317633176431765317663176731768317693177031771317723177331774317753177631777317783177931780317813178231783317843178531786317873178831789317903179131792317933179431795317963179731798317993180031801318023180331804318053180631807318083180931810318113181231813318143181531816318173181831819318203182131822318233182431825318263182731828318293183031831318323183331834318353183631837318383183931840318413184231843318443184531846318473184831849318503185131852318533185431855318563185731858318593186031861318623186331864318653186631867318683186931870318713187231873318743187531876318773187831879318803188131882318833188431885318863188731888318893189031891318923189331894318953189631897318983189931900319013190231903319043190531906319073190831909319103191131912319133191431915319163191731918319193192031921319223192331924319253192631927319283192931930319313193231933319343193531936319373193831939319403194131942319433194431945319463194731948319493195031951319523195331954319553195631957319583195931960319613196231963319643196531966319673196831969319703197131972319733197431975319763197731978319793198031981319823198331984319853198631987319883198931990319913199231993319943199531996319973199831999320003200132002320033200432005320063200732008320093201032011320123201332014320153201632017320183201932020320213202232023320243202532026320273202832029320303203132032320333203432035320363203732038320393204032041320423204332044320453204632047320483204932050320513205232053320543205532056320573205832059320603206132062320633206432065320663206732068320693207032071320723207332074320753207632077320783207932080320813208232083320843208532086320873208832089320903209132092320933209432095320963209732098320993210032101321023210332104321053210632107321083210932110321113211232113321143211532116321173211832119321203212132122321233212432125321263212732128321293213032131321323213332134321353213632137321383213932140321413214232143321443214532146321473214832149321503215132152321533215432155321563215732158321593216032161321623216332164321653216632167321683216932170321713217232173321743217532176321773217832179321803218132182321833218432185321863218732188321893219032191321923219332194321953219632197321983219932200322013220232203322043220532206322073220832209322103221132212322133221432215322163221732218322193222032221322223222332224322253222632227322283222932230322313223232233322343223532236322373223832239322403224132242322433224432245322463224732248322493225032251322523225332254322553225632257322583225932260322613226232263322643226532266322673226832269322703227132272322733227432275322763227732278322793228032281322823228332284322853228632287322883228932290322913229232293322943229532296322973229832299323003230132302323033230432305323063230732308323093231032311323123231332314323153231632317323183231932320323213232232323323243232532326323273232832329323303233132332323333233432335323363233732338323393234032341323423234332344323453234632347323483234932350323513235232353323543235532356323573235832359323603236132362323633236432365323663236732368323693237032371323723237332374323753237632377323783237932380323813238232383323843238532386323873238832389323903239132392323933239432395323963239732398323993240032401324023240332404324053240632407324083240932410324113241232413324143241532416324173241832419324203242132422324233242432425324263242732428324293243032431324323243332434324353243632437324383243932440324413244232443324443244532446324473244832449324503245132452324533245432455324563245732458324593246032461324623246332464324653246632467324683246932470324713247232473324743247532476324773247832479324803248132482324833248432485324863248732488324893249032491324923249332494324953249632497324983249932500325013250232503325043250532506325073250832509325103251132512325133251432515325163251732518325193252032521325223252332524325253252632527325283252932530325313253232533325343253532536325373253832539325403254132542325433254432545325463254732548325493255032551325523255332554325553255632557325583255932560325613256232563325643256532566325673256832569325703257132572325733257432575325763257732578325793258032581325823258332584325853258632587325883258932590325913259232593325943259532596325973259832599326003260132602326033260432605326063260732608326093261032611326123261332614326153261632617326183261932620326213262232623326243262532626326273262832629326303263132632326333263432635326363263732638326393264032641326423264332644326453264632647326483264932650326513265232653326543265532656326573265832659326603266132662326633266432665326663266732668326693267032671326723267332674326753267632677326783267932680326813268232683326843268532686326873268832689326903269132692326933269432695326963269732698326993270032701327023270332704327053270632707327083270932710327113271232713327143271532716327173271832719327203272132722327233272432725327263272732728327293273032731327323273332734327353273632737327383273932740327413274232743327443274532746327473274832749327503275132752327533275432755327563275732758327593276032761327623276332764327653276632767327683276932770327713277232773327743277532776327773277832779327803278132782327833278432785327863278732788327893279032791327923279332794327953279632797327983279932800328013280232803328043280532806328073280832809328103281132812328133281432815328163281732818328193282032821328223282332824328253282632827328283282932830328313283232833328343283532836328373283832839328403284132842328433284432845328463284732848328493285032851328523285332854328553285632857328583285932860328613286232863328643286532866328673286832869328703287132872328733287432875328763287732878328793288032881328823288332884328853288632887328883288932890328913289232893328943289532896328973289832899329003290132902329033290432905329063290732908329093291032911329123291332914329153291632917329183291932920329213292232923329243292532926329273292832929329303293132932329333293432935329363293732938329393294032941329423294332944329453294632947329483294932950329513295232953329543295532956329573295832959329603296132962329633296432965329663296732968329693297032971329723297332974329753297632977329783297932980329813298232983329843298532986329873298832989329903299132992329933299432995329963299732998329993300033001330023300333004330053300633007330083300933010330113301233013330143301533016330173301833019330203302133022330233302433025330263302733028330293303033031330323303333034330353303633037330383303933040330413304233043330443304533046330473304833049330503305133052330533305433055330563305733058330593306033061330623306333064330653306633067330683306933070330713307233073330743307533076330773307833079330803308133082330833308433085330863308733088330893309033091330923309333094330953309633097330983309933100331013310233103331043310533106331073310833109331103311133112331133311433115331163311733118331193312033121331223312333124331253312633127331283312933130331313313233133331343313533136331373313833139331403314133142331433314433145331463314733148331493315033151331523315333154331553315633157331583315933160331613316233163331643316533166331673316833169331703317133172331733317433175331763317733178331793318033181331823318333184331853318633187331883318933190331913319233193331943319533196331973319833199332003320133202332033320433205332063320733208332093321033211332123321333214332153321633217332183321933220332213322233223332243322533226332273322833229332303323133232332333323433235332363323733238332393324033241332423324333244332453324633247332483324933250332513325233253332543325533256332573325833259332603326133262332633326433265332663326733268332693327033271332723327333274332753327633277332783327933280332813328233283332843328533286332873328833289332903329133292332933329433295332963329733298332993330033301333023330333304333053330633307333083330933310333113331233313333143331533316333173331833319333203332133322333233332433325333263332733328333293333033331333323333333334333353333633337333383333933340333413334233343333443334533346333473334833349333503335133352333533335433355333563335733358333593336033361333623336333364333653336633367333683336933370333713337233373333743337533376333773337833379333803338133382333833338433385333863338733388333893339033391333923339333394333953339633397333983339933400334013340233403334043340533406334073340833409334103341133412334133341433415334163341733418334193342033421334223342333424334253342633427334283342933430334313343233433334343343533436334373343833439334403344133442334433344433445334463344733448334493345033451334523345333454334553345633457334583345933460334613346233463334643346533466334673346833469334703347133472334733347433475334763347733478334793348033481334823348333484334853348633487334883348933490334913349233493334943349533496334973349833499335003350133502335033350433505335063350733508335093351033511335123351333514335153351633517335183351933520335213352233523335243352533526335273352833529335303353133532335333353433535335363353733538335393354033541335423354333544335453354633547335483354933550335513355233553335543355533556335573355833559335603356133562335633356433565335663356733568335693357033571335723357333574335753357633577335783357933580335813358233583335843358533586335873358833589335903359133592335933359433595335963359733598335993360033601336023360333604336053360633607336083360933610336113361233613336143361533616336173361833619336203362133622336233362433625336263362733628336293363033631336323363333634336353363633637336383363933640336413364233643336443364533646336473364833649336503365133652336533365433655336563365733658336593366033661336623366333664336653366633667336683366933670336713367233673336743367533676336773367833679336803368133682336833368433685336863368733688336893369033691336923369333694336953369633697336983369933700337013370233703337043370533706337073370833709337103371133712337133371433715337163371733718337193372033721337223372333724337253372633727337283372933730337313373233733337343373533736337373373833739337403374133742337433374433745337463374733748337493375033751337523375333754337553375633757337583375933760337613376233763337643376533766337673376833769337703377133772337733377433775337763377733778337793378033781337823378333784337853378633787337883378933790337913379233793337943379533796337973379833799338003380133802338033380433805338063380733808338093381033811338123381333814338153381633817338183381933820338213382233823338243382533826338273382833829338303383133832338333383433835338363383733838338393384033841338423384333844338453384633847338483384933850338513385233853338543385533856338573385833859338603386133862338633386433865338663386733868338693387033871338723387333874338753387633877338783387933880338813388233883338843388533886338873388833889338903389133892338933389433895338963389733898338993390033901339023390333904339053390633907339083390933910339113391233913339143391533916339173391833919339203392133922339233392433925339263392733928339293393033931339323393333934339353393633937339383393933940339413394233943339443394533946339473394833949339503395133952339533395433955339563395733958339593396033961339623396333964339653396633967339683396933970339713397233973339743397533976339773397833979339803398133982339833398433985339863398733988339893399033991339923399333994339953399633997339983399934000340013400234003340043400534006340073400834009340103401134012340133401434015340163401734018340193402034021340223402334024340253402634027340283402934030340313403234033340343403534036340373403834039340403404134042340433404434045340463404734048340493405034051340523405334054340553405634057340583405934060340613406234063340643406534066340673406834069340703407134072340733407434075340763407734078340793408034081340823408334084340853408634087340883408934090340913409234093340943409534096340973409834099341003410134102341033410434105341063410734108341093411034111341123411334114341153411634117341183411934120341213412234123341243412534126341273412834129341303413134132341333413434135341363413734138341393414034141341423414334144341453414634147341483414934150341513415234153341543415534156341573415834159341603416134162341633416434165341663416734168341693417034171341723417334174341753417634177341783417934180341813418234183341843418534186341873418834189341903419134192341933419434195341963419734198341993420034201342023420334204342053420634207342083420934210342113421234213342143421534216342173421834219342203422134222342233422434225342263422734228342293423034231342323423334234342353423634237342383423934240342413424234243342443424534246342473424834249342503425134252342533425434255342563425734258342593426034261342623426334264342653426634267342683426934270342713427234273342743427534276342773427834279342803428134282342833428434285342863428734288342893429034291342923429334294342953429634297342983429934300343013430234303343043430534306343073430834309343103431134312343133431434315343163431734318343193432034321343223432334324343253432634327343283432934330343313433234333343343433534336343373433834339343403434134342343433434434345343463434734348343493435034351343523435334354343553435634357343583435934360343613436234363343643436534366343673436834369343703437134372343733437434375343763437734378343793438034381343823438334384343853438634387343883438934390343913439234393343943439534396343973439834399344003440134402344033440434405344063440734408344093441034411344123441334414344153441634417344183441934420344213442234423344243442534426344273442834429344303443134432344333443434435344363443734438344393444034441344423444334444344453444634447344483444934450344513445234453344543445534456344573445834459344603446134462344633446434465344663446734468344693447034471344723447334474344753447634477344783447934480344813448234483344843448534486344873448834489344903449134492344933449434495344963449734498344993450034501345023450334504345053450634507345083450934510345113451234513345143451534516345173451834519345203452134522345233452434525345263452734528345293453034531345323453334534345353453634537345383453934540345413454234543345443454534546345473454834549345503455134552345533455434555345563455734558345593456034561345623456334564345653456634567345683456934570345713457234573345743457534576345773457834579345803458134582345833458434585345863458734588345893459034591345923459334594345953459634597345983459934600346013460234603346043460534606346073460834609346103461134612346133461434615346163461734618346193462034621346223462334624346253462634627346283462934630346313463234633346343463534636346373463834639346403464134642346433464434645346463464734648346493465034651346523465334654346553465634657346583465934660346613466234663346643466534666346673466834669346703467134672346733467434675346763467734678346793468034681346823468334684346853468634687346883468934690346913469234693346943469534696346973469834699347003470134702347033470434705347063470734708347093471034711347123471334714347153471634717347183471934720347213472234723347243472534726347273472834729347303473134732347333473434735347363473734738347393474034741347423474334744347453474634747347483474934750347513475234753347543475534756347573475834759347603476134762347633476434765347663476734768347693477034771347723477334774347753477634777347783477934780347813478234783347843478534786347873478834789347903479134792347933479434795347963479734798347993480034801348023480334804348053480634807348083480934810348113481234813348143481534816348173481834819348203482134822348233482434825348263482734828348293483034831348323483334834348353483634837348383483934840348413484234843348443484534846348473484834849348503485134852348533485434855348563485734858348593486034861348623486334864348653486634867348683486934870348713487234873348743487534876348773487834879348803488134882348833488434885348863488734888348893489034891348923489334894348953489634897348983489934900349013490234903349043490534906349073490834909349103491134912349133491434915349163491734918349193492034921349223492334924349253492634927349283492934930349313493234933349343493534936349373493834939349403494134942349433494434945349463494734948349493495034951349523495334954349553495634957349583495934960349613496234963349643496534966349673496834969349703497134972349733497434975349763497734978349793498034981349823498334984349853498634987349883498934990349913499234993349943499534996349973499834999350003500135002350033500435005350063500735008350093501035011350123501335014350153501635017350183501935020350213502235023350243502535026350273502835029350303503135032350333503435035350363503735038350393504035041350423504335044350453504635047350483504935050350513505235053350543505535056350573505835059350603506135062350633506435065350663506735068350693507035071350723507335074350753507635077350783507935080350813508235083350843508535086350873508835089350903509135092350933509435095350963509735098350993510035101351023510335104351053510635107351083510935110351113511235113351143511535116351173511835119351203512135122351233512435125351263512735128351293513035131351323513335134351353513635137351383513935140351413514235143351443514535146351473514835149351503515135152351533515435155351563515735158351593516035161351623516335164351653516635167351683516935170351713517235173351743517535176351773517835179351803518135182351833518435185351863518735188351893519035191351923519335194351953519635197351983519935200352013520235203352043520535206352073520835209352103521135212352133521435215352163521735218352193522035221352223522335224352253522635227352283522935230352313523235233352343523535236352373523835239352403524135242352433524435245352463524735248352493525035251352523525335254352553525635257352583525935260352613526235263352643526535266352673526835269352703527135272352733527435275352763527735278352793528035281352823528335284352853528635287352883528935290352913529235293352943529535296352973529835299353003530135302353033530435305353063530735308353093531035311353123531335314353153531635317353183531935320353213532235323353243532535326353273532835329353303533135332353333533435335353363533735338353393534035341353423534335344353453534635347353483534935350353513535235353353543535535356353573535835359353603536135362353633536435365353663536735368353693537035371353723537335374353753537635377353783537935380353813538235383353843538535386353873538835389353903539135392353933539435395353963539735398353993540035401354023540335404354053540635407354083540935410354113541235413354143541535416354173541835419354203542135422354233542435425354263542735428354293543035431354323543335434354353543635437354383543935440354413544235443354443544535446354473544835449354503545135452354533545435455354563545735458354593546035461354623546335464354653546635467354683546935470354713547235473354743547535476354773547835479354803548135482354833548435485354863548735488354893549035491354923549335494354953549635497354983549935500355013550235503355043550535506355073550835509355103551135512355133551435515355163551735518355193552035521355223552335524355253552635527355283552935530355313553235533355343553535536355373553835539355403554135542355433554435545355463554735548355493555035551355523555335554355553555635557355583555935560355613556235563355643556535566355673556835569355703557135572355733557435575355763557735578355793558035581355823558335584355853558635587355883558935590355913559235593355943559535596355973559835599356003560135602356033560435605356063560735608356093561035611356123561335614356153561635617356183561935620356213562235623356243562535626356273562835629356303563135632356333563435635356363563735638356393564035641356423564335644356453564635647356483564935650356513565235653356543565535656356573565835659356603566135662356633566435665356663566735668356693567035671356723567335674356753567635677356783567935680356813568235683356843568535686356873568835689356903569135692356933569435695356963569735698356993570035701357023570335704357053570635707357083570935710357113571235713357143571535716357173571835719357203572135722357233572435725357263572735728357293573035731357323573335734357353573635737357383573935740357413574235743357443574535746357473574835749357503575135752357533575435755357563575735758357593576035761357623576335764357653576635767357683576935770357713577235773357743577535776357773577835779357803578135782357833578435785357863578735788357893579035791357923579335794357953579635797357983579935800358013580235803358043580535806358073580835809358103581135812358133581435815358163581735818358193582035821358223582335824358253582635827358283582935830358313583235833358343583535836358373583835839358403584135842358433584435845358463584735848358493585035851358523585335854358553585635857358583585935860358613586235863358643586535866358673586835869358703587135872358733587435875358763587735878358793588035881358823588335884358853588635887358883588935890358913589235893358943589535896358973589835899359003590135902359033590435905359063590735908359093591035911359123591335914359153591635917359183591935920359213592235923359243592535926359273592835929359303593135932359333593435935359363593735938359393594035941359423594335944359453594635947359483594935950359513595235953359543595535956359573595835959359603596135962359633596435965359663596735968359693597035971359723597335974359753597635977359783597935980359813598235983359843598535986359873598835989359903599135992359933599435995359963599735998359993600036001360023600336004360053600636007360083600936010360113601236013360143601536016360173601836019360203602136022360233602436025360263602736028360293603036031360323603336034360353603636037360383603936040360413604236043360443604536046360473604836049360503605136052360533605436055360563605736058360593606036061360623606336064360653606636067360683606936070360713607236073360743607536076360773607836079360803608136082360833608436085360863608736088360893609036091360923609336094360953609636097360983609936100361013610236103361043610536106361073610836109361103611136112361133611436115361163611736118361193612036121361223612336124361253612636127361283612936130361313613236133361343613536136361373613836139361403614136142361433614436145361463614736148361493615036151361523615336154361553615636157361583615936160361613616236163361643616536166361673616836169361703617136172361733617436175361763617736178361793618036181361823618336184361853618636187361883618936190361913619236193361943619536196361973619836199362003620136202362033620436205362063620736208362093621036211362123621336214362153621636217362183621936220362213622236223362243622536226362273622836229362303623136232362333623436235362363623736238362393624036241362423624336244362453624636247362483624936250362513625236253362543625536256362573625836259362603626136262362633626436265362663626736268362693627036271362723627336274362753627636277362783627936280362813628236283362843628536286362873628836289362903629136292362933629436295362963629736298362993630036301363023630336304363053630636307363083630936310363113631236313363143631536316363173631836319363203632136322363233632436325363263632736328363293633036331363323633336334363353633636337363383633936340363413634236343363443634536346363473634836349363503635136352363533635436355363563635736358363593636036361363623636336364363653636636367363683636936370363713637236373363743637536376363773637836379363803638136382363833638436385363863638736388363893639036391363923639336394363953639636397363983639936400364013640236403364043640536406364073640836409364103641136412364133641436415364163641736418364193642036421364223642336424364253642636427364283642936430364313643236433364343643536436364373643836439364403644136442364433644436445364463644736448364493645036451364523645336454364553645636457364583645936460364613646236463364643646536466364673646836469364703647136472364733647436475364763647736478364793648036481364823648336484364853648636487364883648936490364913649236493364943649536496364973649836499365003650136502365033650436505365063650736508365093651036511365123651336514365153651636517365183651936520365213652236523365243652536526365273652836529365303653136532365333653436535365363653736538365393654036541365423654336544365453654636547365483654936550365513655236553365543655536556365573655836559365603656136562365633656436565365663656736568365693657036571365723657336574365753657636577365783657936580365813658236583365843658536586365873658836589365903659136592365933659436595365963659736598365993660036601366023660336604366053660636607366083660936610366113661236613366143661536616366173661836619366203662136622366233662436625366263662736628366293663036631366323663336634366353663636637366383663936640366413664236643366443664536646366473664836649366503665136652366533665436655366563665736658366593666036661366623666336664366653666636667366683666936670366713667236673366743667536676366773667836679366803668136682366833668436685366863668736688366893669036691366923669336694366953669636697366983669936700367013670236703367043670536706367073670836709367103671136712367133671436715367163671736718367193672036721367223672336724367253672636727367283672936730367313673236733367343673536736367373673836739367403674136742367433674436745367463674736748367493675036751367523675336754367553675636757367583675936760367613676236763367643676536766367673676836769367703677136772367733677436775367763677736778367793678036781367823678336784367853678636787367883678936790367913679236793367943679536796367973679836799368003680136802368033680436805368063680736808368093681036811368123681336814368153681636817368183681936820368213682236823368243682536826368273682836829368303683136832368333683436835368363683736838368393684036841368423684336844368453684636847368483684936850368513685236853368543685536856368573685836859368603686136862368633686436865368663686736868368693687036871368723687336874368753687636877368783687936880368813688236883368843688536886
  1. /*-------------------------------------------------------------------------------------
  2. *
  3. * Copyright (c) Microsoft Corporation
  4. * Licensed under the MIT license
  5. *
  6. *-------------------------------------------------------------------------------------*/
  7. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  8. /* File created by MIDL compiler version 8.01.0628 */
  9. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  10. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  11. #define __REQUIRED_RPCNDR_H_VERSION__ 500
  12. #endif
  13. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  15. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif /* __RPCNDR_H_VERSION__ */
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __d3d12_h__
  27. #define __d3d12_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. #ifndef DECLSPEC_XFGVIRT
  32. #if defined(_CONTROL_FLOW_GUARD_XFG)
  33. #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
  34. #else
  35. #define DECLSPEC_XFGVIRT(base, func)
  36. #endif
  37. #endif
  38. /* Forward Declarations */
  39. #ifndef __ID3D12Object_FWD_DEFINED__
  40. #define __ID3D12Object_FWD_DEFINED__
  41. typedef interface ID3D12Object ID3D12Object;
  42. #endif /* __ID3D12Object_FWD_DEFINED__ */
  43. #ifndef __ID3D12DeviceChild_FWD_DEFINED__
  44. #define __ID3D12DeviceChild_FWD_DEFINED__
  45. typedef interface ID3D12DeviceChild ID3D12DeviceChild;
  46. #endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
  47. #ifndef __ID3D12RootSignature_FWD_DEFINED__
  48. #define __ID3D12RootSignature_FWD_DEFINED__
  49. typedef interface ID3D12RootSignature ID3D12RootSignature;
  50. #endif /* __ID3D12RootSignature_FWD_DEFINED__ */
  51. #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
  52. #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
  53. typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
  54. #endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
  55. #ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
  56. #define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
  57. typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
  58. #endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
  59. #ifndef __ID3D12Pageable_FWD_DEFINED__
  60. #define __ID3D12Pageable_FWD_DEFINED__
  61. typedef interface ID3D12Pageable ID3D12Pageable;
  62. #endif /* __ID3D12Pageable_FWD_DEFINED__ */
  63. #ifndef __ID3D12Heap_FWD_DEFINED__
  64. #define __ID3D12Heap_FWD_DEFINED__
  65. typedef interface ID3D12Heap ID3D12Heap;
  66. #endif /* __ID3D12Heap_FWD_DEFINED__ */
  67. #ifndef __ID3D12Resource_FWD_DEFINED__
  68. #define __ID3D12Resource_FWD_DEFINED__
  69. typedef interface ID3D12Resource ID3D12Resource;
  70. #endif /* __ID3D12Resource_FWD_DEFINED__ */
  71. #ifndef __ID3D12CommandAllocator_FWD_DEFINED__
  72. #define __ID3D12CommandAllocator_FWD_DEFINED__
  73. typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
  74. #endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
  75. #ifndef __ID3D12Fence_FWD_DEFINED__
  76. #define __ID3D12Fence_FWD_DEFINED__
  77. typedef interface ID3D12Fence ID3D12Fence;
  78. #endif /* __ID3D12Fence_FWD_DEFINED__ */
  79. #ifndef __ID3D12Fence1_FWD_DEFINED__
  80. #define __ID3D12Fence1_FWD_DEFINED__
  81. typedef interface ID3D12Fence1 ID3D12Fence1;
  82. #endif /* __ID3D12Fence1_FWD_DEFINED__ */
  83. #ifndef __ID3D12PipelineState_FWD_DEFINED__
  84. #define __ID3D12PipelineState_FWD_DEFINED__
  85. typedef interface ID3D12PipelineState ID3D12PipelineState;
  86. #endif /* __ID3D12PipelineState_FWD_DEFINED__ */
  87. #ifndef __ID3D12PipelineState1_FWD_DEFINED__
  88. #define __ID3D12PipelineState1_FWD_DEFINED__
  89. typedef interface ID3D12PipelineState1 ID3D12PipelineState1;
  90. #endif /* __ID3D12PipelineState1_FWD_DEFINED__ */
  91. #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
  92. #define __ID3D12DescriptorHeap_FWD_DEFINED__
  93. typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
  94. #endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */
  95. #ifndef __ID3D12QueryHeap_FWD_DEFINED__
  96. #define __ID3D12QueryHeap_FWD_DEFINED__
  97. typedef interface ID3D12QueryHeap ID3D12QueryHeap;
  98. #endif /* __ID3D12QueryHeap_FWD_DEFINED__ */
  99. #ifndef __ID3D12CommandSignature_FWD_DEFINED__
  100. #define __ID3D12CommandSignature_FWD_DEFINED__
  101. typedef interface ID3D12CommandSignature ID3D12CommandSignature;
  102. #endif /* __ID3D12CommandSignature_FWD_DEFINED__ */
  103. #ifndef __ID3D12CommandList_FWD_DEFINED__
  104. #define __ID3D12CommandList_FWD_DEFINED__
  105. typedef interface ID3D12CommandList ID3D12CommandList;
  106. #endif /* __ID3D12CommandList_FWD_DEFINED__ */
  107. #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
  108. #define __ID3D12GraphicsCommandList_FWD_DEFINED__
  109. typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
  110. #endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */
  111. #ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
  112. #define __ID3D12GraphicsCommandList1_FWD_DEFINED__
  113. typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
  114. #endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */
  115. #ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
  116. #define __ID3D12GraphicsCommandList2_FWD_DEFINED__
  117. typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
  118. #endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */
  119. #ifndef __ID3D12CommandQueue_FWD_DEFINED__
  120. #define __ID3D12CommandQueue_FWD_DEFINED__
  121. typedef interface ID3D12CommandQueue ID3D12CommandQueue;
  122. #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */
  123. #ifndef __ID3D12CommandQueue1_FWD_DEFINED__
  124. #define __ID3D12CommandQueue1_FWD_DEFINED__
  125. typedef interface ID3D12CommandQueue1 ID3D12CommandQueue1;
  126. #endif /* __ID3D12CommandQueue1_FWD_DEFINED__ */
  127. #ifndef __ID3D12Device_FWD_DEFINED__
  128. #define __ID3D12Device_FWD_DEFINED__
  129. typedef interface ID3D12Device ID3D12Device;
  130. #endif /* __ID3D12Device_FWD_DEFINED__ */
  131. #ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
  132. #define __ID3D12PipelineLibrary_FWD_DEFINED__
  133. typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
  134. #endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
  135. #ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
  136. #define __ID3D12PipelineLibrary1_FWD_DEFINED__
  137. typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1;
  138. #endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
  139. #ifndef __ID3D12Device1_FWD_DEFINED__
  140. #define __ID3D12Device1_FWD_DEFINED__
  141. typedef interface ID3D12Device1 ID3D12Device1;
  142. #endif /* __ID3D12Device1_FWD_DEFINED__ */
  143. #ifndef __ID3D12Device2_FWD_DEFINED__
  144. #define __ID3D12Device2_FWD_DEFINED__
  145. typedef interface ID3D12Device2 ID3D12Device2;
  146. #endif /* __ID3D12Device2_FWD_DEFINED__ */
  147. #ifndef __ID3D12Device3_FWD_DEFINED__
  148. #define __ID3D12Device3_FWD_DEFINED__
  149. typedef interface ID3D12Device3 ID3D12Device3;
  150. #endif /* __ID3D12Device3_FWD_DEFINED__ */
  151. #ifndef __ID3D12ProtectedSession_FWD_DEFINED__
  152. #define __ID3D12ProtectedSession_FWD_DEFINED__
  153. typedef interface ID3D12ProtectedSession ID3D12ProtectedSession;
  154. #endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */
  155. #ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__
  156. #define __ID3D12ProtectedResourceSession_FWD_DEFINED__
  157. typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession;
  158. #endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */
  159. #ifndef __ID3D12Device4_FWD_DEFINED__
  160. #define __ID3D12Device4_FWD_DEFINED__
  161. typedef interface ID3D12Device4 ID3D12Device4;
  162. #endif /* __ID3D12Device4_FWD_DEFINED__ */
  163. #ifndef __ID3D12LifetimeOwner_FWD_DEFINED__
  164. #define __ID3D12LifetimeOwner_FWD_DEFINED__
  165. typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner;
  166. #endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */
  167. #ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__
  168. #define __ID3D12SwapChainAssistant_FWD_DEFINED__
  169. typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant;
  170. #endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */
  171. #ifndef __ID3D12LifetimeTracker_FWD_DEFINED__
  172. #define __ID3D12LifetimeTracker_FWD_DEFINED__
  173. typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker;
  174. #endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */
  175. #ifndef __ID3D12StateObject_FWD_DEFINED__
  176. #define __ID3D12StateObject_FWD_DEFINED__
  177. typedef interface ID3D12StateObject ID3D12StateObject;
  178. #endif /* __ID3D12StateObject_FWD_DEFINED__ */
  179. #ifndef __ID3D12StateObjectProperties_FWD_DEFINED__
  180. #define __ID3D12StateObjectProperties_FWD_DEFINED__
  181. typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties;
  182. #endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */
  183. #ifndef __ID3D12StateObjectProperties1_FWD_DEFINED__
  184. #define __ID3D12StateObjectProperties1_FWD_DEFINED__
  185. typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1;
  186. #endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */
  187. #ifndef __ID3D12StateObjectProperties2_FWD_DEFINED__
  188. #define __ID3D12StateObjectProperties2_FWD_DEFINED__
  189. typedef interface ID3D12StateObjectProperties2 ID3D12StateObjectProperties2;
  190. #endif /* __ID3D12StateObjectProperties2_FWD_DEFINED__ */
  191. #ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__
  192. #define __ID3D12WorkGraphProperties_FWD_DEFINED__
  193. typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties;
  194. #endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */
  195. #ifndef __ID3D12Device5_FWD_DEFINED__
  196. #define __ID3D12Device5_FWD_DEFINED__
  197. typedef interface ID3D12Device5 ID3D12Device5;
  198. #endif /* __ID3D12Device5_FWD_DEFINED__ */
  199. #ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
  200. #define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
  201. typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings;
  202. #endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */
  203. #ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
  204. #define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
  205. typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1;
  206. #endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */
  207. #ifndef __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__
  208. #define __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__
  209. typedef interface ID3D12DeviceRemovedExtendedDataSettings2 ID3D12DeviceRemovedExtendedDataSettings2;
  210. #endif /* __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ */
  211. #ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
  212. #define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
  213. typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData;
  214. #endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */
  215. #ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
  216. #define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
  217. typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1;
  218. #endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */
  219. #ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
  220. #define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
  221. typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2;
  222. #endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */
  223. #ifndef __ID3D12Device6_FWD_DEFINED__
  224. #define __ID3D12Device6_FWD_DEFINED__
  225. typedef interface ID3D12Device6 ID3D12Device6;
  226. #endif /* __ID3D12Device6_FWD_DEFINED__ */
  227. #ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__
  228. #define __ID3D12ProtectedResourceSession1_FWD_DEFINED__
  229. typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1;
  230. #endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */
  231. #ifndef __ID3D12Device7_FWD_DEFINED__
  232. #define __ID3D12Device7_FWD_DEFINED__
  233. typedef interface ID3D12Device7 ID3D12Device7;
  234. #endif /* __ID3D12Device7_FWD_DEFINED__ */
  235. #ifndef __ID3D12Device8_FWD_DEFINED__
  236. #define __ID3D12Device8_FWD_DEFINED__
  237. typedef interface ID3D12Device8 ID3D12Device8;
  238. #endif /* __ID3D12Device8_FWD_DEFINED__ */
  239. #ifndef __ID3D12Resource1_FWD_DEFINED__
  240. #define __ID3D12Resource1_FWD_DEFINED__
  241. typedef interface ID3D12Resource1 ID3D12Resource1;
  242. #endif /* __ID3D12Resource1_FWD_DEFINED__ */
  243. #ifndef __ID3D12Resource2_FWD_DEFINED__
  244. #define __ID3D12Resource2_FWD_DEFINED__
  245. typedef interface ID3D12Resource2 ID3D12Resource2;
  246. #endif /* __ID3D12Resource2_FWD_DEFINED__ */
  247. #ifndef __ID3D12Heap1_FWD_DEFINED__
  248. #define __ID3D12Heap1_FWD_DEFINED__
  249. typedef interface ID3D12Heap1 ID3D12Heap1;
  250. #endif /* __ID3D12Heap1_FWD_DEFINED__ */
  251. #ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__
  252. #define __ID3D12GraphicsCommandList3_FWD_DEFINED__
  253. typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3;
  254. #endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */
  255. #ifndef __ID3D12MetaCommand_FWD_DEFINED__
  256. #define __ID3D12MetaCommand_FWD_DEFINED__
  257. typedef interface ID3D12MetaCommand ID3D12MetaCommand;
  258. #endif /* __ID3D12MetaCommand_FWD_DEFINED__ */
  259. #ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__
  260. #define __ID3D12GraphicsCommandList4_FWD_DEFINED__
  261. typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4;
  262. #endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */
  263. #ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__
  264. #define __ID3D12ShaderCacheSession_FWD_DEFINED__
  265. typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession;
  266. #endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */
  267. #ifndef __ID3D12Device9_FWD_DEFINED__
  268. #define __ID3D12Device9_FWD_DEFINED__
  269. typedef interface ID3D12Device9 ID3D12Device9;
  270. #endif /* __ID3D12Device9_FWD_DEFINED__ */
  271. #ifndef __ID3D12Device10_FWD_DEFINED__
  272. #define __ID3D12Device10_FWD_DEFINED__
  273. typedef interface ID3D12Device10 ID3D12Device10;
  274. #endif /* __ID3D12Device10_FWD_DEFINED__ */
  275. #ifndef __ID3D12Device11_FWD_DEFINED__
  276. #define __ID3D12Device11_FWD_DEFINED__
  277. typedef interface ID3D12Device11 ID3D12Device11;
  278. #endif /* __ID3D12Device11_FWD_DEFINED__ */
  279. #ifndef __ID3D12Device12_FWD_DEFINED__
  280. #define __ID3D12Device12_FWD_DEFINED__
  281. typedef interface ID3D12Device12 ID3D12Device12;
  282. #endif /* __ID3D12Device12_FWD_DEFINED__ */
  283. #ifndef __ID3D12Device13_FWD_DEFINED__
  284. #define __ID3D12Device13_FWD_DEFINED__
  285. typedef interface ID3D12Device13 ID3D12Device13;
  286. #endif /* __ID3D12Device13_FWD_DEFINED__ */
  287. #ifndef __ID3D12Device14_FWD_DEFINED__
  288. #define __ID3D12Device14_FWD_DEFINED__
  289. typedef interface ID3D12Device14 ID3D12Device14;
  290. #endif /* __ID3D12Device14_FWD_DEFINED__ */
  291. #ifndef __ID3D12StateObjectDatabase_FWD_DEFINED__
  292. #define __ID3D12StateObjectDatabase_FWD_DEFINED__
  293. typedef interface ID3D12StateObjectDatabase ID3D12StateObjectDatabase;
  294. #endif /* __ID3D12StateObjectDatabase_FWD_DEFINED__ */
  295. #ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
  296. #define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
  297. typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice;
  298. #endif /* __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ */
  299. #ifndef __ID3D12Tools_FWD_DEFINED__
  300. #define __ID3D12Tools_FWD_DEFINED__
  301. typedef interface ID3D12Tools ID3D12Tools;
  302. #endif /* __ID3D12Tools_FWD_DEFINED__ */
  303. #ifndef __ID3D12Tools1_FWD_DEFINED__
  304. #define __ID3D12Tools1_FWD_DEFINED__
  305. typedef interface ID3D12Tools1 ID3D12Tools1;
  306. #endif /* __ID3D12Tools1_FWD_DEFINED__ */
  307. #ifndef __ID3D12Tools2_FWD_DEFINED__
  308. #define __ID3D12Tools2_FWD_DEFINED__
  309. typedef interface ID3D12Tools2 ID3D12Tools2;
  310. #endif /* __ID3D12Tools2_FWD_DEFINED__ */
  311. #ifndef __ID3D12PageableTools_FWD_DEFINED__
  312. #define __ID3D12PageableTools_FWD_DEFINED__
  313. typedef interface ID3D12PageableTools ID3D12PageableTools;
  314. #endif /* __ID3D12PageableTools_FWD_DEFINED__ */
  315. #ifndef __ID3D12DeviceTools_FWD_DEFINED__
  316. #define __ID3D12DeviceTools_FWD_DEFINED__
  317. typedef interface ID3D12DeviceTools ID3D12DeviceTools;
  318. #endif /* __ID3D12DeviceTools_FWD_DEFINED__ */
  319. #ifndef __ID3D12DeviceTools1_FWD_DEFINED__
  320. #define __ID3D12DeviceTools1_FWD_DEFINED__
  321. typedef interface ID3D12DeviceTools1 ID3D12DeviceTools1;
  322. #endif /* __ID3D12DeviceTools1_FWD_DEFINED__ */
  323. #ifndef __ID3D12SDKConfiguration_FWD_DEFINED__
  324. #define __ID3D12SDKConfiguration_FWD_DEFINED__
  325. typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration;
  326. #endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */
  327. #ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__
  328. #define __ID3D12SDKConfiguration1_FWD_DEFINED__
  329. typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1;
  330. #endif /* __ID3D12SDKConfiguration1_FWD_DEFINED__ */
  331. #ifndef __ID3D12DeviceFactory_FWD_DEFINED__
  332. #define __ID3D12DeviceFactory_FWD_DEFINED__
  333. typedef interface ID3D12DeviceFactory ID3D12DeviceFactory;
  334. #endif /* __ID3D12DeviceFactory_FWD_DEFINED__ */
  335. #ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__
  336. #define __ID3D12DeviceConfiguration_FWD_DEFINED__
  337. typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration;
  338. #endif /* __ID3D12DeviceConfiguration_FWD_DEFINED__ */
  339. #ifndef __ID3D12DeviceConfiguration1_FWD_DEFINED__
  340. #define __ID3D12DeviceConfiguration1_FWD_DEFINED__
  341. typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1;
  342. #endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */
  343. #ifndef __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__
  344. #define __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__
  345. typedef interface ID3D12StateObjectDatabaseFactory ID3D12StateObjectDatabaseFactory;
  346. #endif /* __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ */
  347. #ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
  348. #define __ID3D12GraphicsCommandList5_FWD_DEFINED__
  349. typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
  350. #endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */
  351. #ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__
  352. #define __ID3D12GraphicsCommandList6_FWD_DEFINED__
  353. typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
  354. #endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */
  355. #ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__
  356. #define __ID3D12GraphicsCommandList7_FWD_DEFINED__
  357. typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7;
  358. #endif /* __ID3D12GraphicsCommandList7_FWD_DEFINED__ */
  359. #ifndef __ID3D12GraphicsCommandList8_FWD_DEFINED__
  360. #define __ID3D12GraphicsCommandList8_FWD_DEFINED__
  361. typedef interface ID3D12GraphicsCommandList8 ID3D12GraphicsCommandList8;
  362. #endif /* __ID3D12GraphicsCommandList8_FWD_DEFINED__ */
  363. #ifndef __ID3D12GraphicsCommandList9_FWD_DEFINED__
  364. #define __ID3D12GraphicsCommandList9_FWD_DEFINED__
  365. typedef interface ID3D12GraphicsCommandList9 ID3D12GraphicsCommandList9;
  366. #endif /* __ID3D12GraphicsCommandList9_FWD_DEFINED__ */
  367. #ifndef __ID3D12GraphicsCommandList10_FWD_DEFINED__
  368. #define __ID3D12GraphicsCommandList10_FWD_DEFINED__
  369. typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10;
  370. #endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */
  371. #ifndef __ID3D12DSRDeviceFactory_FWD_DEFINED__
  372. #define __ID3D12DSRDeviceFactory_FWD_DEFINED__
  373. typedef interface ID3D12DSRDeviceFactory ID3D12DSRDeviceFactory;
  374. #endif /* __ID3D12DSRDeviceFactory_FWD_DEFINED__ */
  375. #ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__
  376. #define __ID3D12GBVDiagnostics_FWD_DEFINED__
  377. typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics;
  378. #endif /* __ID3D12GBVDiagnostics_FWD_DEFINED__ */
  379. /* header files for imported files */
  380. #include "oaidl.h"
  381. #include "ocidl.h"
  382. #include "dxgicommon.h"
  383. #include "dxgiformat.h"
  384. #include "d3dcommon.h"
  385. #ifdef __cplusplus
  386. extern "C"{
  387. #endif
  388. /* interface __MIDL_itf_d3d12_0000_0000 */
  389. /* [local] */
  390. #include <winapifamily.h>
  391. #pragma region App Family
  392. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
  393. #ifndef _D3D12_CONSTANTS
  394. #define _D3D12_CONSTANTS
  395. #define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff )
  396. #define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff )
  397. #define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff )
  398. #define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff )
  399. #define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 )
  400. #define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 )
  401. #define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 )
  402. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 )
  403. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 )
  404. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 )
  405. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 )
  406. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 )
  407. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
  408. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 )
  409. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
  410. #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
  411. #define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 )
  412. #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
  413. #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 )
  414. #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
  415. #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
  416. #define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 )
  417. #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 )
  418. #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 )
  419. #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 )
  420. #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 )
  421. #define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 )
  422. #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 )
  423. #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 )
  424. #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 )
  425. #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 )
  426. #define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 )
  427. #define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 )
  428. #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 )
  429. #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  430. #define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 )
  431. #define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 )
  432. #define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 )
  433. #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 )
  434. #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 )
  435. #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 )
  436. #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 )
  437. #define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 )
  438. #define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 )
  439. #define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 )
  440. #define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 )
  441. #define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 )
  442. #define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 )
  443. #define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 )
  444. #define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 )
  445. #define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 )
  446. #define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 )
  447. #define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 )
  448. #define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 )
  449. #define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 )
  450. #define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 )
  451. #define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 )
  452. #define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 )
  453. #define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 )
  454. #define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 )
  455. #define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 )
  456. #define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 )
  457. #define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 )
  458. #define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 )
  459. #define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 )
  460. #define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 )
  461. #define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 )
  462. #define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 )
  463. #define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 )
  464. #define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 )
  465. #define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 )
  466. #define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 )
  467. #define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 )
  468. #define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 )
  469. #define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 )
  470. #define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 )
  471. #define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 )
  472. #define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 )
  473. #define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 )
  474. #define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 )
  475. #define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 )
  476. #define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 )
  477. #define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 )
  478. #define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 )
  479. #define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 )
  480. #define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 )
  481. #define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 )
  482. #define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 )
  483. #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 )
  484. #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 )
  485. #define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 )
  486. #define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 )
  487. #define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 )
  488. #define D3D12_CS_THREADID_REGISTER_COUNT ( 1 )
  489. #define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 )
  490. #define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 )
  491. #define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 )
  492. #define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 )
  493. #define D3D12_CS_THREAD_GROUP_MIN_X ( 1 )
  494. #define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 )
  495. #define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 )
  496. #define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 )
  497. #define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )
  498. #define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )
  499. #define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )
  500. #define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )
  501. #define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )
  502. #define D3D12_DEFAULT_DEPTH_BIAS ( 0 )
  503. #define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )
  504. #define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 )
  505. #define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )
  506. #define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 )
  507. #define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 )
  508. #define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
  509. #define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff )
  510. #define D3D12_DEFAULT_SCISSOR_ENDX ( 0 )
  511. #define D3D12_DEFAULT_SCISSOR_ENDY ( 0 )
  512. #define D3D12_DEFAULT_SCISSOR_STARTX ( 0 )
  513. #define D3D12_DEFAULT_SCISSOR_STARTY ( 0 )
  514. #define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )
  515. #define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff )
  516. #define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 )
  517. #define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff )
  518. #define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 )
  519. #define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 )
  520. #define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )
  521. #define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )
  522. #define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 )
  523. #define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 )
  524. #define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 )
  525. #define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff )
  526. #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 )
  527. #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
  528. #define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
  529. #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
  530. #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  531. #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 )
  532. #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
  533. #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
  534. #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 )
  535. #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  536. #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 )
  537. #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 )
  538. #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 )
  539. #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
  540. #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  541. #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
  542. #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
  543. #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
  544. #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
  545. #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  546. #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
  547. #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
  548. #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
  549. #define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 )
  550. #define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  551. #define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 )
  552. #define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )
  553. #define D3D12_FLOAT32_MAX ( 3.402823466e+38f )
  554. #define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )
  555. #define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )
  556. #define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )
  557. #define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )
  558. #define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )
  559. #define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )
  560. #define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )
  561. #define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )
  562. #define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )
  563. #define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )
  564. #define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )
  565. #define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 )
  566. #define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 )
  567. #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
  568. #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  569. #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 )
  570. #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 )
  571. #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  572. #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 )
  573. #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 )
  574. #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 )
  575. #define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 )
  576. #define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  577. #define D3D12_GS_INPUT_REGISTER_COUNT ( 32 )
  578. #define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 )
  579. #define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 )
  580. #define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 )
  581. #define D3D12_GS_MAX_INSTANCE_COUNT ( 32 )
  582. #define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 )
  583. #define D3D12_GS_OUTPUT_ELEMENTS ( 32 )
  584. #define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 )
  585. #define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  586. #define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 )
  587. #define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 )
  588. #define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 )
  589. #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
  590. #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  591. #define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
  592. #define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
  593. #define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
  594. #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
  595. #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  596. #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 )
  597. #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
  598. #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
  599. #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
  600. #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  601. #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 )
  602. #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
  603. #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
  604. #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
  605. #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  606. #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
  607. #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
  608. #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
  609. #define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
  610. #define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )
  611. #define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )
  612. #define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
  613. #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 )
  614. #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  615. #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 )
  616. #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 )
  617. #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 )
  618. #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
  619. #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  620. #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
  621. #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
  622. #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
  623. #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 )
  624. #define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 )
  625. #define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 )
  626. #define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 )
  627. #define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 )
  628. #define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 )
  629. #define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 )
  630. #define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 )
  631. #define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 )
  632. #define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 )
  633. #define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 )
  634. #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 )
  635. #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 )
  636. #define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff )
  637. #define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff )
  638. #define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff )
  639. #define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff )
  640. #define D3D12_LINEAR_GAMMA ( 1.0f )
  641. #define D3D12_MAJOR_VERSION ( 12 )
  642. #define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )
  643. #define D3D12_MAX_DEPTH ( 1.0f )
  644. #define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 )
  645. #define D3D12_MAX_MAXANISOTROPY ( 16 )
  646. #define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 )
  647. #define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )
  648. #define D3D12_MAX_ROOT_COST ( 64 )
  649. #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 )
  650. #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 )
  651. #define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 )
  652. #define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 )
  653. #define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 )
  654. #define D3D12_MINOR_VERSION ( 0 )
  655. #define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )
  656. #define D3D12_MIN_DEPTH ( 0.0f )
  657. #define D3D12_MIN_MAXANISOTROPY ( 0 )
  658. #define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )
  659. #define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )
  660. #define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 )
  661. #define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 )
  662. #define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )
  663. #define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 )
  664. #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
  665. #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 )
  666. #define D3D12_PACKED_TILE ( 0xffffffff )
  667. #define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 )
  668. #define D3D12_PREVIEW_SDK_VERSION ( 717 )
  669. #define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
  670. #define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 )
  671. #define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 )
  672. #define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 )
  673. #define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 )
  674. #define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff )
  675. #define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 )
  676. #define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff )
  677. #define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 )
  678. #define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  679. #define D3D12_PS_INPUT_REGISTER_COUNT ( 32 )
  680. #define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 )
  681. #define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 )
  682. #define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )
  683. #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 )
  684. #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  685. #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 )
  686. #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 )
  687. #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  688. #define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 )
  689. #define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 )
  690. #define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  691. #define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 )
  692. #define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )
  693. #define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 )
  694. #define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 )
  695. #define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 )
  696. #define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 )
  697. #define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 )
  698. #define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 )
  699. #define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
  700. #define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
  701. #define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 )
  702. #define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 )
  703. #define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 )
  704. #define D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT ( 128 )
  705. #define D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL ( 12 )
  706. #define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 )
  707. #define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 )
  708. #define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 )
  709. #define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 )
  710. #define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 )
  711. #define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
  712. #define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 )
  713. #define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 )
  714. #define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 )
  715. #define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 )
  716. #define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 )
  717. #define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
  718. #define D3D12_REQ_MAXANISOTROPY ( 16 )
  719. #define D3D12_REQ_MIP_LEVELS ( 15 )
  720. #define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 )
  721. #define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 )
  722. #define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 )
  723. #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 )
  724. #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )
  725. #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 )
  726. #define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 )
  727. #define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 )
  728. #define D3D12_REQ_SUBRESOURCES ( 30720 )
  729. #define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 )
  730. #define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 )
  731. #define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 )
  732. #define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 )
  733. #define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 )
  734. #define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 )
  735. #define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 )
  736. #define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
  737. #define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 )
  738. #define D3D12_SDK_VERSION ( 618 )
  739. #define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
  740. #define D3D12_SHADER_MAJOR_VERSION ( 5 )
  741. #define D3D12_SHADER_MAX_INSTANCES ( 65535 )
  742. #define D3D12_SHADER_MAX_INTERFACES ( 253 )
  743. #define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 )
  744. #define D3D12_SHADER_MAX_TYPES ( 65535 )
  745. #define D3D12_SHADER_MINOR_VERSION ( 1 )
  746. #define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 )
  747. #define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 )
  748. #define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 )
  749. #define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
  750. #define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 )
  751. #define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 )
  752. #define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 )
  753. #define D3D12_SO_BUFFER_SLOT_COUNT ( 4 )
  754. #define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff )
  755. #define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff )
  756. #define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 )
  757. #define D3D12_SO_STREAM_COUNT ( 4 )
  758. #define D3D12_SPEC_DATE_DAY ( 14 )
  759. #define D3D12_SPEC_DATE_MONTH ( 11 )
  760. #define D3D12_SPEC_DATE_YEAR ( 2014 )
  761. #define D3D12_SPEC_VERSION ( 1.16 )
  762. #define D3D12_SRGB_GAMMA ( 2.2f )
  763. #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )
  764. #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )
  765. #define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )
  766. #define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )
  767. #define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )
  768. #define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )
  769. #define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 )
  770. #define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 )
  771. #define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 )
  772. #define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 )
  773. #define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 )
  774. #define D3D12_STANDARD_VECTOR_SIZE ( 4 )
  775. #define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 )
  776. #define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 )
  777. #define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 )
  778. #define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 )
  779. #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
  780. #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
  781. #define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 )
  782. #define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 )
  783. #define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 )
  784. #define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 )
  785. #define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 )
  786. #define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 )
  787. #define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 )
  788. #define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
  789. #define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 )
  790. #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 )
  791. #define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT ( 4096 )
  792. #define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT ( 8 )
  793. #define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
  794. #define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 )
  795. #define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 )
  796. #define D3D12_UAV_SLOT_COUNT ( 64 )
  797. #define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 )
  798. #define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 )
  799. #define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 )
  800. #define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 )
  801. #define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
  802. #define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff )
  803. #define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff )
  804. #define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 )
  805. #define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 )
  806. #define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 )
  807. #define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 )
  808. #define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 )
  809. #define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 )
  810. #define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 )
  811. #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 )
  812. #define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 )
  813. #define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 )
  814. #define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 )
  815. #define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  816. #define D3D12_VS_INPUT_REGISTER_COUNT ( 32 )
  817. #define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 )
  818. #define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 )
  819. #define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 )
  820. #define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
  821. #define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 )
  822. #define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 )
  823. #define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 )
  824. #define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 )
  825. #define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 )
  826. #define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 )
  827. #endif
  828. typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
  829. typedef
  830. enum D3D12_COMMAND_LIST_TYPE
  831. {
  832. D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
  833. D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
  834. D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
  835. D3D12_COMMAND_LIST_TYPE_COPY = 3,
  836. D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
  837. D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
  838. D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6,
  839. D3D12_COMMAND_LIST_TYPE_NONE = -1
  840. } D3D12_COMMAND_LIST_TYPE;
  841. typedef
  842. enum D3D12_COMMAND_QUEUE_FLAGS
  843. {
  844. D3D12_COMMAND_QUEUE_FLAG_NONE = 0,
  845. D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1,
  846. D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2
  847. } D3D12_COMMAND_QUEUE_FLAGS;
  848. DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS )
  849. typedef
  850. enum D3D12_COMMAND_QUEUE_PRIORITY
  851. {
  852. D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
  853. D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
  854. D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
  855. } D3D12_COMMAND_QUEUE_PRIORITY;
  856. typedef struct D3D12_COMMAND_QUEUE_DESC
  857. {
  858. D3D12_COMMAND_LIST_TYPE Type;
  859. INT Priority;
  860. D3D12_COMMAND_QUEUE_FLAGS Flags;
  861. UINT NodeMask;
  862. } D3D12_COMMAND_QUEUE_DESC;
  863. typedef
  864. enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
  865. {
  866. D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
  867. D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
  868. D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
  869. D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
  870. D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
  871. } D3D12_PRIMITIVE_TOPOLOGY_TYPE;
  872. typedef
  873. enum D3D12_INPUT_CLASSIFICATION
  874. {
  875. D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
  876. D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
  877. } D3D12_INPUT_CLASSIFICATION;
  878. typedef struct D3D12_INPUT_ELEMENT_DESC
  879. {
  880. LPCSTR SemanticName;
  881. UINT SemanticIndex;
  882. DXGI_FORMAT Format;
  883. UINT InputSlot;
  884. UINT AlignedByteOffset;
  885. D3D12_INPUT_CLASSIFICATION InputSlotClass;
  886. UINT InstanceDataStepRate;
  887. } D3D12_INPUT_ELEMENT_DESC;
  888. typedef
  889. enum D3D12_FILL_MODE
  890. {
  891. D3D12_FILL_MODE_WIREFRAME = 2,
  892. D3D12_FILL_MODE_SOLID = 3
  893. } D3D12_FILL_MODE;
  894. typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
  895. typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
  896. typedef
  897. enum D3D12_CULL_MODE
  898. {
  899. D3D12_CULL_MODE_NONE = 1,
  900. D3D12_CULL_MODE_FRONT = 2,
  901. D3D12_CULL_MODE_BACK = 3
  902. } D3D12_CULL_MODE;
  903. typedef struct D3D12_SO_DECLARATION_ENTRY
  904. {
  905. UINT Stream;
  906. LPCSTR SemanticName;
  907. UINT SemanticIndex;
  908. BYTE StartComponent;
  909. BYTE ComponentCount;
  910. BYTE OutputSlot;
  911. } D3D12_SO_DECLARATION_ENTRY;
  912. typedef struct D3D12_VIEWPORT
  913. {
  914. FLOAT TopLeftX;
  915. FLOAT TopLeftY;
  916. FLOAT Width;
  917. FLOAT Height;
  918. FLOAT MinDepth;
  919. FLOAT MaxDepth;
  920. } D3D12_VIEWPORT;
  921. typedef RECT D3D12_RECT;
  922. typedef struct D3D12_BOX
  923. {
  924. UINT left;
  925. UINT top;
  926. UINT front;
  927. UINT right;
  928. UINT bottom;
  929. UINT back;
  930. } D3D12_BOX;
  931. #ifdef __midl
  932. #ifndef LUID_DEFINED
  933. #define LUID_DEFINED 1
  934. typedef struct __LUID
  935. {
  936. DWORD LowPart;
  937. LONG HighPart;
  938. } LUID;
  939. typedef struct __LUID *PLUID;
  940. #endif
  941. #endif
  942. typedef
  943. enum D3D12_COMPARISON_FUNC
  944. {
  945. D3D12_COMPARISON_FUNC_NONE = 0,
  946. D3D12_COMPARISON_FUNC_NEVER = 1,
  947. D3D12_COMPARISON_FUNC_LESS = 2,
  948. D3D12_COMPARISON_FUNC_EQUAL = 3,
  949. D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
  950. D3D12_COMPARISON_FUNC_GREATER = 5,
  951. D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
  952. D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
  953. D3D12_COMPARISON_FUNC_ALWAYS = 8
  954. } D3D12_COMPARISON_FUNC;
  955. typedef
  956. enum D3D12_DEPTH_WRITE_MASK
  957. {
  958. D3D12_DEPTH_WRITE_MASK_ZERO = 0,
  959. D3D12_DEPTH_WRITE_MASK_ALL = 1
  960. } D3D12_DEPTH_WRITE_MASK;
  961. typedef
  962. enum D3D12_STENCIL_OP
  963. {
  964. D3D12_STENCIL_OP_KEEP = 1,
  965. D3D12_STENCIL_OP_ZERO = 2,
  966. D3D12_STENCIL_OP_REPLACE = 3,
  967. D3D12_STENCIL_OP_INCR_SAT = 4,
  968. D3D12_STENCIL_OP_DECR_SAT = 5,
  969. D3D12_STENCIL_OP_INVERT = 6,
  970. D3D12_STENCIL_OP_INCR = 7,
  971. D3D12_STENCIL_OP_DECR = 8
  972. } D3D12_STENCIL_OP;
  973. typedef struct D3D12_DEPTH_STENCILOP_DESC
  974. {
  975. D3D12_STENCIL_OP StencilFailOp;
  976. D3D12_STENCIL_OP StencilDepthFailOp;
  977. D3D12_STENCIL_OP StencilPassOp;
  978. D3D12_COMPARISON_FUNC StencilFunc;
  979. } D3D12_DEPTH_STENCILOP_DESC;
  980. typedef struct D3D12_DEPTH_STENCIL_DESC
  981. {
  982. BOOL DepthEnable;
  983. D3D12_DEPTH_WRITE_MASK DepthWriteMask;
  984. D3D12_COMPARISON_FUNC DepthFunc;
  985. BOOL StencilEnable;
  986. UINT8 StencilReadMask;
  987. UINT8 StencilWriteMask;
  988. D3D12_DEPTH_STENCILOP_DESC FrontFace;
  989. D3D12_DEPTH_STENCILOP_DESC BackFace;
  990. } D3D12_DEPTH_STENCIL_DESC;
  991. typedef struct D3D12_DEPTH_STENCIL_DESC1
  992. {
  993. BOOL DepthEnable;
  994. D3D12_DEPTH_WRITE_MASK DepthWriteMask;
  995. D3D12_COMPARISON_FUNC DepthFunc;
  996. BOOL StencilEnable;
  997. UINT8 StencilReadMask;
  998. UINT8 StencilWriteMask;
  999. D3D12_DEPTH_STENCILOP_DESC FrontFace;
  1000. D3D12_DEPTH_STENCILOP_DESC BackFace;
  1001. BOOL DepthBoundsTestEnable;
  1002. } D3D12_DEPTH_STENCIL_DESC1;
  1003. typedef struct D3D12_DEPTH_STENCILOP_DESC1
  1004. {
  1005. D3D12_STENCIL_OP StencilFailOp;
  1006. D3D12_STENCIL_OP StencilDepthFailOp;
  1007. D3D12_STENCIL_OP StencilPassOp;
  1008. D3D12_COMPARISON_FUNC StencilFunc;
  1009. UINT8 StencilReadMask;
  1010. UINT8 StencilWriteMask;
  1011. } D3D12_DEPTH_STENCILOP_DESC1;
  1012. typedef struct D3D12_DEPTH_STENCIL_DESC2
  1013. {
  1014. BOOL DepthEnable;
  1015. D3D12_DEPTH_WRITE_MASK DepthWriteMask;
  1016. D3D12_COMPARISON_FUNC DepthFunc;
  1017. BOOL StencilEnable;
  1018. D3D12_DEPTH_STENCILOP_DESC1 FrontFace;
  1019. D3D12_DEPTH_STENCILOP_DESC1 BackFace;
  1020. BOOL DepthBoundsTestEnable;
  1021. } D3D12_DEPTH_STENCIL_DESC2;
  1022. typedef
  1023. enum D3D12_BLEND
  1024. {
  1025. D3D12_BLEND_ZERO = 1,
  1026. D3D12_BLEND_ONE = 2,
  1027. D3D12_BLEND_SRC_COLOR = 3,
  1028. D3D12_BLEND_INV_SRC_COLOR = 4,
  1029. D3D12_BLEND_SRC_ALPHA = 5,
  1030. D3D12_BLEND_INV_SRC_ALPHA = 6,
  1031. D3D12_BLEND_DEST_ALPHA = 7,
  1032. D3D12_BLEND_INV_DEST_ALPHA = 8,
  1033. D3D12_BLEND_DEST_COLOR = 9,
  1034. D3D12_BLEND_INV_DEST_COLOR = 10,
  1035. D3D12_BLEND_SRC_ALPHA_SAT = 11,
  1036. D3D12_BLEND_BLEND_FACTOR = 14,
  1037. D3D12_BLEND_INV_BLEND_FACTOR = 15,
  1038. D3D12_BLEND_SRC1_COLOR = 16,
  1039. D3D12_BLEND_INV_SRC1_COLOR = 17,
  1040. D3D12_BLEND_SRC1_ALPHA = 18,
  1041. D3D12_BLEND_INV_SRC1_ALPHA = 19,
  1042. D3D12_BLEND_ALPHA_FACTOR = 20,
  1043. D3D12_BLEND_INV_ALPHA_FACTOR = 21
  1044. } D3D12_BLEND;
  1045. typedef
  1046. enum D3D12_BLEND_OP
  1047. {
  1048. D3D12_BLEND_OP_ADD = 1,
  1049. D3D12_BLEND_OP_SUBTRACT = 2,
  1050. D3D12_BLEND_OP_REV_SUBTRACT = 3,
  1051. D3D12_BLEND_OP_MIN = 4,
  1052. D3D12_BLEND_OP_MAX = 5
  1053. } D3D12_BLEND_OP;
  1054. typedef
  1055. enum D3D12_COLOR_WRITE_ENABLE
  1056. {
  1057. D3D12_COLOR_WRITE_ENABLE_RED = 1,
  1058. D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
  1059. D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
  1060. D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
  1061. D3D12_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN ) | D3D12_COLOR_WRITE_ENABLE_BLUE ) | D3D12_COLOR_WRITE_ENABLE_ALPHA )
  1062. } D3D12_COLOR_WRITE_ENABLE;
  1063. typedef
  1064. enum D3D12_LOGIC_OP
  1065. {
  1066. D3D12_LOGIC_OP_CLEAR = 0,
  1067. D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) ,
  1068. D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) ,
  1069. D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) ,
  1070. D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) ,
  1071. D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) ,
  1072. D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) ,
  1073. D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) ,
  1074. D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) ,
  1075. D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) ,
  1076. D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) ,
  1077. D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) ,
  1078. D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) ,
  1079. D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) ,
  1080. D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) ,
  1081. D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 )
  1082. } D3D12_LOGIC_OP;
  1083. typedef struct D3D12_RENDER_TARGET_BLEND_DESC
  1084. {
  1085. BOOL BlendEnable;
  1086. BOOL LogicOpEnable;
  1087. D3D12_BLEND SrcBlend;
  1088. D3D12_BLEND DestBlend;
  1089. D3D12_BLEND_OP BlendOp;
  1090. D3D12_BLEND SrcBlendAlpha;
  1091. D3D12_BLEND DestBlendAlpha;
  1092. D3D12_BLEND_OP BlendOpAlpha;
  1093. D3D12_LOGIC_OP LogicOp;
  1094. UINT8 RenderTargetWriteMask;
  1095. } D3D12_RENDER_TARGET_BLEND_DESC;
  1096. typedef struct D3D12_BLEND_DESC
  1097. {
  1098. BOOL AlphaToCoverageEnable;
  1099. BOOL IndependentBlendEnable;
  1100. D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
  1101. } D3D12_BLEND_DESC;
  1102. /* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT.
  1103. IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
  1104. typedef
  1105. enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
  1106. {
  1107. D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
  1108. D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
  1109. } D3D12_CONSERVATIVE_RASTERIZATION_MODE;
  1110. typedef struct D3D12_RASTERIZER_DESC
  1111. {
  1112. D3D12_FILL_MODE FillMode;
  1113. D3D12_CULL_MODE CullMode;
  1114. BOOL FrontCounterClockwise;
  1115. INT DepthBias;
  1116. FLOAT DepthBiasClamp;
  1117. FLOAT SlopeScaledDepthBias;
  1118. BOOL DepthClipEnable;
  1119. BOOL MultisampleEnable;
  1120. BOOL AntialiasedLineEnable;
  1121. UINT ForcedSampleCount;
  1122. D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
  1123. } D3D12_RASTERIZER_DESC;
  1124. typedef struct D3D12_RASTERIZER_DESC1
  1125. {
  1126. D3D12_FILL_MODE FillMode;
  1127. D3D12_CULL_MODE CullMode;
  1128. BOOL FrontCounterClockwise;
  1129. FLOAT DepthBias;
  1130. FLOAT DepthBiasClamp;
  1131. FLOAT SlopeScaledDepthBias;
  1132. BOOL DepthClipEnable;
  1133. BOOL MultisampleEnable;
  1134. BOOL AntialiasedLineEnable;
  1135. UINT ForcedSampleCount;
  1136. D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
  1137. } D3D12_RASTERIZER_DESC1;
  1138. typedef
  1139. enum D3D12_LINE_RASTERIZATION_MODE
  1140. {
  1141. D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0,
  1142. D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) ,
  1143. D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) ,
  1144. D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 )
  1145. } D3D12_LINE_RASTERIZATION_MODE;
  1146. typedef struct D3D12_RASTERIZER_DESC2
  1147. {
  1148. D3D12_FILL_MODE FillMode;
  1149. D3D12_CULL_MODE CullMode;
  1150. BOOL FrontCounterClockwise;
  1151. FLOAT DepthBias;
  1152. FLOAT DepthBiasClamp;
  1153. FLOAT SlopeScaledDepthBias;
  1154. BOOL DepthClipEnable;
  1155. D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode;
  1156. UINT ForcedSampleCount;
  1157. D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
  1158. } D3D12_RASTERIZER_DESC2;
  1159. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec;
  1160. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec;
  1161. #ifndef __ID3D12Object_INTERFACE_DEFINED__
  1162. #define __ID3D12Object_INTERFACE_DEFINED__
  1163. /* interface ID3D12Object */
  1164. /* [unique][local][object][uuid] */
  1165. EXTERN_C const IID IID_ID3D12Object;
  1166. #if defined(__cplusplus) && !defined(CINTERFACE)
  1167. MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
  1168. ID3D12Object : public IUnknown
  1169. {
  1170. public:
  1171. virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
  1172. _In_ REFGUID guid,
  1173. _Inout_ UINT *pDataSize,
  1174. _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0;
  1175. virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
  1176. _In_ REFGUID guid,
  1177. _In_ UINT DataSize,
  1178. _In_reads_bytes_opt_( DataSize ) const void *pData) = 0;
  1179. virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
  1180. _In_ REFGUID guid,
  1181. _In_opt_ const IUnknown *pData) = 0;
  1182. virtual HRESULT STDMETHODCALLTYPE SetName(
  1183. _In_z_ LPCWSTR Name) = 0;
  1184. };
  1185. #else /* C style interface */
  1186. typedef struct ID3D12ObjectVtbl
  1187. {
  1188. BEGIN_INTERFACE
  1189. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  1190. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1191. ID3D12Object * This,
  1192. REFIID riid,
  1193. _COM_Outptr_ void **ppvObject);
  1194. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  1195. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1196. ID3D12Object * This);
  1197. DECLSPEC_XFGVIRT(IUnknown, Release)
  1198. ULONG ( STDMETHODCALLTYPE *Release )(
  1199. ID3D12Object * This);
  1200. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  1201. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1202. ID3D12Object * This,
  1203. _In_ REFGUID guid,
  1204. _Inout_ UINT *pDataSize,
  1205. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  1206. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  1207. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1208. ID3D12Object * This,
  1209. _In_ REFGUID guid,
  1210. _In_ UINT DataSize,
  1211. _In_reads_bytes_opt_( DataSize ) const void *pData);
  1212. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  1213. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1214. ID3D12Object * This,
  1215. _In_ REFGUID guid,
  1216. _In_opt_ const IUnknown *pData);
  1217. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  1218. HRESULT ( STDMETHODCALLTYPE *SetName )(
  1219. ID3D12Object * This,
  1220. _In_z_ LPCWSTR Name);
  1221. END_INTERFACE
  1222. } ID3D12ObjectVtbl;
  1223. interface ID3D12Object
  1224. {
  1225. CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
  1226. };
  1227. #ifdef COBJMACROS
  1228. #define ID3D12Object_QueryInterface(This,riid,ppvObject) \
  1229. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1230. #define ID3D12Object_AddRef(This) \
  1231. ( (This)->lpVtbl -> AddRef(This) )
  1232. #define ID3D12Object_Release(This) \
  1233. ( (This)->lpVtbl -> Release(This) )
  1234. #define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \
  1235. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  1236. #define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \
  1237. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  1238. #define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \
  1239. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  1240. #define ID3D12Object_SetName(This,Name) \
  1241. ( (This)->lpVtbl -> SetName(This,Name) )
  1242. #endif /* COBJMACROS */
  1243. #endif /* C style interface */
  1244. #endif /* __ID3D12Object_INTERFACE_DEFINED__ */
  1245. #ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
  1246. #define __ID3D12DeviceChild_INTERFACE_DEFINED__
  1247. /* interface ID3D12DeviceChild */
  1248. /* [unique][local][object][uuid] */
  1249. EXTERN_C const IID IID_ID3D12DeviceChild;
  1250. #if defined(__cplusplus) && !defined(CINTERFACE)
  1251. MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
  1252. ID3D12DeviceChild : public ID3D12Object
  1253. {
  1254. public:
  1255. virtual HRESULT STDMETHODCALLTYPE GetDevice(
  1256. REFIID riid,
  1257. _COM_Outptr_opt_ void **ppvDevice) = 0;
  1258. };
  1259. #else /* C style interface */
  1260. typedef struct ID3D12DeviceChildVtbl
  1261. {
  1262. BEGIN_INTERFACE
  1263. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  1264. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1265. ID3D12DeviceChild * This,
  1266. REFIID riid,
  1267. _COM_Outptr_ void **ppvObject);
  1268. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  1269. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1270. ID3D12DeviceChild * This);
  1271. DECLSPEC_XFGVIRT(IUnknown, Release)
  1272. ULONG ( STDMETHODCALLTYPE *Release )(
  1273. ID3D12DeviceChild * This);
  1274. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  1275. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1276. ID3D12DeviceChild * This,
  1277. _In_ REFGUID guid,
  1278. _Inout_ UINT *pDataSize,
  1279. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  1280. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  1281. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1282. ID3D12DeviceChild * This,
  1283. _In_ REFGUID guid,
  1284. _In_ UINT DataSize,
  1285. _In_reads_bytes_opt_( DataSize ) const void *pData);
  1286. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  1287. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1288. ID3D12DeviceChild * This,
  1289. _In_ REFGUID guid,
  1290. _In_opt_ const IUnknown *pData);
  1291. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  1292. HRESULT ( STDMETHODCALLTYPE *SetName )(
  1293. ID3D12DeviceChild * This,
  1294. _In_z_ LPCWSTR Name);
  1295. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  1296. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  1297. ID3D12DeviceChild * This,
  1298. REFIID riid,
  1299. _COM_Outptr_opt_ void **ppvDevice);
  1300. END_INTERFACE
  1301. } ID3D12DeviceChildVtbl;
  1302. interface ID3D12DeviceChild
  1303. {
  1304. CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
  1305. };
  1306. #ifdef COBJMACROS
  1307. #define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \
  1308. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1309. #define ID3D12DeviceChild_AddRef(This) \
  1310. ( (This)->lpVtbl -> AddRef(This) )
  1311. #define ID3D12DeviceChild_Release(This) \
  1312. ( (This)->lpVtbl -> Release(This) )
  1313. #define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \
  1314. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  1315. #define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \
  1316. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  1317. #define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \
  1318. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  1319. #define ID3D12DeviceChild_SetName(This,Name) \
  1320. ( (This)->lpVtbl -> SetName(This,Name) )
  1321. #define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \
  1322. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  1323. #endif /* COBJMACROS */
  1324. #endif /* C style interface */
  1325. #endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
  1326. #ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
  1327. #define __ID3D12RootSignature_INTERFACE_DEFINED__
  1328. /* interface ID3D12RootSignature */
  1329. /* [unique][local][object][uuid] */
  1330. EXTERN_C const IID IID_ID3D12RootSignature;
  1331. #if defined(__cplusplus) && !defined(CINTERFACE)
  1332. MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
  1333. ID3D12RootSignature : public ID3D12DeviceChild
  1334. {
  1335. public:
  1336. };
  1337. #else /* C style interface */
  1338. typedef struct ID3D12RootSignatureVtbl
  1339. {
  1340. BEGIN_INTERFACE
  1341. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  1342. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1343. ID3D12RootSignature * This,
  1344. REFIID riid,
  1345. _COM_Outptr_ void **ppvObject);
  1346. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  1347. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1348. ID3D12RootSignature * This);
  1349. DECLSPEC_XFGVIRT(IUnknown, Release)
  1350. ULONG ( STDMETHODCALLTYPE *Release )(
  1351. ID3D12RootSignature * This);
  1352. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  1353. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1354. ID3D12RootSignature * This,
  1355. _In_ REFGUID guid,
  1356. _Inout_ UINT *pDataSize,
  1357. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  1358. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  1359. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1360. ID3D12RootSignature * This,
  1361. _In_ REFGUID guid,
  1362. _In_ UINT DataSize,
  1363. _In_reads_bytes_opt_( DataSize ) const void *pData);
  1364. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  1365. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1366. ID3D12RootSignature * This,
  1367. _In_ REFGUID guid,
  1368. _In_opt_ const IUnknown *pData);
  1369. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  1370. HRESULT ( STDMETHODCALLTYPE *SetName )(
  1371. ID3D12RootSignature * This,
  1372. _In_z_ LPCWSTR Name);
  1373. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  1374. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  1375. ID3D12RootSignature * This,
  1376. REFIID riid,
  1377. _COM_Outptr_opt_ void **ppvDevice);
  1378. END_INTERFACE
  1379. } ID3D12RootSignatureVtbl;
  1380. interface ID3D12RootSignature
  1381. {
  1382. CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
  1383. };
  1384. #ifdef COBJMACROS
  1385. #define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \
  1386. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1387. #define ID3D12RootSignature_AddRef(This) \
  1388. ( (This)->lpVtbl -> AddRef(This) )
  1389. #define ID3D12RootSignature_Release(This) \
  1390. ( (This)->lpVtbl -> Release(This) )
  1391. #define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \
  1392. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  1393. #define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \
  1394. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  1395. #define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \
  1396. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  1397. #define ID3D12RootSignature_SetName(This,Name) \
  1398. ( (This)->lpVtbl -> SetName(This,Name) )
  1399. #define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \
  1400. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  1401. #endif /* COBJMACROS */
  1402. #endif /* C style interface */
  1403. #endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
  1404. /* interface __MIDL_itf_d3d12_0000_0001 */
  1405. /* [local] */
  1406. typedef struct D3D12_SHADER_BYTECODE
  1407. {
  1408. _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
  1409. SIZE_T BytecodeLength;
  1410. } D3D12_SHADER_BYTECODE;
  1411. typedef struct D3D12_STREAM_OUTPUT_DESC
  1412. {
  1413. _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
  1414. UINT NumEntries;
  1415. _Field_size_full_(NumStrides) const UINT *pBufferStrides;
  1416. UINT NumStrides;
  1417. UINT RasterizedStream;
  1418. } D3D12_STREAM_OUTPUT_DESC;
  1419. typedef struct D3D12_INPUT_LAYOUT_DESC
  1420. {
  1421. _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
  1422. UINT NumElements;
  1423. } D3D12_INPUT_LAYOUT_DESC;
  1424. typedef
  1425. enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
  1426. {
  1427. D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
  1428. D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
  1429. D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
  1430. } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
  1431. typedef
  1432. enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS
  1433. {
  1434. D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
  1435. D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
  1436. } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
  1437. typedef struct D3D12_CACHED_PIPELINE_STATE
  1438. {
  1439. _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
  1440. SIZE_T CachedBlobSizeInBytes;
  1441. } D3D12_CACHED_PIPELINE_STATE;
  1442. typedef
  1443. enum D3D12_PIPELINE_STATE_FLAGS
  1444. {
  1445. D3D12_PIPELINE_STATE_FLAG_NONE = 0,
  1446. D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1,
  1447. D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4,
  1448. D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8
  1449. } D3D12_PIPELINE_STATE_FLAGS;
  1450. DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS )
  1451. typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
  1452. {
  1453. ID3D12RootSignature *pRootSignature;
  1454. D3D12_SHADER_BYTECODE VS;
  1455. D3D12_SHADER_BYTECODE PS;
  1456. D3D12_SHADER_BYTECODE DS;
  1457. D3D12_SHADER_BYTECODE HS;
  1458. D3D12_SHADER_BYTECODE GS;
  1459. D3D12_STREAM_OUTPUT_DESC StreamOutput;
  1460. D3D12_BLEND_DESC BlendState;
  1461. UINT SampleMask;
  1462. D3D12_RASTERIZER_DESC RasterizerState;
  1463. D3D12_DEPTH_STENCIL_DESC DepthStencilState;
  1464. D3D12_INPUT_LAYOUT_DESC InputLayout;
  1465. D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
  1466. D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
  1467. UINT NumRenderTargets;
  1468. DXGI_FORMAT RTVFormats[ 8 ];
  1469. DXGI_FORMAT DSVFormat;
  1470. DXGI_SAMPLE_DESC SampleDesc;
  1471. UINT NodeMask;
  1472. D3D12_CACHED_PIPELINE_STATE CachedPSO;
  1473. D3D12_PIPELINE_STATE_FLAGS Flags;
  1474. } D3D12_GRAPHICS_PIPELINE_STATE_DESC;
  1475. typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
  1476. {
  1477. ID3D12RootSignature *pRootSignature;
  1478. D3D12_SHADER_BYTECODE CS;
  1479. UINT NodeMask;
  1480. D3D12_CACHED_PIPELINE_STATE CachedPSO;
  1481. D3D12_PIPELINE_STATE_FLAGS Flags;
  1482. } D3D12_COMPUTE_PIPELINE_STATE_DESC;
  1483. typedef
  1484. enum D3D_ROOT_SIGNATURE_VERSION
  1485. {
  1486. D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
  1487. D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
  1488. D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
  1489. D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3
  1490. } D3D_ROOT_SIGNATURE_VERSION;
  1491. typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC
  1492. {
  1493. _Field_size_bytes_full_(SerializedBlobSizeInBytes) const void *pSerializedBlob;
  1494. SIZE_T SerializedBlobSizeInBytes;
  1495. } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC;
  1496. typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE
  1497. {
  1498. D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc;
  1499. } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE;
  1500. typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE
  1501. {
  1502. D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc;
  1503. } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE;
  1504. struct D3D12_RT_FORMAT_ARRAY
  1505. {
  1506. DXGI_FORMAT RTFormats[ 8 ];
  1507. UINT NumRenderTargets;
  1508. } ;
  1509. typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
  1510. {
  1511. _In_ SIZE_T SizeInBytes;
  1512. _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream;
  1513. } D3D12_PIPELINE_STATE_STREAM_DESC;
  1514. typedef
  1515. enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
  1516. {
  1517. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0,
  1518. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) ,
  1519. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) ,
  1520. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) ,
  1521. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) ,
  1522. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) ,
  1523. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) ,
  1524. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) ,
  1525. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) ,
  1526. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) ,
  1527. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) ,
  1528. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) ,
  1529. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) ,
  1530. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) ,
  1531. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) ,
  1532. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) ,
  1533. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) ,
  1534. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) ,
  1535. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) ,
  1536. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) ,
  1537. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) ,
  1538. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) ,
  1539. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) ,
  1540. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24,
  1541. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25,
  1542. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26,
  1543. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27,
  1544. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28,
  1545. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29,
  1546. D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE + 1 )
  1547. } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
  1548. typedef
  1549. enum D3D12_FEATURE
  1550. {
  1551. D3D12_FEATURE_D3D12_OPTIONS = 0,
  1552. D3D12_FEATURE_ARCHITECTURE = 1,
  1553. D3D12_FEATURE_FEATURE_LEVELS = 2,
  1554. D3D12_FEATURE_FORMAT_SUPPORT = 3,
  1555. D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
  1556. D3D12_FEATURE_FORMAT_INFO = 5,
  1557. D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
  1558. D3D12_FEATURE_SHADER_MODEL = 7,
  1559. D3D12_FEATURE_D3D12_OPTIONS1 = 8,
  1560. D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
  1561. D3D12_FEATURE_ROOT_SIGNATURE = 12,
  1562. D3D12_FEATURE_ARCHITECTURE1 = 16,
  1563. D3D12_FEATURE_D3D12_OPTIONS2 = 18,
  1564. D3D12_FEATURE_SHADER_CACHE = 19,
  1565. D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
  1566. D3D12_FEATURE_D3D12_OPTIONS3 = 21,
  1567. D3D12_FEATURE_EXISTING_HEAPS = 22,
  1568. D3D12_FEATURE_D3D12_OPTIONS4 = 23,
  1569. D3D12_FEATURE_SERIALIZATION = 24,
  1570. D3D12_FEATURE_CROSS_NODE = 25,
  1571. D3D12_FEATURE_D3D12_OPTIONS5 = 27,
  1572. D3D12_FEATURE_DISPLAYABLE = 28,
  1573. D3D12_FEATURE_D3D12_OPTIONS6 = 30,
  1574. D3D12_FEATURE_QUERY_META_COMMAND = 31,
  1575. D3D12_FEATURE_D3D12_OPTIONS7 = 32,
  1576. D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
  1577. D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
  1578. D3D12_FEATURE_D3D12_OPTIONS8 = 36,
  1579. D3D12_FEATURE_D3D12_OPTIONS9 = 37,
  1580. D3D12_FEATURE_D3D12_OPTIONS10 = 39,
  1581. D3D12_FEATURE_D3D12_OPTIONS11 = 40,
  1582. D3D12_FEATURE_D3D12_OPTIONS12 = 41,
  1583. D3D12_FEATURE_D3D12_OPTIONS13 = 42,
  1584. D3D12_FEATURE_D3D12_OPTIONS14 = 43,
  1585. D3D12_FEATURE_D3D12_OPTIONS15 = 44,
  1586. D3D12_FEATURE_D3D12_OPTIONS16 = 45,
  1587. D3D12_FEATURE_D3D12_OPTIONS17 = 46,
  1588. D3D12_FEATURE_D3D12_OPTIONS18 = 47,
  1589. D3D12_FEATURE_D3D12_OPTIONS19 = 48,
  1590. D3D12_FEATURE_D3D12_OPTIONS20 = 49,
  1591. D3D12_FEATURE_PREDICATION = 50,
  1592. D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51,
  1593. D3D12_FEATURE_HARDWARE_COPY = 52,
  1594. D3D12_FEATURE_D3D12_OPTIONS21 = 53,
  1595. D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54,
  1596. D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56,
  1597. D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57,
  1598. D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61
  1599. } D3D12_FEATURE;
  1600. typedef
  1601. enum D3D12_SHADER_MIN_PRECISION_SUPPORT
  1602. {
  1603. D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0,
  1604. D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
  1605. D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
  1606. } D3D12_SHADER_MIN_PRECISION_SUPPORT;
  1607. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT )
  1608. typedef
  1609. enum D3D12_TILED_RESOURCES_TIER
  1610. {
  1611. D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
  1612. D3D12_TILED_RESOURCES_TIER_1 = 1,
  1613. D3D12_TILED_RESOURCES_TIER_2 = 2,
  1614. D3D12_TILED_RESOURCES_TIER_3 = 3,
  1615. D3D12_TILED_RESOURCES_TIER_4 = 4
  1616. } D3D12_TILED_RESOURCES_TIER;
  1617. typedef
  1618. enum D3D12_RESOURCE_BINDING_TIER
  1619. {
  1620. D3D12_RESOURCE_BINDING_TIER_1 = 1,
  1621. D3D12_RESOURCE_BINDING_TIER_2 = 2,
  1622. D3D12_RESOURCE_BINDING_TIER_3 = 3
  1623. } D3D12_RESOURCE_BINDING_TIER;
  1624. typedef
  1625. enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
  1626. {
  1627. D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
  1628. D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
  1629. D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
  1630. D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
  1631. } D3D12_CONSERVATIVE_RASTERIZATION_TIER;
  1632. typedef
  1633. enum D3D12_FORMAT_SUPPORT1
  1634. {
  1635. D3D12_FORMAT_SUPPORT1_NONE = 0,
  1636. D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
  1637. D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
  1638. D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
  1639. D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
  1640. D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
  1641. D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
  1642. D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
  1643. D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
  1644. D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
  1645. D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
  1646. D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
  1647. D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
  1648. D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
  1649. D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
  1650. D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
  1651. D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
  1652. D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
  1653. D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
  1654. D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
  1655. D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
  1656. D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
  1657. D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
  1658. D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
  1659. D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
  1660. D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
  1661. D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
  1662. D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
  1663. D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
  1664. D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
  1665. } D3D12_FORMAT_SUPPORT1;
  1666. DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 )
  1667. typedef
  1668. enum D3D12_FORMAT_SUPPORT2
  1669. {
  1670. D3D12_FORMAT_SUPPORT2_NONE = 0,
  1671. D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
  1672. D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
  1673. D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
  1674. D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
  1675. D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
  1676. D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
  1677. D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
  1678. D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
  1679. D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
  1680. D3D12_FORMAT_SUPPORT2_TILED = 0x200,
  1681. D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
  1682. D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000,
  1683. D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x10000
  1684. } D3D12_FORMAT_SUPPORT2;
  1685. DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 )
  1686. typedef
  1687. enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
  1688. {
  1689. D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
  1690. D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
  1691. } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
  1692. DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS )
  1693. typedef
  1694. enum D3D12_CROSS_NODE_SHARING_TIER
  1695. {
  1696. D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
  1697. D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
  1698. D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
  1699. D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
  1700. D3D12_CROSS_NODE_SHARING_TIER_3 = 4
  1701. } D3D12_CROSS_NODE_SHARING_TIER;
  1702. typedef
  1703. enum D3D12_RESOURCE_HEAP_TIER
  1704. {
  1705. D3D12_RESOURCE_HEAP_TIER_1 = 1,
  1706. D3D12_RESOURCE_HEAP_TIER_2 = 2
  1707. } D3D12_RESOURCE_HEAP_TIER;
  1708. typedef
  1709. enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
  1710. {
  1711. D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
  1712. D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
  1713. D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2
  1714. } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
  1715. typedef
  1716. enum D3D12_VIEW_INSTANCING_TIER
  1717. {
  1718. D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
  1719. D3D12_VIEW_INSTANCING_TIER_1 = 1,
  1720. D3D12_VIEW_INSTANCING_TIER_2 = 2,
  1721. D3D12_VIEW_INSTANCING_TIER_3 = 3
  1722. } D3D12_VIEW_INSTANCING_TIER;
  1723. typedef
  1724. enum D3D12_WORK_GRAPHS_TIER
  1725. {
  1726. D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0,
  1727. D3D12_WORK_GRAPHS_TIER_1_0 = 10
  1728. } D3D12_WORK_GRAPHS_TIER;
  1729. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
  1730. {
  1731. _Out_ BOOL DoublePrecisionFloatShaderOps;
  1732. _Out_ BOOL OutputMergerLogicOp;
  1733. _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
  1734. _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
  1735. _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
  1736. _Out_ BOOL PSSpecifiedStencilRefSupported;
  1737. _Out_ BOOL TypedUAVLoadAdditionalFormats;
  1738. _Out_ BOOL ROVsSupported;
  1739. _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
  1740. _Out_ UINT MaxGPUVirtualAddressBitsPerResource;
  1741. _Out_ BOOL StandardSwizzle64KBSupported;
  1742. _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
  1743. _Out_ BOOL CrossAdapterRowMajorTextureSupported;
  1744. _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
  1745. _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
  1746. } D3D12_FEATURE_DATA_D3D12_OPTIONS;
  1747. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
  1748. {
  1749. _Out_ BOOL WaveOps;
  1750. _Out_ UINT WaveLaneCountMin;
  1751. _Out_ UINT WaveLaneCountMax;
  1752. _Out_ UINT TotalLaneCount;
  1753. _Out_ BOOL ExpandedComputeResourceStates;
  1754. _Out_ BOOL Int64ShaderOps;
  1755. } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
  1756. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
  1757. {
  1758. _Out_ BOOL DepthBoundsTestSupported;
  1759. _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
  1760. } D3D12_FEATURE_DATA_D3D12_OPTIONS2;
  1761. typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
  1762. {
  1763. _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
  1764. } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
  1765. typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
  1766. {
  1767. _In_ UINT NodeIndex;
  1768. _Out_ BOOL TileBasedRenderer;
  1769. _Out_ BOOL UMA;
  1770. _Out_ BOOL CacheCoherentUMA;
  1771. } D3D12_FEATURE_DATA_ARCHITECTURE;
  1772. typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
  1773. {
  1774. _In_ UINT NodeIndex;
  1775. _Out_ BOOL TileBasedRenderer;
  1776. _Out_ BOOL UMA;
  1777. _Out_ BOOL CacheCoherentUMA;
  1778. _Out_ BOOL IsolatedMMU;
  1779. } D3D12_FEATURE_DATA_ARCHITECTURE1;
  1780. typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
  1781. {
  1782. _In_ UINT NumFeatureLevels;
  1783. _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
  1784. _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
  1785. } D3D12_FEATURE_DATA_FEATURE_LEVELS;
  1786. typedef
  1787. enum D3D_SHADER_MODEL
  1788. {
  1789. D3D_SHADER_MODEL_NONE = 0,
  1790. D3D_SHADER_MODEL_5_1 = 0x51,
  1791. D3D_SHADER_MODEL_6_0 = 0x60,
  1792. D3D_SHADER_MODEL_6_1 = 0x61,
  1793. D3D_SHADER_MODEL_6_2 = 0x62,
  1794. D3D_SHADER_MODEL_6_3 = 0x63,
  1795. D3D_SHADER_MODEL_6_4 = 0x64,
  1796. D3D_SHADER_MODEL_6_5 = 0x65,
  1797. D3D_SHADER_MODEL_6_6 = 0x66,
  1798. D3D_SHADER_MODEL_6_7 = 0x67,
  1799. D3D_SHADER_MODEL_6_8 = 0x68,
  1800. D3D_SHADER_MODEL_6_9 = 0x69,
  1801. D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9
  1802. } D3D_SHADER_MODEL;
  1803. typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
  1804. {
  1805. _Inout_ D3D_SHADER_MODEL HighestShaderModel;
  1806. } D3D12_FEATURE_DATA_SHADER_MODEL;
  1807. typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
  1808. {
  1809. _In_ DXGI_FORMAT Format;
  1810. _Out_ D3D12_FORMAT_SUPPORT1 Support1;
  1811. _Out_ D3D12_FORMAT_SUPPORT2 Support2;
  1812. } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
  1813. typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
  1814. {
  1815. _In_ DXGI_FORMAT Format;
  1816. _In_ UINT SampleCount;
  1817. _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
  1818. _Out_ UINT NumQualityLevels;
  1819. } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
  1820. typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
  1821. {
  1822. DXGI_FORMAT Format;
  1823. UINT8 PlaneCount;
  1824. } D3D12_FEATURE_DATA_FORMAT_INFO;
  1825. typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
  1826. {
  1827. UINT MaxGPUVirtualAddressBitsPerResource;
  1828. UINT MaxGPUVirtualAddressBitsPerProcess;
  1829. } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
  1830. typedef
  1831. enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
  1832. {
  1833. D3D12_SHADER_CACHE_SUPPORT_NONE = 0,
  1834. D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
  1835. D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
  1836. D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
  1837. D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
  1838. D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
  1839. D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
  1840. D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
  1841. } D3D12_SHADER_CACHE_SUPPORT_FLAGS;
  1842. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS )
  1843. typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
  1844. {
  1845. _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
  1846. } D3D12_FEATURE_DATA_SHADER_CACHE;
  1847. typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
  1848. {
  1849. _In_ D3D12_COMMAND_LIST_TYPE CommandListType;
  1850. _In_ UINT Priority;
  1851. _Out_ BOOL PriorityForTypeIsSupported;
  1852. } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
  1853. typedef
  1854. enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
  1855. {
  1856. D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0,
  1857. D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) ,
  1858. D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) ,
  1859. D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) ,
  1860. D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) ,
  1861. D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) ,
  1862. D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) ,
  1863. D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE )
  1864. } D3D12_COMMAND_LIST_SUPPORT_FLAGS;
  1865. DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS )
  1866. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
  1867. {
  1868. _Out_ BOOL CopyQueueTimestampQueriesSupported;
  1869. _Out_ BOOL CastingFullyTypedFormatSupported;
  1870. _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
  1871. _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
  1872. _Out_ BOOL BarycentricsSupported;
  1873. } D3D12_FEATURE_DATA_D3D12_OPTIONS3;
  1874. typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
  1875. {
  1876. _Out_ BOOL Supported;
  1877. } D3D12_FEATURE_DATA_EXISTING_HEAPS;
  1878. typedef
  1879. enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
  1880. {
  1881. D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0,
  1882. D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) ,
  1883. D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 )
  1884. } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
  1885. typedef struct D3D12_FEATURE_DATA_DISPLAYABLE
  1886. {
  1887. _Out_ BOOL DisplayableTexture;
  1888. _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
  1889. } D3D12_FEATURE_DATA_DISPLAYABLE;
  1890. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
  1891. {
  1892. _Out_ BOOL MSAA64KBAlignedTextureSupported;
  1893. _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
  1894. _Out_ BOOL Native16BitShaderOpsSupported;
  1895. } D3D12_FEATURE_DATA_D3D12_OPTIONS4;
  1896. typedef
  1897. enum D3D12_HEAP_SERIALIZATION_TIER
  1898. {
  1899. D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
  1900. D3D12_HEAP_SERIALIZATION_TIER_10 = 10
  1901. } D3D12_HEAP_SERIALIZATION_TIER;
  1902. typedef struct D3D12_FEATURE_DATA_SERIALIZATION
  1903. {
  1904. _In_ UINT NodeIndex;
  1905. _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
  1906. } D3D12_FEATURE_DATA_SERIALIZATION;
  1907. typedef struct D3D12_FEATURE_DATA_CROSS_NODE
  1908. {
  1909. D3D12_CROSS_NODE_SHARING_TIER SharingTier;
  1910. BOOL AtomicShaderInstructions;
  1911. } D3D12_FEATURE_DATA_CROSS_NODE;
  1912. typedef
  1913. enum D3D12_RENDER_PASS_TIER
  1914. {
  1915. D3D12_RENDER_PASS_TIER_0 = 0,
  1916. D3D12_RENDER_PASS_TIER_1 = 1,
  1917. D3D12_RENDER_PASS_TIER_2 = 2
  1918. } D3D12_RENDER_PASS_TIER;
  1919. typedef
  1920. enum D3D12_RAYTRACING_TIER
  1921. {
  1922. D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
  1923. D3D12_RAYTRACING_TIER_1_0 = 10,
  1924. D3D12_RAYTRACING_TIER_1_1 = 11,
  1925. D3D12_RAYTRACING_TIER_1_2 = 12
  1926. } D3D12_RAYTRACING_TIER;
  1927. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
  1928. {
  1929. _Out_ BOOL SRVOnlyTiledResourceTier3;
  1930. _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier;
  1931. _Out_ D3D12_RAYTRACING_TIER RaytracingTier;
  1932. } D3D12_FEATURE_DATA_D3D12_OPTIONS5;
  1933. typedef
  1934. enum D3D12_VARIABLE_SHADING_RATE_TIER
  1935. {
  1936. D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
  1937. D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
  1938. D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2
  1939. } D3D12_VARIABLE_SHADING_RATE_TIER;
  1940. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
  1941. {
  1942. _Out_ BOOL AdditionalShadingRatesSupported;
  1943. _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
  1944. _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
  1945. _Out_ UINT ShadingRateImageTileSize;
  1946. _Out_ BOOL BackgroundProcessingSupported;
  1947. } D3D12_FEATURE_DATA_D3D12_OPTIONS6;
  1948. typedef
  1949. enum D3D12_MESH_SHADER_TIER
  1950. {
  1951. D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0,
  1952. D3D12_MESH_SHADER_TIER_1 = 10
  1953. } D3D12_MESH_SHADER_TIER;
  1954. typedef
  1955. enum D3D12_SAMPLER_FEEDBACK_TIER
  1956. {
  1957. D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0,
  1958. D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90,
  1959. D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100
  1960. } D3D12_SAMPLER_FEEDBACK_TIER;
  1961. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
  1962. {
  1963. _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier;
  1964. _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
  1965. } D3D12_FEATURE_DATA_D3D12_OPTIONS7;
  1966. typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
  1967. {
  1968. _In_ GUID CommandId;
  1969. _In_ UINT NodeMask;
  1970. _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData;
  1971. _In_ SIZE_T QueryInputDataSizeInBytes;
  1972. _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData;
  1973. _In_ SIZE_T QueryOutputDataSizeInBytes;
  1974. } D3D12_FEATURE_DATA_QUERY_META_COMMAND;
  1975. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
  1976. {
  1977. _Out_ BOOL UnalignedBlockTexturesSupported;
  1978. } D3D12_FEATURE_DATA_D3D12_OPTIONS8;
  1979. typedef
  1980. enum D3D12_WAVE_MMA_TIER
  1981. {
  1982. D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0,
  1983. D3D12_WAVE_MMA_TIER_1_0 = 10
  1984. } D3D12_WAVE_MMA_TIER;
  1985. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
  1986. {
  1987. _Out_ BOOL MeshShaderPipelineStatsSupported;
  1988. _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
  1989. _Out_ BOOL AtomicInt64OnTypedResourceSupported;
  1990. _Out_ BOOL AtomicInt64OnGroupSharedSupported;
  1991. _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported;
  1992. _Out_ D3D12_WAVE_MMA_TIER WaveMMATier;
  1993. } D3D12_FEATURE_DATA_D3D12_OPTIONS9;
  1994. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
  1995. {
  1996. _Out_ BOOL VariableRateShadingSumCombinerSupported;
  1997. _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported;
  1998. } D3D12_FEATURE_DATA_D3D12_OPTIONS10;
  1999. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
  2000. {
  2001. _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported;
  2002. } D3D12_FEATURE_DATA_D3D12_OPTIONS11;
  2003. typedef
  2004. enum D3D12_TRI_STATE
  2005. {
  2006. D3D12_TRI_STATE_UNKNOWN = -1,
  2007. D3D12_TRI_STATE_FALSE = 0,
  2008. D3D12_TRI_STATE_TRUE = 1
  2009. } D3D12_TRI_STATE;
  2010. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12
  2011. {
  2012. _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives;
  2013. _Out_ BOOL EnhancedBarriersSupported;
  2014. _Out_ BOOL RelaxedFormatCastingSupported;
  2015. } D3D12_FEATURE_DATA_D3D12_OPTIONS12;
  2016. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13
  2017. {
  2018. _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported;
  2019. _Out_ BOOL UnrestrictedVertexElementAlignmentSupported;
  2020. _Out_ BOOL InvertedViewportHeightFlipsYSupported;
  2021. _Out_ BOOL InvertedViewportDepthFlipsZSupported;
  2022. _Out_ BOOL TextureCopyBetweenDimensionsSupported;
  2023. _Out_ BOOL AlphaBlendFactorSupported;
  2024. } D3D12_FEATURE_DATA_D3D12_OPTIONS13;
  2025. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14
  2026. {
  2027. _Out_ BOOL AdvancedTextureOpsSupported;
  2028. _Out_ BOOL WriteableMSAATexturesSupported;
  2029. _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported;
  2030. } D3D12_FEATURE_DATA_D3D12_OPTIONS14;
  2031. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15
  2032. {
  2033. _Out_ BOOL TriangleFanSupported;
  2034. _Out_ BOOL DynamicIndexBufferStripCutSupported;
  2035. } D3D12_FEATURE_DATA_D3D12_OPTIONS15;
  2036. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16
  2037. {
  2038. _Out_ BOOL DynamicDepthBiasSupported;
  2039. _Out_ BOOL GPUUploadHeapSupported;
  2040. } D3D12_FEATURE_DATA_D3D12_OPTIONS16;
  2041. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17
  2042. {
  2043. _Out_ BOOL NonNormalizedCoordinateSamplersSupported;
  2044. _Out_ BOOL ManualWriteTrackingResourceSupported;
  2045. } D3D12_FEATURE_DATA_D3D12_OPTIONS17;
  2046. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18
  2047. {
  2048. _Out_ BOOL RenderPassesValid;
  2049. } D3D12_FEATURE_DATA_D3D12_OPTIONS18;
  2050. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19
  2051. {
  2052. BOOL MismatchingOutputDimensionsSupported;
  2053. UINT SupportedSampleCountsWithNoOutputs;
  2054. BOOL PointSamplingAddressesNeverRoundUp;
  2055. BOOL RasterizerDesc2Supported;
  2056. BOOL NarrowQuadrilateralLinesSupported;
  2057. BOOL AnisoFilterWithPointMipSupported;
  2058. UINT MaxSamplerDescriptorHeapSize;
  2059. UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers;
  2060. UINT MaxViewDescriptorHeapSize;
  2061. _Out_ BOOL ComputeOnlyCustomHeapSupported;
  2062. } D3D12_FEATURE_DATA_D3D12_OPTIONS19;
  2063. typedef
  2064. enum D3D12_RECREATE_AT_TIER
  2065. {
  2066. D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0,
  2067. D3D12_RECREATE_AT_TIER_1 = 1
  2068. } D3D12_RECREATE_AT_TIER;
  2069. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20
  2070. {
  2071. _Out_ BOOL ComputeOnlyWriteWatchSupported;
  2072. D3D12_RECREATE_AT_TIER RecreateAtTier;
  2073. } D3D12_FEATURE_DATA_D3D12_OPTIONS20;
  2074. typedef
  2075. enum D3D12_EXECUTE_INDIRECT_TIER
  2076. {
  2077. D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10,
  2078. D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11
  2079. } D3D12_EXECUTE_INDIRECT_TIER;
  2080. typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21
  2081. {
  2082. _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier;
  2083. _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier;
  2084. _Out_ BOOL SampleCmpGradientAndBiasSupported;
  2085. _Out_ BOOL ExtendedCommandInfoSupported;
  2086. } D3D12_FEATURE_DATA_D3D12_OPTIONS21;
  2087. typedef
  2088. enum D3D12_TIGHT_ALIGNMENT_TIER
  2089. {
  2090. D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0,
  2091. D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 )
  2092. } D3D12_TIGHT_ALIGNMENT_TIER;
  2093. typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT
  2094. {
  2095. _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier;
  2096. } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT;
  2097. typedef struct D3D12_FEATURE_DATA_PREDICATION
  2098. {
  2099. _Out_ BOOL Supported;
  2100. } D3D12_FEATURE_DATA_PREDICATION;
  2101. typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY
  2102. {
  2103. _Out_ BOOL Supported;
  2104. } D3D12_FEATURE_DATA_HARDWARE_COPY;
  2105. typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE
  2106. {
  2107. _Out_ BOOL Supported;
  2108. } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE;
  2109. typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED
  2110. {
  2111. _Out_ BOOL Supported;
  2112. } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED;
  2113. typedef struct D3D12_RESOURCE_ALLOCATION_INFO
  2114. {
  2115. UINT64 SizeInBytes;
  2116. UINT64 Alignment;
  2117. } D3D12_RESOURCE_ALLOCATION_INFO;
  2118. typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
  2119. {
  2120. UINT64 Offset;
  2121. UINT64 Alignment;
  2122. UINT64 SizeInBytes;
  2123. } D3D12_RESOURCE_ALLOCATION_INFO1;
  2124. typedef
  2125. enum D3D12_HEAP_TYPE
  2126. {
  2127. D3D12_HEAP_TYPE_DEFAULT = 1,
  2128. D3D12_HEAP_TYPE_UPLOAD = 2,
  2129. D3D12_HEAP_TYPE_READBACK = 3,
  2130. D3D12_HEAP_TYPE_CUSTOM = 4,
  2131. D3D12_HEAP_TYPE_GPU_UPLOAD = 5
  2132. } D3D12_HEAP_TYPE;
  2133. typedef
  2134. enum D3D12_CPU_PAGE_PROPERTY
  2135. {
  2136. D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
  2137. D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
  2138. D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
  2139. D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
  2140. } D3D12_CPU_PAGE_PROPERTY;
  2141. typedef
  2142. enum D3D12_MEMORY_POOL
  2143. {
  2144. D3D12_MEMORY_POOL_UNKNOWN = 0,
  2145. D3D12_MEMORY_POOL_L0 = 1,
  2146. D3D12_MEMORY_POOL_L1 = 2
  2147. } D3D12_MEMORY_POOL;
  2148. typedef struct D3D12_HEAP_PROPERTIES
  2149. {
  2150. D3D12_HEAP_TYPE Type;
  2151. D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
  2152. D3D12_MEMORY_POOL MemoryPoolPreference;
  2153. UINT CreationNodeMask;
  2154. UINT VisibleNodeMask;
  2155. } D3D12_HEAP_PROPERTIES;
  2156. typedef
  2157. enum D3D12_HEAP_FLAGS
  2158. {
  2159. D3D12_HEAP_FLAG_NONE = 0,
  2160. D3D12_HEAP_FLAG_SHARED = 0x1,
  2161. D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
  2162. D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
  2163. D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
  2164. D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
  2165. D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
  2166. D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
  2167. D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
  2168. D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
  2169. D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
  2170. D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
  2171. D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000,
  2172. D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
  2173. D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
  2174. D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
  2175. D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
  2176. } D3D12_HEAP_FLAGS;
  2177. DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS )
  2178. typedef struct D3D12_HEAP_DESC
  2179. {
  2180. UINT64 SizeInBytes;
  2181. D3D12_HEAP_PROPERTIES Properties;
  2182. UINT64 Alignment;
  2183. D3D12_HEAP_FLAGS Flags;
  2184. } D3D12_HEAP_DESC;
  2185. typedef
  2186. enum D3D12_RESOURCE_DIMENSION
  2187. {
  2188. D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
  2189. D3D12_RESOURCE_DIMENSION_BUFFER = 1,
  2190. D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
  2191. D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
  2192. D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
  2193. } D3D12_RESOURCE_DIMENSION;
  2194. typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO
  2195. {
  2196. _In_ DXGI_FORMAT Format;
  2197. _In_ D3D12_RESOURCE_DIMENSION Dimension;
  2198. _In_ D3D12_HEAP_PROPERTIES DestHeapProperties;
  2199. _Out_ BOOL Supported;
  2200. } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO;
  2201. typedef
  2202. enum D3D12_TEXTURE_LAYOUT
  2203. {
  2204. D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
  2205. D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
  2206. D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
  2207. D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
  2208. } D3D12_TEXTURE_LAYOUT;
  2209. typedef
  2210. enum D3D12_RESOURCE_FLAGS
  2211. {
  2212. D3D12_RESOURCE_FLAG_NONE = 0,
  2213. D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
  2214. D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
  2215. D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
  2216. D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
  2217. D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
  2218. D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
  2219. D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
  2220. D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
  2221. D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100,
  2222. D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400
  2223. } D3D12_RESOURCE_FLAGS;
  2224. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )
  2225. typedef struct D3D12_MIP_REGION
  2226. {
  2227. UINT Width;
  2228. UINT Height;
  2229. UINT Depth;
  2230. } D3D12_MIP_REGION;
  2231. typedef struct D3D12_RESOURCE_DESC
  2232. {
  2233. D3D12_RESOURCE_DIMENSION Dimension;
  2234. UINT64 Alignment;
  2235. UINT64 Width;
  2236. UINT Height;
  2237. UINT16 DepthOrArraySize;
  2238. UINT16 MipLevels;
  2239. DXGI_FORMAT Format;
  2240. DXGI_SAMPLE_DESC SampleDesc;
  2241. D3D12_TEXTURE_LAYOUT Layout;
  2242. D3D12_RESOURCE_FLAGS Flags;
  2243. } D3D12_RESOURCE_DESC;
  2244. typedef struct D3D12_RESOURCE_DESC1
  2245. {
  2246. D3D12_RESOURCE_DIMENSION Dimension;
  2247. UINT64 Alignment;
  2248. UINT64 Width;
  2249. UINT Height;
  2250. UINT16 DepthOrArraySize;
  2251. UINT16 MipLevels;
  2252. DXGI_FORMAT Format;
  2253. DXGI_SAMPLE_DESC SampleDesc;
  2254. D3D12_TEXTURE_LAYOUT Layout;
  2255. D3D12_RESOURCE_FLAGS Flags;
  2256. D3D12_MIP_REGION SamplerFeedbackMipRegion;
  2257. } D3D12_RESOURCE_DESC1;
  2258. typedef struct D3D12_DEPTH_STENCIL_VALUE
  2259. {
  2260. FLOAT Depth;
  2261. UINT8 Stencil;
  2262. } D3D12_DEPTH_STENCIL_VALUE;
  2263. typedef struct D3D12_CLEAR_VALUE
  2264. {
  2265. DXGI_FORMAT Format;
  2266. union
  2267. {
  2268. FLOAT Color[ 4 ];
  2269. D3D12_DEPTH_STENCIL_VALUE DepthStencil;
  2270. } ;
  2271. } D3D12_CLEAR_VALUE;
  2272. typedef struct D3D12_RANGE
  2273. {
  2274. SIZE_T Begin;
  2275. SIZE_T End;
  2276. } D3D12_RANGE;
  2277. typedef struct D3D12_RANGE_UINT64
  2278. {
  2279. UINT64 Begin;
  2280. UINT64 End;
  2281. } D3D12_RANGE_UINT64;
  2282. typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
  2283. {
  2284. UINT Subresource;
  2285. D3D12_RANGE_UINT64 Range;
  2286. } D3D12_SUBRESOURCE_RANGE_UINT64;
  2287. typedef struct D3D12_SUBRESOURCE_INFO
  2288. {
  2289. UINT64 Offset;
  2290. UINT RowPitch;
  2291. UINT DepthPitch;
  2292. } D3D12_SUBRESOURCE_INFO;
  2293. typedef struct D3D12_TILED_RESOURCE_COORDINATE
  2294. {
  2295. UINT X;
  2296. UINT Y;
  2297. UINT Z;
  2298. UINT Subresource;
  2299. } D3D12_TILED_RESOURCE_COORDINATE;
  2300. typedef struct D3D12_TILE_REGION_SIZE
  2301. {
  2302. UINT NumTiles;
  2303. BOOL UseBox;
  2304. UINT Width;
  2305. UINT16 Height;
  2306. UINT16 Depth;
  2307. } D3D12_TILE_REGION_SIZE;
  2308. typedef
  2309. enum D3D12_TILE_RANGE_FLAGS
  2310. {
  2311. D3D12_TILE_RANGE_FLAG_NONE = 0,
  2312. D3D12_TILE_RANGE_FLAG_NULL = 1,
  2313. D3D12_TILE_RANGE_FLAG_SKIP = 2,
  2314. D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4
  2315. } D3D12_TILE_RANGE_FLAGS;
  2316. typedef struct D3D12_SUBRESOURCE_TILING
  2317. {
  2318. UINT WidthInTiles;
  2319. UINT16 HeightInTiles;
  2320. UINT16 DepthInTiles;
  2321. UINT StartTileIndexInOverallResource;
  2322. } D3D12_SUBRESOURCE_TILING;
  2323. typedef struct D3D12_TILE_SHAPE
  2324. {
  2325. UINT WidthInTexels;
  2326. UINT HeightInTexels;
  2327. UINT DepthInTexels;
  2328. } D3D12_TILE_SHAPE;
  2329. typedef struct D3D12_PACKED_MIP_INFO
  2330. {
  2331. UINT8 NumStandardMips;
  2332. UINT8 NumPackedMips;
  2333. UINT NumTilesForPackedMips;
  2334. UINT StartTileIndexInOverallResource;
  2335. } D3D12_PACKED_MIP_INFO;
  2336. typedef
  2337. enum D3D12_TILE_MAPPING_FLAGS
  2338. {
  2339. D3D12_TILE_MAPPING_FLAG_NONE = 0,
  2340. D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
  2341. } D3D12_TILE_MAPPING_FLAGS;
  2342. DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS )
  2343. typedef
  2344. enum D3D12_TILE_COPY_FLAGS
  2345. {
  2346. D3D12_TILE_COPY_FLAG_NONE = 0,
  2347. D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
  2348. D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
  2349. D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
  2350. } D3D12_TILE_COPY_FLAGS;
  2351. DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS )
  2352. typedef
  2353. enum D3D12_RESOURCE_STATES
  2354. {
  2355. D3D12_RESOURCE_STATE_COMMON = 0,
  2356. D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
  2357. D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
  2358. D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
  2359. D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
  2360. D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
  2361. D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
  2362. D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
  2363. D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
  2364. D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
  2365. D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
  2366. D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
  2367. D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
  2368. D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
  2369. D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
  2370. D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
  2371. D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
  2372. D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000,
  2373. D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000,
  2374. D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000,
  2375. D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000,
  2376. D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000,
  2377. D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) ,
  2378. D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) ,
  2379. D3D12_RESOURCE_STATE_PRESENT = 0,
  2380. D3D12_RESOURCE_STATE_PREDICATION = 0x200,
  2381. D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
  2382. D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
  2383. D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
  2384. D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
  2385. D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
  2386. D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
  2387. } D3D12_RESOURCE_STATES;
  2388. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES )
  2389. typedef
  2390. enum D3D12_RESOURCE_BARRIER_TYPE
  2391. {
  2392. D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
  2393. D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) ,
  2394. D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 )
  2395. } D3D12_RESOURCE_BARRIER_TYPE;
  2396. typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
  2397. {
  2398. ID3D12Resource *pResource;
  2399. UINT Subresource;
  2400. D3D12_RESOURCE_STATES StateBefore;
  2401. D3D12_RESOURCE_STATES StateAfter;
  2402. } D3D12_RESOURCE_TRANSITION_BARRIER;
  2403. typedef struct D3D12_RESOURCE_ALIASING_BARRIER
  2404. {
  2405. ID3D12Resource *pResourceBefore;
  2406. ID3D12Resource *pResourceAfter;
  2407. } D3D12_RESOURCE_ALIASING_BARRIER;
  2408. typedef struct D3D12_RESOURCE_UAV_BARRIER
  2409. {
  2410. ID3D12Resource *pResource;
  2411. } D3D12_RESOURCE_UAV_BARRIER;
  2412. typedef
  2413. enum D3D12_RESOURCE_BARRIER_FLAGS
  2414. {
  2415. D3D12_RESOURCE_BARRIER_FLAG_NONE = 0,
  2416. D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
  2417. D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
  2418. } D3D12_RESOURCE_BARRIER_FLAGS;
  2419. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS )
  2420. typedef struct D3D12_RESOURCE_BARRIER
  2421. {
  2422. D3D12_RESOURCE_BARRIER_TYPE Type;
  2423. D3D12_RESOURCE_BARRIER_FLAGS Flags;
  2424. union
  2425. {
  2426. D3D12_RESOURCE_TRANSITION_BARRIER Transition;
  2427. D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
  2428. D3D12_RESOURCE_UAV_BARRIER UAV;
  2429. } ;
  2430. } D3D12_RESOURCE_BARRIER;
  2431. typedef struct D3D12_SUBRESOURCE_FOOTPRINT
  2432. {
  2433. DXGI_FORMAT Format;
  2434. UINT Width;
  2435. UINT Height;
  2436. UINT Depth;
  2437. UINT RowPitch;
  2438. } D3D12_SUBRESOURCE_FOOTPRINT;
  2439. typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
  2440. {
  2441. UINT64 Offset;
  2442. D3D12_SUBRESOURCE_FOOTPRINT Footprint;
  2443. } D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
  2444. typedef
  2445. enum D3D12_TEXTURE_COPY_TYPE
  2446. {
  2447. D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
  2448. D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
  2449. } D3D12_TEXTURE_COPY_TYPE;
  2450. typedef struct D3D12_TEXTURE_COPY_LOCATION
  2451. {
  2452. ID3D12Resource *pResource;
  2453. D3D12_TEXTURE_COPY_TYPE Type;
  2454. union
  2455. {
  2456. D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
  2457. UINT SubresourceIndex;
  2458. } ;
  2459. } D3D12_TEXTURE_COPY_LOCATION;
  2460. typedef
  2461. enum D3D12_RESOLVE_MODE
  2462. {
  2463. D3D12_RESOLVE_MODE_DECOMPRESS = 0,
  2464. D3D12_RESOLVE_MODE_MIN = 1,
  2465. D3D12_RESOLVE_MODE_MAX = 2,
  2466. D3D12_RESOLVE_MODE_AVERAGE = 3,
  2467. D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
  2468. D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
  2469. } D3D12_RESOLVE_MODE;
  2470. typedef struct D3D12_SAMPLE_POSITION
  2471. {
  2472. INT8 X;
  2473. INT8 Y;
  2474. } D3D12_SAMPLE_POSITION;
  2475. typedef struct D3D12_VIEW_INSTANCE_LOCATION
  2476. {
  2477. UINT ViewportArrayIndex;
  2478. UINT RenderTargetArrayIndex;
  2479. } D3D12_VIEW_INSTANCE_LOCATION;
  2480. typedef
  2481. enum D3D12_VIEW_INSTANCING_FLAGS
  2482. {
  2483. D3D12_VIEW_INSTANCING_FLAG_NONE = 0,
  2484. D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
  2485. } D3D12_VIEW_INSTANCING_FLAGS;
  2486. DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS )
  2487. typedef struct D3D12_VIEW_INSTANCING_DESC
  2488. {
  2489. UINT ViewInstanceCount;
  2490. _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
  2491. D3D12_VIEW_INSTANCING_FLAGS Flags;
  2492. } D3D12_VIEW_INSTANCING_DESC;
  2493. typedef
  2494. enum D3D12_SHADER_COMPONENT_MAPPING
  2495. {
  2496. D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
  2497. D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
  2498. D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
  2499. D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
  2500. D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
  2501. D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
  2502. } D3D12_SHADER_COMPONENT_MAPPING;
  2503. #define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
  2504. #define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
  2505. #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
  2506. #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
  2507. (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
  2508. (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
  2509. (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
  2510. D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
  2511. #define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
  2512. #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
  2513. typedef
  2514. enum D3D12_BUFFER_SRV_FLAGS
  2515. {
  2516. D3D12_BUFFER_SRV_FLAG_NONE = 0,
  2517. D3D12_BUFFER_SRV_FLAG_RAW = 0x1
  2518. } D3D12_BUFFER_SRV_FLAGS;
  2519. DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS )
  2520. typedef struct D3D12_BUFFER_SRV
  2521. {
  2522. UINT64 FirstElement;
  2523. UINT NumElements;
  2524. UINT StructureByteStride;
  2525. D3D12_BUFFER_SRV_FLAGS Flags;
  2526. } D3D12_BUFFER_SRV;
  2527. typedef struct D3D12_TEX1D_SRV
  2528. {
  2529. UINT MostDetailedMip;
  2530. UINT MipLevels;
  2531. FLOAT ResourceMinLODClamp;
  2532. } D3D12_TEX1D_SRV;
  2533. typedef struct D3D12_TEX1D_ARRAY_SRV
  2534. {
  2535. UINT MostDetailedMip;
  2536. UINT MipLevels;
  2537. UINT FirstArraySlice;
  2538. UINT ArraySize;
  2539. FLOAT ResourceMinLODClamp;
  2540. } D3D12_TEX1D_ARRAY_SRV;
  2541. typedef struct D3D12_TEX2D_SRV
  2542. {
  2543. UINT MostDetailedMip;
  2544. UINT MipLevels;
  2545. UINT PlaneSlice;
  2546. FLOAT ResourceMinLODClamp;
  2547. } D3D12_TEX2D_SRV;
  2548. typedef struct D3D12_TEX2D_ARRAY_SRV
  2549. {
  2550. UINT MostDetailedMip;
  2551. UINT MipLevels;
  2552. UINT FirstArraySlice;
  2553. UINT ArraySize;
  2554. UINT PlaneSlice;
  2555. FLOAT ResourceMinLODClamp;
  2556. } D3D12_TEX2D_ARRAY_SRV;
  2557. typedef struct D3D12_TEX3D_SRV
  2558. {
  2559. UINT MostDetailedMip;
  2560. UINT MipLevels;
  2561. FLOAT ResourceMinLODClamp;
  2562. } D3D12_TEX3D_SRV;
  2563. typedef struct D3D12_TEXCUBE_SRV
  2564. {
  2565. UINT MostDetailedMip;
  2566. UINT MipLevels;
  2567. FLOAT ResourceMinLODClamp;
  2568. } D3D12_TEXCUBE_SRV;
  2569. typedef struct D3D12_TEXCUBE_ARRAY_SRV
  2570. {
  2571. UINT MostDetailedMip;
  2572. UINT MipLevels;
  2573. UINT First2DArrayFace;
  2574. UINT NumCubes;
  2575. FLOAT ResourceMinLODClamp;
  2576. } D3D12_TEXCUBE_ARRAY_SRV;
  2577. typedef struct D3D12_TEX2DMS_SRV
  2578. {
  2579. UINT UnusedField_NothingToDefine;
  2580. } D3D12_TEX2DMS_SRV;
  2581. typedef struct D3D12_TEX2DMS_ARRAY_SRV
  2582. {
  2583. UINT FirstArraySlice;
  2584. UINT ArraySize;
  2585. } D3D12_TEX2DMS_ARRAY_SRV;
  2586. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
  2587. {
  2588. D3D12_GPU_VIRTUAL_ADDRESS Location;
  2589. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
  2590. typedef
  2591. enum D3D12_SRV_DIMENSION
  2592. {
  2593. D3D12_SRV_DIMENSION_UNKNOWN = 0,
  2594. D3D12_SRV_DIMENSION_BUFFER = 1,
  2595. D3D12_SRV_DIMENSION_TEXTURE1D = 2,
  2596. D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
  2597. D3D12_SRV_DIMENSION_TEXTURE2D = 4,
  2598. D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
  2599. D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
  2600. D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
  2601. D3D12_SRV_DIMENSION_TEXTURE3D = 8,
  2602. D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
  2603. D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
  2604. D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
  2605. } D3D12_SRV_DIMENSION;
  2606. typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
  2607. {
  2608. DXGI_FORMAT Format;
  2609. D3D12_SRV_DIMENSION ViewDimension;
  2610. UINT Shader4ComponentMapping;
  2611. union
  2612. {
  2613. D3D12_BUFFER_SRV Buffer;
  2614. D3D12_TEX1D_SRV Texture1D;
  2615. D3D12_TEX1D_ARRAY_SRV Texture1DArray;
  2616. D3D12_TEX2D_SRV Texture2D;
  2617. D3D12_TEX2D_ARRAY_SRV Texture2DArray;
  2618. D3D12_TEX2DMS_SRV Texture2DMS;
  2619. D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
  2620. D3D12_TEX3D_SRV Texture3D;
  2621. D3D12_TEXCUBE_SRV TextureCube;
  2622. D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
  2623. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
  2624. } ;
  2625. } D3D12_SHADER_RESOURCE_VIEW_DESC;
  2626. typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
  2627. {
  2628. D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
  2629. UINT SizeInBytes;
  2630. } D3D12_CONSTANT_BUFFER_VIEW_DESC;
  2631. typedef
  2632. enum D3D12_FILTER
  2633. {
  2634. D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
  2635. D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
  2636. D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
  2637. D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
  2638. D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
  2639. D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
  2640. D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
  2641. D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
  2642. D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54,
  2643. D3D12_FILTER_ANISOTROPIC = 0x55,
  2644. D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
  2645. D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
  2646. D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
  2647. D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
  2648. D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
  2649. D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
  2650. D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
  2651. D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
  2652. D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4,
  2653. D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
  2654. D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
  2655. D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
  2656. D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
  2657. D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
  2658. D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
  2659. D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
  2660. D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
  2661. D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
  2662. D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154,
  2663. D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
  2664. D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
  2665. D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
  2666. D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
  2667. D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
  2668. D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
  2669. D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
  2670. D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
  2671. D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
  2672. D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4,
  2673. D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
  2674. } D3D12_FILTER;
  2675. typedef
  2676. enum D3D12_FILTER_TYPE
  2677. {
  2678. D3D12_FILTER_TYPE_POINT = 0,
  2679. D3D12_FILTER_TYPE_LINEAR = 1
  2680. } D3D12_FILTER_TYPE;
  2681. typedef
  2682. enum D3D12_FILTER_REDUCTION_TYPE
  2683. {
  2684. D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
  2685. D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
  2686. D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
  2687. D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
  2688. } D3D12_FILTER_REDUCTION_TYPE;
  2689. #define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
  2690. #define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
  2691. #define D3D12_FILTER_TYPE_MASK ( 0x3 )
  2692. #define D3D12_MIN_FILTER_SHIFT ( 4 )
  2693. #define D3D12_MAG_FILTER_SHIFT ( 2 )
  2694. #define D3D12_MIP_FILTER_SHIFT ( 0 )
  2695. #define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
  2696. #define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
  2697. ( ( D3D12_FILTER ) ( \
  2698. ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
  2699. ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
  2700. ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
  2701. ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
  2702. #define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
  2703. ( ( D3D12_FILTER ) ( \
  2704. D3D12_ANISOTROPIC_FILTERING_BIT | \
  2705. D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
  2706. D3D12_FILTER_TYPE_LINEAR, \
  2707. D3D12_FILTER_TYPE_LINEAR, \
  2708. reduction ) ) )
  2709. #define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \
  2710. ( ( D3D12_FILTER ) ( \
  2711. D3D12_ANISOTROPIC_FILTERING_BIT | \
  2712. D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
  2713. D3D12_FILTER_TYPE_LINEAR, \
  2714. D3D12_FILTER_TYPE_POINT, \
  2715. reduction ) ) )
  2716. #define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
  2717. ( ( D3D12_FILTER_TYPE ) \
  2718. ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
  2719. #define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
  2720. ( ( D3D12_FILTER_TYPE ) \
  2721. ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
  2722. #define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
  2723. ( ( D3D12_FILTER_TYPE ) \
  2724. ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
  2725. #define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
  2726. ( ( D3D12_FILTER_REDUCTION_TYPE ) \
  2727. ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
  2728. #define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
  2729. ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
  2730. #define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
  2731. ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
  2732. ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
  2733. ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) )
  2734. typedef
  2735. enum D3D12_TEXTURE_ADDRESS_MODE
  2736. {
  2737. D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
  2738. D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
  2739. D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
  2740. D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
  2741. D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
  2742. } D3D12_TEXTURE_ADDRESS_MODE;
  2743. typedef struct D3D12_SAMPLER_DESC
  2744. {
  2745. D3D12_FILTER Filter;
  2746. D3D12_TEXTURE_ADDRESS_MODE AddressU;
  2747. D3D12_TEXTURE_ADDRESS_MODE AddressV;
  2748. D3D12_TEXTURE_ADDRESS_MODE AddressW;
  2749. FLOAT MipLODBias;
  2750. UINT MaxAnisotropy;
  2751. D3D12_COMPARISON_FUNC ComparisonFunc;
  2752. FLOAT BorderColor[ 4 ];
  2753. FLOAT MinLOD;
  2754. FLOAT MaxLOD;
  2755. } D3D12_SAMPLER_DESC;
  2756. typedef
  2757. enum D3D12_SAMPLER_FLAGS
  2758. {
  2759. D3D12_SAMPLER_FLAG_NONE = 0,
  2760. D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1,
  2761. D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2
  2762. } D3D12_SAMPLER_FLAGS;
  2763. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS )
  2764. typedef struct D3D12_SAMPLER_DESC2
  2765. {
  2766. D3D12_FILTER Filter;
  2767. D3D12_TEXTURE_ADDRESS_MODE AddressU;
  2768. D3D12_TEXTURE_ADDRESS_MODE AddressV;
  2769. D3D12_TEXTURE_ADDRESS_MODE AddressW;
  2770. FLOAT MipLODBias;
  2771. UINT MaxAnisotropy;
  2772. D3D12_COMPARISON_FUNC ComparisonFunc;
  2773. union
  2774. {
  2775. FLOAT FloatBorderColor[ 4 ];
  2776. UINT UintBorderColor[ 4 ];
  2777. } ;
  2778. FLOAT MinLOD;
  2779. FLOAT MaxLOD;
  2780. D3D12_SAMPLER_FLAGS Flags;
  2781. } D3D12_SAMPLER_DESC2;
  2782. typedef
  2783. enum D3D12_BUFFER_UAV_FLAGS
  2784. {
  2785. D3D12_BUFFER_UAV_FLAG_NONE = 0,
  2786. D3D12_BUFFER_UAV_FLAG_RAW = 0x1
  2787. } D3D12_BUFFER_UAV_FLAGS;
  2788. DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS )
  2789. typedef struct D3D12_BUFFER_UAV
  2790. {
  2791. UINT64 FirstElement;
  2792. UINT NumElements;
  2793. UINT StructureByteStride;
  2794. UINT64 CounterOffsetInBytes;
  2795. D3D12_BUFFER_UAV_FLAGS Flags;
  2796. } D3D12_BUFFER_UAV;
  2797. typedef struct D3D12_TEX1D_UAV
  2798. {
  2799. UINT MipSlice;
  2800. } D3D12_TEX1D_UAV;
  2801. typedef struct D3D12_TEX1D_ARRAY_UAV
  2802. {
  2803. UINT MipSlice;
  2804. UINT FirstArraySlice;
  2805. UINT ArraySize;
  2806. } D3D12_TEX1D_ARRAY_UAV;
  2807. typedef struct D3D12_TEX2D_UAV
  2808. {
  2809. UINT MipSlice;
  2810. UINT PlaneSlice;
  2811. } D3D12_TEX2D_UAV;
  2812. typedef struct D3D12_TEX2D_ARRAY_UAV
  2813. {
  2814. UINT MipSlice;
  2815. UINT FirstArraySlice;
  2816. UINT ArraySize;
  2817. UINT PlaneSlice;
  2818. } D3D12_TEX2D_ARRAY_UAV;
  2819. typedef struct D3D12_TEX2DMS_UAV
  2820. {
  2821. UINT UnusedField_NothingToDefine;
  2822. } D3D12_TEX2DMS_UAV;
  2823. typedef struct D3D12_TEX2DMS_ARRAY_UAV
  2824. {
  2825. UINT FirstArraySlice;
  2826. UINT ArraySize;
  2827. } D3D12_TEX2DMS_ARRAY_UAV;
  2828. typedef struct D3D12_TEX3D_UAV
  2829. {
  2830. UINT MipSlice;
  2831. UINT FirstWSlice;
  2832. UINT WSize;
  2833. } D3D12_TEX3D_UAV;
  2834. typedef
  2835. enum D3D12_UAV_DIMENSION
  2836. {
  2837. D3D12_UAV_DIMENSION_UNKNOWN = 0,
  2838. D3D12_UAV_DIMENSION_BUFFER = 1,
  2839. D3D12_UAV_DIMENSION_TEXTURE1D = 2,
  2840. D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
  2841. D3D12_UAV_DIMENSION_TEXTURE2D = 4,
  2842. D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
  2843. D3D12_UAV_DIMENSION_TEXTURE2DMS = 6,
  2844. D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7,
  2845. D3D12_UAV_DIMENSION_TEXTURE3D = 8
  2846. } D3D12_UAV_DIMENSION;
  2847. typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
  2848. {
  2849. DXGI_FORMAT Format;
  2850. D3D12_UAV_DIMENSION ViewDimension;
  2851. union
  2852. {
  2853. D3D12_BUFFER_UAV Buffer;
  2854. D3D12_TEX1D_UAV Texture1D;
  2855. D3D12_TEX1D_ARRAY_UAV Texture1DArray;
  2856. D3D12_TEX2D_UAV Texture2D;
  2857. D3D12_TEX2D_ARRAY_UAV Texture2DArray;
  2858. D3D12_TEX2DMS_UAV Texture2DMS;
  2859. D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray;
  2860. D3D12_TEX3D_UAV Texture3D;
  2861. } ;
  2862. } D3D12_UNORDERED_ACCESS_VIEW_DESC;
  2863. typedef struct D3D12_BUFFER_RTV
  2864. {
  2865. UINT64 FirstElement;
  2866. UINT NumElements;
  2867. } D3D12_BUFFER_RTV;
  2868. typedef struct D3D12_TEX1D_RTV
  2869. {
  2870. UINT MipSlice;
  2871. } D3D12_TEX1D_RTV;
  2872. typedef struct D3D12_TEX1D_ARRAY_RTV
  2873. {
  2874. UINT MipSlice;
  2875. UINT FirstArraySlice;
  2876. UINT ArraySize;
  2877. } D3D12_TEX1D_ARRAY_RTV;
  2878. typedef struct D3D12_TEX2D_RTV
  2879. {
  2880. UINT MipSlice;
  2881. UINT PlaneSlice;
  2882. } D3D12_TEX2D_RTV;
  2883. typedef struct D3D12_TEX2DMS_RTV
  2884. {
  2885. UINT UnusedField_NothingToDefine;
  2886. } D3D12_TEX2DMS_RTV;
  2887. typedef struct D3D12_TEX2D_ARRAY_RTV
  2888. {
  2889. UINT MipSlice;
  2890. UINT FirstArraySlice;
  2891. UINT ArraySize;
  2892. UINT PlaneSlice;
  2893. } D3D12_TEX2D_ARRAY_RTV;
  2894. typedef struct D3D12_TEX2DMS_ARRAY_RTV
  2895. {
  2896. UINT FirstArraySlice;
  2897. UINT ArraySize;
  2898. } D3D12_TEX2DMS_ARRAY_RTV;
  2899. typedef struct D3D12_TEX3D_RTV
  2900. {
  2901. UINT MipSlice;
  2902. UINT FirstWSlice;
  2903. UINT WSize;
  2904. } D3D12_TEX3D_RTV;
  2905. typedef
  2906. enum D3D12_RTV_DIMENSION
  2907. {
  2908. D3D12_RTV_DIMENSION_UNKNOWN = 0,
  2909. D3D12_RTV_DIMENSION_BUFFER = 1,
  2910. D3D12_RTV_DIMENSION_TEXTURE1D = 2,
  2911. D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
  2912. D3D12_RTV_DIMENSION_TEXTURE2D = 4,
  2913. D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
  2914. D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
  2915. D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
  2916. D3D12_RTV_DIMENSION_TEXTURE3D = 8
  2917. } D3D12_RTV_DIMENSION;
  2918. typedef struct D3D12_RENDER_TARGET_VIEW_DESC
  2919. {
  2920. DXGI_FORMAT Format;
  2921. D3D12_RTV_DIMENSION ViewDimension;
  2922. union
  2923. {
  2924. D3D12_BUFFER_RTV Buffer;
  2925. D3D12_TEX1D_RTV Texture1D;
  2926. D3D12_TEX1D_ARRAY_RTV Texture1DArray;
  2927. D3D12_TEX2D_RTV Texture2D;
  2928. D3D12_TEX2D_ARRAY_RTV Texture2DArray;
  2929. D3D12_TEX2DMS_RTV Texture2DMS;
  2930. D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
  2931. D3D12_TEX3D_RTV Texture3D;
  2932. } ;
  2933. } D3D12_RENDER_TARGET_VIEW_DESC;
  2934. typedef struct D3D12_TEX1D_DSV
  2935. {
  2936. UINT MipSlice;
  2937. } D3D12_TEX1D_DSV;
  2938. typedef struct D3D12_TEX1D_ARRAY_DSV
  2939. {
  2940. UINT MipSlice;
  2941. UINT FirstArraySlice;
  2942. UINT ArraySize;
  2943. } D3D12_TEX1D_ARRAY_DSV;
  2944. typedef struct D3D12_TEX2D_DSV
  2945. {
  2946. UINT MipSlice;
  2947. } D3D12_TEX2D_DSV;
  2948. typedef struct D3D12_TEX2D_ARRAY_DSV
  2949. {
  2950. UINT MipSlice;
  2951. UINT FirstArraySlice;
  2952. UINT ArraySize;
  2953. } D3D12_TEX2D_ARRAY_DSV;
  2954. typedef struct D3D12_TEX2DMS_DSV
  2955. {
  2956. UINT UnusedField_NothingToDefine;
  2957. } D3D12_TEX2DMS_DSV;
  2958. typedef struct D3D12_TEX2DMS_ARRAY_DSV
  2959. {
  2960. UINT FirstArraySlice;
  2961. UINT ArraySize;
  2962. } D3D12_TEX2DMS_ARRAY_DSV;
  2963. typedef
  2964. enum D3D12_DSV_FLAGS
  2965. {
  2966. D3D12_DSV_FLAG_NONE = 0,
  2967. D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
  2968. D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
  2969. } D3D12_DSV_FLAGS;
  2970. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS )
  2971. typedef
  2972. enum D3D12_DSV_DIMENSION
  2973. {
  2974. D3D12_DSV_DIMENSION_UNKNOWN = 0,
  2975. D3D12_DSV_DIMENSION_TEXTURE1D = 1,
  2976. D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
  2977. D3D12_DSV_DIMENSION_TEXTURE2D = 3,
  2978. D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
  2979. D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
  2980. D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
  2981. } D3D12_DSV_DIMENSION;
  2982. typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
  2983. {
  2984. DXGI_FORMAT Format;
  2985. D3D12_DSV_DIMENSION ViewDimension;
  2986. D3D12_DSV_FLAGS Flags;
  2987. union
  2988. {
  2989. D3D12_TEX1D_DSV Texture1D;
  2990. D3D12_TEX1D_ARRAY_DSV Texture1DArray;
  2991. D3D12_TEX2D_DSV Texture2D;
  2992. D3D12_TEX2D_ARRAY_DSV Texture2DArray;
  2993. D3D12_TEX2DMS_DSV Texture2DMS;
  2994. D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
  2995. } ;
  2996. } D3D12_DEPTH_STENCIL_VIEW_DESC;
  2997. typedef
  2998. enum D3D12_CLEAR_FLAGS
  2999. {
  3000. D3D12_CLEAR_FLAG_DEPTH = 0x1,
  3001. D3D12_CLEAR_FLAG_STENCIL = 0x2
  3002. } D3D12_CLEAR_FLAGS;
  3003. DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS )
  3004. typedef
  3005. enum D3D12_FENCE_FLAGS
  3006. {
  3007. D3D12_FENCE_FLAG_NONE = 0,
  3008. D3D12_FENCE_FLAG_SHARED = 0x1,
  3009. D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
  3010. D3D12_FENCE_FLAG_NON_MONITORED = 0x4
  3011. } D3D12_FENCE_FLAGS;
  3012. DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS )
  3013. typedef
  3014. enum D3D12_DESCRIPTOR_HEAP_TYPE
  3015. {
  3016. D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
  3017. D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) ,
  3018. D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) ,
  3019. D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) ,
  3020. D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 )
  3021. } D3D12_DESCRIPTOR_HEAP_TYPE;
  3022. typedef
  3023. enum D3D12_DESCRIPTOR_HEAP_FLAGS
  3024. {
  3025. D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
  3026. D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
  3027. } D3D12_DESCRIPTOR_HEAP_FLAGS;
  3028. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS )
  3029. typedef struct D3D12_DESCRIPTOR_HEAP_DESC
  3030. {
  3031. D3D12_DESCRIPTOR_HEAP_TYPE Type;
  3032. UINT NumDescriptors;
  3033. D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
  3034. UINT NodeMask;
  3035. } D3D12_DESCRIPTOR_HEAP_DESC;
  3036. typedef
  3037. enum D3D12_DESCRIPTOR_RANGE_TYPE
  3038. {
  3039. D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
  3040. D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) ,
  3041. D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) ,
  3042. D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 )
  3043. } D3D12_DESCRIPTOR_RANGE_TYPE;
  3044. typedef struct D3D12_DESCRIPTOR_RANGE
  3045. {
  3046. D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
  3047. UINT NumDescriptors;
  3048. UINT BaseShaderRegister;
  3049. UINT RegisterSpace;
  3050. UINT OffsetInDescriptorsFromTableStart;
  3051. } D3D12_DESCRIPTOR_RANGE;
  3052. typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
  3053. {
  3054. UINT NumDescriptorRanges;
  3055. _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
  3056. } D3D12_ROOT_DESCRIPTOR_TABLE;
  3057. typedef struct D3D12_ROOT_CONSTANTS
  3058. {
  3059. UINT ShaderRegister;
  3060. UINT RegisterSpace;
  3061. UINT Num32BitValues;
  3062. } D3D12_ROOT_CONSTANTS;
  3063. typedef struct D3D12_ROOT_DESCRIPTOR
  3064. {
  3065. UINT ShaderRegister;
  3066. UINT RegisterSpace;
  3067. } D3D12_ROOT_DESCRIPTOR;
  3068. typedef
  3069. enum D3D12_SHADER_VISIBILITY
  3070. {
  3071. D3D12_SHADER_VISIBILITY_ALL = 0,
  3072. D3D12_SHADER_VISIBILITY_VERTEX = 1,
  3073. D3D12_SHADER_VISIBILITY_HULL = 2,
  3074. D3D12_SHADER_VISIBILITY_DOMAIN = 3,
  3075. D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
  3076. D3D12_SHADER_VISIBILITY_PIXEL = 5,
  3077. D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
  3078. D3D12_SHADER_VISIBILITY_MESH = 7
  3079. } D3D12_SHADER_VISIBILITY;
  3080. typedef
  3081. enum D3D12_ROOT_PARAMETER_TYPE
  3082. {
  3083. D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
  3084. D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) ,
  3085. D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) ,
  3086. D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) ,
  3087. D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 )
  3088. } D3D12_ROOT_PARAMETER_TYPE;
  3089. typedef struct D3D12_ROOT_PARAMETER
  3090. {
  3091. D3D12_ROOT_PARAMETER_TYPE ParameterType;
  3092. union
  3093. {
  3094. D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
  3095. D3D12_ROOT_CONSTANTS Constants;
  3096. D3D12_ROOT_DESCRIPTOR Descriptor;
  3097. } ;
  3098. D3D12_SHADER_VISIBILITY ShaderVisibility;
  3099. } D3D12_ROOT_PARAMETER;
  3100. typedef
  3101. enum D3D12_ROOT_SIGNATURE_FLAGS
  3102. {
  3103. D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
  3104. D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
  3105. D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
  3106. D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
  3107. D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
  3108. D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
  3109. D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
  3110. D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
  3111. D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
  3112. D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
  3113. D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
  3114. D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
  3115. D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
  3116. } D3D12_ROOT_SIGNATURE_FLAGS;
  3117. DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS )
  3118. typedef
  3119. enum D3D12_STATIC_BORDER_COLOR
  3120. {
  3121. D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
  3122. D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) ,
  3123. D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) ,
  3124. D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) ,
  3125. D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 )
  3126. } D3D12_STATIC_BORDER_COLOR;
  3127. typedef struct D3D12_STATIC_SAMPLER_DESC
  3128. {
  3129. D3D12_FILTER Filter;
  3130. D3D12_TEXTURE_ADDRESS_MODE AddressU;
  3131. D3D12_TEXTURE_ADDRESS_MODE AddressV;
  3132. D3D12_TEXTURE_ADDRESS_MODE AddressW;
  3133. FLOAT MipLODBias;
  3134. UINT MaxAnisotropy;
  3135. D3D12_COMPARISON_FUNC ComparisonFunc;
  3136. D3D12_STATIC_BORDER_COLOR BorderColor;
  3137. FLOAT MinLOD;
  3138. FLOAT MaxLOD;
  3139. UINT ShaderRegister;
  3140. UINT RegisterSpace;
  3141. D3D12_SHADER_VISIBILITY ShaderVisibility;
  3142. } D3D12_STATIC_SAMPLER_DESC;
  3143. typedef struct D3D12_STATIC_SAMPLER_DESC1
  3144. {
  3145. D3D12_FILTER Filter;
  3146. D3D12_TEXTURE_ADDRESS_MODE AddressU;
  3147. D3D12_TEXTURE_ADDRESS_MODE AddressV;
  3148. D3D12_TEXTURE_ADDRESS_MODE AddressW;
  3149. FLOAT MipLODBias;
  3150. UINT MaxAnisotropy;
  3151. D3D12_COMPARISON_FUNC ComparisonFunc;
  3152. D3D12_STATIC_BORDER_COLOR BorderColor;
  3153. FLOAT MinLOD;
  3154. FLOAT MaxLOD;
  3155. UINT ShaderRegister;
  3156. UINT RegisterSpace;
  3157. D3D12_SHADER_VISIBILITY ShaderVisibility;
  3158. D3D12_SAMPLER_FLAGS Flags;
  3159. } D3D12_STATIC_SAMPLER_DESC1;
  3160. typedef struct D3D12_ROOT_SIGNATURE_DESC
  3161. {
  3162. UINT NumParameters;
  3163. _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters;
  3164. UINT NumStaticSamplers;
  3165. _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
  3166. D3D12_ROOT_SIGNATURE_FLAGS Flags;
  3167. } D3D12_ROOT_SIGNATURE_DESC;
  3168. typedef
  3169. enum D3D12_DESCRIPTOR_RANGE_FLAGS
  3170. {
  3171. D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
  3172. D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
  3173. D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
  3174. D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
  3175. D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
  3176. D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
  3177. } D3D12_DESCRIPTOR_RANGE_FLAGS;
  3178. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS )
  3179. typedef struct D3D12_DESCRIPTOR_RANGE1
  3180. {
  3181. D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
  3182. UINT NumDescriptors;
  3183. UINT BaseShaderRegister;
  3184. UINT RegisterSpace;
  3185. D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
  3186. UINT OffsetInDescriptorsFromTableStart;
  3187. } D3D12_DESCRIPTOR_RANGE1;
  3188. typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
  3189. {
  3190. UINT NumDescriptorRanges;
  3191. _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
  3192. } D3D12_ROOT_DESCRIPTOR_TABLE1;
  3193. typedef
  3194. enum D3D12_ROOT_DESCRIPTOR_FLAGS
  3195. {
  3196. D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
  3197. D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
  3198. D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
  3199. D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
  3200. } D3D12_ROOT_DESCRIPTOR_FLAGS;
  3201. DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS )
  3202. typedef struct D3D12_ROOT_DESCRIPTOR1
  3203. {
  3204. UINT ShaderRegister;
  3205. UINT RegisterSpace;
  3206. D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
  3207. } D3D12_ROOT_DESCRIPTOR1;
  3208. typedef struct D3D12_ROOT_PARAMETER1
  3209. {
  3210. D3D12_ROOT_PARAMETER_TYPE ParameterType;
  3211. union
  3212. {
  3213. D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
  3214. D3D12_ROOT_CONSTANTS Constants;
  3215. D3D12_ROOT_DESCRIPTOR1 Descriptor;
  3216. } ;
  3217. D3D12_SHADER_VISIBILITY ShaderVisibility;
  3218. } D3D12_ROOT_PARAMETER1;
  3219. typedef struct D3D12_ROOT_SIGNATURE_DESC1
  3220. {
  3221. UINT NumParameters;
  3222. _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
  3223. UINT NumStaticSamplers;
  3224. _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
  3225. D3D12_ROOT_SIGNATURE_FLAGS Flags;
  3226. } D3D12_ROOT_SIGNATURE_DESC1;
  3227. typedef struct D3D12_ROOT_SIGNATURE_DESC2
  3228. {
  3229. UINT NumParameters;
  3230. _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
  3231. UINT NumStaticSamplers;
  3232. _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers;
  3233. D3D12_ROOT_SIGNATURE_FLAGS Flags;
  3234. } D3D12_ROOT_SIGNATURE_DESC2;
  3235. typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
  3236. {
  3237. D3D_ROOT_SIGNATURE_VERSION Version;
  3238. union
  3239. {
  3240. D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
  3241. D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
  3242. D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2;
  3243. } ;
  3244. } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
  3245. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec;
  3246. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec;
  3247. #ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
  3248. #define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
  3249. /* interface ID3D12RootSignatureDeserializer */
  3250. /* [unique][local][object][uuid] */
  3251. EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
  3252. #if defined(__cplusplus) && !defined(CINTERFACE)
  3253. MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046")
  3254. ID3D12RootSignatureDeserializer : public IUnknown
  3255. {
  3256. public:
  3257. virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0;
  3258. };
  3259. #else /* C style interface */
  3260. typedef struct ID3D12RootSignatureDeserializerVtbl
  3261. {
  3262. BEGIN_INTERFACE
  3263. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  3264. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3265. ID3D12RootSignatureDeserializer * This,
  3266. REFIID riid,
  3267. _COM_Outptr_ void **ppvObject);
  3268. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  3269. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3270. ID3D12RootSignatureDeserializer * This);
  3271. DECLSPEC_XFGVIRT(IUnknown, Release)
  3272. ULONG ( STDMETHODCALLTYPE *Release )(
  3273. ID3D12RootSignatureDeserializer * This);
  3274. DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc)
  3275. const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )(
  3276. ID3D12RootSignatureDeserializer * This);
  3277. END_INTERFACE
  3278. } ID3D12RootSignatureDeserializerVtbl;
  3279. interface ID3D12RootSignatureDeserializer
  3280. {
  3281. CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl;
  3282. };
  3283. #ifdef COBJMACROS
  3284. #define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
  3285. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  3286. #define ID3D12RootSignatureDeserializer_AddRef(This) \
  3287. ( (This)->lpVtbl -> AddRef(This) )
  3288. #define ID3D12RootSignatureDeserializer_Release(This) \
  3289. ( (This)->lpVtbl -> Release(This) )
  3290. #define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \
  3291. ( (This)->lpVtbl -> GetRootSignatureDesc(This) )
  3292. #endif /* COBJMACROS */
  3293. #endif /* C style interface */
  3294. #endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
  3295. #ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
  3296. #define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
  3297. /* interface ID3D12VersionedRootSignatureDeserializer */
  3298. /* [unique][local][object][uuid] */
  3299. EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer;
  3300. #if defined(__cplusplus) && !defined(CINTERFACE)
  3301. MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")
  3302. ID3D12VersionedRootSignatureDeserializer : public IUnknown
  3303. {
  3304. public:
  3305. virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
  3306. D3D_ROOT_SIGNATURE_VERSION convertToVersion,
  3307. _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0;
  3308. virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0;
  3309. };
  3310. #else /* C style interface */
  3311. typedef struct ID3D12VersionedRootSignatureDeserializerVtbl
  3312. {
  3313. BEGIN_INTERFACE
  3314. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  3315. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3316. ID3D12VersionedRootSignatureDeserializer * This,
  3317. REFIID riid,
  3318. _COM_Outptr_ void **ppvObject);
  3319. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  3320. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3321. ID3D12VersionedRootSignatureDeserializer * This);
  3322. DECLSPEC_XFGVIRT(IUnknown, Release)
  3323. ULONG ( STDMETHODCALLTYPE *Release )(
  3324. ID3D12VersionedRootSignatureDeserializer * This);
  3325. DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion)
  3326. HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )(
  3327. ID3D12VersionedRootSignatureDeserializer * This,
  3328. D3D_ROOT_SIGNATURE_VERSION convertToVersion,
  3329. _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc);
  3330. DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc)
  3331. const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )(
  3332. ID3D12VersionedRootSignatureDeserializer * This);
  3333. END_INTERFACE
  3334. } ID3D12VersionedRootSignatureDeserializerVtbl;
  3335. interface ID3D12VersionedRootSignatureDeserializer
  3336. {
  3337. CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl;
  3338. };
  3339. #ifdef COBJMACROS
  3340. #define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
  3341. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  3342. #define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \
  3343. ( (This)->lpVtbl -> AddRef(This) )
  3344. #define ID3D12VersionedRootSignatureDeserializer_Release(This) \
  3345. ( (This)->lpVtbl -> Release(This) )
  3346. #define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \
  3347. ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) )
  3348. #define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \
  3349. ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) )
  3350. #endif /* COBJMACROS */
  3351. #endif /* C style interface */
  3352. #endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
  3353. /* interface __MIDL_itf_d3d12_0000_0003 */
  3354. /* [local] */
  3355. typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
  3356. _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
  3357. _In_ D3D_ROOT_SIGNATURE_VERSION Version,
  3358. _Out_ ID3DBlob** ppBlob,
  3359. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
  3360. HRESULT WINAPI D3D12SerializeRootSignature(
  3361. _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
  3362. _In_ D3D_ROOT_SIGNATURE_VERSION Version,
  3363. _Out_ ID3DBlob** ppBlob,
  3364. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
  3365. typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
  3366. _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
  3367. _In_ SIZE_T SrcDataSizeInBytes,
  3368. _In_ REFIID pRootSignatureDeserializerInterface,
  3369. _Out_ void** ppRootSignatureDeserializer);
  3370. HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
  3371. _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
  3372. _In_ SIZE_T SrcDataSizeInBytes,
  3373. _In_ REFIID pRootSignatureDeserializerInterface,
  3374. _Out_ void** ppRootSignatureDeserializer);
  3375. typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
  3376. _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
  3377. _Out_ ID3DBlob** ppBlob,
  3378. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
  3379. HRESULT WINAPI D3D12SerializeVersionedRootSignature(
  3380. _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
  3381. _Out_ ID3DBlob** ppBlob,
  3382. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
  3383. typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
  3384. _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
  3385. _In_ SIZE_T SrcDataSizeInBytes,
  3386. _In_ REFIID pRootSignatureDeserializerInterface,
  3387. _Out_ void** ppRootSignatureDeserializer);
  3388. HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(
  3389. _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
  3390. _In_ SIZE_T SrcDataSizeInBytes,
  3391. _In_ REFIID pRootSignatureDeserializerInterface,
  3392. _Out_ void** ppRootSignatureDeserializer);
  3393. typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)(
  3394. _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
  3395. _In_ SIZE_T SrcDataSizeInBytes,
  3396. _In_ LPCWSTR RootSignatureSubobjectName,
  3397. _In_ REFIID pRootSignatureDeserializerInterface,
  3398. _Out_ void** ppRootSignatureDeserializer);
  3399. HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
  3400. _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
  3401. _In_ SIZE_T SrcDataSizeInBytes,
  3402. _In_opt_ LPCWSTR RootSignatureSubobjectName,
  3403. _In_ REFIID pRootSignatureDeserializerInterface,
  3404. _Out_ void** ppRootSignatureDeserializer);
  3405. typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
  3406. {
  3407. SIZE_T ptr;
  3408. } D3D12_CPU_DESCRIPTOR_HANDLE;
  3409. typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
  3410. {
  3411. UINT64 ptr;
  3412. } D3D12_GPU_DESCRIPTOR_HANDLE;
  3413. // If rects are supplied in D3D12_DISCARD_REGION, below, the resource
  3414. // must have 2D subresources with all specified subresources the same dimension.
  3415. typedef struct D3D12_DISCARD_REGION
  3416. {
  3417. UINT NumRects;
  3418. _In_reads_(NumRects) const D3D12_RECT *pRects;
  3419. UINT FirstSubresource;
  3420. UINT NumSubresources;
  3421. } D3D12_DISCARD_REGION;
  3422. typedef
  3423. enum D3D12_QUERY_HEAP_TYPE
  3424. {
  3425. D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
  3426. D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
  3427. D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
  3428. D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
  3429. D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
  3430. D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
  3431. D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
  3432. } D3D12_QUERY_HEAP_TYPE;
  3433. typedef struct D3D12_QUERY_HEAP_DESC
  3434. {
  3435. D3D12_QUERY_HEAP_TYPE Type;
  3436. UINT Count;
  3437. UINT NodeMask;
  3438. } D3D12_QUERY_HEAP_DESC;
  3439. typedef
  3440. enum D3D12_QUERY_TYPE
  3441. {
  3442. D3D12_QUERY_TYPE_OCCLUSION = 0,
  3443. D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
  3444. D3D12_QUERY_TYPE_TIMESTAMP = 2,
  3445. D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
  3446. D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
  3447. D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
  3448. D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
  3449. D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
  3450. D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
  3451. D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
  3452. } D3D12_QUERY_TYPE;
  3453. typedef
  3454. enum D3D12_PREDICATION_OP
  3455. {
  3456. D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
  3457. D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
  3458. } D3D12_PREDICATION_OP;
  3459. typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
  3460. {
  3461. UINT64 IAVertices;
  3462. UINT64 IAPrimitives;
  3463. UINT64 VSInvocations;
  3464. UINT64 GSInvocations;
  3465. UINT64 GSPrimitives;
  3466. UINT64 CInvocations;
  3467. UINT64 CPrimitives;
  3468. UINT64 PSInvocations;
  3469. UINT64 HSInvocations;
  3470. UINT64 DSInvocations;
  3471. UINT64 CSInvocations;
  3472. } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
  3473. typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
  3474. {
  3475. UINT64 IAVertices;
  3476. UINT64 IAPrimitives;
  3477. UINT64 VSInvocations;
  3478. UINT64 GSInvocations;
  3479. UINT64 GSPrimitives;
  3480. UINT64 CInvocations;
  3481. UINT64 CPrimitives;
  3482. UINT64 PSInvocations;
  3483. UINT64 HSInvocations;
  3484. UINT64 DSInvocations;
  3485. UINT64 CSInvocations;
  3486. UINT64 ASInvocations;
  3487. UINT64 MSInvocations;
  3488. UINT64 MSPrimitives;
  3489. } D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
  3490. typedef struct D3D12_QUERY_DATA_SO_STATISTICS
  3491. {
  3492. UINT64 NumPrimitivesWritten;
  3493. UINT64 PrimitivesStorageNeeded;
  3494. } D3D12_QUERY_DATA_SO_STATISTICS;
  3495. typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
  3496. {
  3497. D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
  3498. UINT64 SizeInBytes;
  3499. D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
  3500. } D3D12_STREAM_OUTPUT_BUFFER_VIEW;
  3501. typedef struct D3D12_DRAW_ARGUMENTS
  3502. {
  3503. UINT VertexCountPerInstance;
  3504. UINT InstanceCount;
  3505. UINT StartVertexLocation;
  3506. UINT StartInstanceLocation;
  3507. } D3D12_DRAW_ARGUMENTS;
  3508. typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
  3509. {
  3510. UINT IndexCountPerInstance;
  3511. UINT InstanceCount;
  3512. UINT StartIndexLocation;
  3513. INT BaseVertexLocation;
  3514. UINT StartInstanceLocation;
  3515. } D3D12_DRAW_INDEXED_ARGUMENTS;
  3516. typedef struct D3D12_DISPATCH_ARGUMENTS
  3517. {
  3518. UINT ThreadGroupCountX;
  3519. UINT ThreadGroupCountY;
  3520. UINT ThreadGroupCountZ;
  3521. } D3D12_DISPATCH_ARGUMENTS;
  3522. typedef struct D3D12_VERTEX_BUFFER_VIEW
  3523. {
  3524. D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
  3525. UINT SizeInBytes;
  3526. UINT StrideInBytes;
  3527. } D3D12_VERTEX_BUFFER_VIEW;
  3528. typedef struct D3D12_INDEX_BUFFER_VIEW
  3529. {
  3530. D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
  3531. UINT SizeInBytes;
  3532. DXGI_FORMAT Format;
  3533. } D3D12_INDEX_BUFFER_VIEW;
  3534. typedef
  3535. enum D3D12_INDIRECT_ARGUMENT_TYPE
  3536. {
  3537. D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
  3538. D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) ,
  3539. D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) ,
  3540. D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) ,
  3541. D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) ,
  3542. D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) ,
  3543. D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) ,
  3544. D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) ,
  3545. D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) ,
  3546. D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) ,
  3547. D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) ,
  3548. D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 )
  3549. } D3D12_INDIRECT_ARGUMENT_TYPE;
  3550. typedef struct D3D12_INDIRECT_ARGUMENT_DESC
  3551. {
  3552. D3D12_INDIRECT_ARGUMENT_TYPE Type;
  3553. union
  3554. {
  3555. struct
  3556. {
  3557. UINT Slot;
  3558. } VertexBuffer;
  3559. struct
  3560. {
  3561. UINT RootParameterIndex;
  3562. UINT DestOffsetIn32BitValues;
  3563. UINT Num32BitValuesToSet;
  3564. } Constant;
  3565. struct
  3566. {
  3567. UINT RootParameterIndex;
  3568. } ConstantBufferView;
  3569. struct
  3570. {
  3571. UINT RootParameterIndex;
  3572. } ShaderResourceView;
  3573. struct
  3574. {
  3575. UINT RootParameterIndex;
  3576. } UnorderedAccessView;
  3577. struct
  3578. {
  3579. UINT RootParameterIndex;
  3580. UINT DestOffsetIn32BitValues;
  3581. } IncrementingConstant;
  3582. } ;
  3583. } D3D12_INDIRECT_ARGUMENT_DESC;
  3584. typedef struct D3D12_COMMAND_SIGNATURE_DESC
  3585. {
  3586. UINT ByteStride;
  3587. UINT NumArgumentDescs;
  3588. _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
  3589. UINT NodeMask;
  3590. } D3D12_COMMAND_SIGNATURE_DESC;
  3591. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec;
  3592. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec;
  3593. #ifndef __ID3D12Pageable_INTERFACE_DEFINED__
  3594. #define __ID3D12Pageable_INTERFACE_DEFINED__
  3595. /* interface ID3D12Pageable */
  3596. /* [unique][local][object][uuid] */
  3597. EXTERN_C const IID IID_ID3D12Pageable;
  3598. #if defined(__cplusplus) && !defined(CINTERFACE)
  3599. MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
  3600. ID3D12Pageable : public ID3D12DeviceChild
  3601. {
  3602. public:
  3603. };
  3604. #else /* C style interface */
  3605. typedef struct ID3D12PageableVtbl
  3606. {
  3607. BEGIN_INTERFACE
  3608. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  3609. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3610. ID3D12Pageable * This,
  3611. REFIID riid,
  3612. _COM_Outptr_ void **ppvObject);
  3613. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  3614. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3615. ID3D12Pageable * This);
  3616. DECLSPEC_XFGVIRT(IUnknown, Release)
  3617. ULONG ( STDMETHODCALLTYPE *Release )(
  3618. ID3D12Pageable * This);
  3619. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  3620. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  3621. ID3D12Pageable * This,
  3622. _In_ REFGUID guid,
  3623. _Inout_ UINT *pDataSize,
  3624. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  3625. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  3626. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  3627. ID3D12Pageable * This,
  3628. _In_ REFGUID guid,
  3629. _In_ UINT DataSize,
  3630. _In_reads_bytes_opt_( DataSize ) const void *pData);
  3631. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  3632. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  3633. ID3D12Pageable * This,
  3634. _In_ REFGUID guid,
  3635. _In_opt_ const IUnknown *pData);
  3636. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  3637. HRESULT ( STDMETHODCALLTYPE *SetName )(
  3638. ID3D12Pageable * This,
  3639. _In_z_ LPCWSTR Name);
  3640. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  3641. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  3642. ID3D12Pageable * This,
  3643. REFIID riid,
  3644. _COM_Outptr_opt_ void **ppvDevice);
  3645. END_INTERFACE
  3646. } ID3D12PageableVtbl;
  3647. interface ID3D12Pageable
  3648. {
  3649. CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
  3650. };
  3651. #ifdef COBJMACROS
  3652. #define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \
  3653. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  3654. #define ID3D12Pageable_AddRef(This) \
  3655. ( (This)->lpVtbl -> AddRef(This) )
  3656. #define ID3D12Pageable_Release(This) \
  3657. ( (This)->lpVtbl -> Release(This) )
  3658. #define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \
  3659. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  3660. #define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \
  3661. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  3662. #define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \
  3663. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  3664. #define ID3D12Pageable_SetName(This,Name) \
  3665. ( (This)->lpVtbl -> SetName(This,Name) )
  3666. #define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \
  3667. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  3668. #endif /* COBJMACROS */
  3669. #endif /* C style interface */
  3670. #endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
  3671. #ifndef __ID3D12Heap_INTERFACE_DEFINED__
  3672. #define __ID3D12Heap_INTERFACE_DEFINED__
  3673. /* interface ID3D12Heap */
  3674. /* [unique][local][object][uuid] */
  3675. EXTERN_C const IID IID_ID3D12Heap;
  3676. #if defined(__cplusplus) && !defined(CINTERFACE)
  3677. MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
  3678. ID3D12Heap : public ID3D12Pageable
  3679. {
  3680. public:
  3681. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  3682. virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  3683. #else
  3684. virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
  3685. D3D12_HEAP_DESC * RetVal) = 0;
  3686. #endif
  3687. };
  3688. #else /* C style interface */
  3689. typedef struct ID3D12HeapVtbl
  3690. {
  3691. BEGIN_INTERFACE
  3692. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  3693. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3694. ID3D12Heap * This,
  3695. REFIID riid,
  3696. _COM_Outptr_ void **ppvObject);
  3697. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  3698. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3699. ID3D12Heap * This);
  3700. DECLSPEC_XFGVIRT(IUnknown, Release)
  3701. ULONG ( STDMETHODCALLTYPE *Release )(
  3702. ID3D12Heap * This);
  3703. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  3704. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  3705. ID3D12Heap * This,
  3706. _In_ REFGUID guid,
  3707. _Inout_ UINT *pDataSize,
  3708. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  3709. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  3710. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  3711. ID3D12Heap * This,
  3712. _In_ REFGUID guid,
  3713. _In_ UINT DataSize,
  3714. _In_reads_bytes_opt_( DataSize ) const void *pData);
  3715. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  3716. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  3717. ID3D12Heap * This,
  3718. _In_ REFGUID guid,
  3719. _In_opt_ const IUnknown *pData);
  3720. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  3721. HRESULT ( STDMETHODCALLTYPE *SetName )(
  3722. ID3D12Heap * This,
  3723. _In_z_ LPCWSTR Name);
  3724. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  3725. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  3726. ID3D12Heap * This,
  3727. REFIID riid,
  3728. _COM_Outptr_opt_ void **ppvDevice);
  3729. DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
  3730. #if !defined(_WIN32)
  3731. D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
  3732. ID3D12Heap * This);
  3733. #else
  3734. D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
  3735. ID3D12Heap * This,
  3736. D3D12_HEAP_DESC * RetVal);
  3737. #endif
  3738. END_INTERFACE
  3739. } ID3D12HeapVtbl;
  3740. interface ID3D12Heap
  3741. {
  3742. CONST_VTBL struct ID3D12HeapVtbl *lpVtbl;
  3743. };
  3744. #ifdef COBJMACROS
  3745. #define ID3D12Heap_QueryInterface(This,riid,ppvObject) \
  3746. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  3747. #define ID3D12Heap_AddRef(This) \
  3748. ( (This)->lpVtbl -> AddRef(This) )
  3749. #define ID3D12Heap_Release(This) \
  3750. ( (This)->lpVtbl -> Release(This) )
  3751. #define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \
  3752. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  3753. #define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \
  3754. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  3755. #define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \
  3756. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  3757. #define ID3D12Heap_SetName(This,Name) \
  3758. ( (This)->lpVtbl -> SetName(This,Name) )
  3759. #define ID3D12Heap_GetDevice(This,riid,ppvDevice) \
  3760. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  3761. #if !defined(_WIN32)
  3762. #define ID3D12Heap_GetDesc(This) \
  3763. ( (This)->lpVtbl -> GetDesc(This) )
  3764. #else
  3765. #define ID3D12Heap_GetDesc(This,RetVal) \
  3766. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  3767. #endif
  3768. #endif /* COBJMACROS */
  3769. #endif /* C style interface */
  3770. #endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
  3771. #ifndef __ID3D12Resource_INTERFACE_DEFINED__
  3772. #define __ID3D12Resource_INTERFACE_DEFINED__
  3773. /* interface ID3D12Resource */
  3774. /* [unique][local][object][uuid] */
  3775. EXTERN_C const IID IID_ID3D12Resource;
  3776. #if defined(__cplusplus) && !defined(CINTERFACE)
  3777. MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
  3778. ID3D12Resource : public ID3D12Pageable
  3779. {
  3780. public:
  3781. virtual HRESULT STDMETHODCALLTYPE Map(
  3782. UINT Subresource,
  3783. _In_opt_ const D3D12_RANGE *pReadRange,
  3784. _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
  3785. virtual void STDMETHODCALLTYPE Unmap(
  3786. UINT Subresource,
  3787. _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
  3788. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  3789. virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  3790. #else
  3791. virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc(
  3792. D3D12_RESOURCE_DESC * RetVal) = 0;
  3793. #endif
  3794. virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0;
  3795. virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
  3796. UINT DstSubresource,
  3797. _In_opt_ const D3D12_BOX *pDstBox,
  3798. _In_ const void *pSrcData,
  3799. UINT SrcRowPitch,
  3800. UINT SrcDepthPitch) = 0;
  3801. virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
  3802. _Out_ void *pDstData,
  3803. UINT DstRowPitch,
  3804. UINT DstDepthPitch,
  3805. UINT SrcSubresource,
  3806. _In_opt_ const D3D12_BOX *pSrcBox) = 0;
  3807. virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
  3808. _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
  3809. _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0;
  3810. };
  3811. #else /* C style interface */
  3812. typedef struct ID3D12ResourceVtbl
  3813. {
  3814. BEGIN_INTERFACE
  3815. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  3816. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3817. ID3D12Resource * This,
  3818. REFIID riid,
  3819. _COM_Outptr_ void **ppvObject);
  3820. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  3821. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3822. ID3D12Resource * This);
  3823. DECLSPEC_XFGVIRT(IUnknown, Release)
  3824. ULONG ( STDMETHODCALLTYPE *Release )(
  3825. ID3D12Resource * This);
  3826. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  3827. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  3828. ID3D12Resource * This,
  3829. _In_ REFGUID guid,
  3830. _Inout_ UINT *pDataSize,
  3831. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  3832. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  3833. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  3834. ID3D12Resource * This,
  3835. _In_ REFGUID guid,
  3836. _In_ UINT DataSize,
  3837. _In_reads_bytes_opt_( DataSize ) const void *pData);
  3838. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  3839. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  3840. ID3D12Resource * This,
  3841. _In_ REFGUID guid,
  3842. _In_opt_ const IUnknown *pData);
  3843. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  3844. HRESULT ( STDMETHODCALLTYPE *SetName )(
  3845. ID3D12Resource * This,
  3846. _In_z_ LPCWSTR Name);
  3847. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  3848. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  3849. ID3D12Resource * This,
  3850. REFIID riid,
  3851. _COM_Outptr_opt_ void **ppvDevice);
  3852. DECLSPEC_XFGVIRT(ID3D12Resource, Map)
  3853. HRESULT ( STDMETHODCALLTYPE *Map )(
  3854. ID3D12Resource * This,
  3855. UINT Subresource,
  3856. _In_opt_ const D3D12_RANGE *pReadRange,
  3857. _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
  3858. DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
  3859. void ( STDMETHODCALLTYPE *Unmap )(
  3860. ID3D12Resource * This,
  3861. UINT Subresource,
  3862. _In_opt_ const D3D12_RANGE *pWrittenRange);
  3863. DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
  3864. #if !defined(_WIN32)
  3865. D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
  3866. ID3D12Resource * This);
  3867. #else
  3868. D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
  3869. ID3D12Resource * This,
  3870. D3D12_RESOURCE_DESC * RetVal);
  3871. #endif
  3872. DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
  3873. D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
  3874. ID3D12Resource * This);
  3875. DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
  3876. HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
  3877. ID3D12Resource * This,
  3878. UINT DstSubresource,
  3879. _In_opt_ const D3D12_BOX *pDstBox,
  3880. _In_ const void *pSrcData,
  3881. UINT SrcRowPitch,
  3882. UINT SrcDepthPitch);
  3883. DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
  3884. HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
  3885. ID3D12Resource * This,
  3886. _Out_ void *pDstData,
  3887. UINT DstRowPitch,
  3888. UINT DstDepthPitch,
  3889. UINT SrcSubresource,
  3890. _In_opt_ const D3D12_BOX *pSrcBox);
  3891. DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
  3892. HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
  3893. ID3D12Resource * This,
  3894. _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
  3895. _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
  3896. END_INTERFACE
  3897. } ID3D12ResourceVtbl;
  3898. interface ID3D12Resource
  3899. {
  3900. CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
  3901. };
  3902. #ifdef COBJMACROS
  3903. #define ID3D12Resource_QueryInterface(This,riid,ppvObject) \
  3904. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  3905. #define ID3D12Resource_AddRef(This) \
  3906. ( (This)->lpVtbl -> AddRef(This) )
  3907. #define ID3D12Resource_Release(This) \
  3908. ( (This)->lpVtbl -> Release(This) )
  3909. #define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \
  3910. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  3911. #define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \
  3912. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  3913. #define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \
  3914. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  3915. #define ID3D12Resource_SetName(This,Name) \
  3916. ( (This)->lpVtbl -> SetName(This,Name) )
  3917. #define ID3D12Resource_GetDevice(This,riid,ppvDevice) \
  3918. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  3919. #define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \
  3920. ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
  3921. #define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \
  3922. ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
  3923. #if !defined(_WIN32)
  3924. #define ID3D12Resource_GetDesc(This) \
  3925. ( (This)->lpVtbl -> GetDesc(This) )
  3926. #else
  3927. #define ID3D12Resource_GetDesc(This,RetVal) \
  3928. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  3929. #endif
  3930. #define ID3D12Resource_GetGPUVirtualAddress(This) \
  3931. ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
  3932. #define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
  3933. ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
  3934. #define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
  3935. ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
  3936. #define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
  3937. ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
  3938. #endif /* COBJMACROS */
  3939. #endif /* C style interface */
  3940. #endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
  3941. #ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
  3942. #define __ID3D12CommandAllocator_INTERFACE_DEFINED__
  3943. /* interface ID3D12CommandAllocator */
  3944. /* [unique][local][object][uuid] */
  3945. EXTERN_C const IID IID_ID3D12CommandAllocator;
  3946. #if defined(__cplusplus) && !defined(CINTERFACE)
  3947. MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
  3948. ID3D12CommandAllocator : public ID3D12Pageable
  3949. {
  3950. public:
  3951. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  3952. };
  3953. #else /* C style interface */
  3954. typedef struct ID3D12CommandAllocatorVtbl
  3955. {
  3956. BEGIN_INTERFACE
  3957. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  3958. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3959. ID3D12CommandAllocator * This,
  3960. REFIID riid,
  3961. _COM_Outptr_ void **ppvObject);
  3962. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  3963. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3964. ID3D12CommandAllocator * This);
  3965. DECLSPEC_XFGVIRT(IUnknown, Release)
  3966. ULONG ( STDMETHODCALLTYPE *Release )(
  3967. ID3D12CommandAllocator * This);
  3968. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  3969. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  3970. ID3D12CommandAllocator * This,
  3971. _In_ REFGUID guid,
  3972. _Inout_ UINT *pDataSize,
  3973. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  3974. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  3975. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  3976. ID3D12CommandAllocator * This,
  3977. _In_ REFGUID guid,
  3978. _In_ UINT DataSize,
  3979. _In_reads_bytes_opt_( DataSize ) const void *pData);
  3980. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  3981. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  3982. ID3D12CommandAllocator * This,
  3983. _In_ REFGUID guid,
  3984. _In_opt_ const IUnknown *pData);
  3985. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  3986. HRESULT ( STDMETHODCALLTYPE *SetName )(
  3987. ID3D12CommandAllocator * This,
  3988. _In_z_ LPCWSTR Name);
  3989. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  3990. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  3991. ID3D12CommandAllocator * This,
  3992. REFIID riid,
  3993. _COM_Outptr_opt_ void **ppvDevice);
  3994. DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset)
  3995. HRESULT ( STDMETHODCALLTYPE *Reset )(
  3996. ID3D12CommandAllocator * This);
  3997. END_INTERFACE
  3998. } ID3D12CommandAllocatorVtbl;
  3999. interface ID3D12CommandAllocator
  4000. {
  4001. CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
  4002. };
  4003. #ifdef COBJMACROS
  4004. #define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \
  4005. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4006. #define ID3D12CommandAllocator_AddRef(This) \
  4007. ( (This)->lpVtbl -> AddRef(This) )
  4008. #define ID3D12CommandAllocator_Release(This) \
  4009. ( (This)->lpVtbl -> Release(This) )
  4010. #define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \
  4011. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4012. #define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \
  4013. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4014. #define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \
  4015. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4016. #define ID3D12CommandAllocator_SetName(This,Name) \
  4017. ( (This)->lpVtbl -> SetName(This,Name) )
  4018. #define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \
  4019. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4020. #define ID3D12CommandAllocator_Reset(This) \
  4021. ( (This)->lpVtbl -> Reset(This) )
  4022. #endif /* COBJMACROS */
  4023. #endif /* C style interface */
  4024. #endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
  4025. #ifndef __ID3D12Fence_INTERFACE_DEFINED__
  4026. #define __ID3D12Fence_INTERFACE_DEFINED__
  4027. /* interface ID3D12Fence */
  4028. /* [unique][local][object][uuid] */
  4029. EXTERN_C const IID IID_ID3D12Fence;
  4030. #if defined(__cplusplus) && !defined(CINTERFACE)
  4031. MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
  4032. ID3D12Fence : public ID3D12Pageable
  4033. {
  4034. public:
  4035. virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0;
  4036. virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
  4037. UINT64 Value,
  4038. HANDLE hEvent) = 0;
  4039. virtual HRESULT STDMETHODCALLTYPE Signal(
  4040. UINT64 Value) = 0;
  4041. };
  4042. #else /* C style interface */
  4043. typedef struct ID3D12FenceVtbl
  4044. {
  4045. BEGIN_INTERFACE
  4046. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4047. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4048. ID3D12Fence * This,
  4049. REFIID riid,
  4050. _COM_Outptr_ void **ppvObject);
  4051. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4052. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4053. ID3D12Fence * This);
  4054. DECLSPEC_XFGVIRT(IUnknown, Release)
  4055. ULONG ( STDMETHODCALLTYPE *Release )(
  4056. ID3D12Fence * This);
  4057. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4058. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4059. ID3D12Fence * This,
  4060. _In_ REFGUID guid,
  4061. _Inout_ UINT *pDataSize,
  4062. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4063. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4064. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4065. ID3D12Fence * This,
  4066. _In_ REFGUID guid,
  4067. _In_ UINT DataSize,
  4068. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4069. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4070. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4071. ID3D12Fence * This,
  4072. _In_ REFGUID guid,
  4073. _In_opt_ const IUnknown *pData);
  4074. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4075. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4076. ID3D12Fence * This,
  4077. _In_z_ LPCWSTR Name);
  4078. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4079. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4080. ID3D12Fence * This,
  4081. REFIID riid,
  4082. _COM_Outptr_opt_ void **ppvDevice);
  4083. DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
  4084. UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
  4085. ID3D12Fence * This);
  4086. DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
  4087. HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
  4088. ID3D12Fence * This,
  4089. UINT64 Value,
  4090. HANDLE hEvent);
  4091. DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
  4092. HRESULT ( STDMETHODCALLTYPE *Signal )(
  4093. ID3D12Fence * This,
  4094. UINT64 Value);
  4095. END_INTERFACE
  4096. } ID3D12FenceVtbl;
  4097. interface ID3D12Fence
  4098. {
  4099. CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
  4100. };
  4101. #ifdef COBJMACROS
  4102. #define ID3D12Fence_QueryInterface(This,riid,ppvObject) \
  4103. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4104. #define ID3D12Fence_AddRef(This) \
  4105. ( (This)->lpVtbl -> AddRef(This) )
  4106. #define ID3D12Fence_Release(This) \
  4107. ( (This)->lpVtbl -> Release(This) )
  4108. #define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \
  4109. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4110. #define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \
  4111. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4112. #define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \
  4113. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4114. #define ID3D12Fence_SetName(This,Name) \
  4115. ( (This)->lpVtbl -> SetName(This,Name) )
  4116. #define ID3D12Fence_GetDevice(This,riid,ppvDevice) \
  4117. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4118. #define ID3D12Fence_GetCompletedValue(This) \
  4119. ( (This)->lpVtbl -> GetCompletedValue(This) )
  4120. #define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \
  4121. ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
  4122. #define ID3D12Fence_Signal(This,Value) \
  4123. ( (This)->lpVtbl -> Signal(This,Value) )
  4124. #endif /* COBJMACROS */
  4125. #endif /* C style interface */
  4126. #endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
  4127. #ifndef __ID3D12Fence1_INTERFACE_DEFINED__
  4128. #define __ID3D12Fence1_INTERFACE_DEFINED__
  4129. /* interface ID3D12Fence1 */
  4130. /* [unique][local][object][uuid] */
  4131. EXTERN_C const IID IID_ID3D12Fence1;
  4132. #if defined(__cplusplus) && !defined(CINTERFACE)
  4133. MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
  4134. ID3D12Fence1 : public ID3D12Fence
  4135. {
  4136. public:
  4137. virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0;
  4138. };
  4139. #else /* C style interface */
  4140. typedef struct ID3D12Fence1Vtbl
  4141. {
  4142. BEGIN_INTERFACE
  4143. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4144. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4145. ID3D12Fence1 * This,
  4146. REFIID riid,
  4147. _COM_Outptr_ void **ppvObject);
  4148. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4149. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4150. ID3D12Fence1 * This);
  4151. DECLSPEC_XFGVIRT(IUnknown, Release)
  4152. ULONG ( STDMETHODCALLTYPE *Release )(
  4153. ID3D12Fence1 * This);
  4154. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4155. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4156. ID3D12Fence1 * This,
  4157. _In_ REFGUID guid,
  4158. _Inout_ UINT *pDataSize,
  4159. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4160. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4161. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4162. ID3D12Fence1 * This,
  4163. _In_ REFGUID guid,
  4164. _In_ UINT DataSize,
  4165. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4166. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4167. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4168. ID3D12Fence1 * This,
  4169. _In_ REFGUID guid,
  4170. _In_opt_ const IUnknown *pData);
  4171. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4172. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4173. ID3D12Fence1 * This,
  4174. _In_z_ LPCWSTR Name);
  4175. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4176. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4177. ID3D12Fence1 * This,
  4178. REFIID riid,
  4179. _COM_Outptr_opt_ void **ppvDevice);
  4180. DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
  4181. UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
  4182. ID3D12Fence1 * This);
  4183. DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
  4184. HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
  4185. ID3D12Fence1 * This,
  4186. UINT64 Value,
  4187. HANDLE hEvent);
  4188. DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
  4189. HRESULT ( STDMETHODCALLTYPE *Signal )(
  4190. ID3D12Fence1 * This,
  4191. UINT64 Value);
  4192. DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags)
  4193. D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )(
  4194. ID3D12Fence1 * This);
  4195. END_INTERFACE
  4196. } ID3D12Fence1Vtbl;
  4197. interface ID3D12Fence1
  4198. {
  4199. CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl;
  4200. };
  4201. #ifdef COBJMACROS
  4202. #define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \
  4203. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4204. #define ID3D12Fence1_AddRef(This) \
  4205. ( (This)->lpVtbl -> AddRef(This) )
  4206. #define ID3D12Fence1_Release(This) \
  4207. ( (This)->lpVtbl -> Release(This) )
  4208. #define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \
  4209. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4210. #define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \
  4211. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4212. #define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \
  4213. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4214. #define ID3D12Fence1_SetName(This,Name) \
  4215. ( (This)->lpVtbl -> SetName(This,Name) )
  4216. #define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \
  4217. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4218. #define ID3D12Fence1_GetCompletedValue(This) \
  4219. ( (This)->lpVtbl -> GetCompletedValue(This) )
  4220. #define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \
  4221. ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
  4222. #define ID3D12Fence1_Signal(This,Value) \
  4223. ( (This)->lpVtbl -> Signal(This,Value) )
  4224. #define ID3D12Fence1_GetCreationFlags(This) \
  4225. ( (This)->lpVtbl -> GetCreationFlags(This) )
  4226. #endif /* COBJMACROS */
  4227. #endif /* C style interface */
  4228. #endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
  4229. #ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
  4230. #define __ID3D12PipelineState_INTERFACE_DEFINED__
  4231. /* interface ID3D12PipelineState */
  4232. /* [unique][local][object][uuid] */
  4233. EXTERN_C const IID IID_ID3D12PipelineState;
  4234. #if defined(__cplusplus) && !defined(CINTERFACE)
  4235. MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
  4236. ID3D12PipelineState : public ID3D12Pageable
  4237. {
  4238. public:
  4239. virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
  4240. _COM_Outptr_ ID3DBlob **ppBlob) = 0;
  4241. };
  4242. #else /* C style interface */
  4243. typedef struct ID3D12PipelineStateVtbl
  4244. {
  4245. BEGIN_INTERFACE
  4246. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4247. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4248. ID3D12PipelineState * This,
  4249. REFIID riid,
  4250. _COM_Outptr_ void **ppvObject);
  4251. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4252. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4253. ID3D12PipelineState * This);
  4254. DECLSPEC_XFGVIRT(IUnknown, Release)
  4255. ULONG ( STDMETHODCALLTYPE *Release )(
  4256. ID3D12PipelineState * This);
  4257. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4258. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4259. ID3D12PipelineState * This,
  4260. _In_ REFGUID guid,
  4261. _Inout_ UINT *pDataSize,
  4262. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4263. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4264. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4265. ID3D12PipelineState * This,
  4266. _In_ REFGUID guid,
  4267. _In_ UINT DataSize,
  4268. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4269. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4270. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4271. ID3D12PipelineState * This,
  4272. _In_ REFGUID guid,
  4273. _In_opt_ const IUnknown *pData);
  4274. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4275. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4276. ID3D12PipelineState * This,
  4277. _In_z_ LPCWSTR Name);
  4278. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4279. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4280. ID3D12PipelineState * This,
  4281. REFIID riid,
  4282. _COM_Outptr_opt_ void **ppvDevice);
  4283. DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
  4284. HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
  4285. ID3D12PipelineState * This,
  4286. _COM_Outptr_ ID3DBlob **ppBlob);
  4287. END_INTERFACE
  4288. } ID3D12PipelineStateVtbl;
  4289. interface ID3D12PipelineState
  4290. {
  4291. CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
  4292. };
  4293. #ifdef COBJMACROS
  4294. #define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \
  4295. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4296. #define ID3D12PipelineState_AddRef(This) \
  4297. ( (This)->lpVtbl -> AddRef(This) )
  4298. #define ID3D12PipelineState_Release(This) \
  4299. ( (This)->lpVtbl -> Release(This) )
  4300. #define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \
  4301. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4302. #define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \
  4303. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4304. #define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \
  4305. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4306. #define ID3D12PipelineState_SetName(This,Name) \
  4307. ( (This)->lpVtbl -> SetName(This,Name) )
  4308. #define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \
  4309. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4310. #define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \
  4311. ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
  4312. #endif /* COBJMACROS */
  4313. #endif /* C style interface */
  4314. #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
  4315. #ifndef __ID3D12PipelineState1_INTERFACE_DEFINED__
  4316. #define __ID3D12PipelineState1_INTERFACE_DEFINED__
  4317. /* interface ID3D12PipelineState1 */
  4318. /* [unique][local][object][uuid] */
  4319. EXTERN_C const IID IID_ID3D12PipelineState1;
  4320. #if defined(__cplusplus) && !defined(CINTERFACE)
  4321. MIDL_INTERFACE("5646804c-9638-48f7-9182-b3ee5a6b60fb")
  4322. ID3D12PipelineState1 : public ID3D12PipelineState
  4323. {
  4324. public:
  4325. virtual HRESULT STDMETHODCALLTYPE GetRootSignature(
  4326. REFIID riid,
  4327. _COM_Outptr_ void **ppvRootSignature) = 0;
  4328. };
  4329. #else /* C style interface */
  4330. typedef struct ID3D12PipelineState1Vtbl
  4331. {
  4332. BEGIN_INTERFACE
  4333. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4334. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4335. ID3D12PipelineState1 * This,
  4336. REFIID riid,
  4337. _COM_Outptr_ void **ppvObject);
  4338. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4339. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4340. ID3D12PipelineState1 * This);
  4341. DECLSPEC_XFGVIRT(IUnknown, Release)
  4342. ULONG ( STDMETHODCALLTYPE *Release )(
  4343. ID3D12PipelineState1 * This);
  4344. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4345. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4346. ID3D12PipelineState1 * This,
  4347. _In_ REFGUID guid,
  4348. _Inout_ UINT *pDataSize,
  4349. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4350. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4351. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4352. ID3D12PipelineState1 * This,
  4353. _In_ REFGUID guid,
  4354. _In_ UINT DataSize,
  4355. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4356. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4357. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4358. ID3D12PipelineState1 * This,
  4359. _In_ REFGUID guid,
  4360. _In_opt_ const IUnknown *pData);
  4361. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4362. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4363. ID3D12PipelineState1 * This,
  4364. _In_z_ LPCWSTR Name);
  4365. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4366. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4367. ID3D12PipelineState1 * This,
  4368. REFIID riid,
  4369. _COM_Outptr_opt_ void **ppvDevice);
  4370. DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
  4371. HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
  4372. ID3D12PipelineState1 * This,
  4373. _COM_Outptr_ ID3DBlob **ppBlob);
  4374. DECLSPEC_XFGVIRT(ID3D12PipelineState1, GetRootSignature)
  4375. HRESULT ( STDMETHODCALLTYPE *GetRootSignature )(
  4376. ID3D12PipelineState1 * This,
  4377. REFIID riid,
  4378. _COM_Outptr_ void **ppvRootSignature);
  4379. END_INTERFACE
  4380. } ID3D12PipelineState1Vtbl;
  4381. interface ID3D12PipelineState1
  4382. {
  4383. CONST_VTBL struct ID3D12PipelineState1Vtbl *lpVtbl;
  4384. };
  4385. #ifdef COBJMACROS
  4386. #define ID3D12PipelineState1_QueryInterface(This,riid,ppvObject) \
  4387. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4388. #define ID3D12PipelineState1_AddRef(This) \
  4389. ( (This)->lpVtbl -> AddRef(This) )
  4390. #define ID3D12PipelineState1_Release(This) \
  4391. ( (This)->lpVtbl -> Release(This) )
  4392. #define ID3D12PipelineState1_GetPrivateData(This,guid,pDataSize,pData) \
  4393. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4394. #define ID3D12PipelineState1_SetPrivateData(This,guid,DataSize,pData) \
  4395. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4396. #define ID3D12PipelineState1_SetPrivateDataInterface(This,guid,pData) \
  4397. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4398. #define ID3D12PipelineState1_SetName(This,Name) \
  4399. ( (This)->lpVtbl -> SetName(This,Name) )
  4400. #define ID3D12PipelineState1_GetDevice(This,riid,ppvDevice) \
  4401. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4402. #define ID3D12PipelineState1_GetCachedBlob(This,ppBlob) \
  4403. ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
  4404. #define ID3D12PipelineState1_GetRootSignature(This,riid,ppvRootSignature) \
  4405. ( (This)->lpVtbl -> GetRootSignature(This,riid,ppvRootSignature) )
  4406. #endif /* COBJMACROS */
  4407. #endif /* C style interface */
  4408. #endif /* __ID3D12PipelineState1_INTERFACE_DEFINED__ */
  4409. #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
  4410. #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
  4411. /* interface ID3D12DescriptorHeap */
  4412. /* [unique][local][object][uuid] */
  4413. EXTERN_C const IID IID_ID3D12DescriptorHeap;
  4414. #if defined(__cplusplus) && !defined(CINTERFACE)
  4415. MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
  4416. ID3D12DescriptorHeap : public ID3D12Pageable
  4417. {
  4418. public:
  4419. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  4420. virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  4421. #else
  4422. virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
  4423. D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0;
  4424. #endif
  4425. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  4426. virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0;
  4427. #else
  4428. virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
  4429. D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0;
  4430. #endif
  4431. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  4432. virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0;
  4433. #else
  4434. virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
  4435. D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0;
  4436. #endif
  4437. };
  4438. #else /* C style interface */
  4439. typedef struct ID3D12DescriptorHeapVtbl
  4440. {
  4441. BEGIN_INTERFACE
  4442. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4443. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4444. ID3D12DescriptorHeap * This,
  4445. REFIID riid,
  4446. _COM_Outptr_ void **ppvObject);
  4447. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4448. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4449. ID3D12DescriptorHeap * This);
  4450. DECLSPEC_XFGVIRT(IUnknown, Release)
  4451. ULONG ( STDMETHODCALLTYPE *Release )(
  4452. ID3D12DescriptorHeap * This);
  4453. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4454. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4455. ID3D12DescriptorHeap * This,
  4456. _In_ REFGUID guid,
  4457. _Inout_ UINT *pDataSize,
  4458. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4459. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4460. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4461. ID3D12DescriptorHeap * This,
  4462. _In_ REFGUID guid,
  4463. _In_ UINT DataSize,
  4464. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4465. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4466. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4467. ID3D12DescriptorHeap * This,
  4468. _In_ REFGUID guid,
  4469. _In_opt_ const IUnknown *pData);
  4470. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4471. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4472. ID3D12DescriptorHeap * This,
  4473. _In_z_ LPCWSTR Name);
  4474. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4475. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4476. ID3D12DescriptorHeap * This,
  4477. REFIID riid,
  4478. _COM_Outptr_opt_ void **ppvDevice);
  4479. DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc)
  4480. #if !defined(_WIN32)
  4481. D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
  4482. ID3D12DescriptorHeap * This);
  4483. #else
  4484. D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
  4485. ID3D12DescriptorHeap * This,
  4486. D3D12_DESCRIPTOR_HEAP_DESC * RetVal);
  4487. #endif
  4488. DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart)
  4489. #if !defined(_WIN32)
  4490. D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
  4491. ID3D12DescriptorHeap * This);
  4492. #else
  4493. D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
  4494. ID3D12DescriptorHeap * This,
  4495. D3D12_CPU_DESCRIPTOR_HANDLE * RetVal);
  4496. #endif
  4497. DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart)
  4498. #if !defined(_WIN32)
  4499. D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
  4500. ID3D12DescriptorHeap * This);
  4501. #else
  4502. D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
  4503. ID3D12DescriptorHeap * This,
  4504. D3D12_GPU_DESCRIPTOR_HANDLE * RetVal);
  4505. #endif
  4506. END_INTERFACE
  4507. } ID3D12DescriptorHeapVtbl;
  4508. interface ID3D12DescriptorHeap
  4509. {
  4510. CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
  4511. };
  4512. #ifdef COBJMACROS
  4513. #define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \
  4514. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4515. #define ID3D12DescriptorHeap_AddRef(This) \
  4516. ( (This)->lpVtbl -> AddRef(This) )
  4517. #define ID3D12DescriptorHeap_Release(This) \
  4518. ( (This)->lpVtbl -> Release(This) )
  4519. #define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \
  4520. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4521. #define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \
  4522. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4523. #define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \
  4524. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4525. #define ID3D12DescriptorHeap_SetName(This,Name) \
  4526. ( (This)->lpVtbl -> SetName(This,Name) )
  4527. #define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \
  4528. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4529. #if !defined(_WIN32)
  4530. #define ID3D12DescriptorHeap_GetDesc(This) \
  4531. ( (This)->lpVtbl -> GetDesc(This) )
  4532. #else
  4533. #define ID3D12DescriptorHeap_GetDesc(This,RetVal) \
  4534. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  4535. #endif
  4536. #if !defined(_WIN32)
  4537. #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \
  4538. ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) )
  4539. #else
  4540. #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \
  4541. ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) )
  4542. #endif
  4543. #if !defined(_WIN32)
  4544. #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \
  4545. ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) )
  4546. #else
  4547. #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \
  4548. ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) )
  4549. #endif
  4550. #endif /* COBJMACROS */
  4551. #endif /* C style interface */
  4552. #endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
  4553. #ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
  4554. #define __ID3D12QueryHeap_INTERFACE_DEFINED__
  4555. /* interface ID3D12QueryHeap */
  4556. /* [unique][local][object][uuid] */
  4557. EXTERN_C const IID IID_ID3D12QueryHeap;
  4558. #if defined(__cplusplus) && !defined(CINTERFACE)
  4559. MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
  4560. ID3D12QueryHeap : public ID3D12Pageable
  4561. {
  4562. public:
  4563. };
  4564. #else /* C style interface */
  4565. typedef struct ID3D12QueryHeapVtbl
  4566. {
  4567. BEGIN_INTERFACE
  4568. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4569. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4570. ID3D12QueryHeap * This,
  4571. REFIID riid,
  4572. _COM_Outptr_ void **ppvObject);
  4573. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4574. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4575. ID3D12QueryHeap * This);
  4576. DECLSPEC_XFGVIRT(IUnknown, Release)
  4577. ULONG ( STDMETHODCALLTYPE *Release )(
  4578. ID3D12QueryHeap * This);
  4579. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4580. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4581. ID3D12QueryHeap * This,
  4582. _In_ REFGUID guid,
  4583. _Inout_ UINT *pDataSize,
  4584. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4585. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4586. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4587. ID3D12QueryHeap * This,
  4588. _In_ REFGUID guid,
  4589. _In_ UINT DataSize,
  4590. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4591. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4592. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4593. ID3D12QueryHeap * This,
  4594. _In_ REFGUID guid,
  4595. _In_opt_ const IUnknown *pData);
  4596. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4597. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4598. ID3D12QueryHeap * This,
  4599. _In_z_ LPCWSTR Name);
  4600. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4601. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4602. ID3D12QueryHeap * This,
  4603. REFIID riid,
  4604. _COM_Outptr_opt_ void **ppvDevice);
  4605. END_INTERFACE
  4606. } ID3D12QueryHeapVtbl;
  4607. interface ID3D12QueryHeap
  4608. {
  4609. CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
  4610. };
  4611. #ifdef COBJMACROS
  4612. #define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \
  4613. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4614. #define ID3D12QueryHeap_AddRef(This) \
  4615. ( (This)->lpVtbl -> AddRef(This) )
  4616. #define ID3D12QueryHeap_Release(This) \
  4617. ( (This)->lpVtbl -> Release(This) )
  4618. #define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \
  4619. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4620. #define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \
  4621. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4622. #define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \
  4623. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4624. #define ID3D12QueryHeap_SetName(This,Name) \
  4625. ( (This)->lpVtbl -> SetName(This,Name) )
  4626. #define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \
  4627. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4628. #endif /* COBJMACROS */
  4629. #endif /* C style interface */
  4630. #endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
  4631. #ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
  4632. #define __ID3D12CommandSignature_INTERFACE_DEFINED__
  4633. /* interface ID3D12CommandSignature */
  4634. /* [unique][local][object][uuid] */
  4635. EXTERN_C const IID IID_ID3D12CommandSignature;
  4636. #if defined(__cplusplus) && !defined(CINTERFACE)
  4637. MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
  4638. ID3D12CommandSignature : public ID3D12Pageable
  4639. {
  4640. public:
  4641. };
  4642. #else /* C style interface */
  4643. typedef struct ID3D12CommandSignatureVtbl
  4644. {
  4645. BEGIN_INTERFACE
  4646. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4647. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4648. ID3D12CommandSignature * This,
  4649. REFIID riid,
  4650. _COM_Outptr_ void **ppvObject);
  4651. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4652. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4653. ID3D12CommandSignature * This);
  4654. DECLSPEC_XFGVIRT(IUnknown, Release)
  4655. ULONG ( STDMETHODCALLTYPE *Release )(
  4656. ID3D12CommandSignature * This);
  4657. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4658. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4659. ID3D12CommandSignature * This,
  4660. _In_ REFGUID guid,
  4661. _Inout_ UINT *pDataSize,
  4662. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4663. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4664. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4665. ID3D12CommandSignature * This,
  4666. _In_ REFGUID guid,
  4667. _In_ UINT DataSize,
  4668. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4669. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4670. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4671. ID3D12CommandSignature * This,
  4672. _In_ REFGUID guid,
  4673. _In_opt_ const IUnknown *pData);
  4674. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4675. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4676. ID3D12CommandSignature * This,
  4677. _In_z_ LPCWSTR Name);
  4678. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4679. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4680. ID3D12CommandSignature * This,
  4681. REFIID riid,
  4682. _COM_Outptr_opt_ void **ppvDevice);
  4683. END_INTERFACE
  4684. } ID3D12CommandSignatureVtbl;
  4685. interface ID3D12CommandSignature
  4686. {
  4687. CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl;
  4688. };
  4689. #ifdef COBJMACROS
  4690. #define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \
  4691. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4692. #define ID3D12CommandSignature_AddRef(This) \
  4693. ( (This)->lpVtbl -> AddRef(This) )
  4694. #define ID3D12CommandSignature_Release(This) \
  4695. ( (This)->lpVtbl -> Release(This) )
  4696. #define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \
  4697. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4698. #define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \
  4699. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4700. #define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \
  4701. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4702. #define ID3D12CommandSignature_SetName(This,Name) \
  4703. ( (This)->lpVtbl -> SetName(This,Name) )
  4704. #define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \
  4705. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4706. #endif /* COBJMACROS */
  4707. #endif /* C style interface */
  4708. #endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
  4709. #ifndef __ID3D12CommandList_INTERFACE_DEFINED__
  4710. #define __ID3D12CommandList_INTERFACE_DEFINED__
  4711. /* interface ID3D12CommandList */
  4712. /* [unique][local][object][uuid] */
  4713. EXTERN_C const IID IID_ID3D12CommandList;
  4714. #if defined(__cplusplus) && !defined(CINTERFACE)
  4715. MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
  4716. ID3D12CommandList : public ID3D12DeviceChild
  4717. {
  4718. public:
  4719. virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0;
  4720. };
  4721. #else /* C style interface */
  4722. typedef struct ID3D12CommandListVtbl
  4723. {
  4724. BEGIN_INTERFACE
  4725. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  4726. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4727. ID3D12CommandList * This,
  4728. REFIID riid,
  4729. _COM_Outptr_ void **ppvObject);
  4730. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  4731. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4732. ID3D12CommandList * This);
  4733. DECLSPEC_XFGVIRT(IUnknown, Release)
  4734. ULONG ( STDMETHODCALLTYPE *Release )(
  4735. ID3D12CommandList * This);
  4736. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  4737. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  4738. ID3D12CommandList * This,
  4739. _In_ REFGUID guid,
  4740. _Inout_ UINT *pDataSize,
  4741. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  4742. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  4743. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  4744. ID3D12CommandList * This,
  4745. _In_ REFGUID guid,
  4746. _In_ UINT DataSize,
  4747. _In_reads_bytes_opt_( DataSize ) const void *pData);
  4748. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  4749. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  4750. ID3D12CommandList * This,
  4751. _In_ REFGUID guid,
  4752. _In_opt_ const IUnknown *pData);
  4753. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  4754. HRESULT ( STDMETHODCALLTYPE *SetName )(
  4755. ID3D12CommandList * This,
  4756. _In_z_ LPCWSTR Name);
  4757. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  4758. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4759. ID3D12CommandList * This,
  4760. REFIID riid,
  4761. _COM_Outptr_opt_ void **ppvDevice);
  4762. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  4763. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  4764. ID3D12CommandList * This);
  4765. END_INTERFACE
  4766. } ID3D12CommandListVtbl;
  4767. interface ID3D12CommandList
  4768. {
  4769. CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
  4770. };
  4771. #ifdef COBJMACROS
  4772. #define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \
  4773. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  4774. #define ID3D12CommandList_AddRef(This) \
  4775. ( (This)->lpVtbl -> AddRef(This) )
  4776. #define ID3D12CommandList_Release(This) \
  4777. ( (This)->lpVtbl -> Release(This) )
  4778. #define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \
  4779. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  4780. #define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \
  4781. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  4782. #define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \
  4783. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  4784. #define ID3D12CommandList_SetName(This,Name) \
  4785. ( (This)->lpVtbl -> SetName(This,Name) )
  4786. #define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \
  4787. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  4788. #define ID3D12CommandList_GetType(This) \
  4789. ( (This)->lpVtbl -> GetType(This) )
  4790. #endif /* COBJMACROS */
  4791. #endif /* C style interface */
  4792. #endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
  4793. #ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
  4794. #define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
  4795. /* interface ID3D12GraphicsCommandList */
  4796. /* [unique][local][object][uuid] */
  4797. EXTERN_C const IID IID_ID3D12GraphicsCommandList;
  4798. #if defined(__cplusplus) && !defined(CINTERFACE)
  4799. MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
  4800. ID3D12GraphicsCommandList : public ID3D12CommandList
  4801. {
  4802. public:
  4803. virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  4804. virtual HRESULT STDMETHODCALLTYPE Reset(
  4805. _In_ ID3D12CommandAllocator *pAllocator,
  4806. _In_opt_ ID3D12PipelineState *pInitialState) = 0;
  4807. virtual void STDMETHODCALLTYPE ClearState(
  4808. _In_opt_ ID3D12PipelineState *pPipelineState) = 0;
  4809. virtual void STDMETHODCALLTYPE DrawInstanced(
  4810. _In_ UINT VertexCountPerInstance,
  4811. _In_ UINT InstanceCount,
  4812. _In_ UINT StartVertexLocation,
  4813. _In_ UINT StartInstanceLocation) = 0;
  4814. virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
  4815. _In_ UINT IndexCountPerInstance,
  4816. _In_ UINT InstanceCount,
  4817. _In_ UINT StartIndexLocation,
  4818. _In_ INT BaseVertexLocation,
  4819. _In_ UINT StartInstanceLocation) = 0;
  4820. virtual void STDMETHODCALLTYPE Dispatch(
  4821. _In_ UINT ThreadGroupCountX,
  4822. _In_ UINT ThreadGroupCountY,
  4823. _In_ UINT ThreadGroupCountZ) = 0;
  4824. virtual void STDMETHODCALLTYPE CopyBufferRegion(
  4825. _In_ ID3D12Resource *pDstBuffer,
  4826. UINT64 DstOffset,
  4827. _In_ ID3D12Resource *pSrcBuffer,
  4828. UINT64 SrcOffset,
  4829. UINT64 NumBytes) = 0;
  4830. virtual void STDMETHODCALLTYPE CopyTextureRegion(
  4831. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  4832. UINT DstX,
  4833. UINT DstY,
  4834. UINT DstZ,
  4835. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  4836. _In_opt_ const D3D12_BOX *pSrcBox) = 0;
  4837. virtual void STDMETHODCALLTYPE CopyResource(
  4838. _In_ ID3D12Resource *pDstResource,
  4839. _In_ ID3D12Resource *pSrcResource) = 0;
  4840. virtual void STDMETHODCALLTYPE CopyTiles(
  4841. _In_ ID3D12Resource *pTiledResource,
  4842. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  4843. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  4844. _In_ ID3D12Resource *pBuffer,
  4845. UINT64 BufferStartOffsetInBytes,
  4846. D3D12_TILE_COPY_FLAGS Flags) = 0;
  4847. virtual void STDMETHODCALLTYPE ResolveSubresource(
  4848. _In_ ID3D12Resource *pDstResource,
  4849. _In_ UINT DstSubresource,
  4850. _In_ ID3D12Resource *pSrcResource,
  4851. _In_ UINT SrcSubresource,
  4852. _In_ DXGI_FORMAT Format) = 0;
  4853. virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
  4854. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
  4855. virtual void STDMETHODCALLTYPE RSSetViewports(
  4856. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  4857. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
  4858. virtual void STDMETHODCALLTYPE RSSetScissorRects(
  4859. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  4860. _In_reads_( NumRects) const D3D12_RECT *pRects) = 0;
  4861. virtual void STDMETHODCALLTYPE OMSetBlendFactor(
  4862. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0;
  4863. virtual void STDMETHODCALLTYPE OMSetStencilRef(
  4864. _In_ UINT StencilRef) = 0;
  4865. virtual void STDMETHODCALLTYPE SetPipelineState(
  4866. _In_ ID3D12PipelineState *pPipelineState) = 0;
  4867. virtual void STDMETHODCALLTYPE ResourceBarrier(
  4868. _In_ UINT NumBarriers,
  4869. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
  4870. virtual void STDMETHODCALLTYPE ExecuteBundle(
  4871. _In_ ID3D12GraphicsCommandList *pCommandList) = 0;
  4872. virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
  4873. _In_ UINT NumDescriptorHeaps,
  4874. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
  4875. virtual void STDMETHODCALLTYPE SetComputeRootSignature(
  4876. _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
  4877. virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
  4878. _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
  4879. virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
  4880. _In_ UINT RootParameterIndex,
  4881. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
  4882. virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
  4883. _In_ UINT RootParameterIndex,
  4884. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
  4885. virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
  4886. _In_ UINT RootParameterIndex,
  4887. _In_ UINT SrcData,
  4888. _In_ UINT DestOffsetIn32BitValues) = 0;
  4889. virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
  4890. _In_ UINT RootParameterIndex,
  4891. _In_ UINT SrcData,
  4892. _In_ UINT DestOffsetIn32BitValues) = 0;
  4893. virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
  4894. _In_ UINT RootParameterIndex,
  4895. _In_ UINT Num32BitValuesToSet,
  4896. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  4897. _In_ UINT DestOffsetIn32BitValues) = 0;
  4898. virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
  4899. _In_ UINT RootParameterIndex,
  4900. _In_ UINT Num32BitValuesToSet,
  4901. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  4902. _In_ UINT DestOffsetIn32BitValues) = 0;
  4903. virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
  4904. _In_ UINT RootParameterIndex,
  4905. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
  4906. virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
  4907. _In_ UINT RootParameterIndex,
  4908. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
  4909. virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
  4910. _In_ UINT RootParameterIndex,
  4911. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
  4912. virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
  4913. _In_ UINT RootParameterIndex,
  4914. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
  4915. virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
  4916. _In_ UINT RootParameterIndex,
  4917. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
  4918. virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
  4919. _In_ UINT RootParameterIndex,
  4920. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
  4921. virtual void STDMETHODCALLTYPE IASetIndexBuffer(
  4922. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
  4923. virtual void STDMETHODCALLTYPE IASetVertexBuffers(
  4924. _In_ UINT StartSlot,
  4925. _In_ UINT NumViews,
  4926. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
  4927. virtual void STDMETHODCALLTYPE SOSetTargets(
  4928. _In_ UINT StartSlot,
  4929. _In_ UINT NumViews,
  4930. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
  4931. virtual void STDMETHODCALLTYPE OMSetRenderTargets(
  4932. _In_ UINT NumRenderTargetDescriptors,
  4933. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  4934. _In_ BOOL RTsSingleHandleToDescriptorRange,
  4935. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
  4936. virtual void STDMETHODCALLTYPE ClearDepthStencilView(
  4937. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  4938. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  4939. _In_ FLOAT Depth,
  4940. _In_ UINT8 Stencil,
  4941. _In_ UINT NumRects,
  4942. _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
  4943. virtual void STDMETHODCALLTYPE ClearRenderTargetView(
  4944. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  4945. _In_ const FLOAT ColorRGBA[ 4 ],
  4946. _In_ UINT NumRects,
  4947. _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
  4948. virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
  4949. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  4950. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  4951. _In_ ID3D12Resource *pResource,
  4952. _In_ const UINT Values[ 4 ],
  4953. _In_ UINT NumRects,
  4954. _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
  4955. virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
  4956. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  4957. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  4958. _In_ ID3D12Resource *pResource,
  4959. _In_ const FLOAT Values[ 4 ],
  4960. _In_ UINT NumRects,
  4961. _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
  4962. virtual void STDMETHODCALLTYPE DiscardResource(
  4963. _In_ ID3D12Resource *pResource,
  4964. _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
  4965. virtual void STDMETHODCALLTYPE BeginQuery(
  4966. _In_ ID3D12QueryHeap *pQueryHeap,
  4967. _In_ D3D12_QUERY_TYPE Type,
  4968. _In_ UINT Index) = 0;
  4969. virtual void STDMETHODCALLTYPE EndQuery(
  4970. _In_ ID3D12QueryHeap *pQueryHeap,
  4971. _In_ D3D12_QUERY_TYPE Type,
  4972. _In_ UINT Index) = 0;
  4973. virtual void STDMETHODCALLTYPE ResolveQueryData(
  4974. _In_ ID3D12QueryHeap *pQueryHeap,
  4975. _In_ D3D12_QUERY_TYPE Type,
  4976. _In_ UINT StartIndex,
  4977. _In_ UINT NumQueries,
  4978. _In_ ID3D12Resource *pDestinationBuffer,
  4979. _In_ UINT64 AlignedDestinationBufferOffset) = 0;
  4980. virtual void STDMETHODCALLTYPE SetPredication(
  4981. _In_opt_ ID3D12Resource *pBuffer,
  4982. _In_ UINT64 AlignedBufferOffset,
  4983. _In_ D3D12_PREDICATION_OP Operation) = 0;
  4984. virtual void STDMETHODCALLTYPE SetMarker(
  4985. UINT Metadata,
  4986. _In_reads_bytes_opt_(Size) const void *pData,
  4987. UINT Size) = 0;
  4988. virtual void STDMETHODCALLTYPE BeginEvent(
  4989. UINT Metadata,
  4990. _In_reads_bytes_opt_(Size) const void *pData,
  4991. UINT Size) = 0;
  4992. virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
  4993. virtual void STDMETHODCALLTYPE ExecuteIndirect(
  4994. _In_ ID3D12CommandSignature *pCommandSignature,
  4995. _In_ UINT MaxCommandCount,
  4996. _In_ ID3D12Resource *pArgumentBuffer,
  4997. _In_ UINT64 ArgumentBufferOffset,
  4998. _In_opt_ ID3D12Resource *pCountBuffer,
  4999. _In_ UINT64 CountBufferOffset) = 0;
  5000. };
  5001. #else /* C style interface */
  5002. typedef struct ID3D12GraphicsCommandListVtbl
  5003. {
  5004. BEGIN_INTERFACE
  5005. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  5006. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5007. ID3D12GraphicsCommandList * This,
  5008. REFIID riid,
  5009. _COM_Outptr_ void **ppvObject);
  5010. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  5011. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5012. ID3D12GraphicsCommandList * This);
  5013. DECLSPEC_XFGVIRT(IUnknown, Release)
  5014. ULONG ( STDMETHODCALLTYPE *Release )(
  5015. ID3D12GraphicsCommandList * This);
  5016. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  5017. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  5018. ID3D12GraphicsCommandList * This,
  5019. _In_ REFGUID guid,
  5020. _Inout_ UINT *pDataSize,
  5021. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  5022. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  5023. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  5024. ID3D12GraphicsCommandList * This,
  5025. _In_ REFGUID guid,
  5026. _In_ UINT DataSize,
  5027. _In_reads_bytes_opt_( DataSize ) const void *pData);
  5028. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  5029. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  5030. ID3D12GraphicsCommandList * This,
  5031. _In_ REFGUID guid,
  5032. _In_opt_ const IUnknown *pData);
  5033. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  5034. HRESULT ( STDMETHODCALLTYPE *SetName )(
  5035. ID3D12GraphicsCommandList * This,
  5036. _In_z_ LPCWSTR Name);
  5037. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  5038. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  5039. ID3D12GraphicsCommandList * This,
  5040. REFIID riid,
  5041. _COM_Outptr_opt_ void **ppvDevice);
  5042. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  5043. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  5044. ID3D12GraphicsCommandList * This);
  5045. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  5046. HRESULT ( STDMETHODCALLTYPE *Close )(
  5047. ID3D12GraphicsCommandList * This);
  5048. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  5049. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5050. ID3D12GraphicsCommandList * This,
  5051. _In_ ID3D12CommandAllocator *pAllocator,
  5052. _In_opt_ ID3D12PipelineState *pInitialState);
  5053. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  5054. void ( STDMETHODCALLTYPE *ClearState )(
  5055. ID3D12GraphicsCommandList * This,
  5056. _In_opt_ ID3D12PipelineState *pPipelineState);
  5057. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  5058. void ( STDMETHODCALLTYPE *DrawInstanced )(
  5059. ID3D12GraphicsCommandList * This,
  5060. _In_ UINT VertexCountPerInstance,
  5061. _In_ UINT InstanceCount,
  5062. _In_ UINT StartVertexLocation,
  5063. _In_ UINT StartInstanceLocation);
  5064. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  5065. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  5066. ID3D12GraphicsCommandList * This,
  5067. _In_ UINT IndexCountPerInstance,
  5068. _In_ UINT InstanceCount,
  5069. _In_ UINT StartIndexLocation,
  5070. _In_ INT BaseVertexLocation,
  5071. _In_ UINT StartInstanceLocation);
  5072. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  5073. void ( STDMETHODCALLTYPE *Dispatch )(
  5074. ID3D12GraphicsCommandList * This,
  5075. _In_ UINT ThreadGroupCountX,
  5076. _In_ UINT ThreadGroupCountY,
  5077. _In_ UINT ThreadGroupCountZ);
  5078. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  5079. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  5080. ID3D12GraphicsCommandList * This,
  5081. _In_ ID3D12Resource *pDstBuffer,
  5082. UINT64 DstOffset,
  5083. _In_ ID3D12Resource *pSrcBuffer,
  5084. UINT64 SrcOffset,
  5085. UINT64 NumBytes);
  5086. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  5087. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  5088. ID3D12GraphicsCommandList * This,
  5089. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  5090. UINT DstX,
  5091. UINT DstY,
  5092. UINT DstZ,
  5093. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  5094. _In_opt_ const D3D12_BOX *pSrcBox);
  5095. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  5096. void ( STDMETHODCALLTYPE *CopyResource )(
  5097. ID3D12GraphicsCommandList * This,
  5098. _In_ ID3D12Resource *pDstResource,
  5099. _In_ ID3D12Resource *pSrcResource);
  5100. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  5101. void ( STDMETHODCALLTYPE *CopyTiles )(
  5102. ID3D12GraphicsCommandList * This,
  5103. _In_ ID3D12Resource *pTiledResource,
  5104. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  5105. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  5106. _In_ ID3D12Resource *pBuffer,
  5107. UINT64 BufferStartOffsetInBytes,
  5108. D3D12_TILE_COPY_FLAGS Flags);
  5109. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  5110. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  5111. ID3D12GraphicsCommandList * This,
  5112. _In_ ID3D12Resource *pDstResource,
  5113. _In_ UINT DstSubresource,
  5114. _In_ ID3D12Resource *pSrcResource,
  5115. _In_ UINT SrcSubresource,
  5116. _In_ DXGI_FORMAT Format);
  5117. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  5118. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  5119. ID3D12GraphicsCommandList * This,
  5120. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  5121. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  5122. void ( STDMETHODCALLTYPE *RSSetViewports )(
  5123. ID3D12GraphicsCommandList * This,
  5124. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  5125. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  5126. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  5127. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  5128. ID3D12GraphicsCommandList * This,
  5129. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  5130. _In_reads_( NumRects) const D3D12_RECT *pRects);
  5131. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  5132. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  5133. ID3D12GraphicsCommandList * This,
  5134. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  5135. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  5136. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  5137. ID3D12GraphicsCommandList * This,
  5138. _In_ UINT StencilRef);
  5139. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  5140. void ( STDMETHODCALLTYPE *SetPipelineState )(
  5141. ID3D12GraphicsCommandList * This,
  5142. _In_ ID3D12PipelineState *pPipelineState);
  5143. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  5144. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  5145. ID3D12GraphicsCommandList * This,
  5146. _In_ UINT NumBarriers,
  5147. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  5148. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  5149. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  5150. ID3D12GraphicsCommandList * This,
  5151. _In_ ID3D12GraphicsCommandList *pCommandList);
  5152. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  5153. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  5154. ID3D12GraphicsCommandList * This,
  5155. _In_ UINT NumDescriptorHeaps,
  5156. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  5157. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  5158. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  5159. ID3D12GraphicsCommandList * This,
  5160. _In_opt_ ID3D12RootSignature *pRootSignature);
  5161. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  5162. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  5163. ID3D12GraphicsCommandList * This,
  5164. _In_opt_ ID3D12RootSignature *pRootSignature);
  5165. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  5166. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  5167. ID3D12GraphicsCommandList * This,
  5168. _In_ UINT RootParameterIndex,
  5169. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  5170. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  5171. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  5172. ID3D12GraphicsCommandList * This,
  5173. _In_ UINT RootParameterIndex,
  5174. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  5175. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  5176. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  5177. ID3D12GraphicsCommandList * This,
  5178. _In_ UINT RootParameterIndex,
  5179. _In_ UINT SrcData,
  5180. _In_ UINT DestOffsetIn32BitValues);
  5181. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  5182. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  5183. ID3D12GraphicsCommandList * This,
  5184. _In_ UINT RootParameterIndex,
  5185. _In_ UINT SrcData,
  5186. _In_ UINT DestOffsetIn32BitValues);
  5187. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  5188. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  5189. ID3D12GraphicsCommandList * This,
  5190. _In_ UINT RootParameterIndex,
  5191. _In_ UINT Num32BitValuesToSet,
  5192. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  5193. _In_ UINT DestOffsetIn32BitValues);
  5194. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  5195. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  5196. ID3D12GraphicsCommandList * This,
  5197. _In_ UINT RootParameterIndex,
  5198. _In_ UINT Num32BitValuesToSet,
  5199. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  5200. _In_ UINT DestOffsetIn32BitValues);
  5201. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  5202. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  5203. ID3D12GraphicsCommandList * This,
  5204. _In_ UINT RootParameterIndex,
  5205. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5206. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  5207. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  5208. ID3D12GraphicsCommandList * This,
  5209. _In_ UINT RootParameterIndex,
  5210. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5211. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  5212. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  5213. ID3D12GraphicsCommandList * This,
  5214. _In_ UINT RootParameterIndex,
  5215. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5216. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  5217. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  5218. ID3D12GraphicsCommandList * This,
  5219. _In_ UINT RootParameterIndex,
  5220. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5221. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  5222. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  5223. ID3D12GraphicsCommandList * This,
  5224. _In_ UINT RootParameterIndex,
  5225. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5226. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  5227. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  5228. ID3D12GraphicsCommandList * This,
  5229. _In_ UINT RootParameterIndex,
  5230. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5231. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  5232. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  5233. ID3D12GraphicsCommandList * This,
  5234. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  5235. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  5236. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  5237. ID3D12GraphicsCommandList * This,
  5238. _In_ UINT StartSlot,
  5239. _In_ UINT NumViews,
  5240. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  5241. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  5242. void ( STDMETHODCALLTYPE *SOSetTargets )(
  5243. ID3D12GraphicsCommandList * This,
  5244. _In_ UINT StartSlot,
  5245. _In_ UINT NumViews,
  5246. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  5247. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  5248. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  5249. ID3D12GraphicsCommandList * This,
  5250. _In_ UINT NumRenderTargetDescriptors,
  5251. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  5252. _In_ BOOL RTsSingleHandleToDescriptorRange,
  5253. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  5254. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  5255. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  5256. ID3D12GraphicsCommandList * This,
  5257. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  5258. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  5259. _In_ FLOAT Depth,
  5260. _In_ UINT8 Stencil,
  5261. _In_ UINT NumRects,
  5262. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5263. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  5264. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  5265. ID3D12GraphicsCommandList * This,
  5266. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  5267. _In_ const FLOAT ColorRGBA[ 4 ],
  5268. _In_ UINT NumRects,
  5269. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5270. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  5271. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  5272. ID3D12GraphicsCommandList * This,
  5273. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  5274. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  5275. _In_ ID3D12Resource *pResource,
  5276. _In_ const UINT Values[ 4 ],
  5277. _In_ UINT NumRects,
  5278. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5279. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  5280. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  5281. ID3D12GraphicsCommandList * This,
  5282. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  5283. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  5284. _In_ ID3D12Resource *pResource,
  5285. _In_ const FLOAT Values[ 4 ],
  5286. _In_ UINT NumRects,
  5287. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5288. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  5289. void ( STDMETHODCALLTYPE *DiscardResource )(
  5290. ID3D12GraphicsCommandList * This,
  5291. _In_ ID3D12Resource *pResource,
  5292. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  5293. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  5294. void ( STDMETHODCALLTYPE *BeginQuery )(
  5295. ID3D12GraphicsCommandList * This,
  5296. _In_ ID3D12QueryHeap *pQueryHeap,
  5297. _In_ D3D12_QUERY_TYPE Type,
  5298. _In_ UINT Index);
  5299. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  5300. void ( STDMETHODCALLTYPE *EndQuery )(
  5301. ID3D12GraphicsCommandList * This,
  5302. _In_ ID3D12QueryHeap *pQueryHeap,
  5303. _In_ D3D12_QUERY_TYPE Type,
  5304. _In_ UINT Index);
  5305. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  5306. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  5307. ID3D12GraphicsCommandList * This,
  5308. _In_ ID3D12QueryHeap *pQueryHeap,
  5309. _In_ D3D12_QUERY_TYPE Type,
  5310. _In_ UINT StartIndex,
  5311. _In_ UINT NumQueries,
  5312. _In_ ID3D12Resource *pDestinationBuffer,
  5313. _In_ UINT64 AlignedDestinationBufferOffset);
  5314. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  5315. void ( STDMETHODCALLTYPE *SetPredication )(
  5316. ID3D12GraphicsCommandList * This,
  5317. _In_opt_ ID3D12Resource *pBuffer,
  5318. _In_ UINT64 AlignedBufferOffset,
  5319. _In_ D3D12_PREDICATION_OP Operation);
  5320. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  5321. void ( STDMETHODCALLTYPE *SetMarker )(
  5322. ID3D12GraphicsCommandList * This,
  5323. UINT Metadata,
  5324. _In_reads_bytes_opt_(Size) const void *pData,
  5325. UINT Size);
  5326. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  5327. void ( STDMETHODCALLTYPE *BeginEvent )(
  5328. ID3D12GraphicsCommandList * This,
  5329. UINT Metadata,
  5330. _In_reads_bytes_opt_(Size) const void *pData,
  5331. UINT Size);
  5332. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  5333. void ( STDMETHODCALLTYPE *EndEvent )(
  5334. ID3D12GraphicsCommandList * This);
  5335. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  5336. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  5337. ID3D12GraphicsCommandList * This,
  5338. _In_ ID3D12CommandSignature *pCommandSignature,
  5339. _In_ UINT MaxCommandCount,
  5340. _In_ ID3D12Resource *pArgumentBuffer,
  5341. _In_ UINT64 ArgumentBufferOffset,
  5342. _In_opt_ ID3D12Resource *pCountBuffer,
  5343. _In_ UINT64 CountBufferOffset);
  5344. END_INTERFACE
  5345. } ID3D12GraphicsCommandListVtbl;
  5346. interface ID3D12GraphicsCommandList
  5347. {
  5348. CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl;
  5349. };
  5350. #ifdef COBJMACROS
  5351. #define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \
  5352. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  5353. #define ID3D12GraphicsCommandList_AddRef(This) \
  5354. ( (This)->lpVtbl -> AddRef(This) )
  5355. #define ID3D12GraphicsCommandList_Release(This) \
  5356. ( (This)->lpVtbl -> Release(This) )
  5357. #define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \
  5358. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  5359. #define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \
  5360. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  5361. #define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \
  5362. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  5363. #define ID3D12GraphicsCommandList_SetName(This,Name) \
  5364. ( (This)->lpVtbl -> SetName(This,Name) )
  5365. #define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \
  5366. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  5367. #define ID3D12GraphicsCommandList_GetType(This) \
  5368. ( (This)->lpVtbl -> GetType(This) )
  5369. #define ID3D12GraphicsCommandList_Close(This) \
  5370. ( (This)->lpVtbl -> Close(This) )
  5371. #define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \
  5372. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  5373. #define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \
  5374. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  5375. #define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  5376. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  5377. #define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  5378. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  5379. #define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  5380. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  5381. #define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  5382. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  5383. #define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  5384. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  5385. #define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \
  5386. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  5387. #define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  5388. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  5389. #define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  5390. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  5391. #define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \
  5392. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  5393. #define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \
  5394. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  5395. #define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \
  5396. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  5397. #define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \
  5398. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  5399. #define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \
  5400. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  5401. #define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \
  5402. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  5403. #define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
  5404. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  5405. #define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \
  5406. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  5407. #define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  5408. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  5409. #define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \
  5410. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  5411. #define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \
  5412. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  5413. #define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  5414. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  5415. #define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  5416. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  5417. #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  5418. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  5419. #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  5420. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  5421. #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  5422. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  5423. #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  5424. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  5425. #define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  5426. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  5427. #define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  5428. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  5429. #define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  5430. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  5431. #define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  5432. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  5433. #define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  5434. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  5435. #define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  5436. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  5437. #define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \
  5438. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  5439. #define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  5440. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  5441. #define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \
  5442. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  5443. #define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  5444. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  5445. #define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  5446. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  5447. #define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  5448. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  5449. #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  5450. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  5451. #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  5452. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  5453. #define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \
  5454. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  5455. #define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
  5456. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  5457. #define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \
  5458. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  5459. #define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  5460. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  5461. #define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  5462. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  5463. #define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \
  5464. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  5465. #define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \
  5466. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  5467. #define ID3D12GraphicsCommandList_EndEvent(This) \
  5468. ( (This)->lpVtbl -> EndEvent(This) )
  5469. #define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  5470. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  5471. #endif /* COBJMACROS */
  5472. #endif /* C style interface */
  5473. #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
  5474. #ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
  5475. #define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
  5476. /* interface ID3D12GraphicsCommandList1 */
  5477. /* [unique][local][object][uuid] */
  5478. EXTERN_C const IID IID_ID3D12GraphicsCommandList1;
  5479. #if defined(__cplusplus) && !defined(CINTERFACE)
  5480. MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
  5481. ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
  5482. {
  5483. public:
  5484. virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
  5485. _In_ ID3D12Resource *pDstBuffer,
  5486. UINT64 DstOffset,
  5487. _In_ ID3D12Resource *pSrcBuffer,
  5488. UINT64 SrcOffset,
  5489. UINT Dependencies,
  5490. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  5491. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
  5492. virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
  5493. _In_ ID3D12Resource *pDstBuffer,
  5494. UINT64 DstOffset,
  5495. _In_ ID3D12Resource *pSrcBuffer,
  5496. UINT64 SrcOffset,
  5497. UINT Dependencies,
  5498. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  5499. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
  5500. virtual void STDMETHODCALLTYPE OMSetDepthBounds(
  5501. _In_ FLOAT Min,
  5502. _In_ FLOAT Max) = 0;
  5503. virtual void STDMETHODCALLTYPE SetSamplePositions(
  5504. _In_ UINT NumSamplesPerPixel,
  5505. _In_ UINT NumPixels,
  5506. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0;
  5507. virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
  5508. _In_ ID3D12Resource *pDstResource,
  5509. _In_ UINT DstSubresource,
  5510. _In_ UINT DstX,
  5511. _In_ UINT DstY,
  5512. _In_ ID3D12Resource *pSrcResource,
  5513. _In_ UINT SrcSubresource,
  5514. _In_opt_ D3D12_RECT *pSrcRect,
  5515. _In_ DXGI_FORMAT Format,
  5516. _In_ D3D12_RESOLVE_MODE ResolveMode) = 0;
  5517. virtual void STDMETHODCALLTYPE SetViewInstanceMask(
  5518. _In_ UINT Mask) = 0;
  5519. };
  5520. #else /* C style interface */
  5521. typedef struct ID3D12GraphicsCommandList1Vtbl
  5522. {
  5523. BEGIN_INTERFACE
  5524. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  5525. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5526. ID3D12GraphicsCommandList1 * This,
  5527. REFIID riid,
  5528. _COM_Outptr_ void **ppvObject);
  5529. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  5530. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5531. ID3D12GraphicsCommandList1 * This);
  5532. DECLSPEC_XFGVIRT(IUnknown, Release)
  5533. ULONG ( STDMETHODCALLTYPE *Release )(
  5534. ID3D12GraphicsCommandList1 * This);
  5535. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  5536. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  5537. ID3D12GraphicsCommandList1 * This,
  5538. _In_ REFGUID guid,
  5539. _Inout_ UINT *pDataSize,
  5540. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  5541. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  5542. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  5543. ID3D12GraphicsCommandList1 * This,
  5544. _In_ REFGUID guid,
  5545. _In_ UINT DataSize,
  5546. _In_reads_bytes_opt_( DataSize ) const void *pData);
  5547. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  5548. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  5549. ID3D12GraphicsCommandList1 * This,
  5550. _In_ REFGUID guid,
  5551. _In_opt_ const IUnknown *pData);
  5552. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  5553. HRESULT ( STDMETHODCALLTYPE *SetName )(
  5554. ID3D12GraphicsCommandList1 * This,
  5555. _In_z_ LPCWSTR Name);
  5556. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  5557. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  5558. ID3D12GraphicsCommandList1 * This,
  5559. REFIID riid,
  5560. _COM_Outptr_opt_ void **ppvDevice);
  5561. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  5562. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  5563. ID3D12GraphicsCommandList1 * This);
  5564. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  5565. HRESULT ( STDMETHODCALLTYPE *Close )(
  5566. ID3D12GraphicsCommandList1 * This);
  5567. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  5568. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5569. ID3D12GraphicsCommandList1 * This,
  5570. _In_ ID3D12CommandAllocator *pAllocator,
  5571. _In_opt_ ID3D12PipelineState *pInitialState);
  5572. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  5573. void ( STDMETHODCALLTYPE *ClearState )(
  5574. ID3D12GraphicsCommandList1 * This,
  5575. _In_opt_ ID3D12PipelineState *pPipelineState);
  5576. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  5577. void ( STDMETHODCALLTYPE *DrawInstanced )(
  5578. ID3D12GraphicsCommandList1 * This,
  5579. _In_ UINT VertexCountPerInstance,
  5580. _In_ UINT InstanceCount,
  5581. _In_ UINT StartVertexLocation,
  5582. _In_ UINT StartInstanceLocation);
  5583. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  5584. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  5585. ID3D12GraphicsCommandList1 * This,
  5586. _In_ UINT IndexCountPerInstance,
  5587. _In_ UINT InstanceCount,
  5588. _In_ UINT StartIndexLocation,
  5589. _In_ INT BaseVertexLocation,
  5590. _In_ UINT StartInstanceLocation);
  5591. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  5592. void ( STDMETHODCALLTYPE *Dispatch )(
  5593. ID3D12GraphicsCommandList1 * This,
  5594. _In_ UINT ThreadGroupCountX,
  5595. _In_ UINT ThreadGroupCountY,
  5596. _In_ UINT ThreadGroupCountZ);
  5597. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  5598. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  5599. ID3D12GraphicsCommandList1 * This,
  5600. _In_ ID3D12Resource *pDstBuffer,
  5601. UINT64 DstOffset,
  5602. _In_ ID3D12Resource *pSrcBuffer,
  5603. UINT64 SrcOffset,
  5604. UINT64 NumBytes);
  5605. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  5606. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  5607. ID3D12GraphicsCommandList1 * This,
  5608. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  5609. UINT DstX,
  5610. UINT DstY,
  5611. UINT DstZ,
  5612. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  5613. _In_opt_ const D3D12_BOX *pSrcBox);
  5614. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  5615. void ( STDMETHODCALLTYPE *CopyResource )(
  5616. ID3D12GraphicsCommandList1 * This,
  5617. _In_ ID3D12Resource *pDstResource,
  5618. _In_ ID3D12Resource *pSrcResource);
  5619. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  5620. void ( STDMETHODCALLTYPE *CopyTiles )(
  5621. ID3D12GraphicsCommandList1 * This,
  5622. _In_ ID3D12Resource *pTiledResource,
  5623. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  5624. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  5625. _In_ ID3D12Resource *pBuffer,
  5626. UINT64 BufferStartOffsetInBytes,
  5627. D3D12_TILE_COPY_FLAGS Flags);
  5628. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  5629. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  5630. ID3D12GraphicsCommandList1 * This,
  5631. _In_ ID3D12Resource *pDstResource,
  5632. _In_ UINT DstSubresource,
  5633. _In_ ID3D12Resource *pSrcResource,
  5634. _In_ UINT SrcSubresource,
  5635. _In_ DXGI_FORMAT Format);
  5636. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  5637. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  5638. ID3D12GraphicsCommandList1 * This,
  5639. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  5640. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  5641. void ( STDMETHODCALLTYPE *RSSetViewports )(
  5642. ID3D12GraphicsCommandList1 * This,
  5643. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  5644. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  5645. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  5646. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  5647. ID3D12GraphicsCommandList1 * This,
  5648. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  5649. _In_reads_( NumRects) const D3D12_RECT *pRects);
  5650. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  5651. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  5652. ID3D12GraphicsCommandList1 * This,
  5653. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  5654. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  5655. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  5656. ID3D12GraphicsCommandList1 * This,
  5657. _In_ UINT StencilRef);
  5658. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  5659. void ( STDMETHODCALLTYPE *SetPipelineState )(
  5660. ID3D12GraphicsCommandList1 * This,
  5661. _In_ ID3D12PipelineState *pPipelineState);
  5662. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  5663. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  5664. ID3D12GraphicsCommandList1 * This,
  5665. _In_ UINT NumBarriers,
  5666. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  5667. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  5668. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  5669. ID3D12GraphicsCommandList1 * This,
  5670. _In_ ID3D12GraphicsCommandList *pCommandList);
  5671. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  5672. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  5673. ID3D12GraphicsCommandList1 * This,
  5674. _In_ UINT NumDescriptorHeaps,
  5675. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  5676. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  5677. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  5678. ID3D12GraphicsCommandList1 * This,
  5679. _In_opt_ ID3D12RootSignature *pRootSignature);
  5680. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  5681. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  5682. ID3D12GraphicsCommandList1 * This,
  5683. _In_opt_ ID3D12RootSignature *pRootSignature);
  5684. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  5685. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  5686. ID3D12GraphicsCommandList1 * This,
  5687. _In_ UINT RootParameterIndex,
  5688. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  5689. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  5690. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  5691. ID3D12GraphicsCommandList1 * This,
  5692. _In_ UINT RootParameterIndex,
  5693. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  5694. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  5695. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  5696. ID3D12GraphicsCommandList1 * This,
  5697. _In_ UINT RootParameterIndex,
  5698. _In_ UINT SrcData,
  5699. _In_ UINT DestOffsetIn32BitValues);
  5700. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  5701. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  5702. ID3D12GraphicsCommandList1 * This,
  5703. _In_ UINT RootParameterIndex,
  5704. _In_ UINT SrcData,
  5705. _In_ UINT DestOffsetIn32BitValues);
  5706. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  5707. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  5708. ID3D12GraphicsCommandList1 * This,
  5709. _In_ UINT RootParameterIndex,
  5710. _In_ UINT Num32BitValuesToSet,
  5711. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  5712. _In_ UINT DestOffsetIn32BitValues);
  5713. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  5714. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  5715. ID3D12GraphicsCommandList1 * This,
  5716. _In_ UINT RootParameterIndex,
  5717. _In_ UINT Num32BitValuesToSet,
  5718. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  5719. _In_ UINT DestOffsetIn32BitValues);
  5720. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  5721. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  5722. ID3D12GraphicsCommandList1 * This,
  5723. _In_ UINT RootParameterIndex,
  5724. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5725. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  5726. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  5727. ID3D12GraphicsCommandList1 * This,
  5728. _In_ UINT RootParameterIndex,
  5729. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5730. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  5731. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  5732. ID3D12GraphicsCommandList1 * This,
  5733. _In_ UINT RootParameterIndex,
  5734. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5735. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  5736. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  5737. ID3D12GraphicsCommandList1 * This,
  5738. _In_ UINT RootParameterIndex,
  5739. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5740. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  5741. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  5742. ID3D12GraphicsCommandList1 * This,
  5743. _In_ UINT RootParameterIndex,
  5744. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5745. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  5746. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  5747. ID3D12GraphicsCommandList1 * This,
  5748. _In_ UINT RootParameterIndex,
  5749. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  5750. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  5751. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  5752. ID3D12GraphicsCommandList1 * This,
  5753. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  5754. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  5755. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  5756. ID3D12GraphicsCommandList1 * This,
  5757. _In_ UINT StartSlot,
  5758. _In_ UINT NumViews,
  5759. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  5760. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  5761. void ( STDMETHODCALLTYPE *SOSetTargets )(
  5762. ID3D12GraphicsCommandList1 * This,
  5763. _In_ UINT StartSlot,
  5764. _In_ UINT NumViews,
  5765. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  5766. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  5767. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  5768. ID3D12GraphicsCommandList1 * This,
  5769. _In_ UINT NumRenderTargetDescriptors,
  5770. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  5771. _In_ BOOL RTsSingleHandleToDescriptorRange,
  5772. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  5773. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  5774. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  5775. ID3D12GraphicsCommandList1 * This,
  5776. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  5777. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  5778. _In_ FLOAT Depth,
  5779. _In_ UINT8 Stencil,
  5780. _In_ UINT NumRects,
  5781. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5782. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  5783. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  5784. ID3D12GraphicsCommandList1 * This,
  5785. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  5786. _In_ const FLOAT ColorRGBA[ 4 ],
  5787. _In_ UINT NumRects,
  5788. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5789. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  5790. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  5791. ID3D12GraphicsCommandList1 * This,
  5792. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  5793. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  5794. _In_ ID3D12Resource *pResource,
  5795. _In_ const UINT Values[ 4 ],
  5796. _In_ UINT NumRects,
  5797. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5798. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  5799. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  5800. ID3D12GraphicsCommandList1 * This,
  5801. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  5802. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  5803. _In_ ID3D12Resource *pResource,
  5804. _In_ const FLOAT Values[ 4 ],
  5805. _In_ UINT NumRects,
  5806. _In_reads_(NumRects) const D3D12_RECT *pRects);
  5807. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  5808. void ( STDMETHODCALLTYPE *DiscardResource )(
  5809. ID3D12GraphicsCommandList1 * This,
  5810. _In_ ID3D12Resource *pResource,
  5811. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  5812. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  5813. void ( STDMETHODCALLTYPE *BeginQuery )(
  5814. ID3D12GraphicsCommandList1 * This,
  5815. _In_ ID3D12QueryHeap *pQueryHeap,
  5816. _In_ D3D12_QUERY_TYPE Type,
  5817. _In_ UINT Index);
  5818. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  5819. void ( STDMETHODCALLTYPE *EndQuery )(
  5820. ID3D12GraphicsCommandList1 * This,
  5821. _In_ ID3D12QueryHeap *pQueryHeap,
  5822. _In_ D3D12_QUERY_TYPE Type,
  5823. _In_ UINT Index);
  5824. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  5825. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  5826. ID3D12GraphicsCommandList1 * This,
  5827. _In_ ID3D12QueryHeap *pQueryHeap,
  5828. _In_ D3D12_QUERY_TYPE Type,
  5829. _In_ UINT StartIndex,
  5830. _In_ UINT NumQueries,
  5831. _In_ ID3D12Resource *pDestinationBuffer,
  5832. _In_ UINT64 AlignedDestinationBufferOffset);
  5833. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  5834. void ( STDMETHODCALLTYPE *SetPredication )(
  5835. ID3D12GraphicsCommandList1 * This,
  5836. _In_opt_ ID3D12Resource *pBuffer,
  5837. _In_ UINT64 AlignedBufferOffset,
  5838. _In_ D3D12_PREDICATION_OP Operation);
  5839. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  5840. void ( STDMETHODCALLTYPE *SetMarker )(
  5841. ID3D12GraphicsCommandList1 * This,
  5842. UINT Metadata,
  5843. _In_reads_bytes_opt_(Size) const void *pData,
  5844. UINT Size);
  5845. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  5846. void ( STDMETHODCALLTYPE *BeginEvent )(
  5847. ID3D12GraphicsCommandList1 * This,
  5848. UINT Metadata,
  5849. _In_reads_bytes_opt_(Size) const void *pData,
  5850. UINT Size);
  5851. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  5852. void ( STDMETHODCALLTYPE *EndEvent )(
  5853. ID3D12GraphicsCommandList1 * This);
  5854. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  5855. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  5856. ID3D12GraphicsCommandList1 * This,
  5857. _In_ ID3D12CommandSignature *pCommandSignature,
  5858. _In_ UINT MaxCommandCount,
  5859. _In_ ID3D12Resource *pArgumentBuffer,
  5860. _In_ UINT64 ArgumentBufferOffset,
  5861. _In_opt_ ID3D12Resource *pCountBuffer,
  5862. _In_ UINT64 CountBufferOffset);
  5863. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  5864. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  5865. ID3D12GraphicsCommandList1 * This,
  5866. _In_ ID3D12Resource *pDstBuffer,
  5867. UINT64 DstOffset,
  5868. _In_ ID3D12Resource *pSrcBuffer,
  5869. UINT64 SrcOffset,
  5870. UINT Dependencies,
  5871. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  5872. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  5873. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  5874. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  5875. ID3D12GraphicsCommandList1 * This,
  5876. _In_ ID3D12Resource *pDstBuffer,
  5877. UINT64 DstOffset,
  5878. _In_ ID3D12Resource *pSrcBuffer,
  5879. UINT64 SrcOffset,
  5880. UINT Dependencies,
  5881. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  5882. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  5883. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  5884. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  5885. ID3D12GraphicsCommandList1 * This,
  5886. _In_ FLOAT Min,
  5887. _In_ FLOAT Max);
  5888. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  5889. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  5890. ID3D12GraphicsCommandList1 * This,
  5891. _In_ UINT NumSamplesPerPixel,
  5892. _In_ UINT NumPixels,
  5893. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  5894. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  5895. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  5896. ID3D12GraphicsCommandList1 * This,
  5897. _In_ ID3D12Resource *pDstResource,
  5898. _In_ UINT DstSubresource,
  5899. _In_ UINT DstX,
  5900. _In_ UINT DstY,
  5901. _In_ ID3D12Resource *pSrcResource,
  5902. _In_ UINT SrcSubresource,
  5903. _In_opt_ D3D12_RECT *pSrcRect,
  5904. _In_ DXGI_FORMAT Format,
  5905. _In_ D3D12_RESOLVE_MODE ResolveMode);
  5906. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  5907. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  5908. ID3D12GraphicsCommandList1 * This,
  5909. _In_ UINT Mask);
  5910. END_INTERFACE
  5911. } ID3D12GraphicsCommandList1Vtbl;
  5912. interface ID3D12GraphicsCommandList1
  5913. {
  5914. CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl;
  5915. };
  5916. #ifdef COBJMACROS
  5917. #define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \
  5918. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  5919. #define ID3D12GraphicsCommandList1_AddRef(This) \
  5920. ( (This)->lpVtbl -> AddRef(This) )
  5921. #define ID3D12GraphicsCommandList1_Release(This) \
  5922. ( (This)->lpVtbl -> Release(This) )
  5923. #define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
  5924. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  5925. #define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \
  5926. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  5927. #define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \
  5928. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  5929. #define ID3D12GraphicsCommandList1_SetName(This,Name) \
  5930. ( (This)->lpVtbl -> SetName(This,Name) )
  5931. #define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \
  5932. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  5933. #define ID3D12GraphicsCommandList1_GetType(This) \
  5934. ( (This)->lpVtbl -> GetType(This) )
  5935. #define ID3D12GraphicsCommandList1_Close(This) \
  5936. ( (This)->lpVtbl -> Close(This) )
  5937. #define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \
  5938. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  5939. #define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \
  5940. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  5941. #define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  5942. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  5943. #define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  5944. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  5945. #define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  5946. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  5947. #define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  5948. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  5949. #define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  5950. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  5951. #define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \
  5952. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  5953. #define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  5954. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  5955. #define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  5956. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  5957. #define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \
  5958. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  5959. #define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \
  5960. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  5961. #define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \
  5962. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  5963. #define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \
  5964. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  5965. #define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \
  5966. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  5967. #define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \
  5968. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  5969. #define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
  5970. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  5971. #define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \
  5972. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  5973. #define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  5974. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  5975. #define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \
  5976. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  5977. #define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \
  5978. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  5979. #define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  5980. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  5981. #define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  5982. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  5983. #define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  5984. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  5985. #define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  5986. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  5987. #define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  5988. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  5989. #define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  5990. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  5991. #define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  5992. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  5993. #define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  5994. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  5995. #define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  5996. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  5997. #define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  5998. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  5999. #define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  6000. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  6001. #define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  6002. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  6003. #define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \
  6004. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  6005. #define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  6006. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  6007. #define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \
  6008. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  6009. #define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  6010. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  6011. #define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  6012. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  6013. #define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  6014. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  6015. #define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  6016. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  6017. #define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  6018. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  6019. #define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \
  6020. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  6021. #define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
  6022. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  6023. #define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
  6024. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  6025. #define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  6026. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  6027. #define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  6028. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  6029. #define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \
  6030. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  6031. #define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \
  6032. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  6033. #define ID3D12GraphicsCommandList1_EndEvent(This) \
  6034. ( (This)->lpVtbl -> EndEvent(This) )
  6035. #define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  6036. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  6037. #define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  6038. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  6039. #define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  6040. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  6041. #define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \
  6042. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  6043. #define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  6044. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  6045. #define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  6046. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  6047. #define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \
  6048. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  6049. #endif /* COBJMACROS */
  6050. #endif /* C style interface */
  6051. #endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
  6052. /* interface __MIDL_itf_d3d12_0000_0019 */
  6053. /* [local] */
  6054. typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
  6055. {
  6056. D3D12_GPU_VIRTUAL_ADDRESS Dest;
  6057. UINT32 Value;
  6058. } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
  6059. typedef
  6060. enum D3D12_WRITEBUFFERIMMEDIATE_MODE
  6061. {
  6062. D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0,
  6063. D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
  6064. D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
  6065. } D3D12_WRITEBUFFERIMMEDIATE_MODE;
  6066. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec;
  6067. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec;
  6068. #ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
  6069. #define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
  6070. /* interface ID3D12GraphicsCommandList2 */
  6071. /* [unique][local][object][uuid] */
  6072. EXTERN_C const IID IID_ID3D12GraphicsCommandList2;
  6073. #if defined(__cplusplus) && !defined(CINTERFACE)
  6074. MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28")
  6075. ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
  6076. {
  6077. public:
  6078. virtual void STDMETHODCALLTYPE WriteBufferImmediate(
  6079. UINT Count,
  6080. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  6081. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
  6082. };
  6083. #else /* C style interface */
  6084. typedef struct ID3D12GraphicsCommandList2Vtbl
  6085. {
  6086. BEGIN_INTERFACE
  6087. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  6088. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6089. ID3D12GraphicsCommandList2 * This,
  6090. REFIID riid,
  6091. _COM_Outptr_ void **ppvObject);
  6092. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  6093. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6094. ID3D12GraphicsCommandList2 * This);
  6095. DECLSPEC_XFGVIRT(IUnknown, Release)
  6096. ULONG ( STDMETHODCALLTYPE *Release )(
  6097. ID3D12GraphicsCommandList2 * This);
  6098. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  6099. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  6100. ID3D12GraphicsCommandList2 * This,
  6101. _In_ REFGUID guid,
  6102. _Inout_ UINT *pDataSize,
  6103. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  6104. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  6105. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  6106. ID3D12GraphicsCommandList2 * This,
  6107. _In_ REFGUID guid,
  6108. _In_ UINT DataSize,
  6109. _In_reads_bytes_opt_( DataSize ) const void *pData);
  6110. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  6111. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  6112. ID3D12GraphicsCommandList2 * This,
  6113. _In_ REFGUID guid,
  6114. _In_opt_ const IUnknown *pData);
  6115. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  6116. HRESULT ( STDMETHODCALLTYPE *SetName )(
  6117. ID3D12GraphicsCommandList2 * This,
  6118. _In_z_ LPCWSTR Name);
  6119. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  6120. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  6121. ID3D12GraphicsCommandList2 * This,
  6122. REFIID riid,
  6123. _COM_Outptr_opt_ void **ppvDevice);
  6124. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  6125. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  6126. ID3D12GraphicsCommandList2 * This);
  6127. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  6128. HRESULT ( STDMETHODCALLTYPE *Close )(
  6129. ID3D12GraphicsCommandList2 * This);
  6130. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  6131. HRESULT ( STDMETHODCALLTYPE *Reset )(
  6132. ID3D12GraphicsCommandList2 * This,
  6133. _In_ ID3D12CommandAllocator *pAllocator,
  6134. _In_opt_ ID3D12PipelineState *pInitialState);
  6135. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  6136. void ( STDMETHODCALLTYPE *ClearState )(
  6137. ID3D12GraphicsCommandList2 * This,
  6138. _In_opt_ ID3D12PipelineState *pPipelineState);
  6139. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  6140. void ( STDMETHODCALLTYPE *DrawInstanced )(
  6141. ID3D12GraphicsCommandList2 * This,
  6142. _In_ UINT VertexCountPerInstance,
  6143. _In_ UINT InstanceCount,
  6144. _In_ UINT StartVertexLocation,
  6145. _In_ UINT StartInstanceLocation);
  6146. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  6147. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  6148. ID3D12GraphicsCommandList2 * This,
  6149. _In_ UINT IndexCountPerInstance,
  6150. _In_ UINT InstanceCount,
  6151. _In_ UINT StartIndexLocation,
  6152. _In_ INT BaseVertexLocation,
  6153. _In_ UINT StartInstanceLocation);
  6154. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  6155. void ( STDMETHODCALLTYPE *Dispatch )(
  6156. ID3D12GraphicsCommandList2 * This,
  6157. _In_ UINT ThreadGroupCountX,
  6158. _In_ UINT ThreadGroupCountY,
  6159. _In_ UINT ThreadGroupCountZ);
  6160. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  6161. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  6162. ID3D12GraphicsCommandList2 * This,
  6163. _In_ ID3D12Resource *pDstBuffer,
  6164. UINT64 DstOffset,
  6165. _In_ ID3D12Resource *pSrcBuffer,
  6166. UINT64 SrcOffset,
  6167. UINT64 NumBytes);
  6168. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  6169. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  6170. ID3D12GraphicsCommandList2 * This,
  6171. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  6172. UINT DstX,
  6173. UINT DstY,
  6174. UINT DstZ,
  6175. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  6176. _In_opt_ const D3D12_BOX *pSrcBox);
  6177. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  6178. void ( STDMETHODCALLTYPE *CopyResource )(
  6179. ID3D12GraphicsCommandList2 * This,
  6180. _In_ ID3D12Resource *pDstResource,
  6181. _In_ ID3D12Resource *pSrcResource);
  6182. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  6183. void ( STDMETHODCALLTYPE *CopyTiles )(
  6184. ID3D12GraphicsCommandList2 * This,
  6185. _In_ ID3D12Resource *pTiledResource,
  6186. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  6187. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  6188. _In_ ID3D12Resource *pBuffer,
  6189. UINT64 BufferStartOffsetInBytes,
  6190. D3D12_TILE_COPY_FLAGS Flags);
  6191. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  6192. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  6193. ID3D12GraphicsCommandList2 * This,
  6194. _In_ ID3D12Resource *pDstResource,
  6195. _In_ UINT DstSubresource,
  6196. _In_ ID3D12Resource *pSrcResource,
  6197. _In_ UINT SrcSubresource,
  6198. _In_ DXGI_FORMAT Format);
  6199. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  6200. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  6201. ID3D12GraphicsCommandList2 * This,
  6202. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  6203. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  6204. void ( STDMETHODCALLTYPE *RSSetViewports )(
  6205. ID3D12GraphicsCommandList2 * This,
  6206. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  6207. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  6208. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  6209. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  6210. ID3D12GraphicsCommandList2 * This,
  6211. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  6212. _In_reads_( NumRects) const D3D12_RECT *pRects);
  6213. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  6214. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  6215. ID3D12GraphicsCommandList2 * This,
  6216. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  6217. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  6218. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  6219. ID3D12GraphicsCommandList2 * This,
  6220. _In_ UINT StencilRef);
  6221. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  6222. void ( STDMETHODCALLTYPE *SetPipelineState )(
  6223. ID3D12GraphicsCommandList2 * This,
  6224. _In_ ID3D12PipelineState *pPipelineState);
  6225. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  6226. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  6227. ID3D12GraphicsCommandList2 * This,
  6228. _In_ UINT NumBarriers,
  6229. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  6230. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  6231. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  6232. ID3D12GraphicsCommandList2 * This,
  6233. _In_ ID3D12GraphicsCommandList *pCommandList);
  6234. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  6235. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  6236. ID3D12GraphicsCommandList2 * This,
  6237. _In_ UINT NumDescriptorHeaps,
  6238. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  6239. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  6240. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  6241. ID3D12GraphicsCommandList2 * This,
  6242. _In_opt_ ID3D12RootSignature *pRootSignature);
  6243. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  6244. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  6245. ID3D12GraphicsCommandList2 * This,
  6246. _In_opt_ ID3D12RootSignature *pRootSignature);
  6247. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  6248. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  6249. ID3D12GraphicsCommandList2 * This,
  6250. _In_ UINT RootParameterIndex,
  6251. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  6252. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  6253. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  6254. ID3D12GraphicsCommandList2 * This,
  6255. _In_ UINT RootParameterIndex,
  6256. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  6257. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  6258. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  6259. ID3D12GraphicsCommandList2 * This,
  6260. _In_ UINT RootParameterIndex,
  6261. _In_ UINT SrcData,
  6262. _In_ UINT DestOffsetIn32BitValues);
  6263. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  6264. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  6265. ID3D12GraphicsCommandList2 * This,
  6266. _In_ UINT RootParameterIndex,
  6267. _In_ UINT SrcData,
  6268. _In_ UINT DestOffsetIn32BitValues);
  6269. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  6270. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  6271. ID3D12GraphicsCommandList2 * This,
  6272. _In_ UINT RootParameterIndex,
  6273. _In_ UINT Num32BitValuesToSet,
  6274. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  6275. _In_ UINT DestOffsetIn32BitValues);
  6276. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  6277. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  6278. ID3D12GraphicsCommandList2 * This,
  6279. _In_ UINT RootParameterIndex,
  6280. _In_ UINT Num32BitValuesToSet,
  6281. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  6282. _In_ UINT DestOffsetIn32BitValues);
  6283. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  6284. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  6285. ID3D12GraphicsCommandList2 * This,
  6286. _In_ UINT RootParameterIndex,
  6287. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  6288. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  6289. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  6290. ID3D12GraphicsCommandList2 * This,
  6291. _In_ UINT RootParameterIndex,
  6292. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  6293. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  6294. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  6295. ID3D12GraphicsCommandList2 * This,
  6296. _In_ UINT RootParameterIndex,
  6297. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  6298. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  6299. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  6300. ID3D12GraphicsCommandList2 * This,
  6301. _In_ UINT RootParameterIndex,
  6302. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  6303. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  6304. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  6305. ID3D12GraphicsCommandList2 * This,
  6306. _In_ UINT RootParameterIndex,
  6307. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  6308. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  6309. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  6310. ID3D12GraphicsCommandList2 * This,
  6311. _In_ UINT RootParameterIndex,
  6312. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  6313. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  6314. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  6315. ID3D12GraphicsCommandList2 * This,
  6316. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  6317. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  6318. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  6319. ID3D12GraphicsCommandList2 * This,
  6320. _In_ UINT StartSlot,
  6321. _In_ UINT NumViews,
  6322. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  6323. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  6324. void ( STDMETHODCALLTYPE *SOSetTargets )(
  6325. ID3D12GraphicsCommandList2 * This,
  6326. _In_ UINT StartSlot,
  6327. _In_ UINT NumViews,
  6328. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  6329. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  6330. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  6331. ID3D12GraphicsCommandList2 * This,
  6332. _In_ UINT NumRenderTargetDescriptors,
  6333. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  6334. _In_ BOOL RTsSingleHandleToDescriptorRange,
  6335. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  6336. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  6337. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  6338. ID3D12GraphicsCommandList2 * This,
  6339. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  6340. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  6341. _In_ FLOAT Depth,
  6342. _In_ UINT8 Stencil,
  6343. _In_ UINT NumRects,
  6344. _In_reads_(NumRects) const D3D12_RECT *pRects);
  6345. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  6346. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  6347. ID3D12GraphicsCommandList2 * This,
  6348. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  6349. _In_ const FLOAT ColorRGBA[ 4 ],
  6350. _In_ UINT NumRects,
  6351. _In_reads_(NumRects) const D3D12_RECT *pRects);
  6352. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  6353. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  6354. ID3D12GraphicsCommandList2 * This,
  6355. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  6356. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  6357. _In_ ID3D12Resource *pResource,
  6358. _In_ const UINT Values[ 4 ],
  6359. _In_ UINT NumRects,
  6360. _In_reads_(NumRects) const D3D12_RECT *pRects);
  6361. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  6362. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  6363. ID3D12GraphicsCommandList2 * This,
  6364. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  6365. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  6366. _In_ ID3D12Resource *pResource,
  6367. _In_ const FLOAT Values[ 4 ],
  6368. _In_ UINT NumRects,
  6369. _In_reads_(NumRects) const D3D12_RECT *pRects);
  6370. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  6371. void ( STDMETHODCALLTYPE *DiscardResource )(
  6372. ID3D12GraphicsCommandList2 * This,
  6373. _In_ ID3D12Resource *pResource,
  6374. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  6375. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  6376. void ( STDMETHODCALLTYPE *BeginQuery )(
  6377. ID3D12GraphicsCommandList2 * This,
  6378. _In_ ID3D12QueryHeap *pQueryHeap,
  6379. _In_ D3D12_QUERY_TYPE Type,
  6380. _In_ UINT Index);
  6381. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  6382. void ( STDMETHODCALLTYPE *EndQuery )(
  6383. ID3D12GraphicsCommandList2 * This,
  6384. _In_ ID3D12QueryHeap *pQueryHeap,
  6385. _In_ D3D12_QUERY_TYPE Type,
  6386. _In_ UINT Index);
  6387. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  6388. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  6389. ID3D12GraphicsCommandList2 * This,
  6390. _In_ ID3D12QueryHeap *pQueryHeap,
  6391. _In_ D3D12_QUERY_TYPE Type,
  6392. _In_ UINT StartIndex,
  6393. _In_ UINT NumQueries,
  6394. _In_ ID3D12Resource *pDestinationBuffer,
  6395. _In_ UINT64 AlignedDestinationBufferOffset);
  6396. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  6397. void ( STDMETHODCALLTYPE *SetPredication )(
  6398. ID3D12GraphicsCommandList2 * This,
  6399. _In_opt_ ID3D12Resource *pBuffer,
  6400. _In_ UINT64 AlignedBufferOffset,
  6401. _In_ D3D12_PREDICATION_OP Operation);
  6402. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  6403. void ( STDMETHODCALLTYPE *SetMarker )(
  6404. ID3D12GraphicsCommandList2 * This,
  6405. UINT Metadata,
  6406. _In_reads_bytes_opt_(Size) const void *pData,
  6407. UINT Size);
  6408. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  6409. void ( STDMETHODCALLTYPE *BeginEvent )(
  6410. ID3D12GraphicsCommandList2 * This,
  6411. UINT Metadata,
  6412. _In_reads_bytes_opt_(Size) const void *pData,
  6413. UINT Size);
  6414. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  6415. void ( STDMETHODCALLTYPE *EndEvent )(
  6416. ID3D12GraphicsCommandList2 * This);
  6417. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  6418. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  6419. ID3D12GraphicsCommandList2 * This,
  6420. _In_ ID3D12CommandSignature *pCommandSignature,
  6421. _In_ UINT MaxCommandCount,
  6422. _In_ ID3D12Resource *pArgumentBuffer,
  6423. _In_ UINT64 ArgumentBufferOffset,
  6424. _In_opt_ ID3D12Resource *pCountBuffer,
  6425. _In_ UINT64 CountBufferOffset);
  6426. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  6427. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  6428. ID3D12GraphicsCommandList2 * This,
  6429. _In_ ID3D12Resource *pDstBuffer,
  6430. UINT64 DstOffset,
  6431. _In_ ID3D12Resource *pSrcBuffer,
  6432. UINT64 SrcOffset,
  6433. UINT Dependencies,
  6434. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  6435. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  6436. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  6437. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  6438. ID3D12GraphicsCommandList2 * This,
  6439. _In_ ID3D12Resource *pDstBuffer,
  6440. UINT64 DstOffset,
  6441. _In_ ID3D12Resource *pSrcBuffer,
  6442. UINT64 SrcOffset,
  6443. UINT Dependencies,
  6444. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  6445. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  6446. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  6447. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  6448. ID3D12GraphicsCommandList2 * This,
  6449. _In_ FLOAT Min,
  6450. _In_ FLOAT Max);
  6451. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  6452. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  6453. ID3D12GraphicsCommandList2 * This,
  6454. _In_ UINT NumSamplesPerPixel,
  6455. _In_ UINT NumPixels,
  6456. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  6457. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  6458. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  6459. ID3D12GraphicsCommandList2 * This,
  6460. _In_ ID3D12Resource *pDstResource,
  6461. _In_ UINT DstSubresource,
  6462. _In_ UINT DstX,
  6463. _In_ UINT DstY,
  6464. _In_ ID3D12Resource *pSrcResource,
  6465. _In_ UINT SrcSubresource,
  6466. _In_opt_ D3D12_RECT *pSrcRect,
  6467. _In_ DXGI_FORMAT Format,
  6468. _In_ D3D12_RESOLVE_MODE ResolveMode);
  6469. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  6470. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  6471. ID3D12GraphicsCommandList2 * This,
  6472. _In_ UINT Mask);
  6473. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  6474. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  6475. ID3D12GraphicsCommandList2 * This,
  6476. UINT Count,
  6477. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  6478. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  6479. END_INTERFACE
  6480. } ID3D12GraphicsCommandList2Vtbl;
  6481. interface ID3D12GraphicsCommandList2
  6482. {
  6483. CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl;
  6484. };
  6485. #ifdef COBJMACROS
  6486. #define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \
  6487. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  6488. #define ID3D12GraphicsCommandList2_AddRef(This) \
  6489. ( (This)->lpVtbl -> AddRef(This) )
  6490. #define ID3D12GraphicsCommandList2_Release(This) \
  6491. ( (This)->lpVtbl -> Release(This) )
  6492. #define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
  6493. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  6494. #define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \
  6495. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  6496. #define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \
  6497. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  6498. #define ID3D12GraphicsCommandList2_SetName(This,Name) \
  6499. ( (This)->lpVtbl -> SetName(This,Name) )
  6500. #define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \
  6501. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  6502. #define ID3D12GraphicsCommandList2_GetType(This) \
  6503. ( (This)->lpVtbl -> GetType(This) )
  6504. #define ID3D12GraphicsCommandList2_Close(This) \
  6505. ( (This)->lpVtbl -> Close(This) )
  6506. #define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \
  6507. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  6508. #define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \
  6509. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  6510. #define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  6511. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  6512. #define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  6513. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  6514. #define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  6515. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  6516. #define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  6517. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  6518. #define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  6519. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  6520. #define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \
  6521. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  6522. #define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  6523. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  6524. #define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  6525. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  6526. #define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \
  6527. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  6528. #define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \
  6529. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  6530. #define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \
  6531. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  6532. #define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \
  6533. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  6534. #define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \
  6535. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  6536. #define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \
  6537. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  6538. #define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
  6539. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  6540. #define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \
  6541. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  6542. #define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  6543. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  6544. #define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \
  6545. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  6546. #define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \
  6547. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  6548. #define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  6549. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  6550. #define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  6551. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  6552. #define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  6553. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  6554. #define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  6555. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  6556. #define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  6557. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  6558. #define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  6559. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  6560. #define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  6561. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  6562. #define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  6563. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  6564. #define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  6565. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  6566. #define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  6567. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  6568. #define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  6569. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  6570. #define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  6571. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  6572. #define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \
  6573. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  6574. #define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  6575. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  6576. #define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \
  6577. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  6578. #define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  6579. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  6580. #define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  6581. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  6582. #define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  6583. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  6584. #define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  6585. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  6586. #define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  6587. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  6588. #define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \
  6589. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  6590. #define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
  6591. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  6592. #define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
  6593. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  6594. #define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  6595. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  6596. #define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  6597. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  6598. #define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \
  6599. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  6600. #define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \
  6601. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  6602. #define ID3D12GraphicsCommandList2_EndEvent(This) \
  6603. ( (This)->lpVtbl -> EndEvent(This) )
  6604. #define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  6605. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  6606. #define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  6607. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  6608. #define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  6609. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  6610. #define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \
  6611. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  6612. #define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  6613. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  6614. #define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  6615. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  6616. #define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \
  6617. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  6618. #define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
  6619. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  6620. #endif /* COBJMACROS */
  6621. #endif /* C style interface */
  6622. #endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
  6623. #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
  6624. #define __ID3D12CommandQueue_INTERFACE_DEFINED__
  6625. /* interface ID3D12CommandQueue */
  6626. /* [unique][local][object][uuid] */
  6627. EXTERN_C const IID IID_ID3D12CommandQueue;
  6628. #if defined(__cplusplus) && !defined(CINTERFACE)
  6629. MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
  6630. ID3D12CommandQueue : public ID3D12Pageable
  6631. {
  6632. public:
  6633. virtual void STDMETHODCALLTYPE UpdateTileMappings(
  6634. _In_ ID3D12Resource *pResource,
  6635. UINT NumResourceRegions,
  6636. _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
  6637. _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
  6638. _In_opt_ ID3D12Heap *pHeap,
  6639. UINT NumRanges,
  6640. _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
  6641. _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
  6642. _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
  6643. D3D12_TILE_MAPPING_FLAGS Flags) = 0;
  6644. virtual void STDMETHODCALLTYPE CopyTileMappings(
  6645. _In_ ID3D12Resource *pDstResource,
  6646. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
  6647. _In_ ID3D12Resource *pSrcResource,
  6648. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
  6649. _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
  6650. D3D12_TILE_MAPPING_FLAGS Flags) = 0;
  6651. virtual void STDMETHODCALLTYPE ExecuteCommandLists(
  6652. _In_ UINT NumCommandLists,
  6653. _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
  6654. virtual void STDMETHODCALLTYPE SetMarker(
  6655. UINT Metadata,
  6656. _In_reads_bytes_opt_(Size) const void *pData,
  6657. UINT Size) = 0;
  6658. virtual void STDMETHODCALLTYPE BeginEvent(
  6659. UINT Metadata,
  6660. _In_reads_bytes_opt_(Size) const void *pData,
  6661. UINT Size) = 0;
  6662. virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
  6663. virtual HRESULT STDMETHODCALLTYPE Signal(
  6664. ID3D12Fence *pFence,
  6665. UINT64 Value) = 0;
  6666. virtual HRESULT STDMETHODCALLTYPE Wait(
  6667. ID3D12Fence *pFence,
  6668. UINT64 Value) = 0;
  6669. virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
  6670. _Out_ UINT64 *pFrequency) = 0;
  6671. virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
  6672. _Out_ UINT64 *pGpuTimestamp,
  6673. _Out_ UINT64 *pCpuTimestamp) = 0;
  6674. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  6675. virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  6676. #else
  6677. virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc(
  6678. D3D12_COMMAND_QUEUE_DESC * RetVal) = 0;
  6679. #endif
  6680. };
  6681. #else /* C style interface */
  6682. typedef struct ID3D12CommandQueueVtbl
  6683. {
  6684. BEGIN_INTERFACE
  6685. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  6686. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6687. ID3D12CommandQueue * This,
  6688. REFIID riid,
  6689. _COM_Outptr_ void **ppvObject);
  6690. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  6691. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6692. ID3D12CommandQueue * This);
  6693. DECLSPEC_XFGVIRT(IUnknown, Release)
  6694. ULONG ( STDMETHODCALLTYPE *Release )(
  6695. ID3D12CommandQueue * This);
  6696. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  6697. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  6698. ID3D12CommandQueue * This,
  6699. _In_ REFGUID guid,
  6700. _Inout_ UINT *pDataSize,
  6701. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  6702. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  6703. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  6704. ID3D12CommandQueue * This,
  6705. _In_ REFGUID guid,
  6706. _In_ UINT DataSize,
  6707. _In_reads_bytes_opt_( DataSize ) const void *pData);
  6708. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  6709. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  6710. ID3D12CommandQueue * This,
  6711. _In_ REFGUID guid,
  6712. _In_opt_ const IUnknown *pData);
  6713. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  6714. HRESULT ( STDMETHODCALLTYPE *SetName )(
  6715. ID3D12CommandQueue * This,
  6716. _In_z_ LPCWSTR Name);
  6717. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  6718. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  6719. ID3D12CommandQueue * This,
  6720. REFIID riid,
  6721. _COM_Outptr_opt_ void **ppvDevice);
  6722. DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
  6723. void ( STDMETHODCALLTYPE *UpdateTileMappings )(
  6724. ID3D12CommandQueue * This,
  6725. _In_ ID3D12Resource *pResource,
  6726. UINT NumResourceRegions,
  6727. _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
  6728. _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
  6729. _In_opt_ ID3D12Heap *pHeap,
  6730. UINT NumRanges,
  6731. _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
  6732. _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
  6733. _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
  6734. D3D12_TILE_MAPPING_FLAGS Flags);
  6735. DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
  6736. void ( STDMETHODCALLTYPE *CopyTileMappings )(
  6737. ID3D12CommandQueue * This,
  6738. _In_ ID3D12Resource *pDstResource,
  6739. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
  6740. _In_ ID3D12Resource *pSrcResource,
  6741. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
  6742. _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
  6743. D3D12_TILE_MAPPING_FLAGS Flags);
  6744. DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
  6745. void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
  6746. ID3D12CommandQueue * This,
  6747. _In_ UINT NumCommandLists,
  6748. _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
  6749. DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
  6750. void ( STDMETHODCALLTYPE *SetMarker )(
  6751. ID3D12CommandQueue * This,
  6752. UINT Metadata,
  6753. _In_reads_bytes_opt_(Size) const void *pData,
  6754. UINT Size);
  6755. DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
  6756. void ( STDMETHODCALLTYPE *BeginEvent )(
  6757. ID3D12CommandQueue * This,
  6758. UINT Metadata,
  6759. _In_reads_bytes_opt_(Size) const void *pData,
  6760. UINT Size);
  6761. DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
  6762. void ( STDMETHODCALLTYPE *EndEvent )(
  6763. ID3D12CommandQueue * This);
  6764. DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
  6765. HRESULT ( STDMETHODCALLTYPE *Signal )(
  6766. ID3D12CommandQueue * This,
  6767. ID3D12Fence *pFence,
  6768. UINT64 Value);
  6769. DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
  6770. HRESULT ( STDMETHODCALLTYPE *Wait )(
  6771. ID3D12CommandQueue * This,
  6772. ID3D12Fence *pFence,
  6773. UINT64 Value);
  6774. DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
  6775. HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
  6776. ID3D12CommandQueue * This,
  6777. _Out_ UINT64 *pFrequency);
  6778. DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
  6779. HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
  6780. ID3D12CommandQueue * This,
  6781. _Out_ UINT64 *pGpuTimestamp,
  6782. _Out_ UINT64 *pCpuTimestamp);
  6783. DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
  6784. #if !defined(_WIN32)
  6785. D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
  6786. ID3D12CommandQueue * This);
  6787. #else
  6788. D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
  6789. ID3D12CommandQueue * This,
  6790. D3D12_COMMAND_QUEUE_DESC * RetVal);
  6791. #endif
  6792. END_INTERFACE
  6793. } ID3D12CommandQueueVtbl;
  6794. interface ID3D12CommandQueue
  6795. {
  6796. CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
  6797. };
  6798. #ifdef COBJMACROS
  6799. #define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \
  6800. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  6801. #define ID3D12CommandQueue_AddRef(This) \
  6802. ( (This)->lpVtbl -> AddRef(This) )
  6803. #define ID3D12CommandQueue_Release(This) \
  6804. ( (This)->lpVtbl -> Release(This) )
  6805. #define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \
  6806. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  6807. #define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \
  6808. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  6809. #define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \
  6810. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  6811. #define ID3D12CommandQueue_SetName(This,Name) \
  6812. ( (This)->lpVtbl -> SetName(This,Name) )
  6813. #define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \
  6814. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  6815. #define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
  6816. ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
  6817. #define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
  6818. ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
  6819. #define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
  6820. ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
  6821. #define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \
  6822. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  6823. #define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \
  6824. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  6825. #define ID3D12CommandQueue_EndEvent(This) \
  6826. ( (This)->lpVtbl -> EndEvent(This) )
  6827. #define ID3D12CommandQueue_Signal(This,pFence,Value) \
  6828. ( (This)->lpVtbl -> Signal(This,pFence,Value) )
  6829. #define ID3D12CommandQueue_Wait(This,pFence,Value) \
  6830. ( (This)->lpVtbl -> Wait(This,pFence,Value) )
  6831. #define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \
  6832. ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
  6833. #define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
  6834. ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
  6835. #if !defined(_WIN32)
  6836. #define ID3D12CommandQueue_GetDesc(This) \
  6837. ( (This)->lpVtbl -> GetDesc(This) )
  6838. #else
  6839. #define ID3D12CommandQueue_GetDesc(This,RetVal) \
  6840. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  6841. #endif
  6842. #endif /* COBJMACROS */
  6843. #endif /* C style interface */
  6844. #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
  6845. /* interface __MIDL_itf_d3d12_0000_0021 */
  6846. /* [local] */
  6847. typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS
  6848. {
  6849. _Out_ UINT ComputeQueuesPer3DQueue;
  6850. } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS;
  6851. typedef
  6852. enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY
  6853. {
  6854. D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0,
  6855. D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1
  6856. } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY;
  6857. typedef
  6858. enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY
  6859. {
  6860. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0,
  6861. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1,
  6862. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2,
  6863. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18,
  6864. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19,
  6865. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20,
  6866. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21,
  6867. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22,
  6868. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23,
  6869. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24,
  6870. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25,
  6871. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26,
  6872. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27,
  6873. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28,
  6874. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29,
  6875. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30,
  6876. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31,
  6877. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32
  6878. } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY;
  6879. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec;
  6880. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_s_ifspec;
  6881. #ifndef __ID3D12CommandQueue1_INTERFACE_DEFINED__
  6882. #define __ID3D12CommandQueue1_INTERFACE_DEFINED__
  6883. /* interface ID3D12CommandQueue1 */
  6884. /* [unique][local][object][uuid] */
  6885. EXTERN_C const IID IID_ID3D12CommandQueue1;
  6886. #if defined(__cplusplus) && !defined(CINTERFACE)
  6887. MIDL_INTERFACE("3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9")
  6888. ID3D12CommandQueue1 : public ID3D12CommandQueue
  6889. {
  6890. public:
  6891. virtual HRESULT STDMETHODCALLTYPE SetProcessPriority(
  6892. D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) = 0;
  6893. virtual HRESULT STDMETHODCALLTYPE GetProcessPriority(
  6894. D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) = 0;
  6895. virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority(
  6896. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) = 0;
  6897. virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority(
  6898. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) = 0;
  6899. };
  6900. #else /* C style interface */
  6901. typedef struct ID3D12CommandQueue1Vtbl
  6902. {
  6903. BEGIN_INTERFACE
  6904. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  6905. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6906. ID3D12CommandQueue1 * This,
  6907. REFIID riid,
  6908. _COM_Outptr_ void **ppvObject);
  6909. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  6910. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6911. ID3D12CommandQueue1 * This);
  6912. DECLSPEC_XFGVIRT(IUnknown, Release)
  6913. ULONG ( STDMETHODCALLTYPE *Release )(
  6914. ID3D12CommandQueue1 * This);
  6915. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  6916. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  6917. ID3D12CommandQueue1 * This,
  6918. _In_ REFGUID guid,
  6919. _Inout_ UINT *pDataSize,
  6920. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  6921. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  6922. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  6923. ID3D12CommandQueue1 * This,
  6924. _In_ REFGUID guid,
  6925. _In_ UINT DataSize,
  6926. _In_reads_bytes_opt_( DataSize ) const void *pData);
  6927. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  6928. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  6929. ID3D12CommandQueue1 * This,
  6930. _In_ REFGUID guid,
  6931. _In_opt_ const IUnknown *pData);
  6932. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  6933. HRESULT ( STDMETHODCALLTYPE *SetName )(
  6934. ID3D12CommandQueue1 * This,
  6935. _In_z_ LPCWSTR Name);
  6936. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  6937. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  6938. ID3D12CommandQueue1 * This,
  6939. REFIID riid,
  6940. _COM_Outptr_opt_ void **ppvDevice);
  6941. DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
  6942. void ( STDMETHODCALLTYPE *UpdateTileMappings )(
  6943. ID3D12CommandQueue1 * This,
  6944. _In_ ID3D12Resource *pResource,
  6945. UINT NumResourceRegions,
  6946. _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
  6947. _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
  6948. _In_opt_ ID3D12Heap *pHeap,
  6949. UINT NumRanges,
  6950. _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
  6951. _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
  6952. _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
  6953. D3D12_TILE_MAPPING_FLAGS Flags);
  6954. DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
  6955. void ( STDMETHODCALLTYPE *CopyTileMappings )(
  6956. ID3D12CommandQueue1 * This,
  6957. _In_ ID3D12Resource *pDstResource,
  6958. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
  6959. _In_ ID3D12Resource *pSrcResource,
  6960. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
  6961. _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
  6962. D3D12_TILE_MAPPING_FLAGS Flags);
  6963. DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
  6964. void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
  6965. ID3D12CommandQueue1 * This,
  6966. _In_ UINT NumCommandLists,
  6967. _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
  6968. DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
  6969. void ( STDMETHODCALLTYPE *SetMarker )(
  6970. ID3D12CommandQueue1 * This,
  6971. UINT Metadata,
  6972. _In_reads_bytes_opt_(Size) const void *pData,
  6973. UINT Size);
  6974. DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
  6975. void ( STDMETHODCALLTYPE *BeginEvent )(
  6976. ID3D12CommandQueue1 * This,
  6977. UINT Metadata,
  6978. _In_reads_bytes_opt_(Size) const void *pData,
  6979. UINT Size);
  6980. DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
  6981. void ( STDMETHODCALLTYPE *EndEvent )(
  6982. ID3D12CommandQueue1 * This);
  6983. DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
  6984. HRESULT ( STDMETHODCALLTYPE *Signal )(
  6985. ID3D12CommandQueue1 * This,
  6986. ID3D12Fence *pFence,
  6987. UINT64 Value);
  6988. DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
  6989. HRESULT ( STDMETHODCALLTYPE *Wait )(
  6990. ID3D12CommandQueue1 * This,
  6991. ID3D12Fence *pFence,
  6992. UINT64 Value);
  6993. DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
  6994. HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
  6995. ID3D12CommandQueue1 * This,
  6996. _Out_ UINT64 *pFrequency);
  6997. DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
  6998. HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
  6999. ID3D12CommandQueue1 * This,
  7000. _Out_ UINT64 *pGpuTimestamp,
  7001. _Out_ UINT64 *pCpuTimestamp);
  7002. DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
  7003. #if !defined(_WIN32)
  7004. D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
  7005. ID3D12CommandQueue1 * This);
  7006. #else
  7007. D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
  7008. ID3D12CommandQueue1 * This,
  7009. D3D12_COMMAND_QUEUE_DESC * RetVal);
  7010. #endif
  7011. DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetProcessPriority)
  7012. HRESULT ( STDMETHODCALLTYPE *SetProcessPriority )(
  7013. ID3D12CommandQueue1 * This,
  7014. D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority);
  7015. DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetProcessPriority)
  7016. HRESULT ( STDMETHODCALLTYPE *GetProcessPriority )(
  7017. ID3D12CommandQueue1 * This,
  7018. D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue);
  7019. DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetGlobalPriority)
  7020. HRESULT ( STDMETHODCALLTYPE *SetGlobalPriority )(
  7021. ID3D12CommandQueue1 * This,
  7022. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority);
  7023. DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetGlobalPriority)
  7024. HRESULT ( STDMETHODCALLTYPE *GetGlobalPriority )(
  7025. ID3D12CommandQueue1 * This,
  7026. D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue);
  7027. END_INTERFACE
  7028. } ID3D12CommandQueue1Vtbl;
  7029. interface ID3D12CommandQueue1
  7030. {
  7031. CONST_VTBL struct ID3D12CommandQueue1Vtbl *lpVtbl;
  7032. };
  7033. #ifdef COBJMACROS
  7034. #define ID3D12CommandQueue1_QueryInterface(This,riid,ppvObject) \
  7035. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  7036. #define ID3D12CommandQueue1_AddRef(This) \
  7037. ( (This)->lpVtbl -> AddRef(This) )
  7038. #define ID3D12CommandQueue1_Release(This) \
  7039. ( (This)->lpVtbl -> Release(This) )
  7040. #define ID3D12CommandQueue1_GetPrivateData(This,guid,pDataSize,pData) \
  7041. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  7042. #define ID3D12CommandQueue1_SetPrivateData(This,guid,DataSize,pData) \
  7043. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  7044. #define ID3D12CommandQueue1_SetPrivateDataInterface(This,guid,pData) \
  7045. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  7046. #define ID3D12CommandQueue1_SetName(This,Name) \
  7047. ( (This)->lpVtbl -> SetName(This,Name) )
  7048. #define ID3D12CommandQueue1_GetDevice(This,riid,ppvDevice) \
  7049. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  7050. #define ID3D12CommandQueue1_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
  7051. ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
  7052. #define ID3D12CommandQueue1_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
  7053. ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
  7054. #define ID3D12CommandQueue1_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
  7055. ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
  7056. #define ID3D12CommandQueue1_SetMarker(This,Metadata,pData,Size) \
  7057. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  7058. #define ID3D12CommandQueue1_BeginEvent(This,Metadata,pData,Size) \
  7059. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  7060. #define ID3D12CommandQueue1_EndEvent(This) \
  7061. ( (This)->lpVtbl -> EndEvent(This) )
  7062. #define ID3D12CommandQueue1_Signal(This,pFence,Value) \
  7063. ( (This)->lpVtbl -> Signal(This,pFence,Value) )
  7064. #define ID3D12CommandQueue1_Wait(This,pFence,Value) \
  7065. ( (This)->lpVtbl -> Wait(This,pFence,Value) )
  7066. #define ID3D12CommandQueue1_GetTimestampFrequency(This,pFrequency) \
  7067. ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
  7068. #define ID3D12CommandQueue1_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
  7069. ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
  7070. #if !defined(_WIN32)
  7071. #define ID3D12CommandQueue1_GetDesc(This) \
  7072. ( (This)->lpVtbl -> GetDesc(This) )
  7073. #else
  7074. #define ID3D12CommandQueue1_GetDesc(This,RetVal) \
  7075. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  7076. #endif
  7077. #define ID3D12CommandQueue1_SetProcessPriority(This,Priority) \
  7078. ( (This)->lpVtbl -> SetProcessPriority(This,Priority) )
  7079. #define ID3D12CommandQueue1_GetProcessPriority(This,pOutValue) \
  7080. ( (This)->lpVtbl -> GetProcessPriority(This,pOutValue) )
  7081. #define ID3D12CommandQueue1_SetGlobalPriority(This,Priority) \
  7082. ( (This)->lpVtbl -> SetGlobalPriority(This,Priority) )
  7083. #define ID3D12CommandQueue1_GetGlobalPriority(This,pOutValue) \
  7084. ( (This)->lpVtbl -> GetGlobalPriority(This,pOutValue) )
  7085. #endif /* COBJMACROS */
  7086. #endif /* C style interface */
  7087. #endif /* __ID3D12CommandQueue1_INTERFACE_DEFINED__ */
  7088. #ifndef __ID3D12Device_INTERFACE_DEFINED__
  7089. #define __ID3D12Device_INTERFACE_DEFINED__
  7090. /* interface ID3D12Device */
  7091. /* [unique][local][object][uuid] */
  7092. EXTERN_C const IID IID_ID3D12Device;
  7093. #if defined(__cplusplus) && !defined(CINTERFACE)
  7094. MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
  7095. ID3D12Device : public ID3D12Object
  7096. {
  7097. public:
  7098. virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0;
  7099. virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
  7100. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  7101. REFIID riid,
  7102. _COM_Outptr_ void **ppCommandQueue) = 0;
  7103. virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
  7104. _In_ D3D12_COMMAND_LIST_TYPE type,
  7105. REFIID riid,
  7106. _COM_Outptr_ void **ppCommandAllocator) = 0;
  7107. virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
  7108. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  7109. REFIID riid,
  7110. _COM_Outptr_ void **ppPipelineState) = 0;
  7111. virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
  7112. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  7113. REFIID riid,
  7114. _COM_Outptr_ void **ppPipelineState) = 0;
  7115. virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
  7116. _In_ UINT nodeMask,
  7117. _In_ D3D12_COMMAND_LIST_TYPE type,
  7118. _In_ ID3D12CommandAllocator *pCommandAllocator,
  7119. _In_opt_ ID3D12PipelineState *pInitialState,
  7120. REFIID riid,
  7121. _COM_Outptr_ void **ppCommandList) = 0;
  7122. virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
  7123. D3D12_FEATURE Feature,
  7124. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  7125. UINT FeatureSupportDataSize) = 0;
  7126. virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
  7127. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  7128. REFIID riid,
  7129. _COM_Outptr_ void **ppvHeap) = 0;
  7130. virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
  7131. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
  7132. virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
  7133. _In_ UINT nodeMask,
  7134. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  7135. _In_ SIZE_T blobLengthInBytes,
  7136. REFIID riid,
  7137. _COM_Outptr_ void **ppvRootSignature) = 0;
  7138. virtual void STDMETHODCALLTYPE CreateConstantBufferView(
  7139. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  7140. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  7141. virtual void STDMETHODCALLTYPE CreateShaderResourceView(
  7142. _In_opt_ ID3D12Resource *pResource,
  7143. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  7144. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  7145. virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
  7146. _In_opt_ ID3D12Resource *pResource,
  7147. _In_opt_ ID3D12Resource *pCounterResource,
  7148. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  7149. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  7150. virtual void STDMETHODCALLTYPE CreateRenderTargetView(
  7151. _In_opt_ ID3D12Resource *pResource,
  7152. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  7153. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  7154. virtual void STDMETHODCALLTYPE CreateDepthStencilView(
  7155. _In_opt_ ID3D12Resource *pResource,
  7156. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  7157. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  7158. virtual void STDMETHODCALLTYPE CreateSampler(
  7159. _In_ const D3D12_SAMPLER_DESC *pDesc,
  7160. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  7161. virtual void STDMETHODCALLTYPE CopyDescriptors(
  7162. _In_ UINT NumDestDescriptorRanges,
  7163. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  7164. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  7165. _In_ UINT NumSrcDescriptorRanges,
  7166. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  7167. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  7168. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
  7169. virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
  7170. _In_ UINT NumDescriptors,
  7171. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  7172. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  7173. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
  7174. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  7175. virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
  7176. _In_ UINT visibleMask,
  7177. _In_ UINT numResourceDescs,
  7178. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
  7179. #else
  7180. virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo(
  7181. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  7182. _In_ UINT visibleMask,
  7183. _In_ UINT numResourceDescs,
  7184. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
  7185. #endif
  7186. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  7187. virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
  7188. _In_ UINT nodeMask,
  7189. D3D12_HEAP_TYPE heapType) = 0;
  7190. #else
  7191. virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties(
  7192. D3D12_HEAP_PROPERTIES * RetVal,
  7193. _In_ UINT nodeMask,
  7194. D3D12_HEAP_TYPE heapType) = 0;
  7195. #endif
  7196. virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
  7197. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  7198. D3D12_HEAP_FLAGS HeapFlags,
  7199. _In_ const D3D12_RESOURCE_DESC *pDesc,
  7200. D3D12_RESOURCE_STATES InitialResourceState,
  7201. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  7202. REFIID riidResource,
  7203. _COM_Outptr_opt_ void **ppvResource) = 0;
  7204. virtual HRESULT STDMETHODCALLTYPE CreateHeap(
  7205. _In_ const D3D12_HEAP_DESC *pDesc,
  7206. REFIID riid,
  7207. _COM_Outptr_opt_ void **ppvHeap) = 0;
  7208. virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
  7209. _In_ ID3D12Heap *pHeap,
  7210. UINT64 HeapOffset,
  7211. _In_ const D3D12_RESOURCE_DESC *pDesc,
  7212. D3D12_RESOURCE_STATES InitialState,
  7213. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  7214. REFIID riid,
  7215. _COM_Outptr_opt_ void **ppvResource) = 0;
  7216. virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
  7217. _In_ const D3D12_RESOURCE_DESC *pDesc,
  7218. D3D12_RESOURCE_STATES InitialState,
  7219. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  7220. REFIID riid,
  7221. _COM_Outptr_opt_ void **ppvResource) = 0;
  7222. virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
  7223. _In_ ID3D12DeviceChild *pObject,
  7224. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  7225. DWORD Access,
  7226. _In_opt_ LPCWSTR Name,
  7227. _Out_ HANDLE *pHandle) = 0;
  7228. virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
  7229. _In_ HANDLE NTHandle,
  7230. REFIID riid,
  7231. _COM_Outptr_opt_ void **ppvObj) = 0;
  7232. virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
  7233. _In_ LPCWSTR Name,
  7234. DWORD Access,
  7235. /* [annotation][out] */
  7236. _Out_ HANDLE *pNTHandle) = 0;
  7237. virtual HRESULT STDMETHODCALLTYPE MakeResident(
  7238. UINT NumObjects,
  7239. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
  7240. virtual HRESULT STDMETHODCALLTYPE Evict(
  7241. UINT NumObjects,
  7242. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
  7243. virtual HRESULT STDMETHODCALLTYPE CreateFence(
  7244. UINT64 InitialValue,
  7245. D3D12_FENCE_FLAGS Flags,
  7246. REFIID riid,
  7247. _COM_Outptr_ void **ppFence) = 0;
  7248. virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
  7249. virtual void STDMETHODCALLTYPE GetCopyableFootprints(
  7250. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  7251. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  7252. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  7253. UINT64 BaseOffset,
  7254. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  7255. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  7256. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  7257. _Out_opt_ UINT64 *pTotalBytes) = 0;
  7258. virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
  7259. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  7260. REFIID riid,
  7261. _COM_Outptr_opt_ void **ppvHeap) = 0;
  7262. virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
  7263. BOOL Enable) = 0;
  7264. virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
  7265. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  7266. _In_opt_ ID3D12RootSignature *pRootSignature,
  7267. REFIID riid,
  7268. _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
  7269. virtual void STDMETHODCALLTYPE GetResourceTiling(
  7270. _In_ ID3D12Resource *pTiledResource,
  7271. _Out_opt_ UINT *pNumTilesForEntireResource,
  7272. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  7273. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  7274. _Inout_opt_ UINT *pNumSubresourceTilings,
  7275. _In_ UINT FirstSubresourceTilingToGet,
  7276. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0;
  7277. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  7278. virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0;
  7279. #else
  7280. virtual LUID *STDMETHODCALLTYPE GetAdapterLuid(
  7281. LUID * RetVal) = 0;
  7282. #endif
  7283. };
  7284. #else /* C style interface */
  7285. typedef struct ID3D12DeviceVtbl
  7286. {
  7287. BEGIN_INTERFACE
  7288. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  7289. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  7290. ID3D12Device * This,
  7291. REFIID riid,
  7292. _COM_Outptr_ void **ppvObject);
  7293. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  7294. ULONG ( STDMETHODCALLTYPE *AddRef )(
  7295. ID3D12Device * This);
  7296. DECLSPEC_XFGVIRT(IUnknown, Release)
  7297. ULONG ( STDMETHODCALLTYPE *Release )(
  7298. ID3D12Device * This);
  7299. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  7300. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  7301. ID3D12Device * This,
  7302. _In_ REFGUID guid,
  7303. _Inout_ UINT *pDataSize,
  7304. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  7305. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  7306. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  7307. ID3D12Device * This,
  7308. _In_ REFGUID guid,
  7309. _In_ UINT DataSize,
  7310. _In_reads_bytes_opt_( DataSize ) const void *pData);
  7311. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  7312. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  7313. ID3D12Device * This,
  7314. _In_ REFGUID guid,
  7315. _In_opt_ const IUnknown *pData);
  7316. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  7317. HRESULT ( STDMETHODCALLTYPE *SetName )(
  7318. ID3D12Device * This,
  7319. _In_z_ LPCWSTR Name);
  7320. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  7321. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  7322. ID3D12Device * This);
  7323. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  7324. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  7325. ID3D12Device * This,
  7326. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  7327. REFIID riid,
  7328. _COM_Outptr_ void **ppCommandQueue);
  7329. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  7330. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  7331. ID3D12Device * This,
  7332. _In_ D3D12_COMMAND_LIST_TYPE type,
  7333. REFIID riid,
  7334. _COM_Outptr_ void **ppCommandAllocator);
  7335. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  7336. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  7337. ID3D12Device * This,
  7338. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  7339. REFIID riid,
  7340. _COM_Outptr_ void **ppPipelineState);
  7341. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  7342. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  7343. ID3D12Device * This,
  7344. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  7345. REFIID riid,
  7346. _COM_Outptr_ void **ppPipelineState);
  7347. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  7348. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  7349. ID3D12Device * This,
  7350. _In_ UINT nodeMask,
  7351. _In_ D3D12_COMMAND_LIST_TYPE type,
  7352. _In_ ID3D12CommandAllocator *pCommandAllocator,
  7353. _In_opt_ ID3D12PipelineState *pInitialState,
  7354. REFIID riid,
  7355. _COM_Outptr_ void **ppCommandList);
  7356. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  7357. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  7358. ID3D12Device * This,
  7359. D3D12_FEATURE Feature,
  7360. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  7361. UINT FeatureSupportDataSize);
  7362. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  7363. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  7364. ID3D12Device * This,
  7365. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  7366. REFIID riid,
  7367. _COM_Outptr_ void **ppvHeap);
  7368. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  7369. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  7370. ID3D12Device * This,
  7371. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  7372. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  7373. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  7374. ID3D12Device * This,
  7375. _In_ UINT nodeMask,
  7376. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  7377. _In_ SIZE_T blobLengthInBytes,
  7378. REFIID riid,
  7379. _COM_Outptr_ void **ppvRootSignature);
  7380. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  7381. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  7382. ID3D12Device * This,
  7383. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  7384. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  7385. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  7386. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  7387. ID3D12Device * This,
  7388. _In_opt_ ID3D12Resource *pResource,
  7389. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  7390. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  7391. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  7392. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  7393. ID3D12Device * This,
  7394. _In_opt_ ID3D12Resource *pResource,
  7395. _In_opt_ ID3D12Resource *pCounterResource,
  7396. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  7397. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  7398. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  7399. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  7400. ID3D12Device * This,
  7401. _In_opt_ ID3D12Resource *pResource,
  7402. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  7403. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  7404. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  7405. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  7406. ID3D12Device * This,
  7407. _In_opt_ ID3D12Resource *pResource,
  7408. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  7409. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  7410. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  7411. void ( STDMETHODCALLTYPE *CreateSampler )(
  7412. ID3D12Device * This,
  7413. _In_ const D3D12_SAMPLER_DESC *pDesc,
  7414. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  7415. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  7416. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  7417. ID3D12Device * This,
  7418. _In_ UINT NumDestDescriptorRanges,
  7419. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  7420. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  7421. _In_ UINT NumSrcDescriptorRanges,
  7422. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  7423. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  7424. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  7425. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  7426. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  7427. ID3D12Device * This,
  7428. _In_ UINT NumDescriptors,
  7429. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  7430. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  7431. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  7432. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  7433. #if !defined(_WIN32)
  7434. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  7435. ID3D12Device * This,
  7436. _In_ UINT visibleMask,
  7437. _In_ UINT numResourceDescs,
  7438. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  7439. #else
  7440. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  7441. ID3D12Device * This,
  7442. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  7443. _In_ UINT visibleMask,
  7444. _In_ UINT numResourceDescs,
  7445. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  7446. #endif
  7447. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  7448. #if !defined(_WIN32)
  7449. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  7450. ID3D12Device * This,
  7451. _In_ UINT nodeMask,
  7452. D3D12_HEAP_TYPE heapType);
  7453. #else
  7454. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  7455. ID3D12Device * This,
  7456. D3D12_HEAP_PROPERTIES * RetVal,
  7457. _In_ UINT nodeMask,
  7458. D3D12_HEAP_TYPE heapType);
  7459. #endif
  7460. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  7461. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  7462. ID3D12Device * This,
  7463. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  7464. D3D12_HEAP_FLAGS HeapFlags,
  7465. _In_ const D3D12_RESOURCE_DESC *pDesc,
  7466. D3D12_RESOURCE_STATES InitialResourceState,
  7467. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  7468. REFIID riidResource,
  7469. _COM_Outptr_opt_ void **ppvResource);
  7470. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  7471. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  7472. ID3D12Device * This,
  7473. _In_ const D3D12_HEAP_DESC *pDesc,
  7474. REFIID riid,
  7475. _COM_Outptr_opt_ void **ppvHeap);
  7476. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  7477. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  7478. ID3D12Device * This,
  7479. _In_ ID3D12Heap *pHeap,
  7480. UINT64 HeapOffset,
  7481. _In_ const D3D12_RESOURCE_DESC *pDesc,
  7482. D3D12_RESOURCE_STATES InitialState,
  7483. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  7484. REFIID riid,
  7485. _COM_Outptr_opt_ void **ppvResource);
  7486. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  7487. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  7488. ID3D12Device * This,
  7489. _In_ const D3D12_RESOURCE_DESC *pDesc,
  7490. D3D12_RESOURCE_STATES InitialState,
  7491. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  7492. REFIID riid,
  7493. _COM_Outptr_opt_ void **ppvResource);
  7494. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  7495. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  7496. ID3D12Device * This,
  7497. _In_ ID3D12DeviceChild *pObject,
  7498. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  7499. DWORD Access,
  7500. _In_opt_ LPCWSTR Name,
  7501. _Out_ HANDLE *pHandle);
  7502. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  7503. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  7504. ID3D12Device * This,
  7505. _In_ HANDLE NTHandle,
  7506. REFIID riid,
  7507. _COM_Outptr_opt_ void **ppvObj);
  7508. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  7509. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  7510. ID3D12Device * This,
  7511. _In_ LPCWSTR Name,
  7512. DWORD Access,
  7513. /* [annotation][out] */
  7514. _Out_ HANDLE *pNTHandle);
  7515. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  7516. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  7517. ID3D12Device * This,
  7518. UINT NumObjects,
  7519. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  7520. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  7521. HRESULT ( STDMETHODCALLTYPE *Evict )(
  7522. ID3D12Device * This,
  7523. UINT NumObjects,
  7524. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  7525. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  7526. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  7527. ID3D12Device * This,
  7528. UINT64 InitialValue,
  7529. D3D12_FENCE_FLAGS Flags,
  7530. REFIID riid,
  7531. _COM_Outptr_ void **ppFence);
  7532. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  7533. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  7534. ID3D12Device * This);
  7535. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  7536. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  7537. ID3D12Device * This,
  7538. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  7539. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  7540. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  7541. UINT64 BaseOffset,
  7542. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  7543. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  7544. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  7545. _Out_opt_ UINT64 *pTotalBytes);
  7546. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  7547. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  7548. ID3D12Device * This,
  7549. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  7550. REFIID riid,
  7551. _COM_Outptr_opt_ void **ppvHeap);
  7552. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  7553. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  7554. ID3D12Device * This,
  7555. BOOL Enable);
  7556. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  7557. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  7558. ID3D12Device * This,
  7559. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  7560. _In_opt_ ID3D12RootSignature *pRootSignature,
  7561. REFIID riid,
  7562. _COM_Outptr_opt_ void **ppvCommandSignature);
  7563. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  7564. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  7565. ID3D12Device * This,
  7566. _In_ ID3D12Resource *pTiledResource,
  7567. _Out_opt_ UINT *pNumTilesForEntireResource,
  7568. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  7569. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  7570. _Inout_opt_ UINT *pNumSubresourceTilings,
  7571. _In_ UINT FirstSubresourceTilingToGet,
  7572. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  7573. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  7574. #if !defined(_WIN32)
  7575. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  7576. ID3D12Device * This);
  7577. #else
  7578. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  7579. ID3D12Device * This,
  7580. LUID * RetVal);
  7581. #endif
  7582. END_INTERFACE
  7583. } ID3D12DeviceVtbl;
  7584. interface ID3D12Device
  7585. {
  7586. CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
  7587. };
  7588. #ifdef COBJMACROS
  7589. #define ID3D12Device_QueryInterface(This,riid,ppvObject) \
  7590. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  7591. #define ID3D12Device_AddRef(This) \
  7592. ( (This)->lpVtbl -> AddRef(This) )
  7593. #define ID3D12Device_Release(This) \
  7594. ( (This)->lpVtbl -> Release(This) )
  7595. #define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \
  7596. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  7597. #define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \
  7598. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  7599. #define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \
  7600. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  7601. #define ID3D12Device_SetName(This,Name) \
  7602. ( (This)->lpVtbl -> SetName(This,Name) )
  7603. #define ID3D12Device_GetNodeCount(This) \
  7604. ( (This)->lpVtbl -> GetNodeCount(This) )
  7605. #define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  7606. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  7607. #define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  7608. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  7609. #define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  7610. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  7611. #define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  7612. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  7613. #define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  7614. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  7615. #define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  7616. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  7617. #define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  7618. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  7619. #define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  7620. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  7621. #define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  7622. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  7623. #define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  7624. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  7625. #define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  7626. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  7627. #define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  7628. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  7629. #define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  7630. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  7631. #define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  7632. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  7633. #define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \
  7634. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  7635. #define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  7636. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  7637. #define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  7638. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  7639. #if !defined(_WIN32)
  7640. #define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  7641. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  7642. #else
  7643. #define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  7644. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  7645. #endif
  7646. #if !defined(_WIN32)
  7647. #define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \
  7648. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  7649. #else
  7650. #define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  7651. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  7652. #endif
  7653. #define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  7654. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  7655. #define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \
  7656. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  7657. #define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  7658. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  7659. #define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  7660. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  7661. #define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  7662. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  7663. #define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  7664. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  7665. #define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  7666. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  7667. #define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \
  7668. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  7669. #define ID3D12Device_Evict(This,NumObjects,ppObjects) \
  7670. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  7671. #define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  7672. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  7673. #define ID3D12Device_GetDeviceRemovedReason(This) \
  7674. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  7675. #define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  7676. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  7677. #define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  7678. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  7679. #define ID3D12Device_SetStablePowerState(This,Enable) \
  7680. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  7681. #define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  7682. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  7683. #define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  7684. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  7685. #if !defined(_WIN32)
  7686. #define ID3D12Device_GetAdapterLuid(This) \
  7687. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  7688. #else
  7689. #define ID3D12Device_GetAdapterLuid(This,RetVal) \
  7690. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  7691. #endif
  7692. #endif /* COBJMACROS */
  7693. #endif /* C style interface */
  7694. #endif /* __ID3D12Device_INTERFACE_DEFINED__ */
  7695. #ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
  7696. #define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
  7697. /* interface ID3D12PipelineLibrary */
  7698. /* [unique][local][object][uuid] */
  7699. EXTERN_C const IID IID_ID3D12PipelineLibrary;
  7700. #if defined(__cplusplus) && !defined(CINTERFACE)
  7701. MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
  7702. ID3D12PipelineLibrary : public ID3D12DeviceChild
  7703. {
  7704. public:
  7705. virtual HRESULT STDMETHODCALLTYPE StorePipeline(
  7706. _In_opt_ LPCWSTR pName,
  7707. _In_ ID3D12PipelineState *pPipeline) = 0;
  7708. virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
  7709. _In_ LPCWSTR pName,
  7710. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  7711. REFIID riid,
  7712. _COM_Outptr_ void **ppPipelineState) = 0;
  7713. virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
  7714. _In_ LPCWSTR pName,
  7715. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  7716. REFIID riid,
  7717. _COM_Outptr_ void **ppPipelineState) = 0;
  7718. virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0;
  7719. virtual HRESULT STDMETHODCALLTYPE Serialize(
  7720. _Out_writes_(DataSizeInBytes) void *pData,
  7721. SIZE_T DataSizeInBytes) = 0;
  7722. };
  7723. #else /* C style interface */
  7724. typedef struct ID3D12PipelineLibraryVtbl
  7725. {
  7726. BEGIN_INTERFACE
  7727. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  7728. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  7729. ID3D12PipelineLibrary * This,
  7730. REFIID riid,
  7731. _COM_Outptr_ void **ppvObject);
  7732. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  7733. ULONG ( STDMETHODCALLTYPE *AddRef )(
  7734. ID3D12PipelineLibrary * This);
  7735. DECLSPEC_XFGVIRT(IUnknown, Release)
  7736. ULONG ( STDMETHODCALLTYPE *Release )(
  7737. ID3D12PipelineLibrary * This);
  7738. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  7739. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  7740. ID3D12PipelineLibrary * This,
  7741. _In_ REFGUID guid,
  7742. _Inout_ UINT *pDataSize,
  7743. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  7744. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  7745. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  7746. ID3D12PipelineLibrary * This,
  7747. _In_ REFGUID guid,
  7748. _In_ UINT DataSize,
  7749. _In_reads_bytes_opt_( DataSize ) const void *pData);
  7750. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  7751. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  7752. ID3D12PipelineLibrary * This,
  7753. _In_ REFGUID guid,
  7754. _In_opt_ const IUnknown *pData);
  7755. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  7756. HRESULT ( STDMETHODCALLTYPE *SetName )(
  7757. ID3D12PipelineLibrary * This,
  7758. _In_z_ LPCWSTR Name);
  7759. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  7760. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  7761. ID3D12PipelineLibrary * This,
  7762. REFIID riid,
  7763. _COM_Outptr_opt_ void **ppvDevice);
  7764. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
  7765. HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
  7766. ID3D12PipelineLibrary * This,
  7767. _In_opt_ LPCWSTR pName,
  7768. _In_ ID3D12PipelineState *pPipeline);
  7769. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
  7770. HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
  7771. ID3D12PipelineLibrary * This,
  7772. _In_ LPCWSTR pName,
  7773. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  7774. REFIID riid,
  7775. _COM_Outptr_ void **ppPipelineState);
  7776. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
  7777. HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
  7778. ID3D12PipelineLibrary * This,
  7779. _In_ LPCWSTR pName,
  7780. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  7781. REFIID riid,
  7782. _COM_Outptr_ void **ppPipelineState);
  7783. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
  7784. SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
  7785. ID3D12PipelineLibrary * This);
  7786. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
  7787. HRESULT ( STDMETHODCALLTYPE *Serialize )(
  7788. ID3D12PipelineLibrary * This,
  7789. _Out_writes_(DataSizeInBytes) void *pData,
  7790. SIZE_T DataSizeInBytes);
  7791. END_INTERFACE
  7792. } ID3D12PipelineLibraryVtbl;
  7793. interface ID3D12PipelineLibrary
  7794. {
  7795. CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl;
  7796. };
  7797. #ifdef COBJMACROS
  7798. #define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \
  7799. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  7800. #define ID3D12PipelineLibrary_AddRef(This) \
  7801. ( (This)->lpVtbl -> AddRef(This) )
  7802. #define ID3D12PipelineLibrary_Release(This) \
  7803. ( (This)->lpVtbl -> Release(This) )
  7804. #define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \
  7805. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  7806. #define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \
  7807. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  7808. #define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \
  7809. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  7810. #define ID3D12PipelineLibrary_SetName(This,Name) \
  7811. ( (This)->lpVtbl -> SetName(This,Name) )
  7812. #define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \
  7813. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  7814. #define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \
  7815. ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
  7816. #define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
  7817. ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
  7818. #define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
  7819. ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
  7820. #define ID3D12PipelineLibrary_GetSerializedSize(This) \
  7821. ( (This)->lpVtbl -> GetSerializedSize(This) )
  7822. #define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \
  7823. ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
  7824. #endif /* COBJMACROS */
  7825. #endif /* C style interface */
  7826. #endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
  7827. #ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
  7828. #define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
  7829. /* interface ID3D12PipelineLibrary1 */
  7830. /* [unique][local][object][uuid] */
  7831. EXTERN_C const IID IID_ID3D12PipelineLibrary1;
  7832. #if defined(__cplusplus) && !defined(CINTERFACE)
  7833. MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
  7834. ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
  7835. {
  7836. public:
  7837. virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
  7838. _In_ LPCWSTR pName,
  7839. _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  7840. REFIID riid,
  7841. _COM_Outptr_ void **ppPipelineState) = 0;
  7842. };
  7843. #else /* C style interface */
  7844. typedef struct ID3D12PipelineLibrary1Vtbl
  7845. {
  7846. BEGIN_INTERFACE
  7847. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  7848. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  7849. ID3D12PipelineLibrary1 * This,
  7850. REFIID riid,
  7851. _COM_Outptr_ void **ppvObject);
  7852. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  7853. ULONG ( STDMETHODCALLTYPE *AddRef )(
  7854. ID3D12PipelineLibrary1 * This);
  7855. DECLSPEC_XFGVIRT(IUnknown, Release)
  7856. ULONG ( STDMETHODCALLTYPE *Release )(
  7857. ID3D12PipelineLibrary1 * This);
  7858. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  7859. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  7860. ID3D12PipelineLibrary1 * This,
  7861. _In_ REFGUID guid,
  7862. _Inout_ UINT *pDataSize,
  7863. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  7864. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  7865. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  7866. ID3D12PipelineLibrary1 * This,
  7867. _In_ REFGUID guid,
  7868. _In_ UINT DataSize,
  7869. _In_reads_bytes_opt_( DataSize ) const void *pData);
  7870. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  7871. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  7872. ID3D12PipelineLibrary1 * This,
  7873. _In_ REFGUID guid,
  7874. _In_opt_ const IUnknown *pData);
  7875. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  7876. HRESULT ( STDMETHODCALLTYPE *SetName )(
  7877. ID3D12PipelineLibrary1 * This,
  7878. _In_z_ LPCWSTR Name);
  7879. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  7880. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  7881. ID3D12PipelineLibrary1 * This,
  7882. REFIID riid,
  7883. _COM_Outptr_opt_ void **ppvDevice);
  7884. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
  7885. HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
  7886. ID3D12PipelineLibrary1 * This,
  7887. _In_opt_ LPCWSTR pName,
  7888. _In_ ID3D12PipelineState *pPipeline);
  7889. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
  7890. HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
  7891. ID3D12PipelineLibrary1 * This,
  7892. _In_ LPCWSTR pName,
  7893. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  7894. REFIID riid,
  7895. _COM_Outptr_ void **ppPipelineState);
  7896. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
  7897. HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
  7898. ID3D12PipelineLibrary1 * This,
  7899. _In_ LPCWSTR pName,
  7900. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  7901. REFIID riid,
  7902. _COM_Outptr_ void **ppPipelineState);
  7903. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
  7904. SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
  7905. ID3D12PipelineLibrary1 * This);
  7906. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
  7907. HRESULT ( STDMETHODCALLTYPE *Serialize )(
  7908. ID3D12PipelineLibrary1 * This,
  7909. _Out_writes_(DataSizeInBytes) void *pData,
  7910. SIZE_T DataSizeInBytes);
  7911. DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline)
  7912. HRESULT ( STDMETHODCALLTYPE *LoadPipeline )(
  7913. ID3D12PipelineLibrary1 * This,
  7914. _In_ LPCWSTR pName,
  7915. _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  7916. REFIID riid,
  7917. _COM_Outptr_ void **ppPipelineState);
  7918. END_INTERFACE
  7919. } ID3D12PipelineLibrary1Vtbl;
  7920. interface ID3D12PipelineLibrary1
  7921. {
  7922. CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl;
  7923. };
  7924. #ifdef COBJMACROS
  7925. #define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \
  7926. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  7927. #define ID3D12PipelineLibrary1_AddRef(This) \
  7928. ( (This)->lpVtbl -> AddRef(This) )
  7929. #define ID3D12PipelineLibrary1_Release(This) \
  7930. ( (This)->lpVtbl -> Release(This) )
  7931. #define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \
  7932. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  7933. #define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \
  7934. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  7935. #define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \
  7936. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  7937. #define ID3D12PipelineLibrary1_SetName(This,Name) \
  7938. ( (This)->lpVtbl -> SetName(This,Name) )
  7939. #define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \
  7940. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  7941. #define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \
  7942. ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
  7943. #define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
  7944. ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
  7945. #define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
  7946. ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
  7947. #define ID3D12PipelineLibrary1_GetSerializedSize(This) \
  7948. ( (This)->lpVtbl -> GetSerializedSize(This) )
  7949. #define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \
  7950. ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
  7951. #define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \
  7952. ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) )
  7953. #endif /* COBJMACROS */
  7954. #endif /* C style interface */
  7955. #endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
  7956. /* interface __MIDL_itf_d3d12_0000_0025 */
  7957. /* [local] */
  7958. typedef
  7959. enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
  7960. {
  7961. D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0,
  7962. D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
  7963. D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0
  7964. } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
  7965. DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS )
  7966. typedef
  7967. enum D3D12_RESIDENCY_PRIORITY
  7968. {
  7969. D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
  7970. D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
  7971. D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
  7972. D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
  7973. D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
  7974. } D3D12_RESIDENCY_PRIORITY;
  7975. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec;
  7976. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec;
  7977. #ifndef __ID3D12Device1_INTERFACE_DEFINED__
  7978. #define __ID3D12Device1_INTERFACE_DEFINED__
  7979. /* interface ID3D12Device1 */
  7980. /* [unique][local][object][uuid] */
  7981. EXTERN_C const IID IID_ID3D12Device1;
  7982. #if defined(__cplusplus) && !defined(CINTERFACE)
  7983. MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
  7984. ID3D12Device1 : public ID3D12Device
  7985. {
  7986. public:
  7987. virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
  7988. _In_reads_(BlobLength) const void *pLibraryBlob,
  7989. SIZE_T BlobLength,
  7990. REFIID riid,
  7991. _COM_Outptr_ void **ppPipelineLibrary) = 0;
  7992. virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
  7993. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  7994. _In_reads_(NumFences) const UINT64 *pFenceValues,
  7995. UINT NumFences,
  7996. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  7997. HANDLE hEvent) = 0;
  7998. virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
  7999. UINT NumObjects,
  8000. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  8001. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0;
  8002. };
  8003. #else /* C style interface */
  8004. typedef struct ID3D12Device1Vtbl
  8005. {
  8006. BEGIN_INTERFACE
  8007. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  8008. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  8009. ID3D12Device1 * This,
  8010. REFIID riid,
  8011. _COM_Outptr_ void **ppvObject);
  8012. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  8013. ULONG ( STDMETHODCALLTYPE *AddRef )(
  8014. ID3D12Device1 * This);
  8015. DECLSPEC_XFGVIRT(IUnknown, Release)
  8016. ULONG ( STDMETHODCALLTYPE *Release )(
  8017. ID3D12Device1 * This);
  8018. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  8019. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  8020. ID3D12Device1 * This,
  8021. _In_ REFGUID guid,
  8022. _Inout_ UINT *pDataSize,
  8023. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  8024. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  8025. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  8026. ID3D12Device1 * This,
  8027. _In_ REFGUID guid,
  8028. _In_ UINT DataSize,
  8029. _In_reads_bytes_opt_( DataSize ) const void *pData);
  8030. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  8031. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  8032. ID3D12Device1 * This,
  8033. _In_ REFGUID guid,
  8034. _In_opt_ const IUnknown *pData);
  8035. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  8036. HRESULT ( STDMETHODCALLTYPE *SetName )(
  8037. ID3D12Device1 * This,
  8038. _In_z_ LPCWSTR Name);
  8039. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  8040. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  8041. ID3D12Device1 * This);
  8042. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  8043. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  8044. ID3D12Device1 * This,
  8045. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  8046. REFIID riid,
  8047. _COM_Outptr_ void **ppCommandQueue);
  8048. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  8049. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  8050. ID3D12Device1 * This,
  8051. _In_ D3D12_COMMAND_LIST_TYPE type,
  8052. REFIID riid,
  8053. _COM_Outptr_ void **ppCommandAllocator);
  8054. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  8055. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  8056. ID3D12Device1 * This,
  8057. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  8058. REFIID riid,
  8059. _COM_Outptr_ void **ppPipelineState);
  8060. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  8061. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  8062. ID3D12Device1 * This,
  8063. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  8064. REFIID riid,
  8065. _COM_Outptr_ void **ppPipelineState);
  8066. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  8067. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  8068. ID3D12Device1 * This,
  8069. _In_ UINT nodeMask,
  8070. _In_ D3D12_COMMAND_LIST_TYPE type,
  8071. _In_ ID3D12CommandAllocator *pCommandAllocator,
  8072. _In_opt_ ID3D12PipelineState *pInitialState,
  8073. REFIID riid,
  8074. _COM_Outptr_ void **ppCommandList);
  8075. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  8076. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  8077. ID3D12Device1 * This,
  8078. D3D12_FEATURE Feature,
  8079. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  8080. UINT FeatureSupportDataSize);
  8081. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  8082. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  8083. ID3D12Device1 * This,
  8084. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  8085. REFIID riid,
  8086. _COM_Outptr_ void **ppvHeap);
  8087. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  8088. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  8089. ID3D12Device1 * This,
  8090. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  8091. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  8092. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  8093. ID3D12Device1 * This,
  8094. _In_ UINT nodeMask,
  8095. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  8096. _In_ SIZE_T blobLengthInBytes,
  8097. REFIID riid,
  8098. _COM_Outptr_ void **ppvRootSignature);
  8099. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  8100. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  8101. ID3D12Device1 * This,
  8102. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  8103. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8104. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  8105. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  8106. ID3D12Device1 * This,
  8107. _In_opt_ ID3D12Resource *pResource,
  8108. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  8109. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8110. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  8111. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  8112. ID3D12Device1 * This,
  8113. _In_opt_ ID3D12Resource *pResource,
  8114. _In_opt_ ID3D12Resource *pCounterResource,
  8115. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  8116. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8117. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  8118. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  8119. ID3D12Device1 * This,
  8120. _In_opt_ ID3D12Resource *pResource,
  8121. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  8122. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8123. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  8124. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  8125. ID3D12Device1 * This,
  8126. _In_opt_ ID3D12Resource *pResource,
  8127. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  8128. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8129. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  8130. void ( STDMETHODCALLTYPE *CreateSampler )(
  8131. ID3D12Device1 * This,
  8132. _In_ const D3D12_SAMPLER_DESC *pDesc,
  8133. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8134. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  8135. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  8136. ID3D12Device1 * This,
  8137. _In_ UINT NumDestDescriptorRanges,
  8138. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  8139. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  8140. _In_ UINT NumSrcDescriptorRanges,
  8141. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  8142. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  8143. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  8144. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  8145. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  8146. ID3D12Device1 * This,
  8147. _In_ UINT NumDescriptors,
  8148. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  8149. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  8150. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  8151. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  8152. #if !defined(_WIN32)
  8153. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  8154. ID3D12Device1 * This,
  8155. _In_ UINT visibleMask,
  8156. _In_ UINT numResourceDescs,
  8157. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  8158. #else
  8159. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  8160. ID3D12Device1 * This,
  8161. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  8162. _In_ UINT visibleMask,
  8163. _In_ UINT numResourceDescs,
  8164. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  8165. #endif
  8166. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  8167. #if !defined(_WIN32)
  8168. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  8169. ID3D12Device1 * This,
  8170. _In_ UINT nodeMask,
  8171. D3D12_HEAP_TYPE heapType);
  8172. #else
  8173. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  8174. ID3D12Device1 * This,
  8175. D3D12_HEAP_PROPERTIES * RetVal,
  8176. _In_ UINT nodeMask,
  8177. D3D12_HEAP_TYPE heapType);
  8178. #endif
  8179. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  8180. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  8181. ID3D12Device1 * This,
  8182. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  8183. D3D12_HEAP_FLAGS HeapFlags,
  8184. _In_ const D3D12_RESOURCE_DESC *pDesc,
  8185. D3D12_RESOURCE_STATES InitialResourceState,
  8186. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  8187. REFIID riidResource,
  8188. _COM_Outptr_opt_ void **ppvResource);
  8189. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  8190. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  8191. ID3D12Device1 * This,
  8192. _In_ const D3D12_HEAP_DESC *pDesc,
  8193. REFIID riid,
  8194. _COM_Outptr_opt_ void **ppvHeap);
  8195. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  8196. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  8197. ID3D12Device1 * This,
  8198. _In_ ID3D12Heap *pHeap,
  8199. UINT64 HeapOffset,
  8200. _In_ const D3D12_RESOURCE_DESC *pDesc,
  8201. D3D12_RESOURCE_STATES InitialState,
  8202. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  8203. REFIID riid,
  8204. _COM_Outptr_opt_ void **ppvResource);
  8205. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  8206. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  8207. ID3D12Device1 * This,
  8208. _In_ const D3D12_RESOURCE_DESC *pDesc,
  8209. D3D12_RESOURCE_STATES InitialState,
  8210. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  8211. REFIID riid,
  8212. _COM_Outptr_opt_ void **ppvResource);
  8213. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  8214. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  8215. ID3D12Device1 * This,
  8216. _In_ ID3D12DeviceChild *pObject,
  8217. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  8218. DWORD Access,
  8219. _In_opt_ LPCWSTR Name,
  8220. _Out_ HANDLE *pHandle);
  8221. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  8222. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  8223. ID3D12Device1 * This,
  8224. _In_ HANDLE NTHandle,
  8225. REFIID riid,
  8226. _COM_Outptr_opt_ void **ppvObj);
  8227. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  8228. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  8229. ID3D12Device1 * This,
  8230. _In_ LPCWSTR Name,
  8231. DWORD Access,
  8232. /* [annotation][out] */
  8233. _Out_ HANDLE *pNTHandle);
  8234. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  8235. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  8236. ID3D12Device1 * This,
  8237. UINT NumObjects,
  8238. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  8239. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  8240. HRESULT ( STDMETHODCALLTYPE *Evict )(
  8241. ID3D12Device1 * This,
  8242. UINT NumObjects,
  8243. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  8244. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  8245. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  8246. ID3D12Device1 * This,
  8247. UINT64 InitialValue,
  8248. D3D12_FENCE_FLAGS Flags,
  8249. REFIID riid,
  8250. _COM_Outptr_ void **ppFence);
  8251. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  8252. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  8253. ID3D12Device1 * This);
  8254. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  8255. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  8256. ID3D12Device1 * This,
  8257. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  8258. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  8259. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  8260. UINT64 BaseOffset,
  8261. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  8262. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  8263. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  8264. _Out_opt_ UINT64 *pTotalBytes);
  8265. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  8266. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  8267. ID3D12Device1 * This,
  8268. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  8269. REFIID riid,
  8270. _COM_Outptr_opt_ void **ppvHeap);
  8271. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  8272. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  8273. ID3D12Device1 * This,
  8274. BOOL Enable);
  8275. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  8276. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  8277. ID3D12Device1 * This,
  8278. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  8279. _In_opt_ ID3D12RootSignature *pRootSignature,
  8280. REFIID riid,
  8281. _COM_Outptr_opt_ void **ppvCommandSignature);
  8282. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  8283. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  8284. ID3D12Device1 * This,
  8285. _In_ ID3D12Resource *pTiledResource,
  8286. _Out_opt_ UINT *pNumTilesForEntireResource,
  8287. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  8288. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  8289. _Inout_opt_ UINT *pNumSubresourceTilings,
  8290. _In_ UINT FirstSubresourceTilingToGet,
  8291. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  8292. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  8293. #if !defined(_WIN32)
  8294. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  8295. ID3D12Device1 * This);
  8296. #else
  8297. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  8298. ID3D12Device1 * This,
  8299. LUID * RetVal);
  8300. #endif
  8301. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  8302. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  8303. ID3D12Device1 * This,
  8304. _In_reads_(BlobLength) const void *pLibraryBlob,
  8305. SIZE_T BlobLength,
  8306. REFIID riid,
  8307. _COM_Outptr_ void **ppPipelineLibrary);
  8308. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  8309. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  8310. ID3D12Device1 * This,
  8311. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  8312. _In_reads_(NumFences) const UINT64 *pFenceValues,
  8313. UINT NumFences,
  8314. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  8315. HANDLE hEvent);
  8316. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  8317. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  8318. ID3D12Device1 * This,
  8319. UINT NumObjects,
  8320. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  8321. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  8322. END_INTERFACE
  8323. } ID3D12Device1Vtbl;
  8324. interface ID3D12Device1
  8325. {
  8326. CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl;
  8327. };
  8328. #ifdef COBJMACROS
  8329. #define ID3D12Device1_QueryInterface(This,riid,ppvObject) \
  8330. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  8331. #define ID3D12Device1_AddRef(This) \
  8332. ( (This)->lpVtbl -> AddRef(This) )
  8333. #define ID3D12Device1_Release(This) \
  8334. ( (This)->lpVtbl -> Release(This) )
  8335. #define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \
  8336. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  8337. #define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \
  8338. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  8339. #define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \
  8340. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  8341. #define ID3D12Device1_SetName(This,Name) \
  8342. ( (This)->lpVtbl -> SetName(This,Name) )
  8343. #define ID3D12Device1_GetNodeCount(This) \
  8344. ( (This)->lpVtbl -> GetNodeCount(This) )
  8345. #define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  8346. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  8347. #define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  8348. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  8349. #define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  8350. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  8351. #define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  8352. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  8353. #define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  8354. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  8355. #define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  8356. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  8357. #define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  8358. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  8359. #define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  8360. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  8361. #define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  8362. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  8363. #define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  8364. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  8365. #define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  8366. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  8367. #define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  8368. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  8369. #define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  8370. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  8371. #define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  8372. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  8373. #define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \
  8374. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  8375. #define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  8376. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  8377. #define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  8378. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  8379. #if !defined(_WIN32)
  8380. #define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  8381. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  8382. #else
  8383. #define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  8384. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  8385. #endif
  8386. #if !defined(_WIN32)
  8387. #define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \
  8388. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  8389. #else
  8390. #define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  8391. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  8392. #endif
  8393. #define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  8394. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  8395. #define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \
  8396. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  8397. #define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  8398. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  8399. #define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  8400. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  8401. #define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  8402. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  8403. #define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  8404. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  8405. #define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  8406. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  8407. #define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \
  8408. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  8409. #define ID3D12Device1_Evict(This,NumObjects,ppObjects) \
  8410. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  8411. #define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  8412. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  8413. #define ID3D12Device1_GetDeviceRemovedReason(This) \
  8414. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  8415. #define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  8416. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  8417. #define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  8418. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  8419. #define ID3D12Device1_SetStablePowerState(This,Enable) \
  8420. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  8421. #define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  8422. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  8423. #define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  8424. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  8425. #if !defined(_WIN32)
  8426. #define ID3D12Device1_GetAdapterLuid(This) \
  8427. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  8428. #else
  8429. #define ID3D12Device1_GetAdapterLuid(This,RetVal) \
  8430. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  8431. #endif
  8432. #define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  8433. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  8434. #define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  8435. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  8436. #define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  8437. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  8438. #endif /* COBJMACROS */
  8439. #endif /* C style interface */
  8440. #endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
  8441. #ifndef __ID3D12Device2_INTERFACE_DEFINED__
  8442. #define __ID3D12Device2_INTERFACE_DEFINED__
  8443. /* interface ID3D12Device2 */
  8444. /* [unique][local][object][uuid] */
  8445. EXTERN_C const IID IID_ID3D12Device2;
  8446. #if defined(__cplusplus) && !defined(CINTERFACE)
  8447. MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
  8448. ID3D12Device2 : public ID3D12Device1
  8449. {
  8450. public:
  8451. virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
  8452. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  8453. REFIID riid,
  8454. _COM_Outptr_ void **ppPipelineState) = 0;
  8455. };
  8456. #else /* C style interface */
  8457. typedef struct ID3D12Device2Vtbl
  8458. {
  8459. BEGIN_INTERFACE
  8460. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  8461. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  8462. ID3D12Device2 * This,
  8463. REFIID riid,
  8464. _COM_Outptr_ void **ppvObject);
  8465. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  8466. ULONG ( STDMETHODCALLTYPE *AddRef )(
  8467. ID3D12Device2 * This);
  8468. DECLSPEC_XFGVIRT(IUnknown, Release)
  8469. ULONG ( STDMETHODCALLTYPE *Release )(
  8470. ID3D12Device2 * This);
  8471. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  8472. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  8473. ID3D12Device2 * This,
  8474. _In_ REFGUID guid,
  8475. _Inout_ UINT *pDataSize,
  8476. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  8477. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  8478. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  8479. ID3D12Device2 * This,
  8480. _In_ REFGUID guid,
  8481. _In_ UINT DataSize,
  8482. _In_reads_bytes_opt_( DataSize ) const void *pData);
  8483. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  8484. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  8485. ID3D12Device2 * This,
  8486. _In_ REFGUID guid,
  8487. _In_opt_ const IUnknown *pData);
  8488. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  8489. HRESULT ( STDMETHODCALLTYPE *SetName )(
  8490. ID3D12Device2 * This,
  8491. _In_z_ LPCWSTR Name);
  8492. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  8493. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  8494. ID3D12Device2 * This);
  8495. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  8496. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  8497. ID3D12Device2 * This,
  8498. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  8499. REFIID riid,
  8500. _COM_Outptr_ void **ppCommandQueue);
  8501. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  8502. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  8503. ID3D12Device2 * This,
  8504. _In_ D3D12_COMMAND_LIST_TYPE type,
  8505. REFIID riid,
  8506. _COM_Outptr_ void **ppCommandAllocator);
  8507. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  8508. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  8509. ID3D12Device2 * This,
  8510. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  8511. REFIID riid,
  8512. _COM_Outptr_ void **ppPipelineState);
  8513. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  8514. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  8515. ID3D12Device2 * This,
  8516. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  8517. REFIID riid,
  8518. _COM_Outptr_ void **ppPipelineState);
  8519. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  8520. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  8521. ID3D12Device2 * This,
  8522. _In_ UINT nodeMask,
  8523. _In_ D3D12_COMMAND_LIST_TYPE type,
  8524. _In_ ID3D12CommandAllocator *pCommandAllocator,
  8525. _In_opt_ ID3D12PipelineState *pInitialState,
  8526. REFIID riid,
  8527. _COM_Outptr_ void **ppCommandList);
  8528. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  8529. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  8530. ID3D12Device2 * This,
  8531. D3D12_FEATURE Feature,
  8532. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  8533. UINT FeatureSupportDataSize);
  8534. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  8535. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  8536. ID3D12Device2 * This,
  8537. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  8538. REFIID riid,
  8539. _COM_Outptr_ void **ppvHeap);
  8540. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  8541. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  8542. ID3D12Device2 * This,
  8543. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  8544. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  8545. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  8546. ID3D12Device2 * This,
  8547. _In_ UINT nodeMask,
  8548. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  8549. _In_ SIZE_T blobLengthInBytes,
  8550. REFIID riid,
  8551. _COM_Outptr_ void **ppvRootSignature);
  8552. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  8553. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  8554. ID3D12Device2 * This,
  8555. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  8556. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8557. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  8558. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  8559. ID3D12Device2 * This,
  8560. _In_opt_ ID3D12Resource *pResource,
  8561. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  8562. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8563. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  8564. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  8565. ID3D12Device2 * This,
  8566. _In_opt_ ID3D12Resource *pResource,
  8567. _In_opt_ ID3D12Resource *pCounterResource,
  8568. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  8569. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8570. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  8571. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  8572. ID3D12Device2 * This,
  8573. _In_opt_ ID3D12Resource *pResource,
  8574. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  8575. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8576. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  8577. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  8578. ID3D12Device2 * This,
  8579. _In_opt_ ID3D12Resource *pResource,
  8580. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  8581. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8582. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  8583. void ( STDMETHODCALLTYPE *CreateSampler )(
  8584. ID3D12Device2 * This,
  8585. _In_ const D3D12_SAMPLER_DESC *pDesc,
  8586. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  8587. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  8588. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  8589. ID3D12Device2 * This,
  8590. _In_ UINT NumDestDescriptorRanges,
  8591. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  8592. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  8593. _In_ UINT NumSrcDescriptorRanges,
  8594. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  8595. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  8596. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  8597. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  8598. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  8599. ID3D12Device2 * This,
  8600. _In_ UINT NumDescriptors,
  8601. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  8602. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  8603. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  8604. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  8605. #if !defined(_WIN32)
  8606. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  8607. ID3D12Device2 * This,
  8608. _In_ UINT visibleMask,
  8609. _In_ UINT numResourceDescs,
  8610. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  8611. #else
  8612. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  8613. ID3D12Device2 * This,
  8614. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  8615. _In_ UINT visibleMask,
  8616. _In_ UINT numResourceDescs,
  8617. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  8618. #endif
  8619. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  8620. #if !defined(_WIN32)
  8621. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  8622. ID3D12Device2 * This,
  8623. _In_ UINT nodeMask,
  8624. D3D12_HEAP_TYPE heapType);
  8625. #else
  8626. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  8627. ID3D12Device2 * This,
  8628. D3D12_HEAP_PROPERTIES * RetVal,
  8629. _In_ UINT nodeMask,
  8630. D3D12_HEAP_TYPE heapType);
  8631. #endif
  8632. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  8633. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  8634. ID3D12Device2 * This,
  8635. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  8636. D3D12_HEAP_FLAGS HeapFlags,
  8637. _In_ const D3D12_RESOURCE_DESC *pDesc,
  8638. D3D12_RESOURCE_STATES InitialResourceState,
  8639. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  8640. REFIID riidResource,
  8641. _COM_Outptr_opt_ void **ppvResource);
  8642. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  8643. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  8644. ID3D12Device2 * This,
  8645. _In_ const D3D12_HEAP_DESC *pDesc,
  8646. REFIID riid,
  8647. _COM_Outptr_opt_ void **ppvHeap);
  8648. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  8649. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  8650. ID3D12Device2 * This,
  8651. _In_ ID3D12Heap *pHeap,
  8652. UINT64 HeapOffset,
  8653. _In_ const D3D12_RESOURCE_DESC *pDesc,
  8654. D3D12_RESOURCE_STATES InitialState,
  8655. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  8656. REFIID riid,
  8657. _COM_Outptr_opt_ void **ppvResource);
  8658. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  8659. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  8660. ID3D12Device2 * This,
  8661. _In_ const D3D12_RESOURCE_DESC *pDesc,
  8662. D3D12_RESOURCE_STATES InitialState,
  8663. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  8664. REFIID riid,
  8665. _COM_Outptr_opt_ void **ppvResource);
  8666. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  8667. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  8668. ID3D12Device2 * This,
  8669. _In_ ID3D12DeviceChild *pObject,
  8670. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  8671. DWORD Access,
  8672. _In_opt_ LPCWSTR Name,
  8673. _Out_ HANDLE *pHandle);
  8674. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  8675. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  8676. ID3D12Device2 * This,
  8677. _In_ HANDLE NTHandle,
  8678. REFIID riid,
  8679. _COM_Outptr_opt_ void **ppvObj);
  8680. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  8681. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  8682. ID3D12Device2 * This,
  8683. _In_ LPCWSTR Name,
  8684. DWORD Access,
  8685. /* [annotation][out] */
  8686. _Out_ HANDLE *pNTHandle);
  8687. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  8688. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  8689. ID3D12Device2 * This,
  8690. UINT NumObjects,
  8691. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  8692. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  8693. HRESULT ( STDMETHODCALLTYPE *Evict )(
  8694. ID3D12Device2 * This,
  8695. UINT NumObjects,
  8696. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  8697. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  8698. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  8699. ID3D12Device2 * This,
  8700. UINT64 InitialValue,
  8701. D3D12_FENCE_FLAGS Flags,
  8702. REFIID riid,
  8703. _COM_Outptr_ void **ppFence);
  8704. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  8705. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  8706. ID3D12Device2 * This);
  8707. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  8708. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  8709. ID3D12Device2 * This,
  8710. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  8711. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  8712. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  8713. UINT64 BaseOffset,
  8714. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  8715. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  8716. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  8717. _Out_opt_ UINT64 *pTotalBytes);
  8718. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  8719. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  8720. ID3D12Device2 * This,
  8721. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  8722. REFIID riid,
  8723. _COM_Outptr_opt_ void **ppvHeap);
  8724. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  8725. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  8726. ID3D12Device2 * This,
  8727. BOOL Enable);
  8728. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  8729. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  8730. ID3D12Device2 * This,
  8731. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  8732. _In_opt_ ID3D12RootSignature *pRootSignature,
  8733. REFIID riid,
  8734. _COM_Outptr_opt_ void **ppvCommandSignature);
  8735. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  8736. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  8737. ID3D12Device2 * This,
  8738. _In_ ID3D12Resource *pTiledResource,
  8739. _Out_opt_ UINT *pNumTilesForEntireResource,
  8740. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  8741. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  8742. _Inout_opt_ UINT *pNumSubresourceTilings,
  8743. _In_ UINT FirstSubresourceTilingToGet,
  8744. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  8745. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  8746. #if !defined(_WIN32)
  8747. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  8748. ID3D12Device2 * This);
  8749. #else
  8750. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  8751. ID3D12Device2 * This,
  8752. LUID * RetVal);
  8753. #endif
  8754. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  8755. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  8756. ID3D12Device2 * This,
  8757. _In_reads_(BlobLength) const void *pLibraryBlob,
  8758. SIZE_T BlobLength,
  8759. REFIID riid,
  8760. _COM_Outptr_ void **ppPipelineLibrary);
  8761. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  8762. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  8763. ID3D12Device2 * This,
  8764. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  8765. _In_reads_(NumFences) const UINT64 *pFenceValues,
  8766. UINT NumFences,
  8767. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  8768. HANDLE hEvent);
  8769. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  8770. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  8771. ID3D12Device2 * This,
  8772. UINT NumObjects,
  8773. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  8774. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  8775. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  8776. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  8777. ID3D12Device2 * This,
  8778. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  8779. REFIID riid,
  8780. _COM_Outptr_ void **ppPipelineState);
  8781. END_INTERFACE
  8782. } ID3D12Device2Vtbl;
  8783. interface ID3D12Device2
  8784. {
  8785. CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl;
  8786. };
  8787. #ifdef COBJMACROS
  8788. #define ID3D12Device2_QueryInterface(This,riid,ppvObject) \
  8789. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  8790. #define ID3D12Device2_AddRef(This) \
  8791. ( (This)->lpVtbl -> AddRef(This) )
  8792. #define ID3D12Device2_Release(This) \
  8793. ( (This)->lpVtbl -> Release(This) )
  8794. #define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \
  8795. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  8796. #define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \
  8797. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  8798. #define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \
  8799. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  8800. #define ID3D12Device2_SetName(This,Name) \
  8801. ( (This)->lpVtbl -> SetName(This,Name) )
  8802. #define ID3D12Device2_GetNodeCount(This) \
  8803. ( (This)->lpVtbl -> GetNodeCount(This) )
  8804. #define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  8805. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  8806. #define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  8807. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  8808. #define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  8809. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  8810. #define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  8811. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  8812. #define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  8813. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  8814. #define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  8815. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  8816. #define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  8817. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  8818. #define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  8819. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  8820. #define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  8821. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  8822. #define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  8823. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  8824. #define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  8825. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  8826. #define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  8827. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  8828. #define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  8829. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  8830. #define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  8831. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  8832. #define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \
  8833. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  8834. #define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  8835. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  8836. #define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  8837. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  8838. #if !defined(_WIN32)
  8839. #define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  8840. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  8841. #else
  8842. #define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  8843. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  8844. #endif
  8845. #if !defined(_WIN32)
  8846. #define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \
  8847. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  8848. #else
  8849. #define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  8850. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  8851. #endif
  8852. #define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  8853. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  8854. #define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \
  8855. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  8856. #define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  8857. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  8858. #define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  8859. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  8860. #define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  8861. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  8862. #define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  8863. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  8864. #define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  8865. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  8866. #define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \
  8867. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  8868. #define ID3D12Device2_Evict(This,NumObjects,ppObjects) \
  8869. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  8870. #define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  8871. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  8872. #define ID3D12Device2_GetDeviceRemovedReason(This) \
  8873. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  8874. #define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  8875. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  8876. #define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  8877. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  8878. #define ID3D12Device2_SetStablePowerState(This,Enable) \
  8879. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  8880. #define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  8881. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  8882. #define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  8883. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  8884. #if !defined(_WIN32)
  8885. #define ID3D12Device2_GetAdapterLuid(This) \
  8886. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  8887. #else
  8888. #define ID3D12Device2_GetAdapterLuid(This,RetVal) \
  8889. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  8890. #endif
  8891. #define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  8892. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  8893. #define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  8894. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  8895. #define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  8896. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  8897. #define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  8898. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  8899. #endif /* COBJMACROS */
  8900. #endif /* C style interface */
  8901. #endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
  8902. /* interface __MIDL_itf_d3d12_0000_0027 */
  8903. /* [local] */
  8904. typedef
  8905. enum D3D12_RESIDENCY_FLAGS
  8906. {
  8907. D3D12_RESIDENCY_FLAG_NONE = 0,
  8908. D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
  8909. } D3D12_RESIDENCY_FLAGS;
  8910. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS )
  8911. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
  8912. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
  8913. #ifndef __ID3D12Device3_INTERFACE_DEFINED__
  8914. #define __ID3D12Device3_INTERFACE_DEFINED__
  8915. /* interface ID3D12Device3 */
  8916. /* [unique][local][object][uuid] */
  8917. EXTERN_C const IID IID_ID3D12Device3;
  8918. #if defined(__cplusplus) && !defined(CINTERFACE)
  8919. MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
  8920. ID3D12Device3 : public ID3D12Device2
  8921. {
  8922. public:
  8923. virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
  8924. _In_ const void *pAddress,
  8925. REFIID riid,
  8926. _COM_Outptr_ void **ppvHeap) = 0;
  8927. virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
  8928. _In_ HANDLE hFileMapping,
  8929. REFIID riid,
  8930. _COM_Outptr_ void **ppvHeap) = 0;
  8931. virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
  8932. D3D12_RESIDENCY_FLAGS Flags,
  8933. UINT NumObjects,
  8934. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  8935. _In_ ID3D12Fence *pFenceToSignal,
  8936. UINT64 FenceValueToSignal) = 0;
  8937. };
  8938. #else /* C style interface */
  8939. typedef struct ID3D12Device3Vtbl
  8940. {
  8941. BEGIN_INTERFACE
  8942. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  8943. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  8944. ID3D12Device3 * This,
  8945. REFIID riid,
  8946. _COM_Outptr_ void **ppvObject);
  8947. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  8948. ULONG ( STDMETHODCALLTYPE *AddRef )(
  8949. ID3D12Device3 * This);
  8950. DECLSPEC_XFGVIRT(IUnknown, Release)
  8951. ULONG ( STDMETHODCALLTYPE *Release )(
  8952. ID3D12Device3 * This);
  8953. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  8954. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  8955. ID3D12Device3 * This,
  8956. _In_ REFGUID guid,
  8957. _Inout_ UINT *pDataSize,
  8958. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  8959. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  8960. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  8961. ID3D12Device3 * This,
  8962. _In_ REFGUID guid,
  8963. _In_ UINT DataSize,
  8964. _In_reads_bytes_opt_( DataSize ) const void *pData);
  8965. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  8966. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  8967. ID3D12Device3 * This,
  8968. _In_ REFGUID guid,
  8969. _In_opt_ const IUnknown *pData);
  8970. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  8971. HRESULT ( STDMETHODCALLTYPE *SetName )(
  8972. ID3D12Device3 * This,
  8973. _In_z_ LPCWSTR Name);
  8974. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  8975. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  8976. ID3D12Device3 * This);
  8977. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  8978. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  8979. ID3D12Device3 * This,
  8980. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  8981. REFIID riid,
  8982. _COM_Outptr_ void **ppCommandQueue);
  8983. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  8984. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  8985. ID3D12Device3 * This,
  8986. _In_ D3D12_COMMAND_LIST_TYPE type,
  8987. REFIID riid,
  8988. _COM_Outptr_ void **ppCommandAllocator);
  8989. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  8990. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  8991. ID3D12Device3 * This,
  8992. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  8993. REFIID riid,
  8994. _COM_Outptr_ void **ppPipelineState);
  8995. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  8996. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  8997. ID3D12Device3 * This,
  8998. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  8999. REFIID riid,
  9000. _COM_Outptr_ void **ppPipelineState);
  9001. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  9002. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  9003. ID3D12Device3 * This,
  9004. _In_ UINT nodeMask,
  9005. _In_ D3D12_COMMAND_LIST_TYPE type,
  9006. _In_ ID3D12CommandAllocator *pCommandAllocator,
  9007. _In_opt_ ID3D12PipelineState *pInitialState,
  9008. REFIID riid,
  9009. _COM_Outptr_ void **ppCommandList);
  9010. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  9011. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  9012. ID3D12Device3 * This,
  9013. D3D12_FEATURE Feature,
  9014. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  9015. UINT FeatureSupportDataSize);
  9016. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  9017. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  9018. ID3D12Device3 * This,
  9019. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  9020. REFIID riid,
  9021. _COM_Outptr_ void **ppvHeap);
  9022. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  9023. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  9024. ID3D12Device3 * This,
  9025. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  9026. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  9027. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  9028. ID3D12Device3 * This,
  9029. _In_ UINT nodeMask,
  9030. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  9031. _In_ SIZE_T blobLengthInBytes,
  9032. REFIID riid,
  9033. _COM_Outptr_ void **ppvRootSignature);
  9034. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  9035. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  9036. ID3D12Device3 * This,
  9037. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  9038. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9039. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  9040. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  9041. ID3D12Device3 * This,
  9042. _In_opt_ ID3D12Resource *pResource,
  9043. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  9044. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9045. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  9046. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  9047. ID3D12Device3 * This,
  9048. _In_opt_ ID3D12Resource *pResource,
  9049. _In_opt_ ID3D12Resource *pCounterResource,
  9050. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  9051. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9052. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  9053. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  9054. ID3D12Device3 * This,
  9055. _In_opt_ ID3D12Resource *pResource,
  9056. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  9057. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9058. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  9059. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  9060. ID3D12Device3 * This,
  9061. _In_opt_ ID3D12Resource *pResource,
  9062. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  9063. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9064. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  9065. void ( STDMETHODCALLTYPE *CreateSampler )(
  9066. ID3D12Device3 * This,
  9067. _In_ const D3D12_SAMPLER_DESC *pDesc,
  9068. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9069. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  9070. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  9071. ID3D12Device3 * This,
  9072. _In_ UINT NumDestDescriptorRanges,
  9073. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  9074. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  9075. _In_ UINT NumSrcDescriptorRanges,
  9076. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  9077. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  9078. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  9079. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  9080. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  9081. ID3D12Device3 * This,
  9082. _In_ UINT NumDescriptors,
  9083. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  9084. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  9085. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  9086. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  9087. #if !defined(_WIN32)
  9088. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  9089. ID3D12Device3 * This,
  9090. _In_ UINT visibleMask,
  9091. _In_ UINT numResourceDescs,
  9092. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  9093. #else
  9094. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  9095. ID3D12Device3 * This,
  9096. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  9097. _In_ UINT visibleMask,
  9098. _In_ UINT numResourceDescs,
  9099. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  9100. #endif
  9101. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  9102. #if !defined(_WIN32)
  9103. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  9104. ID3D12Device3 * This,
  9105. _In_ UINT nodeMask,
  9106. D3D12_HEAP_TYPE heapType);
  9107. #else
  9108. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  9109. ID3D12Device3 * This,
  9110. D3D12_HEAP_PROPERTIES * RetVal,
  9111. _In_ UINT nodeMask,
  9112. D3D12_HEAP_TYPE heapType);
  9113. #endif
  9114. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  9115. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  9116. ID3D12Device3 * This,
  9117. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  9118. D3D12_HEAP_FLAGS HeapFlags,
  9119. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9120. D3D12_RESOURCE_STATES InitialResourceState,
  9121. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9122. REFIID riidResource,
  9123. _COM_Outptr_opt_ void **ppvResource);
  9124. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  9125. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  9126. ID3D12Device3 * This,
  9127. _In_ const D3D12_HEAP_DESC *pDesc,
  9128. REFIID riid,
  9129. _COM_Outptr_opt_ void **ppvHeap);
  9130. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  9131. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  9132. ID3D12Device3 * This,
  9133. _In_ ID3D12Heap *pHeap,
  9134. UINT64 HeapOffset,
  9135. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9136. D3D12_RESOURCE_STATES InitialState,
  9137. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9138. REFIID riid,
  9139. _COM_Outptr_opt_ void **ppvResource);
  9140. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  9141. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  9142. ID3D12Device3 * This,
  9143. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9144. D3D12_RESOURCE_STATES InitialState,
  9145. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9146. REFIID riid,
  9147. _COM_Outptr_opt_ void **ppvResource);
  9148. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  9149. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  9150. ID3D12Device3 * This,
  9151. _In_ ID3D12DeviceChild *pObject,
  9152. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  9153. DWORD Access,
  9154. _In_opt_ LPCWSTR Name,
  9155. _Out_ HANDLE *pHandle);
  9156. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  9157. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  9158. ID3D12Device3 * This,
  9159. _In_ HANDLE NTHandle,
  9160. REFIID riid,
  9161. _COM_Outptr_opt_ void **ppvObj);
  9162. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  9163. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  9164. ID3D12Device3 * This,
  9165. _In_ LPCWSTR Name,
  9166. DWORD Access,
  9167. /* [annotation][out] */
  9168. _Out_ HANDLE *pNTHandle);
  9169. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  9170. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  9171. ID3D12Device3 * This,
  9172. UINT NumObjects,
  9173. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  9174. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  9175. HRESULT ( STDMETHODCALLTYPE *Evict )(
  9176. ID3D12Device3 * This,
  9177. UINT NumObjects,
  9178. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  9179. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  9180. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  9181. ID3D12Device3 * This,
  9182. UINT64 InitialValue,
  9183. D3D12_FENCE_FLAGS Flags,
  9184. REFIID riid,
  9185. _COM_Outptr_ void **ppFence);
  9186. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  9187. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  9188. ID3D12Device3 * This);
  9189. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  9190. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  9191. ID3D12Device3 * This,
  9192. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  9193. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  9194. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  9195. UINT64 BaseOffset,
  9196. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  9197. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  9198. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  9199. _Out_opt_ UINT64 *pTotalBytes);
  9200. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  9201. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  9202. ID3D12Device3 * This,
  9203. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  9204. REFIID riid,
  9205. _COM_Outptr_opt_ void **ppvHeap);
  9206. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  9207. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  9208. ID3D12Device3 * This,
  9209. BOOL Enable);
  9210. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  9211. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  9212. ID3D12Device3 * This,
  9213. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  9214. _In_opt_ ID3D12RootSignature *pRootSignature,
  9215. REFIID riid,
  9216. _COM_Outptr_opt_ void **ppvCommandSignature);
  9217. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  9218. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  9219. ID3D12Device3 * This,
  9220. _In_ ID3D12Resource *pTiledResource,
  9221. _Out_opt_ UINT *pNumTilesForEntireResource,
  9222. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  9223. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  9224. _Inout_opt_ UINT *pNumSubresourceTilings,
  9225. _In_ UINT FirstSubresourceTilingToGet,
  9226. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  9227. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  9228. #if !defined(_WIN32)
  9229. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  9230. ID3D12Device3 * This);
  9231. #else
  9232. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  9233. ID3D12Device3 * This,
  9234. LUID * RetVal);
  9235. #endif
  9236. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  9237. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  9238. ID3D12Device3 * This,
  9239. _In_reads_(BlobLength) const void *pLibraryBlob,
  9240. SIZE_T BlobLength,
  9241. REFIID riid,
  9242. _COM_Outptr_ void **ppPipelineLibrary);
  9243. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  9244. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  9245. ID3D12Device3 * This,
  9246. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  9247. _In_reads_(NumFences) const UINT64 *pFenceValues,
  9248. UINT NumFences,
  9249. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  9250. HANDLE hEvent);
  9251. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  9252. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  9253. ID3D12Device3 * This,
  9254. UINT NumObjects,
  9255. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  9256. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  9257. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  9258. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  9259. ID3D12Device3 * This,
  9260. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  9261. REFIID riid,
  9262. _COM_Outptr_ void **ppPipelineState);
  9263. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  9264. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  9265. ID3D12Device3 * This,
  9266. _In_ const void *pAddress,
  9267. REFIID riid,
  9268. _COM_Outptr_ void **ppvHeap);
  9269. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  9270. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  9271. ID3D12Device3 * This,
  9272. _In_ HANDLE hFileMapping,
  9273. REFIID riid,
  9274. _COM_Outptr_ void **ppvHeap);
  9275. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  9276. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  9277. ID3D12Device3 * This,
  9278. D3D12_RESIDENCY_FLAGS Flags,
  9279. UINT NumObjects,
  9280. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  9281. _In_ ID3D12Fence *pFenceToSignal,
  9282. UINT64 FenceValueToSignal);
  9283. END_INTERFACE
  9284. } ID3D12Device3Vtbl;
  9285. interface ID3D12Device3
  9286. {
  9287. CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl;
  9288. };
  9289. #ifdef COBJMACROS
  9290. #define ID3D12Device3_QueryInterface(This,riid,ppvObject) \
  9291. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  9292. #define ID3D12Device3_AddRef(This) \
  9293. ( (This)->lpVtbl -> AddRef(This) )
  9294. #define ID3D12Device3_Release(This) \
  9295. ( (This)->lpVtbl -> Release(This) )
  9296. #define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \
  9297. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  9298. #define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \
  9299. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  9300. #define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \
  9301. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  9302. #define ID3D12Device3_SetName(This,Name) \
  9303. ( (This)->lpVtbl -> SetName(This,Name) )
  9304. #define ID3D12Device3_GetNodeCount(This) \
  9305. ( (This)->lpVtbl -> GetNodeCount(This) )
  9306. #define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  9307. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  9308. #define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  9309. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  9310. #define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  9311. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  9312. #define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  9313. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  9314. #define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  9315. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  9316. #define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  9317. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  9318. #define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  9319. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  9320. #define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  9321. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  9322. #define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  9323. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  9324. #define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  9325. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  9326. #define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  9327. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  9328. #define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  9329. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  9330. #define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  9331. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  9332. #define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  9333. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  9334. #define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \
  9335. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  9336. #define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  9337. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  9338. #define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  9339. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  9340. #if !defined(_WIN32)
  9341. #define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  9342. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  9343. #else
  9344. #define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  9345. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  9346. #endif
  9347. #if !defined(_WIN32)
  9348. #define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \
  9349. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  9350. #else
  9351. #define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  9352. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  9353. #endif
  9354. #define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  9355. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  9356. #define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \
  9357. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  9358. #define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  9359. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  9360. #define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  9361. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  9362. #define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  9363. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  9364. #define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  9365. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  9366. #define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  9367. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  9368. #define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \
  9369. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  9370. #define ID3D12Device3_Evict(This,NumObjects,ppObjects) \
  9371. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  9372. #define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  9373. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  9374. #define ID3D12Device3_GetDeviceRemovedReason(This) \
  9375. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  9376. #define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  9377. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  9378. #define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  9379. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  9380. #define ID3D12Device3_SetStablePowerState(This,Enable) \
  9381. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  9382. #define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  9383. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  9384. #define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  9385. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  9386. #if !defined(_WIN32)
  9387. #define ID3D12Device3_GetAdapterLuid(This) \
  9388. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  9389. #else
  9390. #define ID3D12Device3_GetAdapterLuid(This,RetVal) \
  9391. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  9392. #endif
  9393. #define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  9394. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  9395. #define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  9396. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  9397. #define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  9398. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  9399. #define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  9400. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  9401. #define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  9402. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  9403. #define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  9404. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  9405. #define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  9406. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  9407. #endif /* COBJMACROS */
  9408. #endif /* C style interface */
  9409. #endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
  9410. /* interface __MIDL_itf_d3d12_0000_0028 */
  9411. /* [local] */
  9412. typedef
  9413. enum D3D12_COMMAND_LIST_FLAGS
  9414. {
  9415. D3D12_COMMAND_LIST_FLAG_NONE = 0
  9416. } D3D12_COMMAND_LIST_FLAGS;
  9417. DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS )
  9418. typedef
  9419. enum D3D12_COMMAND_POOL_FLAGS
  9420. {
  9421. D3D12_COMMAND_POOL_FLAG_NONE = 0
  9422. } D3D12_COMMAND_POOL_FLAGS;
  9423. DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS )
  9424. typedef
  9425. enum D3D12_COMMAND_RECORDER_FLAGS
  9426. {
  9427. D3D12_COMMAND_RECORDER_FLAG_NONE = 0
  9428. } D3D12_COMMAND_RECORDER_FLAGS;
  9429. DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS )
  9430. typedef
  9431. enum D3D12_PROTECTED_SESSION_STATUS
  9432. {
  9433. D3D12_PROTECTED_SESSION_STATUS_OK = 0,
  9434. D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
  9435. } D3D12_PROTECTED_SESSION_STATUS;
  9436. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_c_ifspec;
  9437. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_s_ifspec;
  9438. #ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
  9439. #define __ID3D12ProtectedSession_INTERFACE_DEFINED__
  9440. /* interface ID3D12ProtectedSession */
  9441. /* [unique][local][object][uuid] */
  9442. EXTERN_C const IID IID_ID3D12ProtectedSession;
  9443. #if defined(__cplusplus) && !defined(CINTERFACE)
  9444. MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B")
  9445. ID3D12ProtectedSession : public ID3D12DeviceChild
  9446. {
  9447. public:
  9448. virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
  9449. REFIID riid,
  9450. _COM_Outptr_opt_ void **ppFence) = 0;
  9451. virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0;
  9452. };
  9453. #else /* C style interface */
  9454. typedef struct ID3D12ProtectedSessionVtbl
  9455. {
  9456. BEGIN_INTERFACE
  9457. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  9458. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  9459. ID3D12ProtectedSession * This,
  9460. REFIID riid,
  9461. _COM_Outptr_ void **ppvObject);
  9462. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  9463. ULONG ( STDMETHODCALLTYPE *AddRef )(
  9464. ID3D12ProtectedSession * This);
  9465. DECLSPEC_XFGVIRT(IUnknown, Release)
  9466. ULONG ( STDMETHODCALLTYPE *Release )(
  9467. ID3D12ProtectedSession * This);
  9468. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  9469. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  9470. ID3D12ProtectedSession * This,
  9471. _In_ REFGUID guid,
  9472. _Inout_ UINT *pDataSize,
  9473. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  9474. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  9475. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  9476. ID3D12ProtectedSession * This,
  9477. _In_ REFGUID guid,
  9478. _In_ UINT DataSize,
  9479. _In_reads_bytes_opt_( DataSize ) const void *pData);
  9480. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  9481. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  9482. ID3D12ProtectedSession * This,
  9483. _In_ REFGUID guid,
  9484. _In_opt_ const IUnknown *pData);
  9485. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  9486. HRESULT ( STDMETHODCALLTYPE *SetName )(
  9487. ID3D12ProtectedSession * This,
  9488. _In_z_ LPCWSTR Name);
  9489. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  9490. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  9491. ID3D12ProtectedSession * This,
  9492. REFIID riid,
  9493. _COM_Outptr_opt_ void **ppvDevice);
  9494. DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
  9495. HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
  9496. ID3D12ProtectedSession * This,
  9497. REFIID riid,
  9498. _COM_Outptr_opt_ void **ppFence);
  9499. DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
  9500. D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
  9501. ID3D12ProtectedSession * This);
  9502. END_INTERFACE
  9503. } ID3D12ProtectedSessionVtbl;
  9504. interface ID3D12ProtectedSession
  9505. {
  9506. CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl;
  9507. };
  9508. #ifdef COBJMACROS
  9509. #define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \
  9510. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  9511. #define ID3D12ProtectedSession_AddRef(This) \
  9512. ( (This)->lpVtbl -> AddRef(This) )
  9513. #define ID3D12ProtectedSession_Release(This) \
  9514. ( (This)->lpVtbl -> Release(This) )
  9515. #define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \
  9516. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  9517. #define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \
  9518. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  9519. #define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \
  9520. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  9521. #define ID3D12ProtectedSession_SetName(This,Name) \
  9522. ( (This)->lpVtbl -> SetName(This,Name) )
  9523. #define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \
  9524. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  9525. #define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \
  9526. ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
  9527. #define ID3D12ProtectedSession_GetSessionStatus(This) \
  9528. ( (This)->lpVtbl -> GetSessionStatus(This) )
  9529. #endif /* COBJMACROS */
  9530. #endif /* C style interface */
  9531. #endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
  9532. /* interface __MIDL_itf_d3d12_0000_0029 */
  9533. /* [local] */
  9534. typedef
  9535. enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
  9536. {
  9537. D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0,
  9538. D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
  9539. } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
  9540. DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS )
  9541. typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
  9542. {
  9543. UINT NodeIndex;
  9544. D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
  9545. } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
  9546. typedef
  9547. enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
  9548. {
  9549. D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
  9550. } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
  9551. DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS )
  9552. typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
  9553. {
  9554. UINT NodeMask;
  9555. D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
  9556. } D3D12_PROTECTED_RESOURCE_SESSION_DESC;
  9557. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec;
  9558. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec;
  9559. #ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
  9560. #define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
  9561. /* interface ID3D12ProtectedResourceSession */
  9562. /* [unique][local][object][uuid] */
  9563. EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
  9564. #if defined(__cplusplus) && !defined(CINTERFACE)
  9565. MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D")
  9566. ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
  9567. {
  9568. public:
  9569. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  9570. virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  9571. #else
  9572. virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
  9573. D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0;
  9574. #endif
  9575. };
  9576. #else /* C style interface */
  9577. typedef struct ID3D12ProtectedResourceSessionVtbl
  9578. {
  9579. BEGIN_INTERFACE
  9580. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  9581. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  9582. ID3D12ProtectedResourceSession * This,
  9583. REFIID riid,
  9584. _COM_Outptr_ void **ppvObject);
  9585. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  9586. ULONG ( STDMETHODCALLTYPE *AddRef )(
  9587. ID3D12ProtectedResourceSession * This);
  9588. DECLSPEC_XFGVIRT(IUnknown, Release)
  9589. ULONG ( STDMETHODCALLTYPE *Release )(
  9590. ID3D12ProtectedResourceSession * This);
  9591. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  9592. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  9593. ID3D12ProtectedResourceSession * This,
  9594. _In_ REFGUID guid,
  9595. _Inout_ UINT *pDataSize,
  9596. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  9597. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  9598. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  9599. ID3D12ProtectedResourceSession * This,
  9600. _In_ REFGUID guid,
  9601. _In_ UINT DataSize,
  9602. _In_reads_bytes_opt_( DataSize ) const void *pData);
  9603. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  9604. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  9605. ID3D12ProtectedResourceSession * This,
  9606. _In_ REFGUID guid,
  9607. _In_opt_ const IUnknown *pData);
  9608. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  9609. HRESULT ( STDMETHODCALLTYPE *SetName )(
  9610. ID3D12ProtectedResourceSession * This,
  9611. _In_z_ LPCWSTR Name);
  9612. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  9613. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  9614. ID3D12ProtectedResourceSession * This,
  9615. REFIID riid,
  9616. _COM_Outptr_opt_ void **ppvDevice);
  9617. DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
  9618. HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
  9619. ID3D12ProtectedResourceSession * This,
  9620. REFIID riid,
  9621. _COM_Outptr_opt_ void **ppFence);
  9622. DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
  9623. D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
  9624. ID3D12ProtectedResourceSession * This);
  9625. DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
  9626. #if !defined(_WIN32)
  9627. D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
  9628. ID3D12ProtectedResourceSession * This);
  9629. #else
  9630. D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
  9631. ID3D12ProtectedResourceSession * This,
  9632. D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
  9633. #endif
  9634. END_INTERFACE
  9635. } ID3D12ProtectedResourceSessionVtbl;
  9636. interface ID3D12ProtectedResourceSession
  9637. {
  9638. CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl;
  9639. };
  9640. #ifdef COBJMACROS
  9641. #define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \
  9642. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  9643. #define ID3D12ProtectedResourceSession_AddRef(This) \
  9644. ( (This)->lpVtbl -> AddRef(This) )
  9645. #define ID3D12ProtectedResourceSession_Release(This) \
  9646. ( (This)->lpVtbl -> Release(This) )
  9647. #define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \
  9648. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  9649. #define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \
  9650. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  9651. #define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \
  9652. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  9653. #define ID3D12ProtectedResourceSession_SetName(This,Name) \
  9654. ( (This)->lpVtbl -> SetName(This,Name) )
  9655. #define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \
  9656. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  9657. #define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \
  9658. ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
  9659. #define ID3D12ProtectedResourceSession_GetSessionStatus(This) \
  9660. ( (This)->lpVtbl -> GetSessionStatus(This) )
  9661. #if !defined(_WIN32)
  9662. #define ID3D12ProtectedResourceSession_GetDesc(This) \
  9663. ( (This)->lpVtbl -> GetDesc(This) )
  9664. #else
  9665. #define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \
  9666. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  9667. #endif
  9668. #endif /* COBJMACROS */
  9669. #endif /* C style interface */
  9670. #endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
  9671. #ifndef __ID3D12Device4_INTERFACE_DEFINED__
  9672. #define __ID3D12Device4_INTERFACE_DEFINED__
  9673. /* interface ID3D12Device4 */
  9674. /* [unique][local][object][uuid] */
  9675. EXTERN_C const IID IID_ID3D12Device4;
  9676. #if defined(__cplusplus) && !defined(CINTERFACE)
  9677. MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
  9678. ID3D12Device4 : public ID3D12Device3
  9679. {
  9680. public:
  9681. virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
  9682. _In_ UINT nodeMask,
  9683. _In_ D3D12_COMMAND_LIST_TYPE type,
  9684. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  9685. REFIID riid,
  9686. _COM_Outptr_ void **ppCommandList) = 0;
  9687. virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
  9688. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  9689. _In_ REFIID riid,
  9690. _COM_Outptr_ void **ppSession) = 0;
  9691. virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
  9692. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  9693. D3D12_HEAP_FLAGS HeapFlags,
  9694. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9695. D3D12_RESOURCE_STATES InitialResourceState,
  9696. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9697. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  9698. REFIID riidResource,
  9699. _COM_Outptr_opt_ void **ppvResource) = 0;
  9700. virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
  9701. _In_ const D3D12_HEAP_DESC *pDesc,
  9702. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  9703. REFIID riid,
  9704. _COM_Outptr_opt_ void **ppvHeap) = 0;
  9705. virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
  9706. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9707. D3D12_RESOURCE_STATES InitialState,
  9708. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9709. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  9710. REFIID riid,
  9711. _COM_Outptr_opt_ void **ppvResource) = 0;
  9712. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  9713. virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
  9714. UINT visibleMask,
  9715. UINT numResourceDescs,
  9716. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  9717. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
  9718. #else
  9719. virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1(
  9720. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  9721. UINT visibleMask,
  9722. UINT numResourceDescs,
  9723. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  9724. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
  9725. #endif
  9726. };
  9727. #else /* C style interface */
  9728. typedef struct ID3D12Device4Vtbl
  9729. {
  9730. BEGIN_INTERFACE
  9731. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  9732. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  9733. ID3D12Device4 * This,
  9734. REFIID riid,
  9735. _COM_Outptr_ void **ppvObject);
  9736. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  9737. ULONG ( STDMETHODCALLTYPE *AddRef )(
  9738. ID3D12Device4 * This);
  9739. DECLSPEC_XFGVIRT(IUnknown, Release)
  9740. ULONG ( STDMETHODCALLTYPE *Release )(
  9741. ID3D12Device4 * This);
  9742. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  9743. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  9744. ID3D12Device4 * This,
  9745. _In_ REFGUID guid,
  9746. _Inout_ UINT *pDataSize,
  9747. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  9748. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  9749. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  9750. ID3D12Device4 * This,
  9751. _In_ REFGUID guid,
  9752. _In_ UINT DataSize,
  9753. _In_reads_bytes_opt_( DataSize ) const void *pData);
  9754. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  9755. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  9756. ID3D12Device4 * This,
  9757. _In_ REFGUID guid,
  9758. _In_opt_ const IUnknown *pData);
  9759. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  9760. HRESULT ( STDMETHODCALLTYPE *SetName )(
  9761. ID3D12Device4 * This,
  9762. _In_z_ LPCWSTR Name);
  9763. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  9764. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  9765. ID3D12Device4 * This);
  9766. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  9767. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  9768. ID3D12Device4 * This,
  9769. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  9770. REFIID riid,
  9771. _COM_Outptr_ void **ppCommandQueue);
  9772. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  9773. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  9774. ID3D12Device4 * This,
  9775. _In_ D3D12_COMMAND_LIST_TYPE type,
  9776. REFIID riid,
  9777. _COM_Outptr_ void **ppCommandAllocator);
  9778. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  9779. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  9780. ID3D12Device4 * This,
  9781. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  9782. REFIID riid,
  9783. _COM_Outptr_ void **ppPipelineState);
  9784. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  9785. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  9786. ID3D12Device4 * This,
  9787. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  9788. REFIID riid,
  9789. _COM_Outptr_ void **ppPipelineState);
  9790. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  9791. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  9792. ID3D12Device4 * This,
  9793. _In_ UINT nodeMask,
  9794. _In_ D3D12_COMMAND_LIST_TYPE type,
  9795. _In_ ID3D12CommandAllocator *pCommandAllocator,
  9796. _In_opt_ ID3D12PipelineState *pInitialState,
  9797. REFIID riid,
  9798. _COM_Outptr_ void **ppCommandList);
  9799. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  9800. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  9801. ID3D12Device4 * This,
  9802. D3D12_FEATURE Feature,
  9803. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  9804. UINT FeatureSupportDataSize);
  9805. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  9806. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  9807. ID3D12Device4 * This,
  9808. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  9809. REFIID riid,
  9810. _COM_Outptr_ void **ppvHeap);
  9811. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  9812. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  9813. ID3D12Device4 * This,
  9814. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  9815. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  9816. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  9817. ID3D12Device4 * This,
  9818. _In_ UINT nodeMask,
  9819. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  9820. _In_ SIZE_T blobLengthInBytes,
  9821. REFIID riid,
  9822. _COM_Outptr_ void **ppvRootSignature);
  9823. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  9824. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  9825. ID3D12Device4 * This,
  9826. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  9827. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9828. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  9829. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  9830. ID3D12Device4 * This,
  9831. _In_opt_ ID3D12Resource *pResource,
  9832. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  9833. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9834. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  9835. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  9836. ID3D12Device4 * This,
  9837. _In_opt_ ID3D12Resource *pResource,
  9838. _In_opt_ ID3D12Resource *pCounterResource,
  9839. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  9840. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9841. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  9842. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  9843. ID3D12Device4 * This,
  9844. _In_opt_ ID3D12Resource *pResource,
  9845. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  9846. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9847. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  9848. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  9849. ID3D12Device4 * This,
  9850. _In_opt_ ID3D12Resource *pResource,
  9851. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  9852. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9853. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  9854. void ( STDMETHODCALLTYPE *CreateSampler )(
  9855. ID3D12Device4 * This,
  9856. _In_ const D3D12_SAMPLER_DESC *pDesc,
  9857. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  9858. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  9859. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  9860. ID3D12Device4 * This,
  9861. _In_ UINT NumDestDescriptorRanges,
  9862. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  9863. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  9864. _In_ UINT NumSrcDescriptorRanges,
  9865. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  9866. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  9867. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  9868. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  9869. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  9870. ID3D12Device4 * This,
  9871. _In_ UINT NumDescriptors,
  9872. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  9873. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  9874. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  9875. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  9876. #if !defined(_WIN32)
  9877. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  9878. ID3D12Device4 * This,
  9879. _In_ UINT visibleMask,
  9880. _In_ UINT numResourceDescs,
  9881. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  9882. #else
  9883. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  9884. ID3D12Device4 * This,
  9885. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  9886. _In_ UINT visibleMask,
  9887. _In_ UINT numResourceDescs,
  9888. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  9889. #endif
  9890. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  9891. #if !defined(_WIN32)
  9892. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  9893. ID3D12Device4 * This,
  9894. _In_ UINT nodeMask,
  9895. D3D12_HEAP_TYPE heapType);
  9896. #else
  9897. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  9898. ID3D12Device4 * This,
  9899. D3D12_HEAP_PROPERTIES * RetVal,
  9900. _In_ UINT nodeMask,
  9901. D3D12_HEAP_TYPE heapType);
  9902. #endif
  9903. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  9904. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  9905. ID3D12Device4 * This,
  9906. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  9907. D3D12_HEAP_FLAGS HeapFlags,
  9908. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9909. D3D12_RESOURCE_STATES InitialResourceState,
  9910. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9911. REFIID riidResource,
  9912. _COM_Outptr_opt_ void **ppvResource);
  9913. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  9914. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  9915. ID3D12Device4 * This,
  9916. _In_ const D3D12_HEAP_DESC *pDesc,
  9917. REFIID riid,
  9918. _COM_Outptr_opt_ void **ppvHeap);
  9919. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  9920. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  9921. ID3D12Device4 * This,
  9922. _In_ ID3D12Heap *pHeap,
  9923. UINT64 HeapOffset,
  9924. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9925. D3D12_RESOURCE_STATES InitialState,
  9926. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9927. REFIID riid,
  9928. _COM_Outptr_opt_ void **ppvResource);
  9929. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  9930. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  9931. ID3D12Device4 * This,
  9932. _In_ const D3D12_RESOURCE_DESC *pDesc,
  9933. D3D12_RESOURCE_STATES InitialState,
  9934. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  9935. REFIID riid,
  9936. _COM_Outptr_opt_ void **ppvResource);
  9937. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  9938. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  9939. ID3D12Device4 * This,
  9940. _In_ ID3D12DeviceChild *pObject,
  9941. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  9942. DWORD Access,
  9943. _In_opt_ LPCWSTR Name,
  9944. _Out_ HANDLE *pHandle);
  9945. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  9946. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  9947. ID3D12Device4 * This,
  9948. _In_ HANDLE NTHandle,
  9949. REFIID riid,
  9950. _COM_Outptr_opt_ void **ppvObj);
  9951. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  9952. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  9953. ID3D12Device4 * This,
  9954. _In_ LPCWSTR Name,
  9955. DWORD Access,
  9956. /* [annotation][out] */
  9957. _Out_ HANDLE *pNTHandle);
  9958. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  9959. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  9960. ID3D12Device4 * This,
  9961. UINT NumObjects,
  9962. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  9963. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  9964. HRESULT ( STDMETHODCALLTYPE *Evict )(
  9965. ID3D12Device4 * This,
  9966. UINT NumObjects,
  9967. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  9968. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  9969. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  9970. ID3D12Device4 * This,
  9971. UINT64 InitialValue,
  9972. D3D12_FENCE_FLAGS Flags,
  9973. REFIID riid,
  9974. _COM_Outptr_ void **ppFence);
  9975. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  9976. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  9977. ID3D12Device4 * This);
  9978. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  9979. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  9980. ID3D12Device4 * This,
  9981. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  9982. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  9983. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  9984. UINT64 BaseOffset,
  9985. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  9986. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  9987. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  9988. _Out_opt_ UINT64 *pTotalBytes);
  9989. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  9990. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  9991. ID3D12Device4 * This,
  9992. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  9993. REFIID riid,
  9994. _COM_Outptr_opt_ void **ppvHeap);
  9995. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  9996. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  9997. ID3D12Device4 * This,
  9998. BOOL Enable);
  9999. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  10000. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  10001. ID3D12Device4 * This,
  10002. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  10003. _In_opt_ ID3D12RootSignature *pRootSignature,
  10004. REFIID riid,
  10005. _COM_Outptr_opt_ void **ppvCommandSignature);
  10006. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  10007. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  10008. ID3D12Device4 * This,
  10009. _In_ ID3D12Resource *pTiledResource,
  10010. _Out_opt_ UINT *pNumTilesForEntireResource,
  10011. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  10012. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  10013. _Inout_opt_ UINT *pNumSubresourceTilings,
  10014. _In_ UINT FirstSubresourceTilingToGet,
  10015. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  10016. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  10017. #if !defined(_WIN32)
  10018. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  10019. ID3D12Device4 * This);
  10020. #else
  10021. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  10022. ID3D12Device4 * This,
  10023. LUID * RetVal);
  10024. #endif
  10025. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  10026. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  10027. ID3D12Device4 * This,
  10028. _In_reads_(BlobLength) const void *pLibraryBlob,
  10029. SIZE_T BlobLength,
  10030. REFIID riid,
  10031. _COM_Outptr_ void **ppPipelineLibrary);
  10032. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  10033. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  10034. ID3D12Device4 * This,
  10035. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  10036. _In_reads_(NumFences) const UINT64 *pFenceValues,
  10037. UINT NumFences,
  10038. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  10039. HANDLE hEvent);
  10040. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  10041. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  10042. ID3D12Device4 * This,
  10043. UINT NumObjects,
  10044. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  10045. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  10046. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  10047. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  10048. ID3D12Device4 * This,
  10049. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  10050. REFIID riid,
  10051. _COM_Outptr_ void **ppPipelineState);
  10052. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  10053. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  10054. ID3D12Device4 * This,
  10055. _In_ const void *pAddress,
  10056. REFIID riid,
  10057. _COM_Outptr_ void **ppvHeap);
  10058. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  10059. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  10060. ID3D12Device4 * This,
  10061. _In_ HANDLE hFileMapping,
  10062. REFIID riid,
  10063. _COM_Outptr_ void **ppvHeap);
  10064. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  10065. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  10066. ID3D12Device4 * This,
  10067. D3D12_RESIDENCY_FLAGS Flags,
  10068. UINT NumObjects,
  10069. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  10070. _In_ ID3D12Fence *pFenceToSignal,
  10071. UINT64 FenceValueToSignal);
  10072. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  10073. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  10074. ID3D12Device4 * This,
  10075. _In_ UINT nodeMask,
  10076. _In_ D3D12_COMMAND_LIST_TYPE type,
  10077. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  10078. REFIID riid,
  10079. _COM_Outptr_ void **ppCommandList);
  10080. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  10081. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  10082. ID3D12Device4 * This,
  10083. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  10084. _In_ REFIID riid,
  10085. _COM_Outptr_ void **ppSession);
  10086. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  10087. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  10088. ID3D12Device4 * This,
  10089. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  10090. D3D12_HEAP_FLAGS HeapFlags,
  10091. _In_ const D3D12_RESOURCE_DESC *pDesc,
  10092. D3D12_RESOURCE_STATES InitialResourceState,
  10093. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  10094. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  10095. REFIID riidResource,
  10096. _COM_Outptr_opt_ void **ppvResource);
  10097. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  10098. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  10099. ID3D12Device4 * This,
  10100. _In_ const D3D12_HEAP_DESC *pDesc,
  10101. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  10102. REFIID riid,
  10103. _COM_Outptr_opt_ void **ppvHeap);
  10104. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  10105. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  10106. ID3D12Device4 * This,
  10107. _In_ const D3D12_RESOURCE_DESC *pDesc,
  10108. D3D12_RESOURCE_STATES InitialState,
  10109. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  10110. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  10111. REFIID riid,
  10112. _COM_Outptr_opt_ void **ppvResource);
  10113. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  10114. #if !defined(_WIN32)
  10115. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  10116. ID3D12Device4 * This,
  10117. UINT visibleMask,
  10118. UINT numResourceDescs,
  10119. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  10120. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  10121. #else
  10122. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  10123. ID3D12Device4 * This,
  10124. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  10125. UINT visibleMask,
  10126. UINT numResourceDescs,
  10127. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  10128. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  10129. #endif
  10130. END_INTERFACE
  10131. } ID3D12Device4Vtbl;
  10132. interface ID3D12Device4
  10133. {
  10134. CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl;
  10135. };
  10136. #ifdef COBJMACROS
  10137. #define ID3D12Device4_QueryInterface(This,riid,ppvObject) \
  10138. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10139. #define ID3D12Device4_AddRef(This) \
  10140. ( (This)->lpVtbl -> AddRef(This) )
  10141. #define ID3D12Device4_Release(This) \
  10142. ( (This)->lpVtbl -> Release(This) )
  10143. #define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \
  10144. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  10145. #define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \
  10146. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  10147. #define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \
  10148. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  10149. #define ID3D12Device4_SetName(This,Name) \
  10150. ( (This)->lpVtbl -> SetName(This,Name) )
  10151. #define ID3D12Device4_GetNodeCount(This) \
  10152. ( (This)->lpVtbl -> GetNodeCount(This) )
  10153. #define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  10154. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  10155. #define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  10156. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  10157. #define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  10158. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  10159. #define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  10160. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  10161. #define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  10162. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  10163. #define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  10164. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  10165. #define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  10166. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  10167. #define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  10168. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  10169. #define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  10170. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  10171. #define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  10172. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  10173. #define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  10174. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  10175. #define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  10176. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  10177. #define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  10178. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  10179. #define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  10180. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  10181. #define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \
  10182. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  10183. #define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  10184. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  10185. #define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  10186. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  10187. #if !defined(_WIN32)
  10188. #define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  10189. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  10190. #else
  10191. #define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  10192. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  10193. #endif
  10194. #if !defined(_WIN32)
  10195. #define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \
  10196. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  10197. #else
  10198. #define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  10199. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  10200. #endif
  10201. #define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  10202. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  10203. #define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \
  10204. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  10205. #define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  10206. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  10207. #define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  10208. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  10209. #define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  10210. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  10211. #define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  10212. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  10213. #define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  10214. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  10215. #define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \
  10216. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  10217. #define ID3D12Device4_Evict(This,NumObjects,ppObjects) \
  10218. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  10219. #define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  10220. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  10221. #define ID3D12Device4_GetDeviceRemovedReason(This) \
  10222. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  10223. #define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  10224. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  10225. #define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  10226. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  10227. #define ID3D12Device4_SetStablePowerState(This,Enable) \
  10228. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  10229. #define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  10230. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  10231. #define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  10232. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  10233. #if !defined(_WIN32)
  10234. #define ID3D12Device4_GetAdapterLuid(This) \
  10235. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  10236. #else
  10237. #define ID3D12Device4_GetAdapterLuid(This,RetVal) \
  10238. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  10239. #endif
  10240. #define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  10241. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  10242. #define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  10243. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  10244. #define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  10245. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  10246. #define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  10247. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  10248. #define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  10249. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  10250. #define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  10251. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  10252. #define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  10253. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  10254. #define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  10255. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  10256. #define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  10257. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  10258. #define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  10259. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  10260. #define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  10261. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  10262. #define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  10263. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  10264. #if !defined(_WIN32)
  10265. #define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  10266. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  10267. #else
  10268. #define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  10269. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  10270. #endif
  10271. #endif /* COBJMACROS */
  10272. #endif /* C style interface */
  10273. #endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
  10274. /* interface __MIDL_itf_d3d12_0000_0031 */
  10275. /* [local] */
  10276. typedef
  10277. enum D3D12_LIFETIME_STATE
  10278. {
  10279. D3D12_LIFETIME_STATE_IN_USE = 0,
  10280. D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 )
  10281. } D3D12_LIFETIME_STATE;
  10282. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_c_ifspec;
  10283. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_s_ifspec;
  10284. #ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
  10285. #define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
  10286. /* interface ID3D12LifetimeOwner */
  10287. /* [unique][local][object][uuid] */
  10288. EXTERN_C const IID IID_ID3D12LifetimeOwner;
  10289. #if defined(__cplusplus) && !defined(CINTERFACE)
  10290. MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
  10291. ID3D12LifetimeOwner : public IUnknown
  10292. {
  10293. public:
  10294. virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
  10295. D3D12_LIFETIME_STATE NewState) = 0;
  10296. };
  10297. #else /* C style interface */
  10298. typedef struct ID3D12LifetimeOwnerVtbl
  10299. {
  10300. BEGIN_INTERFACE
  10301. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10302. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10303. ID3D12LifetimeOwner * This,
  10304. REFIID riid,
  10305. _COM_Outptr_ void **ppvObject);
  10306. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10307. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10308. ID3D12LifetimeOwner * This);
  10309. DECLSPEC_XFGVIRT(IUnknown, Release)
  10310. ULONG ( STDMETHODCALLTYPE *Release )(
  10311. ID3D12LifetimeOwner * This);
  10312. DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated)
  10313. void ( STDMETHODCALLTYPE *LifetimeStateUpdated )(
  10314. ID3D12LifetimeOwner * This,
  10315. D3D12_LIFETIME_STATE NewState);
  10316. END_INTERFACE
  10317. } ID3D12LifetimeOwnerVtbl;
  10318. interface ID3D12LifetimeOwner
  10319. {
  10320. CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl;
  10321. };
  10322. #ifdef COBJMACROS
  10323. #define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \
  10324. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10325. #define ID3D12LifetimeOwner_AddRef(This) \
  10326. ( (This)->lpVtbl -> AddRef(This) )
  10327. #define ID3D12LifetimeOwner_Release(This) \
  10328. ( (This)->lpVtbl -> Release(This) )
  10329. #define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \
  10330. ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) )
  10331. #endif /* COBJMACROS */
  10332. #endif /* C style interface */
  10333. #endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
  10334. #ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
  10335. #define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
  10336. /* interface ID3D12SwapChainAssistant */
  10337. /* [unique][local][object][uuid] */
  10338. EXTERN_C const IID IID_ID3D12SwapChainAssistant;
  10339. #if defined(__cplusplus) && !defined(CINTERFACE)
  10340. MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
  10341. ID3D12SwapChainAssistant : public IUnknown
  10342. {
  10343. public:
  10344. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  10345. virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0;
  10346. #else
  10347. virtual LUID *STDMETHODCALLTYPE GetLUID(
  10348. LUID * RetVal) = 0;
  10349. #endif
  10350. virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
  10351. REFIID riid,
  10352. _COM_Outptr_ void **ppv) = 0;
  10353. virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
  10354. REFIID riidResource,
  10355. _COM_Outptr_ void **ppvResource,
  10356. REFIID riidQueue,
  10357. _COM_Outptr_ void **ppvQueue) = 0;
  10358. virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0;
  10359. };
  10360. #else /* C style interface */
  10361. typedef struct ID3D12SwapChainAssistantVtbl
  10362. {
  10363. BEGIN_INTERFACE
  10364. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10365. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10366. ID3D12SwapChainAssistant * This,
  10367. REFIID riid,
  10368. _COM_Outptr_ void **ppvObject);
  10369. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10370. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10371. ID3D12SwapChainAssistant * This);
  10372. DECLSPEC_XFGVIRT(IUnknown, Release)
  10373. ULONG ( STDMETHODCALLTYPE *Release )(
  10374. ID3D12SwapChainAssistant * This);
  10375. DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID)
  10376. #if !defined(_WIN32)
  10377. LUID ( STDMETHODCALLTYPE *GetLUID )(
  10378. ID3D12SwapChainAssistant * This);
  10379. #else
  10380. LUID *( STDMETHODCALLTYPE *GetLUID )(
  10381. ID3D12SwapChainAssistant * This,
  10382. LUID * RetVal);
  10383. #endif
  10384. DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject)
  10385. HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )(
  10386. ID3D12SwapChainAssistant * This,
  10387. REFIID riid,
  10388. _COM_Outptr_ void **ppv);
  10389. DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue)
  10390. HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )(
  10391. ID3D12SwapChainAssistant * This,
  10392. REFIID riidResource,
  10393. _COM_Outptr_ void **ppvResource,
  10394. REFIID riidQueue,
  10395. _COM_Outptr_ void **ppvQueue);
  10396. DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync)
  10397. HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )(
  10398. ID3D12SwapChainAssistant * This);
  10399. END_INTERFACE
  10400. } ID3D12SwapChainAssistantVtbl;
  10401. interface ID3D12SwapChainAssistant
  10402. {
  10403. CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl;
  10404. };
  10405. #ifdef COBJMACROS
  10406. #define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \
  10407. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10408. #define ID3D12SwapChainAssistant_AddRef(This) \
  10409. ( (This)->lpVtbl -> AddRef(This) )
  10410. #define ID3D12SwapChainAssistant_Release(This) \
  10411. ( (This)->lpVtbl -> Release(This) )
  10412. #if !defined(_WIN32)
  10413. #define ID3D12SwapChainAssistant_GetLUID(This) \
  10414. ( (This)->lpVtbl -> GetLUID(This) )
  10415. #else
  10416. #define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \
  10417. ( (This)->lpVtbl -> GetLUID(This,RetVal) )
  10418. #endif
  10419. #define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \
  10420. ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) )
  10421. #define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \
  10422. ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) )
  10423. #define ID3D12SwapChainAssistant_InsertImplicitSync(This) \
  10424. ( (This)->lpVtbl -> InsertImplicitSync(This) )
  10425. #endif /* COBJMACROS */
  10426. #endif /* C style interface */
  10427. #endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
  10428. #ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
  10429. #define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
  10430. /* interface ID3D12LifetimeTracker */
  10431. /* [unique][local][object][uuid] */
  10432. EXTERN_C const IID IID_ID3D12LifetimeTracker;
  10433. #if defined(__cplusplus) && !defined(CINTERFACE)
  10434. MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
  10435. ID3D12LifetimeTracker : public ID3D12DeviceChild
  10436. {
  10437. public:
  10438. virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
  10439. _In_ ID3D12DeviceChild *pObject) = 0;
  10440. };
  10441. #else /* C style interface */
  10442. typedef struct ID3D12LifetimeTrackerVtbl
  10443. {
  10444. BEGIN_INTERFACE
  10445. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10446. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10447. ID3D12LifetimeTracker * This,
  10448. REFIID riid,
  10449. _COM_Outptr_ void **ppvObject);
  10450. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10451. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10452. ID3D12LifetimeTracker * This);
  10453. DECLSPEC_XFGVIRT(IUnknown, Release)
  10454. ULONG ( STDMETHODCALLTYPE *Release )(
  10455. ID3D12LifetimeTracker * This);
  10456. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  10457. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  10458. ID3D12LifetimeTracker * This,
  10459. _In_ REFGUID guid,
  10460. _Inout_ UINT *pDataSize,
  10461. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  10462. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  10463. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  10464. ID3D12LifetimeTracker * This,
  10465. _In_ REFGUID guid,
  10466. _In_ UINT DataSize,
  10467. _In_reads_bytes_opt_( DataSize ) const void *pData);
  10468. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  10469. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  10470. ID3D12LifetimeTracker * This,
  10471. _In_ REFGUID guid,
  10472. _In_opt_ const IUnknown *pData);
  10473. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  10474. HRESULT ( STDMETHODCALLTYPE *SetName )(
  10475. ID3D12LifetimeTracker * This,
  10476. _In_z_ LPCWSTR Name);
  10477. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  10478. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  10479. ID3D12LifetimeTracker * This,
  10480. REFIID riid,
  10481. _COM_Outptr_opt_ void **ppvDevice);
  10482. DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject)
  10483. HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )(
  10484. ID3D12LifetimeTracker * This,
  10485. _In_ ID3D12DeviceChild *pObject);
  10486. END_INTERFACE
  10487. } ID3D12LifetimeTrackerVtbl;
  10488. interface ID3D12LifetimeTracker
  10489. {
  10490. CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl;
  10491. };
  10492. #ifdef COBJMACROS
  10493. #define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \
  10494. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10495. #define ID3D12LifetimeTracker_AddRef(This) \
  10496. ( (This)->lpVtbl -> AddRef(This) )
  10497. #define ID3D12LifetimeTracker_Release(This) \
  10498. ( (This)->lpVtbl -> Release(This) )
  10499. #define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \
  10500. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  10501. #define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \
  10502. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  10503. #define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \
  10504. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  10505. #define ID3D12LifetimeTracker_SetName(This,Name) \
  10506. ( (This)->lpVtbl -> SetName(This,Name) )
  10507. #define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \
  10508. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  10509. #define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \
  10510. ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) )
  10511. #endif /* COBJMACROS */
  10512. #endif /* C style interface */
  10513. #endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
  10514. /* interface __MIDL_itf_d3d12_0000_0034 */
  10515. /* [local] */
  10516. typedef
  10517. enum D3D12_META_COMMAND_PARAMETER_TYPE
  10518. {
  10519. D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
  10520. D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
  10521. D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
  10522. D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
  10523. D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4
  10524. } D3D12_META_COMMAND_PARAMETER_TYPE;
  10525. typedef
  10526. enum D3D12_META_COMMAND_PARAMETER_FLAGS
  10527. {
  10528. D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
  10529. D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
  10530. } D3D12_META_COMMAND_PARAMETER_FLAGS;
  10531. DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS )
  10532. typedef
  10533. enum D3D12_META_COMMAND_PARAMETER_STAGE
  10534. {
  10535. D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
  10536. D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
  10537. D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2
  10538. } D3D12_META_COMMAND_PARAMETER_STAGE;
  10539. typedef struct D3D12_META_COMMAND_PARAMETER_DESC
  10540. {
  10541. LPCWSTR Name;
  10542. D3D12_META_COMMAND_PARAMETER_TYPE Type;
  10543. D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
  10544. D3D12_RESOURCE_STATES RequiredResourceState;
  10545. UINT StructureOffset;
  10546. } D3D12_META_COMMAND_PARAMETER_DESC;
  10547. typedef
  10548. enum D3D12_GRAPHICS_STATES
  10549. {
  10550. D3D12_GRAPHICS_STATE_NONE = 0,
  10551. D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) ,
  10552. D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) ,
  10553. D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) ,
  10554. D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) ,
  10555. D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) ,
  10556. D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) ,
  10557. D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) ,
  10558. D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) ,
  10559. D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) ,
  10560. D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) ,
  10561. D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) ,
  10562. D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) ,
  10563. D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) ,
  10564. D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) ,
  10565. D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) ,
  10566. D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) ,
  10567. D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 )
  10568. } D3D12_GRAPHICS_STATES;
  10569. DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES )
  10570. typedef struct D3D12_META_COMMAND_DESC
  10571. {
  10572. GUID Id;
  10573. LPCWSTR Name;
  10574. D3D12_GRAPHICS_STATES InitializationDirtyState;
  10575. D3D12_GRAPHICS_STATES ExecutionDirtyState;
  10576. } D3D12_META_COMMAND_DESC;
  10577. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec;
  10578. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec;
  10579. #ifndef __ID3D12StateObject_INTERFACE_DEFINED__
  10580. #define __ID3D12StateObject_INTERFACE_DEFINED__
  10581. /* interface ID3D12StateObject */
  10582. /* [unique][local][object][uuid] */
  10583. EXTERN_C const IID IID_ID3D12StateObject;
  10584. #if defined(__cplusplus) && !defined(CINTERFACE)
  10585. MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
  10586. ID3D12StateObject : public ID3D12Pageable
  10587. {
  10588. public:
  10589. };
  10590. #else /* C style interface */
  10591. typedef struct ID3D12StateObjectVtbl
  10592. {
  10593. BEGIN_INTERFACE
  10594. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10595. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10596. ID3D12StateObject * This,
  10597. REFIID riid,
  10598. _COM_Outptr_ void **ppvObject);
  10599. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10600. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10601. ID3D12StateObject * This);
  10602. DECLSPEC_XFGVIRT(IUnknown, Release)
  10603. ULONG ( STDMETHODCALLTYPE *Release )(
  10604. ID3D12StateObject * This);
  10605. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  10606. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  10607. ID3D12StateObject * This,
  10608. _In_ REFGUID guid,
  10609. _Inout_ UINT *pDataSize,
  10610. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  10611. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  10612. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  10613. ID3D12StateObject * This,
  10614. _In_ REFGUID guid,
  10615. _In_ UINT DataSize,
  10616. _In_reads_bytes_opt_( DataSize ) const void *pData);
  10617. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  10618. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  10619. ID3D12StateObject * This,
  10620. _In_ REFGUID guid,
  10621. _In_opt_ const IUnknown *pData);
  10622. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  10623. HRESULT ( STDMETHODCALLTYPE *SetName )(
  10624. ID3D12StateObject * This,
  10625. _In_z_ LPCWSTR Name);
  10626. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  10627. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  10628. ID3D12StateObject * This,
  10629. REFIID riid,
  10630. _COM_Outptr_opt_ void **ppvDevice);
  10631. END_INTERFACE
  10632. } ID3D12StateObjectVtbl;
  10633. interface ID3D12StateObject
  10634. {
  10635. CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl;
  10636. };
  10637. #ifdef COBJMACROS
  10638. #define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \
  10639. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10640. #define ID3D12StateObject_AddRef(This) \
  10641. ( (This)->lpVtbl -> AddRef(This) )
  10642. #define ID3D12StateObject_Release(This) \
  10643. ( (This)->lpVtbl -> Release(This) )
  10644. #define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \
  10645. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  10646. #define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \
  10647. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  10648. #define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \
  10649. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  10650. #define ID3D12StateObject_SetName(This,Name) \
  10651. ( (This)->lpVtbl -> SetName(This,Name) )
  10652. #define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \
  10653. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  10654. #endif /* COBJMACROS */
  10655. #endif /* C style interface */
  10656. #endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
  10657. #ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
  10658. #define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
  10659. /* interface ID3D12StateObjectProperties */
  10660. /* [unique][local][object][uuid] */
  10661. EXTERN_C const IID IID_ID3D12StateObjectProperties;
  10662. #if defined(__cplusplus) && !defined(CINTERFACE)
  10663. MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
  10664. ID3D12StateObjectProperties : public IUnknown
  10665. {
  10666. public:
  10667. virtual void *STDMETHODCALLTYPE GetShaderIdentifier(
  10668. _In_ LPCWSTR pExportName) = 0;
  10669. virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
  10670. _In_ LPCWSTR pExportName) = 0;
  10671. virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0;
  10672. virtual void STDMETHODCALLTYPE SetPipelineStackSize(
  10673. UINT64 PipelineStackSizeInBytes) = 0;
  10674. };
  10675. #else /* C style interface */
  10676. typedef struct ID3D12StateObjectPropertiesVtbl
  10677. {
  10678. BEGIN_INTERFACE
  10679. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10680. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10681. ID3D12StateObjectProperties * This,
  10682. REFIID riid,
  10683. _COM_Outptr_ void **ppvObject);
  10684. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10685. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10686. ID3D12StateObjectProperties * This);
  10687. DECLSPEC_XFGVIRT(IUnknown, Release)
  10688. ULONG ( STDMETHODCALLTYPE *Release )(
  10689. ID3D12StateObjectProperties * This);
  10690. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
  10691. void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
  10692. ID3D12StateObjectProperties * This,
  10693. _In_ LPCWSTR pExportName);
  10694. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
  10695. UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
  10696. ID3D12StateObjectProperties * This,
  10697. _In_ LPCWSTR pExportName);
  10698. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
  10699. UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
  10700. ID3D12StateObjectProperties * This);
  10701. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
  10702. void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
  10703. ID3D12StateObjectProperties * This,
  10704. UINT64 PipelineStackSizeInBytes);
  10705. END_INTERFACE
  10706. } ID3D12StateObjectPropertiesVtbl;
  10707. interface ID3D12StateObjectProperties
  10708. {
  10709. CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl;
  10710. };
  10711. #ifdef COBJMACROS
  10712. #define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \
  10713. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10714. #define ID3D12StateObjectProperties_AddRef(This) \
  10715. ( (This)->lpVtbl -> AddRef(This) )
  10716. #define ID3D12StateObjectProperties_Release(This) \
  10717. ( (This)->lpVtbl -> Release(This) )
  10718. #define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \
  10719. ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
  10720. #define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \
  10721. ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
  10722. #define ID3D12StateObjectProperties_GetPipelineStackSize(This) \
  10723. ( (This)->lpVtbl -> GetPipelineStackSize(This) )
  10724. #define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
  10725. ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
  10726. #endif /* COBJMACROS */
  10727. #endif /* C style interface */
  10728. #endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
  10729. /* interface __MIDL_itf_d3d12_0000_0036 */
  10730. /* [local] */
  10731. typedef struct D3D12_PROGRAM_IDENTIFIER
  10732. {
  10733. UINT64 OpaqueData[ 4 ];
  10734. } D3D12_PROGRAM_IDENTIFIER;
  10735. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec;
  10736. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec;
  10737. #ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
  10738. #define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
  10739. /* interface ID3D12StateObjectProperties1 */
  10740. /* [unique][local][object][uuid] */
  10741. EXTERN_C const IID IID_ID3D12StateObjectProperties1;
  10742. #if defined(__cplusplus) && !defined(CINTERFACE)
  10743. MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138")
  10744. ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties
  10745. {
  10746. public:
  10747. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  10748. virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier(
  10749. LPCWSTR pProgramName) = 0;
  10750. #else
  10751. virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier(
  10752. D3D12_PROGRAM_IDENTIFIER * RetVal,
  10753. LPCWSTR pProgramName) = 0;
  10754. #endif
  10755. };
  10756. #else /* C style interface */
  10757. typedef struct ID3D12StateObjectProperties1Vtbl
  10758. {
  10759. BEGIN_INTERFACE
  10760. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10761. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10762. ID3D12StateObjectProperties1 * This,
  10763. REFIID riid,
  10764. _COM_Outptr_ void **ppvObject);
  10765. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10766. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10767. ID3D12StateObjectProperties1 * This);
  10768. DECLSPEC_XFGVIRT(IUnknown, Release)
  10769. ULONG ( STDMETHODCALLTYPE *Release )(
  10770. ID3D12StateObjectProperties1 * This);
  10771. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
  10772. void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
  10773. ID3D12StateObjectProperties1 * This,
  10774. _In_ LPCWSTR pExportName);
  10775. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
  10776. UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
  10777. ID3D12StateObjectProperties1 * This,
  10778. _In_ LPCWSTR pExportName);
  10779. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
  10780. UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
  10781. ID3D12StateObjectProperties1 * This);
  10782. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
  10783. void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
  10784. ID3D12StateObjectProperties1 * This,
  10785. UINT64 PipelineStackSizeInBytes);
  10786. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
  10787. #if !defined(_WIN32)
  10788. D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
  10789. ID3D12StateObjectProperties1 * This,
  10790. LPCWSTR pProgramName);
  10791. #else
  10792. D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
  10793. ID3D12StateObjectProperties1 * This,
  10794. D3D12_PROGRAM_IDENTIFIER * RetVal,
  10795. LPCWSTR pProgramName);
  10796. #endif
  10797. END_INTERFACE
  10798. } ID3D12StateObjectProperties1Vtbl;
  10799. interface ID3D12StateObjectProperties1
  10800. {
  10801. CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl;
  10802. };
  10803. #ifdef COBJMACROS
  10804. #define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \
  10805. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10806. #define ID3D12StateObjectProperties1_AddRef(This) \
  10807. ( (This)->lpVtbl -> AddRef(This) )
  10808. #define ID3D12StateObjectProperties1_Release(This) \
  10809. ( (This)->lpVtbl -> Release(This) )
  10810. #define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \
  10811. ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
  10812. #define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \
  10813. ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
  10814. #define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \
  10815. ( (This)->lpVtbl -> GetPipelineStackSize(This) )
  10816. #define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
  10817. ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
  10818. #if !defined(_WIN32)
  10819. #define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \
  10820. ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
  10821. #else
  10822. #define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \
  10823. ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
  10824. #endif
  10825. #endif /* COBJMACROS */
  10826. #endif /* C style interface */
  10827. #endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */
  10828. #ifndef __ID3D12StateObjectProperties2_INTERFACE_DEFINED__
  10829. #define __ID3D12StateObjectProperties2_INTERFACE_DEFINED__
  10830. /* interface ID3D12StateObjectProperties2 */
  10831. /* [unique][local][object][uuid] */
  10832. EXTERN_C const IID IID_ID3D12StateObjectProperties2;
  10833. #if defined(__cplusplus) && !defined(CINTERFACE)
  10834. MIDL_INTERFACE("d5e82917-f0f1-44cf-ae5e-ce222dd0b884")
  10835. ID3D12StateObjectProperties2 : public ID3D12StateObjectProperties1
  10836. {
  10837. public:
  10838. virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram(
  10839. LPCWSTR pProgramName,
  10840. REFIID riid,
  10841. _COM_Outptr_ void **ppvRootSignature) = 0;
  10842. virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader(
  10843. LPCWSTR pExportName,
  10844. REFIID riid,
  10845. _COM_Outptr_ void **ppvRootSignature) = 0;
  10846. };
  10847. #else /* C style interface */
  10848. typedef struct ID3D12StateObjectProperties2Vtbl
  10849. {
  10850. BEGIN_INTERFACE
  10851. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  10852. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  10853. ID3D12StateObjectProperties2 * This,
  10854. REFIID riid,
  10855. _COM_Outptr_ void **ppvObject);
  10856. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  10857. ULONG ( STDMETHODCALLTYPE *AddRef )(
  10858. ID3D12StateObjectProperties2 * This);
  10859. DECLSPEC_XFGVIRT(IUnknown, Release)
  10860. ULONG ( STDMETHODCALLTYPE *Release )(
  10861. ID3D12StateObjectProperties2 * This);
  10862. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
  10863. void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
  10864. ID3D12StateObjectProperties2 * This,
  10865. _In_ LPCWSTR pExportName);
  10866. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
  10867. UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
  10868. ID3D12StateObjectProperties2 * This,
  10869. _In_ LPCWSTR pExportName);
  10870. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
  10871. UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
  10872. ID3D12StateObjectProperties2 * This);
  10873. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
  10874. void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
  10875. ID3D12StateObjectProperties2 * This,
  10876. UINT64 PipelineStackSizeInBytes);
  10877. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
  10878. #if !defined(_WIN32)
  10879. D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
  10880. ID3D12StateObjectProperties2 * This,
  10881. LPCWSTR pProgramName);
  10882. #else
  10883. D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
  10884. ID3D12StateObjectProperties2 * This,
  10885. D3D12_PROGRAM_IDENTIFIER * RetVal,
  10886. LPCWSTR pProgramName);
  10887. #endif
  10888. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForProgram)
  10889. HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForProgram )(
  10890. ID3D12StateObjectProperties2 * This,
  10891. LPCWSTR pProgramName,
  10892. REFIID riid,
  10893. _COM_Outptr_ void **ppvRootSignature);
  10894. DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForShader)
  10895. HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForShader )(
  10896. ID3D12StateObjectProperties2 * This,
  10897. LPCWSTR pExportName,
  10898. REFIID riid,
  10899. _COM_Outptr_ void **ppvRootSignature);
  10900. END_INTERFACE
  10901. } ID3D12StateObjectProperties2Vtbl;
  10902. interface ID3D12StateObjectProperties2
  10903. {
  10904. CONST_VTBL struct ID3D12StateObjectProperties2Vtbl *lpVtbl;
  10905. };
  10906. #ifdef COBJMACROS
  10907. #define ID3D12StateObjectProperties2_QueryInterface(This,riid,ppvObject) \
  10908. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  10909. #define ID3D12StateObjectProperties2_AddRef(This) \
  10910. ( (This)->lpVtbl -> AddRef(This) )
  10911. #define ID3D12StateObjectProperties2_Release(This) \
  10912. ( (This)->lpVtbl -> Release(This) )
  10913. #define ID3D12StateObjectProperties2_GetShaderIdentifier(This,pExportName) \
  10914. ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
  10915. #define ID3D12StateObjectProperties2_GetShaderStackSize(This,pExportName) \
  10916. ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
  10917. #define ID3D12StateObjectProperties2_GetPipelineStackSize(This) \
  10918. ( (This)->lpVtbl -> GetPipelineStackSize(This) )
  10919. #define ID3D12StateObjectProperties2_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
  10920. ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
  10921. #if !defined(_WIN32)
  10922. #define ID3D12StateObjectProperties2_GetProgramIdentifier(This,pProgramName) \
  10923. ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
  10924. #else
  10925. #define ID3D12StateObjectProperties2_GetProgramIdentifier(This,RetVal,pProgramName) \
  10926. ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
  10927. #endif
  10928. #define ID3D12StateObjectProperties2_GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) \
  10929. ( (This)->lpVtbl -> GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) )
  10930. #define ID3D12StateObjectProperties2_GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) \
  10931. ( (This)->lpVtbl -> GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) )
  10932. #endif /* COBJMACROS */
  10933. #endif /* C style interface */
  10934. #endif /* __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ */
  10935. /* interface __MIDL_itf_d3d12_0000_0038 */
  10936. /* [local] */
  10937. typedef struct D3D12_NODE_ID
  10938. {
  10939. LPCWSTR Name;
  10940. UINT ArrayIndex;
  10941. } D3D12_NODE_ID;
  10942. typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS
  10943. {
  10944. UINT64 MinSizeInBytes;
  10945. UINT64 MaxSizeInBytes;
  10946. UINT SizeGranularityInBytes;
  10947. } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS;
  10948. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec;
  10949. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec;
  10950. #ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
  10951. #define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
  10952. /* interface ID3D12WorkGraphProperties */
  10953. /* [unique][local][object][uuid] */
  10954. EXTERN_C const IID IID_ID3D12WorkGraphProperties;
  10955. #if defined(__cplusplus) && !defined(CINTERFACE)
  10956. MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757")
  10957. ID3D12WorkGraphProperties : public IUnknown
  10958. {
  10959. public:
  10960. virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0;
  10961. virtual LPCWSTR STDMETHODCALLTYPE GetProgramName(
  10962. UINT WorkGraphIndex) = 0;
  10963. virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex(
  10964. LPCWSTR pProgramName) = 0;
  10965. virtual UINT STDMETHODCALLTYPE GetNumNodes(
  10966. UINT WorkGraphIndex) = 0;
  10967. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  10968. virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID(
  10969. UINT WorkGraphIndex,
  10970. UINT NodeIndex) = 0;
  10971. #else
  10972. virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID(
  10973. D3D12_NODE_ID * RetVal,
  10974. UINT WorkGraphIndex,
  10975. UINT NodeIndex) = 0;
  10976. #endif
  10977. virtual UINT STDMETHODCALLTYPE GetNodeIndex(
  10978. UINT WorkGraphIndex,
  10979. D3D12_NODE_ID NodeID) = 0;
  10980. virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex(
  10981. UINT WorkGraphIndex,
  10982. UINT NodeIndex) = 0;
  10983. virtual UINT STDMETHODCALLTYPE GetNumEntrypoints(
  10984. UINT WorkGraphIndex) = 0;
  10985. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  10986. virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID(
  10987. UINT WorkGraphIndex,
  10988. UINT EntrypointIndex) = 0;
  10989. #else
  10990. virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID(
  10991. D3D12_NODE_ID * RetVal,
  10992. UINT WorkGraphIndex,
  10993. UINT EntrypointIndex) = 0;
  10994. #endif
  10995. virtual UINT STDMETHODCALLTYPE GetEntrypointIndex(
  10996. UINT WorkGraphIndex,
  10997. D3D12_NODE_ID NodeID) = 0;
  10998. virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes(
  10999. UINT WorkGraphIndex,
  11000. UINT EntrypointIndex) = 0;
  11001. virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements(
  11002. UINT WorkGraphIndex,
  11003. _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0;
  11004. virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes(
  11005. UINT WorkGraphIndex,
  11006. UINT EntrypointIndex) = 0;
  11007. };
  11008. #else /* C style interface */
  11009. typedef struct ID3D12WorkGraphPropertiesVtbl
  11010. {
  11011. BEGIN_INTERFACE
  11012. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  11013. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  11014. ID3D12WorkGraphProperties * This,
  11015. REFIID riid,
  11016. _COM_Outptr_ void **ppvObject);
  11017. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  11018. ULONG ( STDMETHODCALLTYPE *AddRef )(
  11019. ID3D12WorkGraphProperties * This);
  11020. DECLSPEC_XFGVIRT(IUnknown, Release)
  11021. ULONG ( STDMETHODCALLTYPE *Release )(
  11022. ID3D12WorkGraphProperties * This);
  11023. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs)
  11024. UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )(
  11025. ID3D12WorkGraphProperties * This);
  11026. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName)
  11027. LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )(
  11028. ID3D12WorkGraphProperties * This,
  11029. UINT WorkGraphIndex);
  11030. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex)
  11031. UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )(
  11032. ID3D12WorkGraphProperties * This,
  11033. LPCWSTR pProgramName);
  11034. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes)
  11035. UINT ( STDMETHODCALLTYPE *GetNumNodes )(
  11036. ID3D12WorkGraphProperties * This,
  11037. UINT WorkGraphIndex);
  11038. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID)
  11039. #if !defined(_WIN32)
  11040. D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )(
  11041. ID3D12WorkGraphProperties * This,
  11042. UINT WorkGraphIndex,
  11043. UINT NodeIndex);
  11044. #else
  11045. D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )(
  11046. ID3D12WorkGraphProperties * This,
  11047. D3D12_NODE_ID * RetVal,
  11048. UINT WorkGraphIndex,
  11049. UINT NodeIndex);
  11050. #endif
  11051. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex)
  11052. UINT ( STDMETHODCALLTYPE *GetNodeIndex )(
  11053. ID3D12WorkGraphProperties * This,
  11054. UINT WorkGraphIndex,
  11055. D3D12_NODE_ID NodeID);
  11056. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex)
  11057. UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )(
  11058. ID3D12WorkGraphProperties * This,
  11059. UINT WorkGraphIndex,
  11060. UINT NodeIndex);
  11061. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints)
  11062. UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )(
  11063. ID3D12WorkGraphProperties * This,
  11064. UINT WorkGraphIndex);
  11065. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID)
  11066. #if !defined(_WIN32)
  11067. D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )(
  11068. ID3D12WorkGraphProperties * This,
  11069. UINT WorkGraphIndex,
  11070. UINT EntrypointIndex);
  11071. #else
  11072. D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )(
  11073. ID3D12WorkGraphProperties * This,
  11074. D3D12_NODE_ID * RetVal,
  11075. UINT WorkGraphIndex,
  11076. UINT EntrypointIndex);
  11077. #endif
  11078. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex)
  11079. UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )(
  11080. ID3D12WorkGraphProperties * This,
  11081. UINT WorkGraphIndex,
  11082. D3D12_NODE_ID NodeID);
  11083. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes)
  11084. UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )(
  11085. ID3D12WorkGraphProperties * This,
  11086. UINT WorkGraphIndex,
  11087. UINT EntrypointIndex);
  11088. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements)
  11089. void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )(
  11090. ID3D12WorkGraphProperties * This,
  11091. UINT WorkGraphIndex,
  11092. _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements);
  11093. DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes)
  11094. UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )(
  11095. ID3D12WorkGraphProperties * This,
  11096. UINT WorkGraphIndex,
  11097. UINT EntrypointIndex);
  11098. END_INTERFACE
  11099. } ID3D12WorkGraphPropertiesVtbl;
  11100. interface ID3D12WorkGraphProperties
  11101. {
  11102. CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl;
  11103. };
  11104. #ifdef COBJMACROS
  11105. #define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \
  11106. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  11107. #define ID3D12WorkGraphProperties_AddRef(This) \
  11108. ( (This)->lpVtbl -> AddRef(This) )
  11109. #define ID3D12WorkGraphProperties_Release(This) \
  11110. ( (This)->lpVtbl -> Release(This) )
  11111. #define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \
  11112. ( (This)->lpVtbl -> GetNumWorkGraphs(This) )
  11113. #define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \
  11114. ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) )
  11115. #define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \
  11116. ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) )
  11117. #define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \
  11118. ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) )
  11119. #if !defined(_WIN32)
  11120. #define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \
  11121. ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) )
  11122. #else
  11123. #define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \
  11124. ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) )
  11125. #endif
  11126. #define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \
  11127. ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) )
  11128. #define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \
  11129. ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) )
  11130. #define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \
  11131. ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) )
  11132. #if !defined(_WIN32)
  11133. #define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \
  11134. ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) )
  11135. #else
  11136. #define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \
  11137. ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) )
  11138. #endif
  11139. #define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \
  11140. ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) )
  11141. #define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \
  11142. ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) )
  11143. #define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \
  11144. ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) )
  11145. #define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \
  11146. ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) )
  11147. #endif /* COBJMACROS */
  11148. #endif /* C style interface */
  11149. #endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */
  11150. /* interface __MIDL_itf_d3d12_0000_0039 */
  11151. /* [local] */
  11152. typedef
  11153. enum D3D12_STATE_SUBOBJECT_TYPE
  11154. {
  11155. D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0,
  11156. D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1,
  11157. D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2,
  11158. D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3,
  11159. D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5,
  11160. D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6,
  11161. D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
  11162. D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
  11163. D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9,
  11164. D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10,
  11165. D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11,
  11166. D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12,
  11167. D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13,
  11168. D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14,
  11169. D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15,
  11170. D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16,
  11171. D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17,
  11172. D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18,
  11173. D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19,
  11174. D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20,
  11175. D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21,
  11176. D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22,
  11177. D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23,
  11178. D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24,
  11179. D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26,
  11180. D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27,
  11181. D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28,
  11182. D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29,
  11183. D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30,
  11184. D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31,
  11185. D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32,
  11186. D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33,
  11187. D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36,
  11188. D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY + 1 )
  11189. } D3D12_STATE_SUBOBJECT_TYPE;
  11190. typedef struct D3D12_STATE_SUBOBJECT
  11191. {
  11192. D3D12_STATE_SUBOBJECT_TYPE Type;
  11193. const void *pDesc;
  11194. } D3D12_STATE_SUBOBJECT;
  11195. typedef
  11196. enum D3D12_STATE_OBJECT_FLAGS
  11197. {
  11198. D3D12_STATE_OBJECT_FLAG_NONE = 0,
  11199. D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
  11200. D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
  11201. D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
  11202. } D3D12_STATE_OBJECT_FLAGS;
  11203. DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS )
  11204. typedef struct D3D12_STATE_OBJECT_CONFIG
  11205. {
  11206. D3D12_STATE_OBJECT_FLAGS Flags;
  11207. } D3D12_STATE_OBJECT_CONFIG;
  11208. typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
  11209. {
  11210. ID3D12RootSignature *pGlobalRootSignature;
  11211. } D3D12_GLOBAL_ROOT_SIGNATURE;
  11212. typedef struct D3D12_LOCAL_ROOT_SIGNATURE
  11213. {
  11214. ID3D12RootSignature *pLocalRootSignature;
  11215. } D3D12_LOCAL_ROOT_SIGNATURE;
  11216. typedef struct D3D12_NODE_MASK
  11217. {
  11218. UINT NodeMask;
  11219. } D3D12_NODE_MASK;
  11220. typedef struct D3D12_SAMPLE_MASK
  11221. {
  11222. UINT SampleMask;
  11223. } D3D12_SAMPLE_MASK;
  11224. typedef struct D3D12_IB_STRIP_CUT_VALUE
  11225. {
  11226. D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue;
  11227. } D3D12_IB_STRIP_CUT_VALUE;
  11228. typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC
  11229. {
  11230. D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology;
  11231. } D3D12_PRIMITIVE_TOPOLOGY_DESC;
  11232. typedef struct D3D12_DEPTH_STENCIL_FORMAT
  11233. {
  11234. DXGI_FORMAT DepthStencilFormat;
  11235. } D3D12_DEPTH_STENCIL_FORMAT;
  11236. typedef
  11237. enum D3D12_EXPORT_FLAGS
  11238. {
  11239. D3D12_EXPORT_FLAG_NONE = 0
  11240. } D3D12_EXPORT_FLAGS;
  11241. DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS )
  11242. typedef struct D3D12_EXPORT_DESC
  11243. {
  11244. LPCWSTR Name;
  11245. _In_opt_ LPCWSTR ExportToRename;
  11246. D3D12_EXPORT_FLAGS Flags;
  11247. } D3D12_EXPORT_DESC;
  11248. typedef struct D3D12_DXIL_LIBRARY_DESC
  11249. {
  11250. D3D12_SHADER_BYTECODE DXILLibrary;
  11251. UINT NumExports;
  11252. _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
  11253. } D3D12_DXIL_LIBRARY_DESC;
  11254. typedef struct D3D12_EXISTING_COLLECTION_DESC
  11255. {
  11256. ID3D12StateObject *pExistingCollection;
  11257. UINT NumExports;
  11258. _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
  11259. } D3D12_EXISTING_COLLECTION_DESC;
  11260. typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
  11261. {
  11262. const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
  11263. UINT NumExports;
  11264. _In_reads_(NumExports) LPCWSTR *pExports;
  11265. } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
  11266. typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
  11267. {
  11268. LPCWSTR SubobjectToAssociate;
  11269. UINT NumExports;
  11270. _In_reads_(NumExports) LPCWSTR *pExports;
  11271. } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
  11272. typedef
  11273. enum D3D12_HIT_GROUP_TYPE
  11274. {
  11275. D3D12_HIT_GROUP_TYPE_TRIANGLES = 0,
  11276. D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
  11277. } D3D12_HIT_GROUP_TYPE;
  11278. typedef struct D3D12_HIT_GROUP_DESC
  11279. {
  11280. LPCWSTR HitGroupExport;
  11281. D3D12_HIT_GROUP_TYPE Type;
  11282. _In_opt_ LPCWSTR AnyHitShaderImport;
  11283. _In_opt_ LPCWSTR ClosestHitShaderImport;
  11284. _In_opt_ LPCWSTR IntersectionShaderImport;
  11285. } D3D12_HIT_GROUP_DESC;
  11286. typedef struct D3D12_RAYTRACING_SHADER_CONFIG
  11287. {
  11288. UINT MaxPayloadSizeInBytes;
  11289. UINT MaxAttributeSizeInBytes;
  11290. } D3D12_RAYTRACING_SHADER_CONFIG;
  11291. typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
  11292. {
  11293. UINT MaxTraceRecursionDepth;
  11294. } D3D12_RAYTRACING_PIPELINE_CONFIG;
  11295. typedef
  11296. enum D3D12_RAYTRACING_PIPELINE_FLAGS
  11297. {
  11298. D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0,
  11299. D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
  11300. D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
  11301. D3D12_RAYTRACING_PIPELINE_FLAG_ALLOW_OPACITY_MICROMAPS = 0x400
  11302. } D3D12_RAYTRACING_PIPELINE_FLAGS;
  11303. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS )
  11304. typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1
  11305. {
  11306. UINT MaxTraceRecursionDepth;
  11307. D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
  11308. } D3D12_RAYTRACING_PIPELINE_CONFIG1;
  11309. typedef struct D3D12_NODE_OUTPUT_OVERRIDES
  11310. {
  11311. UINT OutputIndex;
  11312. _In_opt_ const D3D12_NODE_ID *pNewName;
  11313. _In_opt_ const BOOL *pAllowSparseNodes;
  11314. _In_opt_ const UINT *pMaxRecords;
  11315. _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex;
  11316. } D3D12_NODE_OUTPUT_OVERRIDES;
  11317. typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES
  11318. {
  11319. _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
  11320. _In_opt_ const BOOL *pProgramEntry;
  11321. _In_opt_ const D3D12_NODE_ID *pNewName;
  11322. _In_opt_ const D3D12_NODE_ID *pShareInputOf;
  11323. _In_reads_opt_(3) const UINT *pDispatchGrid;
  11324. _In_reads_opt_(3) const UINT *pMaxDispatchGrid;
  11325. UINT NumOutputOverrides;
  11326. _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
  11327. } D3D12_BROADCASTING_LAUNCH_OVERRIDES;
  11328. typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES
  11329. {
  11330. _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
  11331. _In_opt_ const BOOL *pProgramEntry;
  11332. _In_opt_ const D3D12_NODE_ID *pNewName;
  11333. _In_opt_ const D3D12_NODE_ID *pShareInputOf;
  11334. UINT NumOutputOverrides;
  11335. _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
  11336. } D3D12_COALESCING_LAUNCH_OVERRIDES;
  11337. typedef struct D3D12_THREAD_LAUNCH_OVERRIDES
  11338. {
  11339. _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
  11340. _In_opt_ const BOOL *pProgramEntry;
  11341. _In_opt_ const D3D12_NODE_ID *pNewName;
  11342. _In_opt_ const D3D12_NODE_ID *pShareInputOf;
  11343. UINT NumOutputOverrides;
  11344. _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
  11345. } D3D12_THREAD_LAUNCH_OVERRIDES;
  11346. typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES
  11347. {
  11348. _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
  11349. _In_opt_ const BOOL *pProgramEntry;
  11350. _In_opt_ const D3D12_NODE_ID *pNewName;
  11351. _In_opt_ const D3D12_NODE_ID *pShareInputOf;
  11352. UINT NumOutputOverrides;
  11353. _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
  11354. } D3D12_COMMON_COMPUTE_NODE_OVERRIDES;
  11355. typedef
  11356. enum D3D12_NODE_OVERRIDES_TYPE
  11357. {
  11358. D3D12_NODE_OVERRIDES_TYPE_NONE = 0,
  11359. D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1,
  11360. D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2,
  11361. D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3,
  11362. D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4
  11363. } D3D12_NODE_OVERRIDES_TYPE;
  11364. typedef struct D3D12_SHADER_NODE
  11365. {
  11366. LPCWSTR Shader;
  11367. D3D12_NODE_OVERRIDES_TYPE OverridesType;
  11368. union
  11369. {
  11370. const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides;
  11371. const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides;
  11372. const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides;
  11373. const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides;
  11374. } ;
  11375. } D3D12_SHADER_NODE;
  11376. typedef
  11377. enum D3D12_NODE_TYPE
  11378. {
  11379. D3D12_NODE_TYPE_SHADER = 0
  11380. } D3D12_NODE_TYPE;
  11381. typedef struct D3D12_NODE
  11382. {
  11383. D3D12_NODE_TYPE NodeType;
  11384. union
  11385. {
  11386. D3D12_SHADER_NODE Shader;
  11387. } ;
  11388. } D3D12_NODE;
  11389. typedef
  11390. enum D3D12_WORK_GRAPH_FLAGS
  11391. {
  11392. D3D12_WORK_GRAPH_FLAG_NONE = 0,
  11393. D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1
  11394. } D3D12_WORK_GRAPH_FLAGS;
  11395. DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS )
  11396. typedef struct D3D12_WORK_GRAPH_DESC
  11397. {
  11398. LPCWSTR ProgramName;
  11399. D3D12_WORK_GRAPH_FLAGS Flags;
  11400. UINT NumEntrypoints;
  11401. _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints;
  11402. UINT NumExplicitlyDefinedNodes;
  11403. _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes;
  11404. } D3D12_WORK_GRAPH_DESC;
  11405. typedef struct D3D12_GENERIC_PROGRAM_DESC
  11406. {
  11407. LPCWSTR ProgramName;
  11408. UINT NumExports;
  11409. _In_reads_(NumExports) LPCWSTR *pExports;
  11410. UINT NumSubobjects;
  11411. _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects;
  11412. } D3D12_GENERIC_PROGRAM_DESC;
  11413. typedef
  11414. enum D3D12_STATE_OBJECT_TYPE
  11415. {
  11416. D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
  11417. D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3,
  11418. D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4
  11419. } D3D12_STATE_OBJECT_TYPE;
  11420. typedef struct D3D12_STATE_OBJECT_DESC
  11421. {
  11422. D3D12_STATE_OBJECT_TYPE Type;
  11423. UINT NumSubobjects;
  11424. _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects;
  11425. } D3D12_STATE_OBJECT_DESC;
  11426. typedef
  11427. enum D3D12_RAYTRACING_GEOMETRY_FLAGS
  11428. {
  11429. D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
  11430. D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
  11431. D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
  11432. } D3D12_RAYTRACING_GEOMETRY_FLAGS;
  11433. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS )
  11434. typedef
  11435. enum D3D12_RAYTRACING_GEOMETRY_TYPE
  11436. {
  11437. D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0,
  11438. D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 ) ,
  11439. D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES = ( D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS + 1 )
  11440. } D3D12_RAYTRACING_GEOMETRY_TYPE;
  11441. typedef
  11442. enum D3D12_RAYTRACING_INSTANCE_FLAGS
  11443. {
  11444. D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
  11445. D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
  11446. D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
  11447. D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
  11448. D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8,
  11449. D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 0x10,
  11450. D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 0x20
  11451. } D3D12_RAYTRACING_INSTANCE_FLAGS;
  11452. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS )
  11453. typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
  11454. {
  11455. D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
  11456. UINT64 StrideInBytes;
  11457. } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
  11458. typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
  11459. {
  11460. D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
  11461. UINT64 SizeInBytes;
  11462. } D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
  11463. typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
  11464. {
  11465. D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
  11466. UINT64 SizeInBytes;
  11467. UINT64 StrideInBytes;
  11468. } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
  11469. typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
  11470. {
  11471. D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
  11472. DXGI_FORMAT IndexFormat;
  11473. DXGI_FORMAT VertexFormat;
  11474. UINT IndexCount;
  11475. UINT VertexCount;
  11476. D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
  11477. D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
  11478. } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
  11479. typedef struct D3D12_RAYTRACING_AABB
  11480. {
  11481. FLOAT MinX;
  11482. FLOAT MinY;
  11483. FLOAT MinZ;
  11484. FLOAT MaxX;
  11485. FLOAT MaxY;
  11486. FLOAT MaxZ;
  11487. } D3D12_RAYTRACING_AABB;
  11488. typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
  11489. {
  11490. UINT64 AABBCount;
  11491. D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
  11492. } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
  11493. typedef
  11494. enum D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX
  11495. {
  11496. D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1,
  11497. D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2,
  11498. D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3,
  11499. D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4
  11500. } D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX;
  11501. typedef
  11502. enum D3D12_RAYTRACING_OPACITY_MICROMAP_STATE
  11503. {
  11504. D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0,
  11505. D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1,
  11506. D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2,
  11507. D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3
  11508. } D3D12_RAYTRACING_OPACITY_MICROMAP_STATE;
  11509. typedef
  11510. enum D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT
  11511. {
  11512. D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1,
  11513. D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2
  11514. } D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT;
  11515. typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_DESC
  11516. {
  11517. UINT ByteOffset;
  11518. UINT SubdivisionLevel : 16;
  11519. D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format : 16;
  11520. } D3D12_RAYTRACING_OPACITY_MICROMAP_DESC;
  11521. typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC
  11522. {
  11523. D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE OpacityMicromapIndexBuffer;
  11524. DXGI_FORMAT OpacityMicromapIndexFormat;
  11525. UINT OpacityMicromapBaseLocation;
  11526. D3D12_GPU_VIRTUAL_ADDRESS OpacityMicromapArray;
  11527. } D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC;
  11528. typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC
  11529. {
  11530. const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC *pTriangles;
  11531. const D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC *pOmmLinkage;
  11532. } D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC;
  11533. typedef
  11534. enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
  11535. {
  11536. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
  11537. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
  11538. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
  11539. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
  11540. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
  11541. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
  11542. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20,
  11543. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE = 0x40,
  11544. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS = 0x80
  11545. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
  11546. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS )
  11547. typedef
  11548. enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
  11549. {
  11550. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
  11551. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
  11552. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
  11553. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
  11554. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
  11555. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
  11556. typedef
  11557. enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
  11558. {
  11559. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0,
  11560. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1,
  11561. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_ARRAY = 0x2
  11562. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
  11563. typedef
  11564. enum D3D12_ELEMENTS_LAYOUT
  11565. {
  11566. D3D12_ELEMENTS_LAYOUT_ARRAY = 0,
  11567. D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
  11568. } D3D12_ELEMENTS_LAYOUT;
  11569. typedef
  11570. enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
  11571. {
  11572. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0,
  11573. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
  11574. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
  11575. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
  11576. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
  11577. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
  11578. {
  11579. D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
  11580. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
  11581. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
  11582. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
  11583. {
  11584. UINT64 CompactedSizeInBytes;
  11585. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
  11586. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
  11587. {
  11588. UINT64 DecodedSizeInBytes;
  11589. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
  11590. typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
  11591. {
  11592. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
  11593. UINT NumDescs;
  11594. } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
  11595. // Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,
  11596. // depending on Type field, NumDescs above is followed by either:
  11597. // D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]
  11598. // or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].
  11599. // or D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC (NumDescs == 1 in this case).
  11600. //
  11601. // For D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC, the pOmmHistogram pointer becomes a GPUVA instead of CPU pointer
  11602. //
  11603. // There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.
  11604. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
  11605. {
  11606. UINT64 SerializedSizeInBytes;
  11607. union
  11608. {
  11609. UINT64 NumBottomLevelAccelerationStructurePointers;
  11610. UINT64 NumBottomLevelAccelerationStructureHeaderAndPointerListPairs;
  11611. } ;
  11612. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
  11613. typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
  11614. {
  11615. GUID DriverOpaqueGUID;
  11616. BYTE DriverOpaqueVersioningData[ 16 ];
  11617. } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
  11618. typedef
  11619. enum D3D12_SERIALIZED_DATA_TYPE
  11620. {
  11621. D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0,
  11622. D3D12_SERIALIZED_DATA_APPLICATION_SPECIFIC_DRIVER_STATE = 0x1
  11623. } D3D12_SERIALIZED_DATA_TYPE;
  11624. typedef
  11625. enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
  11626. {
  11627. D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0,
  11628. D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
  11629. D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
  11630. D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
  11631. D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
  11632. } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
  11633. typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
  11634. {
  11635. D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
  11636. UINT64 SerializedSizeInBytesIncludingHeader;
  11637. UINT64 DeserializedSizeInBytes;
  11638. UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
  11639. } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
  11640. typedef
  11641. enum D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE
  11642. {
  11643. D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_NONE = 0,
  11644. D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BOTTOM_LEVEL_POINTERS = 0,
  11645. D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BLOCKS = 0xffffffff
  11646. } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE;
  11647. typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1
  11648. {
  11649. D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
  11650. UINT64 SerializedSizeInBytesIncludingHeader;
  11651. UINT64 DeserializedSizeInBytes;
  11652. union
  11653. {
  11654. UINT NumBottomLevelAccelerationStructurePointersAfterHeader;
  11655. UINT NumBlocks;
  11656. } ;
  11657. D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE HeaderPostambleType;
  11658. } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1;
  11659. typedef
  11660. enum D3D12_SERIALIZED_BLOCK_TYPE
  11661. {
  11662. D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAPS = 0
  11663. } D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE;
  11664. typedef struct D3D12_RAYTRACING_SERIALIZED_BLOCK
  11665. {
  11666. D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE Type;
  11667. UINT64 NumBlockPointersAfterHeader;
  11668. } D3D12_RAYTRACING_SERIALIZED_BLOCK;
  11669. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
  11670. {
  11671. UINT64 CurrentSizeInBytes;
  11672. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
  11673. typedef struct D3D12_RAYTRACING_INSTANCE_DESC
  11674. {
  11675. FLOAT Transform[ 3 ][ 4 ];
  11676. UINT InstanceID : 24;
  11677. UINT InstanceMask : 8;
  11678. UINT InstanceContributionToHitGroupIndex : 24;
  11679. UINT Flags : 8;
  11680. D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
  11681. } D3D12_RAYTRACING_INSTANCE_DESC;
  11682. typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
  11683. {
  11684. D3D12_RAYTRACING_GEOMETRY_TYPE Type;
  11685. D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
  11686. union
  11687. {
  11688. D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
  11689. D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
  11690. D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC OmmTriangles;
  11691. } ;
  11692. } D3D12_RAYTRACING_GEOMETRY_DESC;
  11693. typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY
  11694. {
  11695. UINT Count;
  11696. UINT SubdivisionLevel;
  11697. D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format;
  11698. } D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY;
  11699. typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC
  11700. {
  11701. UINT NumOmmHistogramEntries;
  11702. const D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY *pOmmHistogram;
  11703. D3D12_GPU_VIRTUAL_ADDRESS InputBuffer;
  11704. D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE PerOmmDescs;
  11705. } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC;
  11706. typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
  11707. {
  11708. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
  11709. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
  11710. UINT NumDescs;
  11711. D3D12_ELEMENTS_LAYOUT DescsLayout;
  11712. union
  11713. {
  11714. D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
  11715. const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
  11716. const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
  11717. const D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC *pOpacityMicromapArrayDesc;
  11718. } ;
  11719. } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
  11720. typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
  11721. {
  11722. D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
  11723. D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
  11724. _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
  11725. D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
  11726. } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
  11727. typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
  11728. {
  11729. UINT64 ResultDataMaxSizeInBytes;
  11730. UINT64 ScratchDataSizeInBytes;
  11731. UINT64 UpdateScratchDataSizeInBytes;
  11732. } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
  11733. typedef
  11734. enum D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE
  11735. {
  11736. D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0,
  11737. D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1
  11738. } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE;
  11739. typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
  11740. {
  11741. D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
  11742. D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE InfoType;
  11743. } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC;
  11744. typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
  11745. {
  11746. UINT64 CurrentSizeInBytes;
  11747. } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC;
  11748. typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
  11749. {
  11750. UINT64 DecodedSizeInBytes;
  11751. } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
  11752. typedef
  11753. enum D3D12_RAY_FLAGS
  11754. {
  11755. D3D12_RAY_FLAG_NONE = 0,
  11756. D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
  11757. D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
  11758. D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
  11759. D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
  11760. D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
  11761. D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
  11762. D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
  11763. D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
  11764. D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
  11765. D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
  11766. D3D12_RAY_FLAG_FORCE_OMM_2_STATE = 0x400
  11767. } D3D12_RAY_FLAGS;
  11768. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS )
  11769. typedef
  11770. enum D3D12_HIT_KIND
  11771. {
  11772. D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
  11773. D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
  11774. } D3D12_HIT_KIND;
  11775. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec;
  11776. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec;
  11777. #ifndef __ID3D12Device5_INTERFACE_DEFINED__
  11778. #define __ID3D12Device5_INTERFACE_DEFINED__
  11779. /* interface ID3D12Device5 */
  11780. /* [unique][local][object][uuid] */
  11781. EXTERN_C const IID IID_ID3D12Device5;
  11782. #if defined(__cplusplus) && !defined(CINTERFACE)
  11783. MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
  11784. ID3D12Device5 : public ID3D12Device4
  11785. {
  11786. public:
  11787. virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
  11788. _In_ ID3D12LifetimeOwner *pOwner,
  11789. REFIID riid,
  11790. _COM_Outptr_ void **ppvTracker) = 0;
  11791. virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0;
  11792. virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
  11793. _Inout_ UINT *pNumMetaCommands,
  11794. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0;
  11795. virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
  11796. _In_ REFGUID CommandId,
  11797. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  11798. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  11799. _Inout_ UINT *pParameterCount,
  11800. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0;
  11801. virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
  11802. _In_ REFGUID CommandId,
  11803. _In_ UINT NodeMask,
  11804. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  11805. _In_ SIZE_T CreationParametersDataSizeInBytes,
  11806. REFIID riid,
  11807. _COM_Outptr_ void **ppMetaCommand) = 0;
  11808. virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
  11809. const D3D12_STATE_OBJECT_DESC *pDesc,
  11810. REFIID riid,
  11811. _COM_Outptr_ void **ppStateObject) = 0;
  11812. virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
  11813. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  11814. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0;
  11815. virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
  11816. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  11817. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0;
  11818. };
  11819. #else /* C style interface */
  11820. typedef struct ID3D12Device5Vtbl
  11821. {
  11822. BEGIN_INTERFACE
  11823. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  11824. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  11825. ID3D12Device5 * This,
  11826. REFIID riid,
  11827. _COM_Outptr_ void **ppvObject);
  11828. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  11829. ULONG ( STDMETHODCALLTYPE *AddRef )(
  11830. ID3D12Device5 * This);
  11831. DECLSPEC_XFGVIRT(IUnknown, Release)
  11832. ULONG ( STDMETHODCALLTYPE *Release )(
  11833. ID3D12Device5 * This);
  11834. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  11835. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  11836. ID3D12Device5 * This,
  11837. _In_ REFGUID guid,
  11838. _Inout_ UINT *pDataSize,
  11839. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  11840. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  11841. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  11842. ID3D12Device5 * This,
  11843. _In_ REFGUID guid,
  11844. _In_ UINT DataSize,
  11845. _In_reads_bytes_opt_( DataSize ) const void *pData);
  11846. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  11847. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  11848. ID3D12Device5 * This,
  11849. _In_ REFGUID guid,
  11850. _In_opt_ const IUnknown *pData);
  11851. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  11852. HRESULT ( STDMETHODCALLTYPE *SetName )(
  11853. ID3D12Device5 * This,
  11854. _In_z_ LPCWSTR Name);
  11855. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  11856. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  11857. ID3D12Device5 * This);
  11858. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  11859. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  11860. ID3D12Device5 * This,
  11861. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  11862. REFIID riid,
  11863. _COM_Outptr_ void **ppCommandQueue);
  11864. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  11865. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  11866. ID3D12Device5 * This,
  11867. _In_ D3D12_COMMAND_LIST_TYPE type,
  11868. REFIID riid,
  11869. _COM_Outptr_ void **ppCommandAllocator);
  11870. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  11871. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  11872. ID3D12Device5 * This,
  11873. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  11874. REFIID riid,
  11875. _COM_Outptr_ void **ppPipelineState);
  11876. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  11877. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  11878. ID3D12Device5 * This,
  11879. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  11880. REFIID riid,
  11881. _COM_Outptr_ void **ppPipelineState);
  11882. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  11883. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  11884. ID3D12Device5 * This,
  11885. _In_ UINT nodeMask,
  11886. _In_ D3D12_COMMAND_LIST_TYPE type,
  11887. _In_ ID3D12CommandAllocator *pCommandAllocator,
  11888. _In_opt_ ID3D12PipelineState *pInitialState,
  11889. REFIID riid,
  11890. _COM_Outptr_ void **ppCommandList);
  11891. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  11892. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  11893. ID3D12Device5 * This,
  11894. D3D12_FEATURE Feature,
  11895. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  11896. UINT FeatureSupportDataSize);
  11897. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  11898. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  11899. ID3D12Device5 * This,
  11900. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  11901. REFIID riid,
  11902. _COM_Outptr_ void **ppvHeap);
  11903. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  11904. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  11905. ID3D12Device5 * This,
  11906. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  11907. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  11908. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  11909. ID3D12Device5 * This,
  11910. _In_ UINT nodeMask,
  11911. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  11912. _In_ SIZE_T blobLengthInBytes,
  11913. REFIID riid,
  11914. _COM_Outptr_ void **ppvRootSignature);
  11915. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  11916. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  11917. ID3D12Device5 * This,
  11918. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  11919. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  11920. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  11921. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  11922. ID3D12Device5 * This,
  11923. _In_opt_ ID3D12Resource *pResource,
  11924. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  11925. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  11926. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  11927. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  11928. ID3D12Device5 * This,
  11929. _In_opt_ ID3D12Resource *pResource,
  11930. _In_opt_ ID3D12Resource *pCounterResource,
  11931. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  11932. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  11933. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  11934. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  11935. ID3D12Device5 * This,
  11936. _In_opt_ ID3D12Resource *pResource,
  11937. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  11938. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  11939. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  11940. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  11941. ID3D12Device5 * This,
  11942. _In_opt_ ID3D12Resource *pResource,
  11943. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  11944. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  11945. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  11946. void ( STDMETHODCALLTYPE *CreateSampler )(
  11947. ID3D12Device5 * This,
  11948. _In_ const D3D12_SAMPLER_DESC *pDesc,
  11949. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  11950. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  11951. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  11952. ID3D12Device5 * This,
  11953. _In_ UINT NumDestDescriptorRanges,
  11954. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  11955. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  11956. _In_ UINT NumSrcDescriptorRanges,
  11957. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  11958. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  11959. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  11960. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  11961. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  11962. ID3D12Device5 * This,
  11963. _In_ UINT NumDescriptors,
  11964. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  11965. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  11966. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  11967. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  11968. #if !defined(_WIN32)
  11969. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  11970. ID3D12Device5 * This,
  11971. _In_ UINT visibleMask,
  11972. _In_ UINT numResourceDescs,
  11973. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  11974. #else
  11975. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  11976. ID3D12Device5 * This,
  11977. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  11978. _In_ UINT visibleMask,
  11979. _In_ UINT numResourceDescs,
  11980. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  11981. #endif
  11982. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  11983. #if !defined(_WIN32)
  11984. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  11985. ID3D12Device5 * This,
  11986. _In_ UINT nodeMask,
  11987. D3D12_HEAP_TYPE heapType);
  11988. #else
  11989. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  11990. ID3D12Device5 * This,
  11991. D3D12_HEAP_PROPERTIES * RetVal,
  11992. _In_ UINT nodeMask,
  11993. D3D12_HEAP_TYPE heapType);
  11994. #endif
  11995. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  11996. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  11997. ID3D12Device5 * This,
  11998. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  11999. D3D12_HEAP_FLAGS HeapFlags,
  12000. _In_ const D3D12_RESOURCE_DESC *pDesc,
  12001. D3D12_RESOURCE_STATES InitialResourceState,
  12002. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  12003. REFIID riidResource,
  12004. _COM_Outptr_opt_ void **ppvResource);
  12005. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  12006. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  12007. ID3D12Device5 * This,
  12008. _In_ const D3D12_HEAP_DESC *pDesc,
  12009. REFIID riid,
  12010. _COM_Outptr_opt_ void **ppvHeap);
  12011. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  12012. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  12013. ID3D12Device5 * This,
  12014. _In_ ID3D12Heap *pHeap,
  12015. UINT64 HeapOffset,
  12016. _In_ const D3D12_RESOURCE_DESC *pDesc,
  12017. D3D12_RESOURCE_STATES InitialState,
  12018. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  12019. REFIID riid,
  12020. _COM_Outptr_opt_ void **ppvResource);
  12021. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  12022. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  12023. ID3D12Device5 * This,
  12024. _In_ const D3D12_RESOURCE_DESC *pDesc,
  12025. D3D12_RESOURCE_STATES InitialState,
  12026. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  12027. REFIID riid,
  12028. _COM_Outptr_opt_ void **ppvResource);
  12029. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  12030. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  12031. ID3D12Device5 * This,
  12032. _In_ ID3D12DeviceChild *pObject,
  12033. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  12034. DWORD Access,
  12035. _In_opt_ LPCWSTR Name,
  12036. _Out_ HANDLE *pHandle);
  12037. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  12038. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  12039. ID3D12Device5 * This,
  12040. _In_ HANDLE NTHandle,
  12041. REFIID riid,
  12042. _COM_Outptr_opt_ void **ppvObj);
  12043. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  12044. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  12045. ID3D12Device5 * This,
  12046. _In_ LPCWSTR Name,
  12047. DWORD Access,
  12048. /* [annotation][out] */
  12049. _Out_ HANDLE *pNTHandle);
  12050. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  12051. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  12052. ID3D12Device5 * This,
  12053. UINT NumObjects,
  12054. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  12055. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  12056. HRESULT ( STDMETHODCALLTYPE *Evict )(
  12057. ID3D12Device5 * This,
  12058. UINT NumObjects,
  12059. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  12060. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  12061. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  12062. ID3D12Device5 * This,
  12063. UINT64 InitialValue,
  12064. D3D12_FENCE_FLAGS Flags,
  12065. REFIID riid,
  12066. _COM_Outptr_ void **ppFence);
  12067. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  12068. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  12069. ID3D12Device5 * This);
  12070. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  12071. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  12072. ID3D12Device5 * This,
  12073. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  12074. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  12075. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  12076. UINT64 BaseOffset,
  12077. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  12078. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  12079. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  12080. _Out_opt_ UINT64 *pTotalBytes);
  12081. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  12082. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  12083. ID3D12Device5 * This,
  12084. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  12085. REFIID riid,
  12086. _COM_Outptr_opt_ void **ppvHeap);
  12087. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  12088. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  12089. ID3D12Device5 * This,
  12090. BOOL Enable);
  12091. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  12092. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  12093. ID3D12Device5 * This,
  12094. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  12095. _In_opt_ ID3D12RootSignature *pRootSignature,
  12096. REFIID riid,
  12097. _COM_Outptr_opt_ void **ppvCommandSignature);
  12098. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  12099. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  12100. ID3D12Device5 * This,
  12101. _In_ ID3D12Resource *pTiledResource,
  12102. _Out_opt_ UINT *pNumTilesForEntireResource,
  12103. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  12104. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  12105. _Inout_opt_ UINT *pNumSubresourceTilings,
  12106. _In_ UINT FirstSubresourceTilingToGet,
  12107. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  12108. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  12109. #if !defined(_WIN32)
  12110. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  12111. ID3D12Device5 * This);
  12112. #else
  12113. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  12114. ID3D12Device5 * This,
  12115. LUID * RetVal);
  12116. #endif
  12117. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  12118. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  12119. ID3D12Device5 * This,
  12120. _In_reads_(BlobLength) const void *pLibraryBlob,
  12121. SIZE_T BlobLength,
  12122. REFIID riid,
  12123. _COM_Outptr_ void **ppPipelineLibrary);
  12124. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  12125. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  12126. ID3D12Device5 * This,
  12127. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  12128. _In_reads_(NumFences) const UINT64 *pFenceValues,
  12129. UINT NumFences,
  12130. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  12131. HANDLE hEvent);
  12132. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  12133. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  12134. ID3D12Device5 * This,
  12135. UINT NumObjects,
  12136. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  12137. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  12138. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  12139. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  12140. ID3D12Device5 * This,
  12141. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  12142. REFIID riid,
  12143. _COM_Outptr_ void **ppPipelineState);
  12144. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  12145. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  12146. ID3D12Device5 * This,
  12147. _In_ const void *pAddress,
  12148. REFIID riid,
  12149. _COM_Outptr_ void **ppvHeap);
  12150. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  12151. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  12152. ID3D12Device5 * This,
  12153. _In_ HANDLE hFileMapping,
  12154. REFIID riid,
  12155. _COM_Outptr_ void **ppvHeap);
  12156. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  12157. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  12158. ID3D12Device5 * This,
  12159. D3D12_RESIDENCY_FLAGS Flags,
  12160. UINT NumObjects,
  12161. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  12162. _In_ ID3D12Fence *pFenceToSignal,
  12163. UINT64 FenceValueToSignal);
  12164. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  12165. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  12166. ID3D12Device5 * This,
  12167. _In_ UINT nodeMask,
  12168. _In_ D3D12_COMMAND_LIST_TYPE type,
  12169. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  12170. REFIID riid,
  12171. _COM_Outptr_ void **ppCommandList);
  12172. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  12173. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  12174. ID3D12Device5 * This,
  12175. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  12176. _In_ REFIID riid,
  12177. _COM_Outptr_ void **ppSession);
  12178. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  12179. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  12180. ID3D12Device5 * This,
  12181. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  12182. D3D12_HEAP_FLAGS HeapFlags,
  12183. _In_ const D3D12_RESOURCE_DESC *pDesc,
  12184. D3D12_RESOURCE_STATES InitialResourceState,
  12185. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  12186. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  12187. REFIID riidResource,
  12188. _COM_Outptr_opt_ void **ppvResource);
  12189. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  12190. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  12191. ID3D12Device5 * This,
  12192. _In_ const D3D12_HEAP_DESC *pDesc,
  12193. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  12194. REFIID riid,
  12195. _COM_Outptr_opt_ void **ppvHeap);
  12196. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  12197. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  12198. ID3D12Device5 * This,
  12199. _In_ const D3D12_RESOURCE_DESC *pDesc,
  12200. D3D12_RESOURCE_STATES InitialState,
  12201. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  12202. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  12203. REFIID riid,
  12204. _COM_Outptr_opt_ void **ppvResource);
  12205. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  12206. #if !defined(_WIN32)
  12207. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  12208. ID3D12Device5 * This,
  12209. UINT visibleMask,
  12210. UINT numResourceDescs,
  12211. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  12212. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  12213. #else
  12214. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  12215. ID3D12Device5 * This,
  12216. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  12217. UINT visibleMask,
  12218. UINT numResourceDescs,
  12219. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  12220. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  12221. #endif
  12222. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  12223. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  12224. ID3D12Device5 * This,
  12225. _In_ ID3D12LifetimeOwner *pOwner,
  12226. REFIID riid,
  12227. _COM_Outptr_ void **ppvTracker);
  12228. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  12229. void ( STDMETHODCALLTYPE *RemoveDevice )(
  12230. ID3D12Device5 * This);
  12231. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  12232. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  12233. ID3D12Device5 * This,
  12234. _Inout_ UINT *pNumMetaCommands,
  12235. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  12236. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  12237. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  12238. ID3D12Device5 * This,
  12239. _In_ REFGUID CommandId,
  12240. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  12241. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  12242. _Inout_ UINT *pParameterCount,
  12243. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  12244. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  12245. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  12246. ID3D12Device5 * This,
  12247. _In_ REFGUID CommandId,
  12248. _In_ UINT NodeMask,
  12249. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  12250. _In_ SIZE_T CreationParametersDataSizeInBytes,
  12251. REFIID riid,
  12252. _COM_Outptr_ void **ppMetaCommand);
  12253. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  12254. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  12255. ID3D12Device5 * This,
  12256. const D3D12_STATE_OBJECT_DESC *pDesc,
  12257. REFIID riid,
  12258. _COM_Outptr_ void **ppStateObject);
  12259. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  12260. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  12261. ID3D12Device5 * This,
  12262. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  12263. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  12264. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  12265. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  12266. ID3D12Device5 * This,
  12267. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  12268. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  12269. END_INTERFACE
  12270. } ID3D12Device5Vtbl;
  12271. interface ID3D12Device5
  12272. {
  12273. CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl;
  12274. };
  12275. #ifdef COBJMACROS
  12276. #define ID3D12Device5_QueryInterface(This,riid,ppvObject) \
  12277. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  12278. #define ID3D12Device5_AddRef(This) \
  12279. ( (This)->lpVtbl -> AddRef(This) )
  12280. #define ID3D12Device5_Release(This) \
  12281. ( (This)->lpVtbl -> Release(This) )
  12282. #define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \
  12283. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  12284. #define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \
  12285. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  12286. #define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \
  12287. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  12288. #define ID3D12Device5_SetName(This,Name) \
  12289. ( (This)->lpVtbl -> SetName(This,Name) )
  12290. #define ID3D12Device5_GetNodeCount(This) \
  12291. ( (This)->lpVtbl -> GetNodeCount(This) )
  12292. #define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  12293. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  12294. #define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  12295. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  12296. #define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  12297. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  12298. #define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  12299. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  12300. #define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  12301. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  12302. #define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  12303. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  12304. #define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  12305. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  12306. #define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  12307. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  12308. #define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  12309. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  12310. #define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  12311. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  12312. #define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  12313. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  12314. #define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  12315. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  12316. #define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  12317. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  12318. #define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  12319. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  12320. #define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \
  12321. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  12322. #define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  12323. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  12324. #define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  12325. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  12326. #if !defined(_WIN32)
  12327. #define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  12328. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  12329. #else
  12330. #define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  12331. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  12332. #endif
  12333. #if !defined(_WIN32)
  12334. #define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \
  12335. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  12336. #else
  12337. #define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  12338. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  12339. #endif
  12340. #define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  12341. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  12342. #define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \
  12343. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  12344. #define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  12345. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  12346. #define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  12347. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  12348. #define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  12349. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  12350. #define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  12351. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  12352. #define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  12353. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  12354. #define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \
  12355. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  12356. #define ID3D12Device5_Evict(This,NumObjects,ppObjects) \
  12357. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  12358. #define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  12359. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  12360. #define ID3D12Device5_GetDeviceRemovedReason(This) \
  12361. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  12362. #define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  12363. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  12364. #define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  12365. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  12366. #define ID3D12Device5_SetStablePowerState(This,Enable) \
  12367. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  12368. #define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  12369. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  12370. #define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  12371. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  12372. #if !defined(_WIN32)
  12373. #define ID3D12Device5_GetAdapterLuid(This) \
  12374. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  12375. #else
  12376. #define ID3D12Device5_GetAdapterLuid(This,RetVal) \
  12377. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  12378. #endif
  12379. #define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  12380. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  12381. #define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  12382. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  12383. #define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  12384. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  12385. #define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  12386. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  12387. #define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  12388. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  12389. #define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  12390. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  12391. #define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  12392. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  12393. #define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  12394. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  12395. #define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  12396. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  12397. #define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  12398. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  12399. #define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  12400. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  12401. #define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  12402. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  12403. #if !defined(_WIN32)
  12404. #define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  12405. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  12406. #else
  12407. #define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  12408. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  12409. #endif
  12410. #define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  12411. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  12412. #define ID3D12Device5_RemoveDevice(This) \
  12413. ( (This)->lpVtbl -> RemoveDevice(This) )
  12414. #define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  12415. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  12416. #define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  12417. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  12418. #define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  12419. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  12420. #define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \
  12421. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  12422. #define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  12423. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  12424. #define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  12425. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  12426. #endif /* COBJMACROS */
  12427. #endif /* C style interface */
  12428. #endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
  12429. /* interface __MIDL_itf_d3d12_0000_0040 */
  12430. /* [local] */
  12431. typedef
  12432. enum D3D12_MARKER_API
  12433. {
  12434. D3D12_MARKER_API_SETMARKER = 0,
  12435. D3D12_MARKER_API_BEGINEVENT = 1,
  12436. D3D12_MARKER_API_ENDEVENT = 2,
  12437. D3D12_MARKER_API_DRAWINSTANCED = 3,
  12438. D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4,
  12439. D3D12_MARKER_API_EXECUTEINDIRECT = 5,
  12440. D3D12_MARKER_API_DISPATCH = 6,
  12441. D3D12_MARKER_API_COPYBUFFERREGION = 7,
  12442. D3D12_MARKER_API_COPYTEXTUREREGION = 8,
  12443. D3D12_MARKER_API_COPYRESOURCE = 9,
  12444. D3D12_MARKER_API_COPYTILES = 10,
  12445. D3D12_MARKER_API_RESOLVESUBRESOURCE = 11,
  12446. D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12,
  12447. D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13,
  12448. D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14,
  12449. D3D12_MARKER_API_RESOURCEBARRIER = 15,
  12450. D3D12_MARKER_API_EXECUTEBUNDLE = 16,
  12451. D3D12_MARKER_API_PRESENT = 17,
  12452. D3D12_MARKER_API_RESOLVEQUERYDATA = 18,
  12453. D3D12_MARKER_API_BEGINSUBMISSION = 19,
  12454. D3D12_MARKER_API_ENDSUBMISSION = 20,
  12455. D3D12_MARKER_API_DECODEFRAME = 21,
  12456. D3D12_MARKER_API_PROCESSFRAMES = 22,
  12457. D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23,
  12458. D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24,
  12459. D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25,
  12460. D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26,
  12461. D3D12_MARKER_API_DECODEFRAME1 = 27,
  12462. D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28,
  12463. D3D12_MARKER_API_DECODEFRAME2 = 29,
  12464. D3D12_MARKER_API_PROCESSFRAMES1 = 30,
  12465. D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
  12466. D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
  12467. D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
  12468. D3D12_MARKER_API_DISPATCHRAYS = 34,
  12469. D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35,
  12470. D3D12_MARKER_API_EXECUTEMETACOMMAND = 36,
  12471. D3D12_MARKER_API_ESTIMATEMOTION = 37,
  12472. D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38,
  12473. D3D12_MARKER_API_SETPIPELINESTATE1 = 39,
  12474. D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40,
  12475. D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41,
  12476. D3D12_MARKER_API_DISPATCHMESH = 42,
  12477. D3D12_MARKER_API_ENCODEFRAME = 43,
  12478. D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44,
  12479. D3D12_MARKER_API_BARRIER = 45,
  12480. D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46,
  12481. D3D12_MARKER_API_DISPATCHGRAPH = 47,
  12482. D3D12_MARKER_API_SETPROGRAM = 48,
  12483. D3D12_MARKER_API_ENCODEFRAME1 = 49,
  12484. D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50,
  12485. D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51,
  12486. D3D12_MARKER_API_PROCESSFRAMES2 = 52,
  12487. D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53
  12488. } D3D12_MARKER_API;
  12489. typedef
  12490. enum D3D12_AUTO_BREADCRUMB_OP
  12491. {
  12492. D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER,
  12493. D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT,
  12494. D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT,
  12495. D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED,
  12496. D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED,
  12497. D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT,
  12498. D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH,
  12499. D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION,
  12500. D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION,
  12501. D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE,
  12502. D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES,
  12503. D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE,
  12504. D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW,
  12505. D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW,
  12506. D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW,
  12507. D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER,
  12508. D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE,
  12509. D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT,
  12510. D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA,
  12511. D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION,
  12512. D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION,
  12513. D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME,
  12514. D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES,
  12515. D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT,
  12516. D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64,
  12517. D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION,
  12518. D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE,
  12519. D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1,
  12520. D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION,
  12521. D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2,
  12522. D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1,
  12523. D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE,
  12524. D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO,
  12525. D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE,
  12526. D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS,
  12527. D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND,
  12528. D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND,
  12529. D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION,
  12530. D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP,
  12531. D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1,
  12532. D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND,
  12533. D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND,
  12534. D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH,
  12535. D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME,
  12536. D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA,
  12537. D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER,
  12538. D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST,
  12539. D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH,
  12540. D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM,
  12541. D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1,
  12542. D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1,
  12543. D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT,
  12544. D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2,
  12545. D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS
  12546. } D3D12_AUTO_BREADCRUMB_OP;
  12547. typedef struct D3D12_AUTO_BREADCRUMB_NODE
  12548. {
  12549. const char *pCommandListDebugNameA;
  12550. const wchar_t *pCommandListDebugNameW;
  12551. const char *pCommandQueueDebugNameA;
  12552. const wchar_t *pCommandQueueDebugNameW;
  12553. ID3D12GraphicsCommandList *pCommandList;
  12554. ID3D12CommandQueue *pCommandQueue;
  12555. UINT32 BreadcrumbCount;
  12556. const UINT32 *pLastBreadcrumbValue;
  12557. const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
  12558. const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
  12559. } D3D12_AUTO_BREADCRUMB_NODE;
  12560. typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
  12561. {
  12562. UINT BreadcrumbIndex;
  12563. const wchar_t *pContextString;
  12564. } D3D12_DRED_BREADCRUMB_CONTEXT;
  12565. typedef struct D3D12_AUTO_BREADCRUMB_NODE1
  12566. {
  12567. const char *pCommandListDebugNameA;
  12568. const wchar_t *pCommandListDebugNameW;
  12569. const char *pCommandQueueDebugNameA;
  12570. const wchar_t *pCommandQueueDebugNameW;
  12571. ID3D12GraphicsCommandList *pCommandList;
  12572. ID3D12CommandQueue *pCommandQueue;
  12573. UINT BreadcrumbCount;
  12574. const UINT *pLastBreadcrumbValue;
  12575. const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
  12576. const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
  12577. UINT BreadcrumbContextsCount;
  12578. D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
  12579. } D3D12_AUTO_BREADCRUMB_NODE1;
  12580. typedef
  12581. enum D3D12_DRED_VERSION
  12582. {
  12583. D3D12_DRED_VERSION_1_0 = 0x1,
  12584. D3D12_DRED_VERSION_1_1 = 0x2,
  12585. D3D12_DRED_VERSION_1_2 = 0x3,
  12586. D3D12_DRED_VERSION_1_3 = 0x4
  12587. } D3D12_DRED_VERSION;
  12588. typedef
  12589. enum D3D12_DRED_FLAGS
  12590. {
  12591. D3D12_DRED_FLAG_NONE = 0,
  12592. D3D12_DRED_FLAG_FORCE_ENABLE = 1,
  12593. D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2
  12594. } D3D12_DRED_FLAGS;
  12595. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS )
  12596. typedef
  12597. enum D3D12_DRED_ENABLEMENT
  12598. {
  12599. D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0,
  12600. D3D12_DRED_ENABLEMENT_FORCED_OFF = 1,
  12601. D3D12_DRED_ENABLEMENT_FORCED_ON = 2
  12602. } D3D12_DRED_ENABLEMENT;
  12603. typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
  12604. {
  12605. _In_ D3D12_DRED_FLAGS Flags;
  12606. _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
  12607. } D3D12_DEVICE_REMOVED_EXTENDED_DATA;
  12608. typedef
  12609. enum D3D12_DRED_ALLOCATION_TYPE
  12610. {
  12611. D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19,
  12612. D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20,
  12613. D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21,
  12614. D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22,
  12615. D3D12_DRED_ALLOCATION_TYPE_FENCE = 23,
  12616. D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24,
  12617. D3D12_DRED_ALLOCATION_TYPE_HEAP = 25,
  12618. D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27,
  12619. D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28,
  12620. D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29,
  12621. D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30,
  12622. D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32,
  12623. D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34,
  12624. D3D12_DRED_ALLOCATION_TYPE_PASS = 35,
  12625. D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36,
  12626. D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37,
  12627. D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38,
  12628. D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39,
  12629. D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40,
  12630. D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41,
  12631. D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42,
  12632. D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43,
  12633. D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44,
  12634. D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45,
  12635. D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46,
  12636. D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47,
  12637. D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48,
  12638. D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49,
  12639. D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
  12640. } D3D12_DRED_ALLOCATION_TYPE;
  12641. typedef struct D3D12_DRED_ALLOCATION_NODE
  12642. {
  12643. const char *ObjectNameA;
  12644. const wchar_t *ObjectNameW;
  12645. D3D12_DRED_ALLOCATION_TYPE AllocationType;
  12646. const struct D3D12_DRED_ALLOCATION_NODE *pNext;
  12647. } D3D12_DRED_ALLOCATION_NODE;
  12648. typedef struct D3D12_DRED_ALLOCATION_NODE1
  12649. {
  12650. const char *ObjectNameA;
  12651. const wchar_t *ObjectNameW;
  12652. D3D12_DRED_ALLOCATION_TYPE AllocationType;
  12653. const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
  12654. const IUnknown *pObject;
  12655. } D3D12_DRED_ALLOCATION_NODE1;
  12656. typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
  12657. {
  12658. _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
  12659. } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
  12660. typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
  12661. {
  12662. _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
  12663. } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
  12664. typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
  12665. {
  12666. D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
  12667. _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
  12668. _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
  12669. } D3D12_DRED_PAGE_FAULT_OUTPUT;
  12670. typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
  12671. {
  12672. D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
  12673. _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
  12674. _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
  12675. } D3D12_DRED_PAGE_FAULT_OUTPUT1;
  12676. typedef
  12677. enum D3D12_DRED_PAGE_FAULT_FLAGS
  12678. {
  12679. D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0
  12680. } D3D12_DRED_PAGE_FAULT_FLAGS;
  12681. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS )
  12682. typedef
  12683. enum D3D12_DRED_DEVICE_STATE
  12684. {
  12685. D3D12_DRED_DEVICE_STATE_UNKNOWN = 0,
  12686. D3D12_DRED_DEVICE_STATE_HUNG = 3,
  12687. D3D12_DRED_DEVICE_STATE_FAULT = 6,
  12688. D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7
  12689. } D3D12_DRED_DEVICE_STATE;
  12690. typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
  12691. {
  12692. D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
  12693. _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
  12694. _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
  12695. D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
  12696. } D3D12_DRED_PAGE_FAULT_OUTPUT2;
  12697. typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
  12698. {
  12699. HRESULT DeviceRemovedReason;
  12700. D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
  12701. D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
  12702. } D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
  12703. typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
  12704. {
  12705. HRESULT DeviceRemovedReason;
  12706. D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
  12707. D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
  12708. } D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
  12709. typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
  12710. {
  12711. HRESULT DeviceRemovedReason;
  12712. D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
  12713. D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
  12714. D3D12_DRED_DEVICE_STATE DeviceState;
  12715. } D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
  12716. typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
  12717. {
  12718. D3D12_DRED_VERSION Version;
  12719. union
  12720. {
  12721. D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
  12722. D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
  12723. D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
  12724. D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
  12725. } ;
  12726. } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
  12727. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec;
  12728. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec;
  12729. #ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
  12730. #define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
  12731. /* interface ID3D12DeviceRemovedExtendedDataSettings */
  12732. /* [unique][local][object][uuid] */
  12733. EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings;
  12734. #if defined(__cplusplus) && !defined(CINTERFACE)
  12735. MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63")
  12736. ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
  12737. {
  12738. public:
  12739. virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
  12740. D3D12_DRED_ENABLEMENT Enablement) = 0;
  12741. virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
  12742. D3D12_DRED_ENABLEMENT Enablement) = 0;
  12743. virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
  12744. D3D12_DRED_ENABLEMENT Enablement) = 0;
  12745. };
  12746. #else /* C style interface */
  12747. typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl
  12748. {
  12749. BEGIN_INTERFACE
  12750. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  12751. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  12752. ID3D12DeviceRemovedExtendedDataSettings * This,
  12753. REFIID riid,
  12754. _COM_Outptr_ void **ppvObject);
  12755. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  12756. ULONG ( STDMETHODCALLTYPE *AddRef )(
  12757. ID3D12DeviceRemovedExtendedDataSettings * This);
  12758. DECLSPEC_XFGVIRT(IUnknown, Release)
  12759. ULONG ( STDMETHODCALLTYPE *Release )(
  12760. ID3D12DeviceRemovedExtendedDataSettings * This);
  12761. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
  12762. void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
  12763. ID3D12DeviceRemovedExtendedDataSettings * This,
  12764. D3D12_DRED_ENABLEMENT Enablement);
  12765. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
  12766. void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
  12767. ID3D12DeviceRemovedExtendedDataSettings * This,
  12768. D3D12_DRED_ENABLEMENT Enablement);
  12769. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
  12770. void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
  12771. ID3D12DeviceRemovedExtendedDataSettings * This,
  12772. D3D12_DRED_ENABLEMENT Enablement);
  12773. END_INTERFACE
  12774. } ID3D12DeviceRemovedExtendedDataSettingsVtbl;
  12775. interface ID3D12DeviceRemovedExtendedDataSettings
  12776. {
  12777. CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl;
  12778. };
  12779. #ifdef COBJMACROS
  12780. #define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \
  12781. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  12782. #define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \
  12783. ( (This)->lpVtbl -> AddRef(This) )
  12784. #define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \
  12785. ( (This)->lpVtbl -> Release(This) )
  12786. #define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \
  12787. ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
  12788. #define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \
  12789. ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
  12790. #define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \
  12791. ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
  12792. #endif /* COBJMACROS */
  12793. #endif /* C style interface */
  12794. #endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
  12795. #ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
  12796. #define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
  12797. /* interface ID3D12DeviceRemovedExtendedDataSettings1 */
  12798. /* [unique][local][object][uuid] */
  12799. EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1;
  12800. #if defined(__cplusplus) && !defined(CINTERFACE)
  12801. MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B")
  12802. ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
  12803. {
  12804. public:
  12805. virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
  12806. D3D12_DRED_ENABLEMENT Enablement) = 0;
  12807. };
  12808. #else /* C style interface */
  12809. typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl
  12810. {
  12811. BEGIN_INTERFACE
  12812. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  12813. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  12814. ID3D12DeviceRemovedExtendedDataSettings1 * This,
  12815. REFIID riid,
  12816. _COM_Outptr_ void **ppvObject);
  12817. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  12818. ULONG ( STDMETHODCALLTYPE *AddRef )(
  12819. ID3D12DeviceRemovedExtendedDataSettings1 * This);
  12820. DECLSPEC_XFGVIRT(IUnknown, Release)
  12821. ULONG ( STDMETHODCALLTYPE *Release )(
  12822. ID3D12DeviceRemovedExtendedDataSettings1 * This);
  12823. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
  12824. void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
  12825. ID3D12DeviceRemovedExtendedDataSettings1 * This,
  12826. D3D12_DRED_ENABLEMENT Enablement);
  12827. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
  12828. void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
  12829. ID3D12DeviceRemovedExtendedDataSettings1 * This,
  12830. D3D12_DRED_ENABLEMENT Enablement);
  12831. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
  12832. void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
  12833. ID3D12DeviceRemovedExtendedDataSettings1 * This,
  12834. D3D12_DRED_ENABLEMENT Enablement);
  12835. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
  12836. void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
  12837. ID3D12DeviceRemovedExtendedDataSettings1 * This,
  12838. D3D12_DRED_ENABLEMENT Enablement);
  12839. END_INTERFACE
  12840. } ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
  12841. interface ID3D12DeviceRemovedExtendedDataSettings1
  12842. {
  12843. CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl;
  12844. };
  12845. #ifdef COBJMACROS
  12846. #define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \
  12847. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  12848. #define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \
  12849. ( (This)->lpVtbl -> AddRef(This) )
  12850. #define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \
  12851. ( (This)->lpVtbl -> Release(This) )
  12852. #define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \
  12853. ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
  12854. #define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \
  12855. ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
  12856. #define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \
  12857. ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
  12858. #define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \
  12859. ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
  12860. #endif /* COBJMACROS */
  12861. #endif /* C style interface */
  12862. #endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
  12863. #ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
  12864. #define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
  12865. /* interface ID3D12DeviceRemovedExtendedDataSettings2 */
  12866. /* [unique][local][object][uuid] */
  12867. EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2;
  12868. #if defined(__cplusplus) && !defined(CINTERFACE)
  12869. MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea")
  12870. ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1
  12871. {
  12872. public:
  12873. virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs(
  12874. BOOL MarkersOnly) = 0;
  12875. };
  12876. #else /* C style interface */
  12877. typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl
  12878. {
  12879. BEGIN_INTERFACE
  12880. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  12881. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  12882. ID3D12DeviceRemovedExtendedDataSettings2 * This,
  12883. REFIID riid,
  12884. _COM_Outptr_ void **ppvObject);
  12885. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  12886. ULONG ( STDMETHODCALLTYPE *AddRef )(
  12887. ID3D12DeviceRemovedExtendedDataSettings2 * This);
  12888. DECLSPEC_XFGVIRT(IUnknown, Release)
  12889. ULONG ( STDMETHODCALLTYPE *Release )(
  12890. ID3D12DeviceRemovedExtendedDataSettings2 * This);
  12891. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
  12892. void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
  12893. ID3D12DeviceRemovedExtendedDataSettings2 * This,
  12894. D3D12_DRED_ENABLEMENT Enablement);
  12895. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
  12896. void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
  12897. ID3D12DeviceRemovedExtendedDataSettings2 * This,
  12898. D3D12_DRED_ENABLEMENT Enablement);
  12899. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
  12900. void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
  12901. ID3D12DeviceRemovedExtendedDataSettings2 * This,
  12902. D3D12_DRED_ENABLEMENT Enablement);
  12903. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
  12904. void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
  12905. ID3D12DeviceRemovedExtendedDataSettings2 * This,
  12906. D3D12_DRED_ENABLEMENT Enablement);
  12907. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs)
  12908. void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )(
  12909. ID3D12DeviceRemovedExtendedDataSettings2 * This,
  12910. BOOL MarkersOnly);
  12911. END_INTERFACE
  12912. } ID3D12DeviceRemovedExtendedDataSettings2Vtbl;
  12913. interface ID3D12DeviceRemovedExtendedDataSettings2
  12914. {
  12915. CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl;
  12916. };
  12917. #ifdef COBJMACROS
  12918. #define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \
  12919. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  12920. #define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \
  12921. ( (This)->lpVtbl -> AddRef(This) )
  12922. #define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \
  12923. ( (This)->lpVtbl -> Release(This) )
  12924. #define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \
  12925. ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
  12926. #define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \
  12927. ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
  12928. #define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \
  12929. ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
  12930. #define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \
  12931. ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
  12932. #define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \
  12933. ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) )
  12934. #endif /* COBJMACROS */
  12935. #endif /* C style interface */
  12936. #endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */
  12937. #ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
  12938. #define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
  12939. /* interface ID3D12DeviceRemovedExtendedData */
  12940. /* [unique][local][object][uuid] */
  12941. EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData;
  12942. #if defined(__cplusplus) && !defined(CINTERFACE)
  12943. MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71")
  12944. ID3D12DeviceRemovedExtendedData : public IUnknown
  12945. {
  12946. public:
  12947. virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
  12948. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0;
  12949. virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
  12950. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0;
  12951. };
  12952. #else /* C style interface */
  12953. typedef struct ID3D12DeviceRemovedExtendedDataVtbl
  12954. {
  12955. BEGIN_INTERFACE
  12956. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  12957. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  12958. ID3D12DeviceRemovedExtendedData * This,
  12959. REFIID riid,
  12960. _COM_Outptr_ void **ppvObject);
  12961. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  12962. ULONG ( STDMETHODCALLTYPE *AddRef )(
  12963. ID3D12DeviceRemovedExtendedData * This);
  12964. DECLSPEC_XFGVIRT(IUnknown, Release)
  12965. ULONG ( STDMETHODCALLTYPE *Release )(
  12966. ID3D12DeviceRemovedExtendedData * This);
  12967. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
  12968. HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
  12969. ID3D12DeviceRemovedExtendedData * This,
  12970. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
  12971. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
  12972. HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
  12973. ID3D12DeviceRemovedExtendedData * This,
  12974. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
  12975. END_INTERFACE
  12976. } ID3D12DeviceRemovedExtendedDataVtbl;
  12977. interface ID3D12DeviceRemovedExtendedData
  12978. {
  12979. CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl;
  12980. };
  12981. #ifdef COBJMACROS
  12982. #define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \
  12983. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  12984. #define ID3D12DeviceRemovedExtendedData_AddRef(This) \
  12985. ( (This)->lpVtbl -> AddRef(This) )
  12986. #define ID3D12DeviceRemovedExtendedData_Release(This) \
  12987. ( (This)->lpVtbl -> Release(This) )
  12988. #define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \
  12989. ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
  12990. #define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \
  12991. ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
  12992. #endif /* COBJMACROS */
  12993. #endif /* C style interface */
  12994. #endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
  12995. #ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
  12996. #define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
  12997. /* interface ID3D12DeviceRemovedExtendedData1 */
  12998. /* [unique][local][object][uuid] */
  12999. EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1;
  13000. #if defined(__cplusplus) && !defined(CINTERFACE)
  13001. MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506")
  13002. ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
  13003. {
  13004. public:
  13005. virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
  13006. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0;
  13007. virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
  13008. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0;
  13009. };
  13010. #else /* C style interface */
  13011. typedef struct ID3D12DeviceRemovedExtendedData1Vtbl
  13012. {
  13013. BEGIN_INTERFACE
  13014. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  13015. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  13016. ID3D12DeviceRemovedExtendedData1 * This,
  13017. REFIID riid,
  13018. _COM_Outptr_ void **ppvObject);
  13019. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  13020. ULONG ( STDMETHODCALLTYPE *AddRef )(
  13021. ID3D12DeviceRemovedExtendedData1 * This);
  13022. DECLSPEC_XFGVIRT(IUnknown, Release)
  13023. ULONG ( STDMETHODCALLTYPE *Release )(
  13024. ID3D12DeviceRemovedExtendedData1 * This);
  13025. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
  13026. HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
  13027. ID3D12DeviceRemovedExtendedData1 * This,
  13028. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
  13029. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
  13030. HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
  13031. ID3D12DeviceRemovedExtendedData1 * This,
  13032. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
  13033. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
  13034. HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
  13035. ID3D12DeviceRemovedExtendedData1 * This,
  13036. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
  13037. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
  13038. HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
  13039. ID3D12DeviceRemovedExtendedData1 * This,
  13040. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
  13041. END_INTERFACE
  13042. } ID3D12DeviceRemovedExtendedData1Vtbl;
  13043. interface ID3D12DeviceRemovedExtendedData1
  13044. {
  13045. CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl;
  13046. };
  13047. #ifdef COBJMACROS
  13048. #define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \
  13049. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  13050. #define ID3D12DeviceRemovedExtendedData1_AddRef(This) \
  13051. ( (This)->lpVtbl -> AddRef(This) )
  13052. #define ID3D12DeviceRemovedExtendedData1_Release(This) \
  13053. ( (This)->lpVtbl -> Release(This) )
  13054. #define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \
  13055. ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
  13056. #define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \
  13057. ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
  13058. #define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \
  13059. ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
  13060. #define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \
  13061. ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
  13062. #endif /* COBJMACROS */
  13063. #endif /* C style interface */
  13064. #endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
  13065. #ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
  13066. #define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
  13067. /* interface ID3D12DeviceRemovedExtendedData2 */
  13068. /* [unique][local][object][uuid] */
  13069. EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2;
  13070. #if defined(__cplusplus) && !defined(CINTERFACE)
  13071. MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54")
  13072. ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
  13073. {
  13074. public:
  13075. virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
  13076. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0;
  13077. virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0;
  13078. };
  13079. #else /* C style interface */
  13080. typedef struct ID3D12DeviceRemovedExtendedData2Vtbl
  13081. {
  13082. BEGIN_INTERFACE
  13083. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  13084. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  13085. ID3D12DeviceRemovedExtendedData2 * This,
  13086. REFIID riid,
  13087. _COM_Outptr_ void **ppvObject);
  13088. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  13089. ULONG ( STDMETHODCALLTYPE *AddRef )(
  13090. ID3D12DeviceRemovedExtendedData2 * This);
  13091. DECLSPEC_XFGVIRT(IUnknown, Release)
  13092. ULONG ( STDMETHODCALLTYPE *Release )(
  13093. ID3D12DeviceRemovedExtendedData2 * This);
  13094. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
  13095. HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
  13096. ID3D12DeviceRemovedExtendedData2 * This,
  13097. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
  13098. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
  13099. HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
  13100. ID3D12DeviceRemovedExtendedData2 * This,
  13101. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
  13102. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
  13103. HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
  13104. ID3D12DeviceRemovedExtendedData2 * This,
  13105. _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
  13106. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
  13107. HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
  13108. ID3D12DeviceRemovedExtendedData2 * This,
  13109. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
  13110. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2)
  13111. HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )(
  13112. ID3D12DeviceRemovedExtendedData2 * This,
  13113. _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput);
  13114. DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState)
  13115. D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )(
  13116. ID3D12DeviceRemovedExtendedData2 * This);
  13117. END_INTERFACE
  13118. } ID3D12DeviceRemovedExtendedData2Vtbl;
  13119. interface ID3D12DeviceRemovedExtendedData2
  13120. {
  13121. CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl;
  13122. };
  13123. #ifdef COBJMACROS
  13124. #define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \
  13125. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  13126. #define ID3D12DeviceRemovedExtendedData2_AddRef(This) \
  13127. ( (This)->lpVtbl -> AddRef(This) )
  13128. #define ID3D12DeviceRemovedExtendedData2_Release(This) \
  13129. ( (This)->lpVtbl -> Release(This) )
  13130. #define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \
  13131. ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
  13132. #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \
  13133. ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
  13134. #define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \
  13135. ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
  13136. #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \
  13137. ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
  13138. #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \
  13139. ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) )
  13140. #define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \
  13141. ( (This)->lpVtbl -> GetDeviceState(This) )
  13142. #endif /* COBJMACROS */
  13143. #endif /* C style interface */
  13144. #endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
  13145. /* interface __MIDL_itf_d3d12_0000_0046 */
  13146. /* [local] */
  13147. typedef
  13148. enum D3D12_BACKGROUND_PROCESSING_MODE
  13149. {
  13150. D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
  13151. D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) ,
  13152. D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) ,
  13153. D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 )
  13154. } D3D12_BACKGROUND_PROCESSING_MODE;
  13155. typedef
  13156. enum D3D12_MEASUREMENTS_ACTION
  13157. {
  13158. D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0,
  13159. D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) ,
  13160. D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) ,
  13161. D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 )
  13162. } D3D12_MEASUREMENTS_ACTION;
  13163. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_c_ifspec;
  13164. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_s_ifspec;
  13165. #ifndef __ID3D12Device6_INTERFACE_DEFINED__
  13166. #define __ID3D12Device6_INTERFACE_DEFINED__
  13167. /* interface ID3D12Device6 */
  13168. /* [unique][local][object][uuid] */
  13169. EXTERN_C const IID IID_ID3D12Device6;
  13170. #if defined(__cplusplus) && !defined(CINTERFACE)
  13171. MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
  13172. ID3D12Device6 : public ID3D12Device5
  13173. {
  13174. public:
  13175. virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
  13176. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  13177. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  13178. _In_opt_ HANDLE hEventToSignalUponCompletion,
  13179. _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0;
  13180. };
  13181. #else /* C style interface */
  13182. typedef struct ID3D12Device6Vtbl
  13183. {
  13184. BEGIN_INTERFACE
  13185. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  13186. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  13187. ID3D12Device6 * This,
  13188. REFIID riid,
  13189. _COM_Outptr_ void **ppvObject);
  13190. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  13191. ULONG ( STDMETHODCALLTYPE *AddRef )(
  13192. ID3D12Device6 * This);
  13193. DECLSPEC_XFGVIRT(IUnknown, Release)
  13194. ULONG ( STDMETHODCALLTYPE *Release )(
  13195. ID3D12Device6 * This);
  13196. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  13197. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  13198. ID3D12Device6 * This,
  13199. _In_ REFGUID guid,
  13200. _Inout_ UINT *pDataSize,
  13201. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  13202. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  13203. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  13204. ID3D12Device6 * This,
  13205. _In_ REFGUID guid,
  13206. _In_ UINT DataSize,
  13207. _In_reads_bytes_opt_( DataSize ) const void *pData);
  13208. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  13209. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  13210. ID3D12Device6 * This,
  13211. _In_ REFGUID guid,
  13212. _In_opt_ const IUnknown *pData);
  13213. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  13214. HRESULT ( STDMETHODCALLTYPE *SetName )(
  13215. ID3D12Device6 * This,
  13216. _In_z_ LPCWSTR Name);
  13217. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  13218. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  13219. ID3D12Device6 * This);
  13220. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  13221. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  13222. ID3D12Device6 * This,
  13223. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  13224. REFIID riid,
  13225. _COM_Outptr_ void **ppCommandQueue);
  13226. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  13227. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  13228. ID3D12Device6 * This,
  13229. _In_ D3D12_COMMAND_LIST_TYPE type,
  13230. REFIID riid,
  13231. _COM_Outptr_ void **ppCommandAllocator);
  13232. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  13233. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  13234. ID3D12Device6 * This,
  13235. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  13236. REFIID riid,
  13237. _COM_Outptr_ void **ppPipelineState);
  13238. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  13239. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  13240. ID3D12Device6 * This,
  13241. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  13242. REFIID riid,
  13243. _COM_Outptr_ void **ppPipelineState);
  13244. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  13245. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  13246. ID3D12Device6 * This,
  13247. _In_ UINT nodeMask,
  13248. _In_ D3D12_COMMAND_LIST_TYPE type,
  13249. _In_ ID3D12CommandAllocator *pCommandAllocator,
  13250. _In_opt_ ID3D12PipelineState *pInitialState,
  13251. REFIID riid,
  13252. _COM_Outptr_ void **ppCommandList);
  13253. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  13254. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  13255. ID3D12Device6 * This,
  13256. D3D12_FEATURE Feature,
  13257. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  13258. UINT FeatureSupportDataSize);
  13259. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  13260. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  13261. ID3D12Device6 * This,
  13262. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  13263. REFIID riid,
  13264. _COM_Outptr_ void **ppvHeap);
  13265. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  13266. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  13267. ID3D12Device6 * This,
  13268. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  13269. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  13270. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  13271. ID3D12Device6 * This,
  13272. _In_ UINT nodeMask,
  13273. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  13274. _In_ SIZE_T blobLengthInBytes,
  13275. REFIID riid,
  13276. _COM_Outptr_ void **ppvRootSignature);
  13277. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  13278. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  13279. ID3D12Device6 * This,
  13280. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  13281. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  13282. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  13283. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  13284. ID3D12Device6 * This,
  13285. _In_opt_ ID3D12Resource *pResource,
  13286. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  13287. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  13288. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  13289. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  13290. ID3D12Device6 * This,
  13291. _In_opt_ ID3D12Resource *pResource,
  13292. _In_opt_ ID3D12Resource *pCounterResource,
  13293. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  13294. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  13295. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  13296. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  13297. ID3D12Device6 * This,
  13298. _In_opt_ ID3D12Resource *pResource,
  13299. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  13300. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  13301. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  13302. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  13303. ID3D12Device6 * This,
  13304. _In_opt_ ID3D12Resource *pResource,
  13305. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  13306. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  13307. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  13308. void ( STDMETHODCALLTYPE *CreateSampler )(
  13309. ID3D12Device6 * This,
  13310. _In_ const D3D12_SAMPLER_DESC *pDesc,
  13311. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  13312. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  13313. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  13314. ID3D12Device6 * This,
  13315. _In_ UINT NumDestDescriptorRanges,
  13316. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  13317. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  13318. _In_ UINT NumSrcDescriptorRanges,
  13319. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  13320. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  13321. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  13322. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  13323. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  13324. ID3D12Device6 * This,
  13325. _In_ UINT NumDescriptors,
  13326. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  13327. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  13328. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  13329. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  13330. #if !defined(_WIN32)
  13331. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  13332. ID3D12Device6 * This,
  13333. _In_ UINT visibleMask,
  13334. _In_ UINT numResourceDescs,
  13335. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  13336. #else
  13337. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  13338. ID3D12Device6 * This,
  13339. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  13340. _In_ UINT visibleMask,
  13341. _In_ UINT numResourceDescs,
  13342. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  13343. #endif
  13344. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  13345. #if !defined(_WIN32)
  13346. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  13347. ID3D12Device6 * This,
  13348. _In_ UINT nodeMask,
  13349. D3D12_HEAP_TYPE heapType);
  13350. #else
  13351. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  13352. ID3D12Device6 * This,
  13353. D3D12_HEAP_PROPERTIES * RetVal,
  13354. _In_ UINT nodeMask,
  13355. D3D12_HEAP_TYPE heapType);
  13356. #endif
  13357. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  13358. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  13359. ID3D12Device6 * This,
  13360. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  13361. D3D12_HEAP_FLAGS HeapFlags,
  13362. _In_ const D3D12_RESOURCE_DESC *pDesc,
  13363. D3D12_RESOURCE_STATES InitialResourceState,
  13364. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  13365. REFIID riidResource,
  13366. _COM_Outptr_opt_ void **ppvResource);
  13367. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  13368. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  13369. ID3D12Device6 * This,
  13370. _In_ const D3D12_HEAP_DESC *pDesc,
  13371. REFIID riid,
  13372. _COM_Outptr_opt_ void **ppvHeap);
  13373. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  13374. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  13375. ID3D12Device6 * This,
  13376. _In_ ID3D12Heap *pHeap,
  13377. UINT64 HeapOffset,
  13378. _In_ const D3D12_RESOURCE_DESC *pDesc,
  13379. D3D12_RESOURCE_STATES InitialState,
  13380. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  13381. REFIID riid,
  13382. _COM_Outptr_opt_ void **ppvResource);
  13383. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  13384. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  13385. ID3D12Device6 * This,
  13386. _In_ const D3D12_RESOURCE_DESC *pDesc,
  13387. D3D12_RESOURCE_STATES InitialState,
  13388. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  13389. REFIID riid,
  13390. _COM_Outptr_opt_ void **ppvResource);
  13391. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  13392. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  13393. ID3D12Device6 * This,
  13394. _In_ ID3D12DeviceChild *pObject,
  13395. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  13396. DWORD Access,
  13397. _In_opt_ LPCWSTR Name,
  13398. _Out_ HANDLE *pHandle);
  13399. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  13400. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  13401. ID3D12Device6 * This,
  13402. _In_ HANDLE NTHandle,
  13403. REFIID riid,
  13404. _COM_Outptr_opt_ void **ppvObj);
  13405. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  13406. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  13407. ID3D12Device6 * This,
  13408. _In_ LPCWSTR Name,
  13409. DWORD Access,
  13410. /* [annotation][out] */
  13411. _Out_ HANDLE *pNTHandle);
  13412. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  13413. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  13414. ID3D12Device6 * This,
  13415. UINT NumObjects,
  13416. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  13417. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  13418. HRESULT ( STDMETHODCALLTYPE *Evict )(
  13419. ID3D12Device6 * This,
  13420. UINT NumObjects,
  13421. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  13422. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  13423. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  13424. ID3D12Device6 * This,
  13425. UINT64 InitialValue,
  13426. D3D12_FENCE_FLAGS Flags,
  13427. REFIID riid,
  13428. _COM_Outptr_ void **ppFence);
  13429. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  13430. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  13431. ID3D12Device6 * This);
  13432. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  13433. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  13434. ID3D12Device6 * This,
  13435. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  13436. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  13437. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  13438. UINT64 BaseOffset,
  13439. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  13440. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  13441. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  13442. _Out_opt_ UINT64 *pTotalBytes);
  13443. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  13444. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  13445. ID3D12Device6 * This,
  13446. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  13447. REFIID riid,
  13448. _COM_Outptr_opt_ void **ppvHeap);
  13449. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  13450. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  13451. ID3D12Device6 * This,
  13452. BOOL Enable);
  13453. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  13454. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  13455. ID3D12Device6 * This,
  13456. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  13457. _In_opt_ ID3D12RootSignature *pRootSignature,
  13458. REFIID riid,
  13459. _COM_Outptr_opt_ void **ppvCommandSignature);
  13460. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  13461. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  13462. ID3D12Device6 * This,
  13463. _In_ ID3D12Resource *pTiledResource,
  13464. _Out_opt_ UINT *pNumTilesForEntireResource,
  13465. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  13466. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  13467. _Inout_opt_ UINT *pNumSubresourceTilings,
  13468. _In_ UINT FirstSubresourceTilingToGet,
  13469. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  13470. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  13471. #if !defined(_WIN32)
  13472. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  13473. ID3D12Device6 * This);
  13474. #else
  13475. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  13476. ID3D12Device6 * This,
  13477. LUID * RetVal);
  13478. #endif
  13479. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  13480. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  13481. ID3D12Device6 * This,
  13482. _In_reads_(BlobLength) const void *pLibraryBlob,
  13483. SIZE_T BlobLength,
  13484. REFIID riid,
  13485. _COM_Outptr_ void **ppPipelineLibrary);
  13486. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  13487. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  13488. ID3D12Device6 * This,
  13489. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  13490. _In_reads_(NumFences) const UINT64 *pFenceValues,
  13491. UINT NumFences,
  13492. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  13493. HANDLE hEvent);
  13494. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  13495. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  13496. ID3D12Device6 * This,
  13497. UINT NumObjects,
  13498. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  13499. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  13500. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  13501. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  13502. ID3D12Device6 * This,
  13503. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  13504. REFIID riid,
  13505. _COM_Outptr_ void **ppPipelineState);
  13506. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  13507. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  13508. ID3D12Device6 * This,
  13509. _In_ const void *pAddress,
  13510. REFIID riid,
  13511. _COM_Outptr_ void **ppvHeap);
  13512. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  13513. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  13514. ID3D12Device6 * This,
  13515. _In_ HANDLE hFileMapping,
  13516. REFIID riid,
  13517. _COM_Outptr_ void **ppvHeap);
  13518. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  13519. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  13520. ID3D12Device6 * This,
  13521. D3D12_RESIDENCY_FLAGS Flags,
  13522. UINT NumObjects,
  13523. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  13524. _In_ ID3D12Fence *pFenceToSignal,
  13525. UINT64 FenceValueToSignal);
  13526. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  13527. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  13528. ID3D12Device6 * This,
  13529. _In_ UINT nodeMask,
  13530. _In_ D3D12_COMMAND_LIST_TYPE type,
  13531. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  13532. REFIID riid,
  13533. _COM_Outptr_ void **ppCommandList);
  13534. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  13535. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  13536. ID3D12Device6 * This,
  13537. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  13538. _In_ REFIID riid,
  13539. _COM_Outptr_ void **ppSession);
  13540. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  13541. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  13542. ID3D12Device6 * This,
  13543. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  13544. D3D12_HEAP_FLAGS HeapFlags,
  13545. _In_ const D3D12_RESOURCE_DESC *pDesc,
  13546. D3D12_RESOURCE_STATES InitialResourceState,
  13547. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  13548. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  13549. REFIID riidResource,
  13550. _COM_Outptr_opt_ void **ppvResource);
  13551. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  13552. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  13553. ID3D12Device6 * This,
  13554. _In_ const D3D12_HEAP_DESC *pDesc,
  13555. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  13556. REFIID riid,
  13557. _COM_Outptr_opt_ void **ppvHeap);
  13558. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  13559. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  13560. ID3D12Device6 * This,
  13561. _In_ const D3D12_RESOURCE_DESC *pDesc,
  13562. D3D12_RESOURCE_STATES InitialState,
  13563. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  13564. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  13565. REFIID riid,
  13566. _COM_Outptr_opt_ void **ppvResource);
  13567. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  13568. #if !defined(_WIN32)
  13569. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  13570. ID3D12Device6 * This,
  13571. UINT visibleMask,
  13572. UINT numResourceDescs,
  13573. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  13574. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  13575. #else
  13576. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  13577. ID3D12Device6 * This,
  13578. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  13579. UINT visibleMask,
  13580. UINT numResourceDescs,
  13581. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  13582. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  13583. #endif
  13584. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  13585. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  13586. ID3D12Device6 * This,
  13587. _In_ ID3D12LifetimeOwner *pOwner,
  13588. REFIID riid,
  13589. _COM_Outptr_ void **ppvTracker);
  13590. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  13591. void ( STDMETHODCALLTYPE *RemoveDevice )(
  13592. ID3D12Device6 * This);
  13593. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  13594. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  13595. ID3D12Device6 * This,
  13596. _Inout_ UINT *pNumMetaCommands,
  13597. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  13598. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  13599. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  13600. ID3D12Device6 * This,
  13601. _In_ REFGUID CommandId,
  13602. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  13603. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  13604. _Inout_ UINT *pParameterCount,
  13605. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  13606. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  13607. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  13608. ID3D12Device6 * This,
  13609. _In_ REFGUID CommandId,
  13610. _In_ UINT NodeMask,
  13611. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  13612. _In_ SIZE_T CreationParametersDataSizeInBytes,
  13613. REFIID riid,
  13614. _COM_Outptr_ void **ppMetaCommand);
  13615. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  13616. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  13617. ID3D12Device6 * This,
  13618. const D3D12_STATE_OBJECT_DESC *pDesc,
  13619. REFIID riid,
  13620. _COM_Outptr_ void **ppStateObject);
  13621. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  13622. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  13623. ID3D12Device6 * This,
  13624. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  13625. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  13626. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  13627. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  13628. ID3D12Device6 * This,
  13629. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  13630. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  13631. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  13632. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  13633. ID3D12Device6 * This,
  13634. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  13635. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  13636. _In_opt_ HANDLE hEventToSignalUponCompletion,
  13637. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  13638. END_INTERFACE
  13639. } ID3D12Device6Vtbl;
  13640. interface ID3D12Device6
  13641. {
  13642. CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl;
  13643. };
  13644. #ifdef COBJMACROS
  13645. #define ID3D12Device6_QueryInterface(This,riid,ppvObject) \
  13646. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  13647. #define ID3D12Device6_AddRef(This) \
  13648. ( (This)->lpVtbl -> AddRef(This) )
  13649. #define ID3D12Device6_Release(This) \
  13650. ( (This)->lpVtbl -> Release(This) )
  13651. #define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \
  13652. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  13653. #define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \
  13654. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  13655. #define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \
  13656. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  13657. #define ID3D12Device6_SetName(This,Name) \
  13658. ( (This)->lpVtbl -> SetName(This,Name) )
  13659. #define ID3D12Device6_GetNodeCount(This) \
  13660. ( (This)->lpVtbl -> GetNodeCount(This) )
  13661. #define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  13662. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  13663. #define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  13664. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  13665. #define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  13666. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  13667. #define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  13668. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  13669. #define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  13670. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  13671. #define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  13672. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  13673. #define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  13674. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  13675. #define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  13676. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  13677. #define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  13678. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  13679. #define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  13680. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  13681. #define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  13682. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  13683. #define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  13684. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  13685. #define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  13686. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  13687. #define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  13688. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  13689. #define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \
  13690. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  13691. #define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  13692. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  13693. #define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  13694. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  13695. #if !defined(_WIN32)
  13696. #define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  13697. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  13698. #else
  13699. #define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  13700. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  13701. #endif
  13702. #if !defined(_WIN32)
  13703. #define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \
  13704. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  13705. #else
  13706. #define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  13707. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  13708. #endif
  13709. #define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  13710. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  13711. #define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \
  13712. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  13713. #define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  13714. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  13715. #define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  13716. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  13717. #define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  13718. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  13719. #define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  13720. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  13721. #define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  13722. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  13723. #define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \
  13724. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  13725. #define ID3D12Device6_Evict(This,NumObjects,ppObjects) \
  13726. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  13727. #define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  13728. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  13729. #define ID3D12Device6_GetDeviceRemovedReason(This) \
  13730. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  13731. #define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  13732. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  13733. #define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  13734. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  13735. #define ID3D12Device6_SetStablePowerState(This,Enable) \
  13736. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  13737. #define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  13738. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  13739. #define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  13740. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  13741. #if !defined(_WIN32)
  13742. #define ID3D12Device6_GetAdapterLuid(This) \
  13743. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  13744. #else
  13745. #define ID3D12Device6_GetAdapterLuid(This,RetVal) \
  13746. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  13747. #endif
  13748. #define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  13749. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  13750. #define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  13751. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  13752. #define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  13753. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  13754. #define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  13755. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  13756. #define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  13757. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  13758. #define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  13759. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  13760. #define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  13761. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  13762. #define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  13763. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  13764. #define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  13765. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  13766. #define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  13767. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  13768. #define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  13769. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  13770. #define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  13771. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  13772. #if !defined(_WIN32)
  13773. #define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  13774. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  13775. #else
  13776. #define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  13777. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  13778. #endif
  13779. #define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  13780. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  13781. #define ID3D12Device6_RemoveDevice(This) \
  13782. ( (This)->lpVtbl -> RemoveDevice(This) )
  13783. #define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  13784. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  13785. #define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  13786. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  13787. #define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  13788. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  13789. #define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \
  13790. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  13791. #define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  13792. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  13793. #define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  13794. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  13795. #define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  13796. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  13797. #endif /* COBJMACROS */
  13798. #endif /* C style interface */
  13799. #endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
  13800. /* interface __MIDL_itf_d3d12_0000_0047 */
  13801. /* [local] */
  13802. DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82);
  13803. typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
  13804. {
  13805. UINT NodeIndex;
  13806. UINT Count;
  13807. } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
  13808. typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
  13809. {
  13810. UINT NodeIndex;
  13811. UINT Count;
  13812. GUID *pTypes;
  13813. } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
  13814. typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
  13815. {
  13816. UINT NodeMask;
  13817. D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
  13818. GUID ProtectionType;
  13819. } D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
  13820. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_c_ifspec;
  13821. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_s_ifspec;
  13822. #ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
  13823. #define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
  13824. /* interface ID3D12ProtectedResourceSession1 */
  13825. /* [unique][local][object][uuid] */
  13826. EXTERN_C const IID IID_ID3D12ProtectedResourceSession1;
  13827. #if defined(__cplusplus) && !defined(CINTERFACE)
  13828. MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409")
  13829. ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
  13830. {
  13831. public:
  13832. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  13833. virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
  13834. #else
  13835. virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1(
  13836. D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0;
  13837. #endif
  13838. };
  13839. #else /* C style interface */
  13840. typedef struct ID3D12ProtectedResourceSession1Vtbl
  13841. {
  13842. BEGIN_INTERFACE
  13843. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  13844. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  13845. ID3D12ProtectedResourceSession1 * This,
  13846. REFIID riid,
  13847. _COM_Outptr_ void **ppvObject);
  13848. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  13849. ULONG ( STDMETHODCALLTYPE *AddRef )(
  13850. ID3D12ProtectedResourceSession1 * This);
  13851. DECLSPEC_XFGVIRT(IUnknown, Release)
  13852. ULONG ( STDMETHODCALLTYPE *Release )(
  13853. ID3D12ProtectedResourceSession1 * This);
  13854. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  13855. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  13856. ID3D12ProtectedResourceSession1 * This,
  13857. _In_ REFGUID guid,
  13858. _Inout_ UINT *pDataSize,
  13859. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  13860. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  13861. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  13862. ID3D12ProtectedResourceSession1 * This,
  13863. _In_ REFGUID guid,
  13864. _In_ UINT DataSize,
  13865. _In_reads_bytes_opt_( DataSize ) const void *pData);
  13866. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  13867. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  13868. ID3D12ProtectedResourceSession1 * This,
  13869. _In_ REFGUID guid,
  13870. _In_opt_ const IUnknown *pData);
  13871. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  13872. HRESULT ( STDMETHODCALLTYPE *SetName )(
  13873. ID3D12ProtectedResourceSession1 * This,
  13874. _In_z_ LPCWSTR Name);
  13875. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  13876. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  13877. ID3D12ProtectedResourceSession1 * This,
  13878. REFIID riid,
  13879. _COM_Outptr_opt_ void **ppvDevice);
  13880. DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
  13881. HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
  13882. ID3D12ProtectedResourceSession1 * This,
  13883. REFIID riid,
  13884. _COM_Outptr_opt_ void **ppFence);
  13885. DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
  13886. D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
  13887. ID3D12ProtectedResourceSession1 * This);
  13888. DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
  13889. #if !defined(_WIN32)
  13890. D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
  13891. ID3D12ProtectedResourceSession1 * This);
  13892. #else
  13893. D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
  13894. ID3D12ProtectedResourceSession1 * This,
  13895. D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
  13896. #endif
  13897. DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1)
  13898. #if !defined(_WIN32)
  13899. D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
  13900. ID3D12ProtectedResourceSession1 * This);
  13901. #else
  13902. D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
  13903. ID3D12ProtectedResourceSession1 * This,
  13904. D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal);
  13905. #endif
  13906. END_INTERFACE
  13907. } ID3D12ProtectedResourceSession1Vtbl;
  13908. interface ID3D12ProtectedResourceSession1
  13909. {
  13910. CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl;
  13911. };
  13912. #ifdef COBJMACROS
  13913. #define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \
  13914. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  13915. #define ID3D12ProtectedResourceSession1_AddRef(This) \
  13916. ( (This)->lpVtbl -> AddRef(This) )
  13917. #define ID3D12ProtectedResourceSession1_Release(This) \
  13918. ( (This)->lpVtbl -> Release(This) )
  13919. #define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \
  13920. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  13921. #define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \
  13922. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  13923. #define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \
  13924. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  13925. #define ID3D12ProtectedResourceSession1_SetName(This,Name) \
  13926. ( (This)->lpVtbl -> SetName(This,Name) )
  13927. #define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \
  13928. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  13929. #define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \
  13930. ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
  13931. #define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \
  13932. ( (This)->lpVtbl -> GetSessionStatus(This) )
  13933. #if !defined(_WIN32)
  13934. #define ID3D12ProtectedResourceSession1_GetDesc(This) \
  13935. ( (This)->lpVtbl -> GetDesc(This) )
  13936. #else
  13937. #define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \
  13938. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  13939. #endif
  13940. #if !defined(_WIN32)
  13941. #define ID3D12ProtectedResourceSession1_GetDesc1(This) \
  13942. ( (This)->lpVtbl -> GetDesc1(This) )
  13943. #else
  13944. #define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \
  13945. ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
  13946. #endif
  13947. #endif /* COBJMACROS */
  13948. #endif /* C style interface */
  13949. #endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
  13950. #ifndef __ID3D12Device7_INTERFACE_DEFINED__
  13951. #define __ID3D12Device7_INTERFACE_DEFINED__
  13952. /* interface ID3D12Device7 */
  13953. /* [unique][local][object][uuid] */
  13954. EXTERN_C const IID IID_ID3D12Device7;
  13955. #if defined(__cplusplus) && !defined(CINTERFACE)
  13956. MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
  13957. ID3D12Device7 : public ID3D12Device6
  13958. {
  13959. public:
  13960. virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
  13961. const D3D12_STATE_OBJECT_DESC *pAddition,
  13962. ID3D12StateObject *pStateObjectToGrowFrom,
  13963. REFIID riid,
  13964. _COM_Outptr_ void **ppNewStateObject) = 0;
  13965. virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
  13966. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  13967. _In_ REFIID riid,
  13968. _COM_Outptr_ void **ppSession) = 0;
  13969. };
  13970. #else /* C style interface */
  13971. typedef struct ID3D12Device7Vtbl
  13972. {
  13973. BEGIN_INTERFACE
  13974. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  13975. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  13976. ID3D12Device7 * This,
  13977. REFIID riid,
  13978. _COM_Outptr_ void **ppvObject);
  13979. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  13980. ULONG ( STDMETHODCALLTYPE *AddRef )(
  13981. ID3D12Device7 * This);
  13982. DECLSPEC_XFGVIRT(IUnknown, Release)
  13983. ULONG ( STDMETHODCALLTYPE *Release )(
  13984. ID3D12Device7 * This);
  13985. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  13986. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  13987. ID3D12Device7 * This,
  13988. _In_ REFGUID guid,
  13989. _Inout_ UINT *pDataSize,
  13990. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  13991. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  13992. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  13993. ID3D12Device7 * This,
  13994. _In_ REFGUID guid,
  13995. _In_ UINT DataSize,
  13996. _In_reads_bytes_opt_( DataSize ) const void *pData);
  13997. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  13998. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  13999. ID3D12Device7 * This,
  14000. _In_ REFGUID guid,
  14001. _In_opt_ const IUnknown *pData);
  14002. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  14003. HRESULT ( STDMETHODCALLTYPE *SetName )(
  14004. ID3D12Device7 * This,
  14005. _In_z_ LPCWSTR Name);
  14006. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  14007. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  14008. ID3D12Device7 * This);
  14009. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  14010. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  14011. ID3D12Device7 * This,
  14012. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  14013. REFIID riid,
  14014. _COM_Outptr_ void **ppCommandQueue);
  14015. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  14016. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  14017. ID3D12Device7 * This,
  14018. _In_ D3D12_COMMAND_LIST_TYPE type,
  14019. REFIID riid,
  14020. _COM_Outptr_ void **ppCommandAllocator);
  14021. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  14022. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  14023. ID3D12Device7 * This,
  14024. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  14025. REFIID riid,
  14026. _COM_Outptr_ void **ppPipelineState);
  14027. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  14028. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  14029. ID3D12Device7 * This,
  14030. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  14031. REFIID riid,
  14032. _COM_Outptr_ void **ppPipelineState);
  14033. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  14034. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  14035. ID3D12Device7 * This,
  14036. _In_ UINT nodeMask,
  14037. _In_ D3D12_COMMAND_LIST_TYPE type,
  14038. _In_ ID3D12CommandAllocator *pCommandAllocator,
  14039. _In_opt_ ID3D12PipelineState *pInitialState,
  14040. REFIID riid,
  14041. _COM_Outptr_ void **ppCommandList);
  14042. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  14043. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  14044. ID3D12Device7 * This,
  14045. D3D12_FEATURE Feature,
  14046. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  14047. UINT FeatureSupportDataSize);
  14048. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  14049. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  14050. ID3D12Device7 * This,
  14051. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  14052. REFIID riid,
  14053. _COM_Outptr_ void **ppvHeap);
  14054. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  14055. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  14056. ID3D12Device7 * This,
  14057. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  14058. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  14059. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  14060. ID3D12Device7 * This,
  14061. _In_ UINT nodeMask,
  14062. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  14063. _In_ SIZE_T blobLengthInBytes,
  14064. REFIID riid,
  14065. _COM_Outptr_ void **ppvRootSignature);
  14066. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  14067. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  14068. ID3D12Device7 * This,
  14069. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  14070. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14071. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  14072. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  14073. ID3D12Device7 * This,
  14074. _In_opt_ ID3D12Resource *pResource,
  14075. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  14076. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14077. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  14078. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  14079. ID3D12Device7 * This,
  14080. _In_opt_ ID3D12Resource *pResource,
  14081. _In_opt_ ID3D12Resource *pCounterResource,
  14082. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  14083. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14084. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  14085. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  14086. ID3D12Device7 * This,
  14087. _In_opt_ ID3D12Resource *pResource,
  14088. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  14089. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14090. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  14091. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  14092. ID3D12Device7 * This,
  14093. _In_opt_ ID3D12Resource *pResource,
  14094. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  14095. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14096. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  14097. void ( STDMETHODCALLTYPE *CreateSampler )(
  14098. ID3D12Device7 * This,
  14099. _In_ const D3D12_SAMPLER_DESC *pDesc,
  14100. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14101. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  14102. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  14103. ID3D12Device7 * This,
  14104. _In_ UINT NumDestDescriptorRanges,
  14105. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  14106. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  14107. _In_ UINT NumSrcDescriptorRanges,
  14108. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  14109. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  14110. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  14111. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  14112. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  14113. ID3D12Device7 * This,
  14114. _In_ UINT NumDescriptors,
  14115. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  14116. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  14117. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  14118. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  14119. #if !defined(_WIN32)
  14120. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  14121. ID3D12Device7 * This,
  14122. _In_ UINT visibleMask,
  14123. _In_ UINT numResourceDescs,
  14124. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  14125. #else
  14126. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  14127. ID3D12Device7 * This,
  14128. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  14129. _In_ UINT visibleMask,
  14130. _In_ UINT numResourceDescs,
  14131. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  14132. #endif
  14133. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  14134. #if !defined(_WIN32)
  14135. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  14136. ID3D12Device7 * This,
  14137. _In_ UINT nodeMask,
  14138. D3D12_HEAP_TYPE heapType);
  14139. #else
  14140. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  14141. ID3D12Device7 * This,
  14142. D3D12_HEAP_PROPERTIES * RetVal,
  14143. _In_ UINT nodeMask,
  14144. D3D12_HEAP_TYPE heapType);
  14145. #endif
  14146. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  14147. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  14148. ID3D12Device7 * This,
  14149. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  14150. D3D12_HEAP_FLAGS HeapFlags,
  14151. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14152. D3D12_RESOURCE_STATES InitialResourceState,
  14153. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14154. REFIID riidResource,
  14155. _COM_Outptr_opt_ void **ppvResource);
  14156. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  14157. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  14158. ID3D12Device7 * This,
  14159. _In_ const D3D12_HEAP_DESC *pDesc,
  14160. REFIID riid,
  14161. _COM_Outptr_opt_ void **ppvHeap);
  14162. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  14163. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  14164. ID3D12Device7 * This,
  14165. _In_ ID3D12Heap *pHeap,
  14166. UINT64 HeapOffset,
  14167. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14168. D3D12_RESOURCE_STATES InitialState,
  14169. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14170. REFIID riid,
  14171. _COM_Outptr_opt_ void **ppvResource);
  14172. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  14173. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  14174. ID3D12Device7 * This,
  14175. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14176. D3D12_RESOURCE_STATES InitialState,
  14177. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14178. REFIID riid,
  14179. _COM_Outptr_opt_ void **ppvResource);
  14180. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  14181. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  14182. ID3D12Device7 * This,
  14183. _In_ ID3D12DeviceChild *pObject,
  14184. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  14185. DWORD Access,
  14186. _In_opt_ LPCWSTR Name,
  14187. _Out_ HANDLE *pHandle);
  14188. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  14189. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  14190. ID3D12Device7 * This,
  14191. _In_ HANDLE NTHandle,
  14192. REFIID riid,
  14193. _COM_Outptr_opt_ void **ppvObj);
  14194. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  14195. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  14196. ID3D12Device7 * This,
  14197. _In_ LPCWSTR Name,
  14198. DWORD Access,
  14199. /* [annotation][out] */
  14200. _Out_ HANDLE *pNTHandle);
  14201. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  14202. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  14203. ID3D12Device7 * This,
  14204. UINT NumObjects,
  14205. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  14206. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  14207. HRESULT ( STDMETHODCALLTYPE *Evict )(
  14208. ID3D12Device7 * This,
  14209. UINT NumObjects,
  14210. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  14211. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  14212. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  14213. ID3D12Device7 * This,
  14214. UINT64 InitialValue,
  14215. D3D12_FENCE_FLAGS Flags,
  14216. REFIID riid,
  14217. _COM_Outptr_ void **ppFence);
  14218. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  14219. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  14220. ID3D12Device7 * This);
  14221. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  14222. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  14223. ID3D12Device7 * This,
  14224. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  14225. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  14226. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  14227. UINT64 BaseOffset,
  14228. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  14229. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  14230. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  14231. _Out_opt_ UINT64 *pTotalBytes);
  14232. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  14233. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  14234. ID3D12Device7 * This,
  14235. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  14236. REFIID riid,
  14237. _COM_Outptr_opt_ void **ppvHeap);
  14238. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  14239. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  14240. ID3D12Device7 * This,
  14241. BOOL Enable);
  14242. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  14243. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  14244. ID3D12Device7 * This,
  14245. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  14246. _In_opt_ ID3D12RootSignature *pRootSignature,
  14247. REFIID riid,
  14248. _COM_Outptr_opt_ void **ppvCommandSignature);
  14249. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  14250. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  14251. ID3D12Device7 * This,
  14252. _In_ ID3D12Resource *pTiledResource,
  14253. _Out_opt_ UINT *pNumTilesForEntireResource,
  14254. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  14255. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  14256. _Inout_opt_ UINT *pNumSubresourceTilings,
  14257. _In_ UINT FirstSubresourceTilingToGet,
  14258. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  14259. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  14260. #if !defined(_WIN32)
  14261. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  14262. ID3D12Device7 * This);
  14263. #else
  14264. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  14265. ID3D12Device7 * This,
  14266. LUID * RetVal);
  14267. #endif
  14268. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  14269. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  14270. ID3D12Device7 * This,
  14271. _In_reads_(BlobLength) const void *pLibraryBlob,
  14272. SIZE_T BlobLength,
  14273. REFIID riid,
  14274. _COM_Outptr_ void **ppPipelineLibrary);
  14275. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  14276. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  14277. ID3D12Device7 * This,
  14278. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  14279. _In_reads_(NumFences) const UINT64 *pFenceValues,
  14280. UINT NumFences,
  14281. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  14282. HANDLE hEvent);
  14283. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  14284. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  14285. ID3D12Device7 * This,
  14286. UINT NumObjects,
  14287. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  14288. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  14289. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  14290. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  14291. ID3D12Device7 * This,
  14292. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  14293. REFIID riid,
  14294. _COM_Outptr_ void **ppPipelineState);
  14295. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  14296. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  14297. ID3D12Device7 * This,
  14298. _In_ const void *pAddress,
  14299. REFIID riid,
  14300. _COM_Outptr_ void **ppvHeap);
  14301. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  14302. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  14303. ID3D12Device7 * This,
  14304. _In_ HANDLE hFileMapping,
  14305. REFIID riid,
  14306. _COM_Outptr_ void **ppvHeap);
  14307. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  14308. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  14309. ID3D12Device7 * This,
  14310. D3D12_RESIDENCY_FLAGS Flags,
  14311. UINT NumObjects,
  14312. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  14313. _In_ ID3D12Fence *pFenceToSignal,
  14314. UINT64 FenceValueToSignal);
  14315. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  14316. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  14317. ID3D12Device7 * This,
  14318. _In_ UINT nodeMask,
  14319. _In_ D3D12_COMMAND_LIST_TYPE type,
  14320. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  14321. REFIID riid,
  14322. _COM_Outptr_ void **ppCommandList);
  14323. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  14324. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  14325. ID3D12Device7 * This,
  14326. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  14327. _In_ REFIID riid,
  14328. _COM_Outptr_ void **ppSession);
  14329. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  14330. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  14331. ID3D12Device7 * This,
  14332. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  14333. D3D12_HEAP_FLAGS HeapFlags,
  14334. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14335. D3D12_RESOURCE_STATES InitialResourceState,
  14336. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14337. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  14338. REFIID riidResource,
  14339. _COM_Outptr_opt_ void **ppvResource);
  14340. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  14341. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  14342. ID3D12Device7 * This,
  14343. _In_ const D3D12_HEAP_DESC *pDesc,
  14344. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  14345. REFIID riid,
  14346. _COM_Outptr_opt_ void **ppvHeap);
  14347. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  14348. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  14349. ID3D12Device7 * This,
  14350. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14351. D3D12_RESOURCE_STATES InitialState,
  14352. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14353. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  14354. REFIID riid,
  14355. _COM_Outptr_opt_ void **ppvResource);
  14356. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  14357. #if !defined(_WIN32)
  14358. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  14359. ID3D12Device7 * This,
  14360. UINT visibleMask,
  14361. UINT numResourceDescs,
  14362. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  14363. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  14364. #else
  14365. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  14366. ID3D12Device7 * This,
  14367. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  14368. UINT visibleMask,
  14369. UINT numResourceDescs,
  14370. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  14371. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  14372. #endif
  14373. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  14374. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  14375. ID3D12Device7 * This,
  14376. _In_ ID3D12LifetimeOwner *pOwner,
  14377. REFIID riid,
  14378. _COM_Outptr_ void **ppvTracker);
  14379. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  14380. void ( STDMETHODCALLTYPE *RemoveDevice )(
  14381. ID3D12Device7 * This);
  14382. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  14383. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  14384. ID3D12Device7 * This,
  14385. _Inout_ UINT *pNumMetaCommands,
  14386. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  14387. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  14388. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  14389. ID3D12Device7 * This,
  14390. _In_ REFGUID CommandId,
  14391. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  14392. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  14393. _Inout_ UINT *pParameterCount,
  14394. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  14395. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  14396. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  14397. ID3D12Device7 * This,
  14398. _In_ REFGUID CommandId,
  14399. _In_ UINT NodeMask,
  14400. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  14401. _In_ SIZE_T CreationParametersDataSizeInBytes,
  14402. REFIID riid,
  14403. _COM_Outptr_ void **ppMetaCommand);
  14404. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  14405. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  14406. ID3D12Device7 * This,
  14407. const D3D12_STATE_OBJECT_DESC *pDesc,
  14408. REFIID riid,
  14409. _COM_Outptr_ void **ppStateObject);
  14410. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  14411. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  14412. ID3D12Device7 * This,
  14413. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  14414. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  14415. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  14416. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  14417. ID3D12Device7 * This,
  14418. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  14419. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  14420. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  14421. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  14422. ID3D12Device7 * This,
  14423. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  14424. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  14425. _In_opt_ HANDLE hEventToSignalUponCompletion,
  14426. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  14427. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  14428. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  14429. ID3D12Device7 * This,
  14430. const D3D12_STATE_OBJECT_DESC *pAddition,
  14431. ID3D12StateObject *pStateObjectToGrowFrom,
  14432. REFIID riid,
  14433. _COM_Outptr_ void **ppNewStateObject);
  14434. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  14435. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  14436. ID3D12Device7 * This,
  14437. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  14438. _In_ REFIID riid,
  14439. _COM_Outptr_ void **ppSession);
  14440. END_INTERFACE
  14441. } ID3D12Device7Vtbl;
  14442. interface ID3D12Device7
  14443. {
  14444. CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl;
  14445. };
  14446. #ifdef COBJMACROS
  14447. #define ID3D12Device7_QueryInterface(This,riid,ppvObject) \
  14448. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  14449. #define ID3D12Device7_AddRef(This) \
  14450. ( (This)->lpVtbl -> AddRef(This) )
  14451. #define ID3D12Device7_Release(This) \
  14452. ( (This)->lpVtbl -> Release(This) )
  14453. #define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \
  14454. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  14455. #define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \
  14456. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  14457. #define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \
  14458. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  14459. #define ID3D12Device7_SetName(This,Name) \
  14460. ( (This)->lpVtbl -> SetName(This,Name) )
  14461. #define ID3D12Device7_GetNodeCount(This) \
  14462. ( (This)->lpVtbl -> GetNodeCount(This) )
  14463. #define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  14464. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  14465. #define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  14466. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  14467. #define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  14468. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  14469. #define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  14470. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  14471. #define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  14472. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  14473. #define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  14474. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  14475. #define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  14476. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  14477. #define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  14478. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  14479. #define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  14480. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  14481. #define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  14482. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  14483. #define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  14484. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  14485. #define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  14486. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  14487. #define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  14488. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  14489. #define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  14490. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  14491. #define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \
  14492. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  14493. #define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  14494. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  14495. #define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  14496. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  14497. #if !defined(_WIN32)
  14498. #define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  14499. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  14500. #else
  14501. #define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  14502. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  14503. #endif
  14504. #if !defined(_WIN32)
  14505. #define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \
  14506. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  14507. #else
  14508. #define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  14509. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  14510. #endif
  14511. #define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  14512. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  14513. #define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \
  14514. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  14515. #define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  14516. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  14517. #define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  14518. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  14519. #define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  14520. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  14521. #define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  14522. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  14523. #define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  14524. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  14525. #define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \
  14526. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  14527. #define ID3D12Device7_Evict(This,NumObjects,ppObjects) \
  14528. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  14529. #define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  14530. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  14531. #define ID3D12Device7_GetDeviceRemovedReason(This) \
  14532. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  14533. #define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  14534. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  14535. #define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  14536. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  14537. #define ID3D12Device7_SetStablePowerState(This,Enable) \
  14538. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  14539. #define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  14540. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  14541. #define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  14542. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  14543. #if !defined(_WIN32)
  14544. #define ID3D12Device7_GetAdapterLuid(This) \
  14545. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  14546. #else
  14547. #define ID3D12Device7_GetAdapterLuid(This,RetVal) \
  14548. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  14549. #endif
  14550. #define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  14551. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  14552. #define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  14553. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  14554. #define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  14555. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  14556. #define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  14557. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  14558. #define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  14559. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  14560. #define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  14561. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  14562. #define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  14563. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  14564. #define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  14565. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  14566. #define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  14567. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  14568. #define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  14569. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  14570. #define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  14571. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  14572. #define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  14573. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  14574. #if !defined(_WIN32)
  14575. #define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  14576. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  14577. #else
  14578. #define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  14579. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  14580. #endif
  14581. #define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  14582. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  14583. #define ID3D12Device7_RemoveDevice(This) \
  14584. ( (This)->lpVtbl -> RemoveDevice(This) )
  14585. #define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  14586. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  14587. #define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  14588. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  14589. #define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  14590. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  14591. #define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \
  14592. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  14593. #define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  14594. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  14595. #define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  14596. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  14597. #define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  14598. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  14599. #define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  14600. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  14601. #define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  14602. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  14603. #endif /* COBJMACROS */
  14604. #endif /* C style interface */
  14605. #endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
  14606. #ifndef __ID3D12Device8_INTERFACE_DEFINED__
  14607. #define __ID3D12Device8_INTERFACE_DEFINED__
  14608. /* interface ID3D12Device8 */
  14609. /* [unique][local][object][uuid] */
  14610. EXTERN_C const IID IID_ID3D12Device8;
  14611. #if defined(__cplusplus) && !defined(CINTERFACE)
  14612. MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3")
  14613. ID3D12Device8 : public ID3D12Device7
  14614. {
  14615. public:
  14616. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  14617. virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
  14618. UINT visibleMask,
  14619. UINT numResourceDescs,
  14620. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  14621. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
  14622. #else
  14623. virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2(
  14624. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  14625. UINT visibleMask,
  14626. UINT numResourceDescs,
  14627. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  14628. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
  14629. #endif
  14630. virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
  14631. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  14632. D3D12_HEAP_FLAGS HeapFlags,
  14633. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  14634. D3D12_RESOURCE_STATES InitialResourceState,
  14635. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14636. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  14637. REFIID riidResource,
  14638. _COM_Outptr_opt_ void **ppvResource) = 0;
  14639. virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
  14640. _In_ ID3D12Heap *pHeap,
  14641. UINT64 HeapOffset,
  14642. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  14643. D3D12_RESOURCE_STATES InitialState,
  14644. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14645. REFIID riid,
  14646. _COM_Outptr_opt_ void **ppvResource) = 0;
  14647. virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
  14648. _In_opt_ ID3D12Resource *pTargetedResource,
  14649. _In_opt_ ID3D12Resource *pFeedbackResource,
  14650. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  14651. virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
  14652. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  14653. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  14654. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  14655. UINT64 BaseOffset,
  14656. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  14657. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  14658. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  14659. _Out_opt_ UINT64 *pTotalBytes) = 0;
  14660. };
  14661. #else /* C style interface */
  14662. typedef struct ID3D12Device8Vtbl
  14663. {
  14664. BEGIN_INTERFACE
  14665. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  14666. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  14667. ID3D12Device8 * This,
  14668. REFIID riid,
  14669. _COM_Outptr_ void **ppvObject);
  14670. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  14671. ULONG ( STDMETHODCALLTYPE *AddRef )(
  14672. ID3D12Device8 * This);
  14673. DECLSPEC_XFGVIRT(IUnknown, Release)
  14674. ULONG ( STDMETHODCALLTYPE *Release )(
  14675. ID3D12Device8 * This);
  14676. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  14677. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  14678. ID3D12Device8 * This,
  14679. _In_ REFGUID guid,
  14680. _Inout_ UINT *pDataSize,
  14681. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  14682. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  14683. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  14684. ID3D12Device8 * This,
  14685. _In_ REFGUID guid,
  14686. _In_ UINT DataSize,
  14687. _In_reads_bytes_opt_( DataSize ) const void *pData);
  14688. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  14689. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  14690. ID3D12Device8 * This,
  14691. _In_ REFGUID guid,
  14692. _In_opt_ const IUnknown *pData);
  14693. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  14694. HRESULT ( STDMETHODCALLTYPE *SetName )(
  14695. ID3D12Device8 * This,
  14696. _In_z_ LPCWSTR Name);
  14697. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  14698. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  14699. ID3D12Device8 * This);
  14700. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  14701. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  14702. ID3D12Device8 * This,
  14703. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  14704. REFIID riid,
  14705. _COM_Outptr_ void **ppCommandQueue);
  14706. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  14707. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  14708. ID3D12Device8 * This,
  14709. _In_ D3D12_COMMAND_LIST_TYPE type,
  14710. REFIID riid,
  14711. _COM_Outptr_ void **ppCommandAllocator);
  14712. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  14713. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  14714. ID3D12Device8 * This,
  14715. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  14716. REFIID riid,
  14717. _COM_Outptr_ void **ppPipelineState);
  14718. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  14719. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  14720. ID3D12Device8 * This,
  14721. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  14722. REFIID riid,
  14723. _COM_Outptr_ void **ppPipelineState);
  14724. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  14725. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  14726. ID3D12Device8 * This,
  14727. _In_ UINT nodeMask,
  14728. _In_ D3D12_COMMAND_LIST_TYPE type,
  14729. _In_ ID3D12CommandAllocator *pCommandAllocator,
  14730. _In_opt_ ID3D12PipelineState *pInitialState,
  14731. REFIID riid,
  14732. _COM_Outptr_ void **ppCommandList);
  14733. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  14734. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  14735. ID3D12Device8 * This,
  14736. D3D12_FEATURE Feature,
  14737. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  14738. UINT FeatureSupportDataSize);
  14739. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  14740. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  14741. ID3D12Device8 * This,
  14742. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  14743. REFIID riid,
  14744. _COM_Outptr_ void **ppvHeap);
  14745. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  14746. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  14747. ID3D12Device8 * This,
  14748. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  14749. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  14750. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  14751. ID3D12Device8 * This,
  14752. _In_ UINT nodeMask,
  14753. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  14754. _In_ SIZE_T blobLengthInBytes,
  14755. REFIID riid,
  14756. _COM_Outptr_ void **ppvRootSignature);
  14757. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  14758. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  14759. ID3D12Device8 * This,
  14760. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  14761. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14762. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  14763. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  14764. ID3D12Device8 * This,
  14765. _In_opt_ ID3D12Resource *pResource,
  14766. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  14767. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14768. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  14769. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  14770. ID3D12Device8 * This,
  14771. _In_opt_ ID3D12Resource *pResource,
  14772. _In_opt_ ID3D12Resource *pCounterResource,
  14773. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  14774. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14775. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  14776. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  14777. ID3D12Device8 * This,
  14778. _In_opt_ ID3D12Resource *pResource,
  14779. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  14780. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14781. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  14782. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  14783. ID3D12Device8 * This,
  14784. _In_opt_ ID3D12Resource *pResource,
  14785. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  14786. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14787. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  14788. void ( STDMETHODCALLTYPE *CreateSampler )(
  14789. ID3D12Device8 * This,
  14790. _In_ const D3D12_SAMPLER_DESC *pDesc,
  14791. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  14792. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  14793. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  14794. ID3D12Device8 * This,
  14795. _In_ UINT NumDestDescriptorRanges,
  14796. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  14797. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  14798. _In_ UINT NumSrcDescriptorRanges,
  14799. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  14800. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  14801. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  14802. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  14803. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  14804. ID3D12Device8 * This,
  14805. _In_ UINT NumDescriptors,
  14806. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  14807. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  14808. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  14809. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  14810. #if !defined(_WIN32)
  14811. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  14812. ID3D12Device8 * This,
  14813. _In_ UINT visibleMask,
  14814. _In_ UINT numResourceDescs,
  14815. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  14816. #else
  14817. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  14818. ID3D12Device8 * This,
  14819. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  14820. _In_ UINT visibleMask,
  14821. _In_ UINT numResourceDescs,
  14822. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  14823. #endif
  14824. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  14825. #if !defined(_WIN32)
  14826. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  14827. ID3D12Device8 * This,
  14828. _In_ UINT nodeMask,
  14829. D3D12_HEAP_TYPE heapType);
  14830. #else
  14831. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  14832. ID3D12Device8 * This,
  14833. D3D12_HEAP_PROPERTIES * RetVal,
  14834. _In_ UINT nodeMask,
  14835. D3D12_HEAP_TYPE heapType);
  14836. #endif
  14837. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  14838. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  14839. ID3D12Device8 * This,
  14840. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  14841. D3D12_HEAP_FLAGS HeapFlags,
  14842. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14843. D3D12_RESOURCE_STATES InitialResourceState,
  14844. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14845. REFIID riidResource,
  14846. _COM_Outptr_opt_ void **ppvResource);
  14847. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  14848. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  14849. ID3D12Device8 * This,
  14850. _In_ const D3D12_HEAP_DESC *pDesc,
  14851. REFIID riid,
  14852. _COM_Outptr_opt_ void **ppvHeap);
  14853. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  14854. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  14855. ID3D12Device8 * This,
  14856. _In_ ID3D12Heap *pHeap,
  14857. UINT64 HeapOffset,
  14858. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14859. D3D12_RESOURCE_STATES InitialState,
  14860. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14861. REFIID riid,
  14862. _COM_Outptr_opt_ void **ppvResource);
  14863. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  14864. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  14865. ID3D12Device8 * This,
  14866. _In_ const D3D12_RESOURCE_DESC *pDesc,
  14867. D3D12_RESOURCE_STATES InitialState,
  14868. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  14869. REFIID riid,
  14870. _COM_Outptr_opt_ void **ppvResource);
  14871. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  14872. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  14873. ID3D12Device8 * This,
  14874. _In_ ID3D12DeviceChild *pObject,
  14875. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  14876. DWORD Access,
  14877. _In_opt_ LPCWSTR Name,
  14878. _Out_ HANDLE *pHandle);
  14879. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  14880. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  14881. ID3D12Device8 * This,
  14882. _In_ HANDLE NTHandle,
  14883. REFIID riid,
  14884. _COM_Outptr_opt_ void **ppvObj);
  14885. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  14886. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  14887. ID3D12Device8 * This,
  14888. _In_ LPCWSTR Name,
  14889. DWORD Access,
  14890. /* [annotation][out] */
  14891. _Out_ HANDLE *pNTHandle);
  14892. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  14893. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  14894. ID3D12Device8 * This,
  14895. UINT NumObjects,
  14896. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  14897. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  14898. HRESULT ( STDMETHODCALLTYPE *Evict )(
  14899. ID3D12Device8 * This,
  14900. UINT NumObjects,
  14901. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  14902. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  14903. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  14904. ID3D12Device8 * This,
  14905. UINT64 InitialValue,
  14906. D3D12_FENCE_FLAGS Flags,
  14907. REFIID riid,
  14908. _COM_Outptr_ void **ppFence);
  14909. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  14910. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  14911. ID3D12Device8 * This);
  14912. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  14913. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  14914. ID3D12Device8 * This,
  14915. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  14916. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  14917. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  14918. UINT64 BaseOffset,
  14919. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  14920. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  14921. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  14922. _Out_opt_ UINT64 *pTotalBytes);
  14923. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  14924. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  14925. ID3D12Device8 * This,
  14926. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  14927. REFIID riid,
  14928. _COM_Outptr_opt_ void **ppvHeap);
  14929. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  14930. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  14931. ID3D12Device8 * This,
  14932. BOOL Enable);
  14933. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  14934. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  14935. ID3D12Device8 * This,
  14936. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  14937. _In_opt_ ID3D12RootSignature *pRootSignature,
  14938. REFIID riid,
  14939. _COM_Outptr_opt_ void **ppvCommandSignature);
  14940. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  14941. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  14942. ID3D12Device8 * This,
  14943. _In_ ID3D12Resource *pTiledResource,
  14944. _Out_opt_ UINT *pNumTilesForEntireResource,
  14945. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  14946. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  14947. _Inout_opt_ UINT *pNumSubresourceTilings,
  14948. _In_ UINT FirstSubresourceTilingToGet,
  14949. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  14950. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  14951. #if !defined(_WIN32)
  14952. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  14953. ID3D12Device8 * This);
  14954. #else
  14955. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  14956. ID3D12Device8 * This,
  14957. LUID * RetVal);
  14958. #endif
  14959. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  14960. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  14961. ID3D12Device8 * This,
  14962. _In_reads_(BlobLength) const void *pLibraryBlob,
  14963. SIZE_T BlobLength,
  14964. REFIID riid,
  14965. _COM_Outptr_ void **ppPipelineLibrary);
  14966. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  14967. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  14968. ID3D12Device8 * This,
  14969. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  14970. _In_reads_(NumFences) const UINT64 *pFenceValues,
  14971. UINT NumFences,
  14972. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  14973. HANDLE hEvent);
  14974. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  14975. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  14976. ID3D12Device8 * This,
  14977. UINT NumObjects,
  14978. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  14979. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  14980. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  14981. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  14982. ID3D12Device8 * This,
  14983. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  14984. REFIID riid,
  14985. _COM_Outptr_ void **ppPipelineState);
  14986. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  14987. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  14988. ID3D12Device8 * This,
  14989. _In_ const void *pAddress,
  14990. REFIID riid,
  14991. _COM_Outptr_ void **ppvHeap);
  14992. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  14993. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  14994. ID3D12Device8 * This,
  14995. _In_ HANDLE hFileMapping,
  14996. REFIID riid,
  14997. _COM_Outptr_ void **ppvHeap);
  14998. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  14999. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  15000. ID3D12Device8 * This,
  15001. D3D12_RESIDENCY_FLAGS Flags,
  15002. UINT NumObjects,
  15003. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  15004. _In_ ID3D12Fence *pFenceToSignal,
  15005. UINT64 FenceValueToSignal);
  15006. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  15007. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  15008. ID3D12Device8 * This,
  15009. _In_ UINT nodeMask,
  15010. _In_ D3D12_COMMAND_LIST_TYPE type,
  15011. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  15012. REFIID riid,
  15013. _COM_Outptr_ void **ppCommandList);
  15014. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  15015. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  15016. ID3D12Device8 * This,
  15017. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  15018. _In_ REFIID riid,
  15019. _COM_Outptr_ void **ppSession);
  15020. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  15021. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  15022. ID3D12Device8 * This,
  15023. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  15024. D3D12_HEAP_FLAGS HeapFlags,
  15025. _In_ const D3D12_RESOURCE_DESC *pDesc,
  15026. D3D12_RESOURCE_STATES InitialResourceState,
  15027. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  15028. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  15029. REFIID riidResource,
  15030. _COM_Outptr_opt_ void **ppvResource);
  15031. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  15032. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  15033. ID3D12Device8 * This,
  15034. _In_ const D3D12_HEAP_DESC *pDesc,
  15035. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  15036. REFIID riid,
  15037. _COM_Outptr_opt_ void **ppvHeap);
  15038. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  15039. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  15040. ID3D12Device8 * This,
  15041. _In_ const D3D12_RESOURCE_DESC *pDesc,
  15042. D3D12_RESOURCE_STATES InitialState,
  15043. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  15044. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  15045. REFIID riid,
  15046. _COM_Outptr_opt_ void **ppvResource);
  15047. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  15048. #if !defined(_WIN32)
  15049. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  15050. ID3D12Device8 * This,
  15051. UINT visibleMask,
  15052. UINT numResourceDescs,
  15053. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  15054. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  15055. #else
  15056. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  15057. ID3D12Device8 * This,
  15058. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  15059. UINT visibleMask,
  15060. UINT numResourceDescs,
  15061. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  15062. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  15063. #endif
  15064. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  15065. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  15066. ID3D12Device8 * This,
  15067. _In_ ID3D12LifetimeOwner *pOwner,
  15068. REFIID riid,
  15069. _COM_Outptr_ void **ppvTracker);
  15070. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  15071. void ( STDMETHODCALLTYPE *RemoveDevice )(
  15072. ID3D12Device8 * This);
  15073. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  15074. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  15075. ID3D12Device8 * This,
  15076. _Inout_ UINT *pNumMetaCommands,
  15077. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  15078. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  15079. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  15080. ID3D12Device8 * This,
  15081. _In_ REFGUID CommandId,
  15082. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  15083. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  15084. _Inout_ UINT *pParameterCount,
  15085. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  15086. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  15087. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  15088. ID3D12Device8 * This,
  15089. _In_ REFGUID CommandId,
  15090. _In_ UINT NodeMask,
  15091. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  15092. _In_ SIZE_T CreationParametersDataSizeInBytes,
  15093. REFIID riid,
  15094. _COM_Outptr_ void **ppMetaCommand);
  15095. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  15096. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  15097. ID3D12Device8 * This,
  15098. const D3D12_STATE_OBJECT_DESC *pDesc,
  15099. REFIID riid,
  15100. _COM_Outptr_ void **ppStateObject);
  15101. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  15102. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  15103. ID3D12Device8 * This,
  15104. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  15105. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  15106. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  15107. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  15108. ID3D12Device8 * This,
  15109. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  15110. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  15111. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  15112. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  15113. ID3D12Device8 * This,
  15114. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  15115. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  15116. _In_opt_ HANDLE hEventToSignalUponCompletion,
  15117. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  15118. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  15119. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  15120. ID3D12Device8 * This,
  15121. const D3D12_STATE_OBJECT_DESC *pAddition,
  15122. ID3D12StateObject *pStateObjectToGrowFrom,
  15123. REFIID riid,
  15124. _COM_Outptr_ void **ppNewStateObject);
  15125. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  15126. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  15127. ID3D12Device8 * This,
  15128. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  15129. _In_ REFIID riid,
  15130. _COM_Outptr_ void **ppSession);
  15131. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  15132. #if !defined(_WIN32)
  15133. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  15134. ID3D12Device8 * This,
  15135. UINT visibleMask,
  15136. UINT numResourceDescs,
  15137. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  15138. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  15139. #else
  15140. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  15141. ID3D12Device8 * This,
  15142. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  15143. UINT visibleMask,
  15144. UINT numResourceDescs,
  15145. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  15146. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  15147. #endif
  15148. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  15149. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  15150. ID3D12Device8 * This,
  15151. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  15152. D3D12_HEAP_FLAGS HeapFlags,
  15153. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  15154. D3D12_RESOURCE_STATES InitialResourceState,
  15155. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  15156. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  15157. REFIID riidResource,
  15158. _COM_Outptr_opt_ void **ppvResource);
  15159. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  15160. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  15161. ID3D12Device8 * This,
  15162. _In_ ID3D12Heap *pHeap,
  15163. UINT64 HeapOffset,
  15164. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  15165. D3D12_RESOURCE_STATES InitialState,
  15166. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  15167. REFIID riid,
  15168. _COM_Outptr_opt_ void **ppvResource);
  15169. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  15170. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  15171. ID3D12Device8 * This,
  15172. _In_opt_ ID3D12Resource *pTargetedResource,
  15173. _In_opt_ ID3D12Resource *pFeedbackResource,
  15174. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  15175. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  15176. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  15177. ID3D12Device8 * This,
  15178. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  15179. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  15180. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  15181. UINT64 BaseOffset,
  15182. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  15183. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  15184. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  15185. _Out_opt_ UINT64 *pTotalBytes);
  15186. END_INTERFACE
  15187. } ID3D12Device8Vtbl;
  15188. interface ID3D12Device8
  15189. {
  15190. CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl;
  15191. };
  15192. #ifdef COBJMACROS
  15193. #define ID3D12Device8_QueryInterface(This,riid,ppvObject) \
  15194. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  15195. #define ID3D12Device8_AddRef(This) \
  15196. ( (This)->lpVtbl -> AddRef(This) )
  15197. #define ID3D12Device8_Release(This) \
  15198. ( (This)->lpVtbl -> Release(This) )
  15199. #define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \
  15200. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  15201. #define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \
  15202. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  15203. #define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \
  15204. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  15205. #define ID3D12Device8_SetName(This,Name) \
  15206. ( (This)->lpVtbl -> SetName(This,Name) )
  15207. #define ID3D12Device8_GetNodeCount(This) \
  15208. ( (This)->lpVtbl -> GetNodeCount(This) )
  15209. #define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  15210. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  15211. #define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  15212. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  15213. #define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  15214. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  15215. #define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  15216. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  15217. #define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  15218. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  15219. #define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  15220. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  15221. #define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  15222. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  15223. #define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  15224. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  15225. #define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  15226. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  15227. #define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  15228. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  15229. #define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  15230. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  15231. #define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  15232. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  15233. #define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  15234. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  15235. #define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  15236. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  15237. #define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \
  15238. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  15239. #define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  15240. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  15241. #define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  15242. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  15243. #if !defined(_WIN32)
  15244. #define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  15245. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  15246. #else
  15247. #define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  15248. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  15249. #endif
  15250. #if !defined(_WIN32)
  15251. #define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \
  15252. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  15253. #else
  15254. #define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  15255. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  15256. #endif
  15257. #define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  15258. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  15259. #define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \
  15260. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  15261. #define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  15262. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  15263. #define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  15264. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  15265. #define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  15266. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  15267. #define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  15268. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  15269. #define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  15270. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  15271. #define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \
  15272. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  15273. #define ID3D12Device8_Evict(This,NumObjects,ppObjects) \
  15274. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  15275. #define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  15276. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  15277. #define ID3D12Device8_GetDeviceRemovedReason(This) \
  15278. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  15279. #define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  15280. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  15281. #define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  15282. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  15283. #define ID3D12Device8_SetStablePowerState(This,Enable) \
  15284. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  15285. #define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  15286. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  15287. #define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  15288. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  15289. #if !defined(_WIN32)
  15290. #define ID3D12Device8_GetAdapterLuid(This) \
  15291. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  15292. #else
  15293. #define ID3D12Device8_GetAdapterLuid(This,RetVal) \
  15294. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  15295. #endif
  15296. #define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  15297. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  15298. #define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  15299. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  15300. #define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  15301. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  15302. #define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  15303. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  15304. #define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  15305. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  15306. #define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  15307. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  15308. #define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  15309. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  15310. #define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  15311. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  15312. #define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  15313. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  15314. #define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  15315. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  15316. #define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  15317. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  15318. #define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  15319. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  15320. #if !defined(_WIN32)
  15321. #define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  15322. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  15323. #else
  15324. #define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  15325. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  15326. #endif
  15327. #define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  15328. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  15329. #define ID3D12Device8_RemoveDevice(This) \
  15330. ( (This)->lpVtbl -> RemoveDevice(This) )
  15331. #define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  15332. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  15333. #define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  15334. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  15335. #define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  15336. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  15337. #define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \
  15338. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  15339. #define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  15340. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  15341. #define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  15342. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  15343. #define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  15344. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  15345. #define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  15346. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  15347. #define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  15348. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  15349. #if !defined(_WIN32)
  15350. #define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  15351. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  15352. #else
  15353. #define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  15354. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  15355. #endif
  15356. #define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  15357. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  15358. #define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  15359. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  15360. #define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  15361. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  15362. #define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  15363. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  15364. #endif /* COBJMACROS */
  15365. #endif /* C style interface */
  15366. #endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
  15367. #ifndef __ID3D12Resource1_INTERFACE_DEFINED__
  15368. #define __ID3D12Resource1_INTERFACE_DEFINED__
  15369. /* interface ID3D12Resource1 */
  15370. /* [unique][local][object][uuid] */
  15371. EXTERN_C const IID IID_ID3D12Resource1;
  15372. #if defined(__cplusplus) && !defined(CINTERFACE)
  15373. MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19")
  15374. ID3D12Resource1 : public ID3D12Resource
  15375. {
  15376. public:
  15377. virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
  15378. REFIID riid,
  15379. _COM_Outptr_opt_ void **ppProtectedSession) = 0;
  15380. };
  15381. #else /* C style interface */
  15382. typedef struct ID3D12Resource1Vtbl
  15383. {
  15384. BEGIN_INTERFACE
  15385. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  15386. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  15387. ID3D12Resource1 * This,
  15388. REFIID riid,
  15389. _COM_Outptr_ void **ppvObject);
  15390. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  15391. ULONG ( STDMETHODCALLTYPE *AddRef )(
  15392. ID3D12Resource1 * This);
  15393. DECLSPEC_XFGVIRT(IUnknown, Release)
  15394. ULONG ( STDMETHODCALLTYPE *Release )(
  15395. ID3D12Resource1 * This);
  15396. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  15397. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  15398. ID3D12Resource1 * This,
  15399. _In_ REFGUID guid,
  15400. _Inout_ UINT *pDataSize,
  15401. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  15402. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  15403. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  15404. ID3D12Resource1 * This,
  15405. _In_ REFGUID guid,
  15406. _In_ UINT DataSize,
  15407. _In_reads_bytes_opt_( DataSize ) const void *pData);
  15408. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  15409. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  15410. ID3D12Resource1 * This,
  15411. _In_ REFGUID guid,
  15412. _In_opt_ const IUnknown *pData);
  15413. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  15414. HRESULT ( STDMETHODCALLTYPE *SetName )(
  15415. ID3D12Resource1 * This,
  15416. _In_z_ LPCWSTR Name);
  15417. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  15418. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  15419. ID3D12Resource1 * This,
  15420. REFIID riid,
  15421. _COM_Outptr_opt_ void **ppvDevice);
  15422. DECLSPEC_XFGVIRT(ID3D12Resource, Map)
  15423. HRESULT ( STDMETHODCALLTYPE *Map )(
  15424. ID3D12Resource1 * This,
  15425. UINT Subresource,
  15426. _In_opt_ const D3D12_RANGE *pReadRange,
  15427. _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
  15428. DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
  15429. void ( STDMETHODCALLTYPE *Unmap )(
  15430. ID3D12Resource1 * This,
  15431. UINT Subresource,
  15432. _In_opt_ const D3D12_RANGE *pWrittenRange);
  15433. DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
  15434. #if !defined(_WIN32)
  15435. D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
  15436. ID3D12Resource1 * This);
  15437. #else
  15438. D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
  15439. ID3D12Resource1 * This,
  15440. D3D12_RESOURCE_DESC * RetVal);
  15441. #endif
  15442. DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
  15443. D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
  15444. ID3D12Resource1 * This);
  15445. DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
  15446. HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
  15447. ID3D12Resource1 * This,
  15448. UINT DstSubresource,
  15449. _In_opt_ const D3D12_BOX *pDstBox,
  15450. _In_ const void *pSrcData,
  15451. UINT SrcRowPitch,
  15452. UINT SrcDepthPitch);
  15453. DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
  15454. HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
  15455. ID3D12Resource1 * This,
  15456. _Out_ void *pDstData,
  15457. UINT DstRowPitch,
  15458. UINT DstDepthPitch,
  15459. UINT SrcSubresource,
  15460. _In_opt_ const D3D12_BOX *pSrcBox);
  15461. DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
  15462. HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
  15463. ID3D12Resource1 * This,
  15464. _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
  15465. _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
  15466. DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
  15467. HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
  15468. ID3D12Resource1 * This,
  15469. REFIID riid,
  15470. _COM_Outptr_opt_ void **ppProtectedSession);
  15471. END_INTERFACE
  15472. } ID3D12Resource1Vtbl;
  15473. interface ID3D12Resource1
  15474. {
  15475. CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl;
  15476. };
  15477. #ifdef COBJMACROS
  15478. #define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \
  15479. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  15480. #define ID3D12Resource1_AddRef(This) \
  15481. ( (This)->lpVtbl -> AddRef(This) )
  15482. #define ID3D12Resource1_Release(This) \
  15483. ( (This)->lpVtbl -> Release(This) )
  15484. #define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \
  15485. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  15486. #define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \
  15487. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  15488. #define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \
  15489. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  15490. #define ID3D12Resource1_SetName(This,Name) \
  15491. ( (This)->lpVtbl -> SetName(This,Name) )
  15492. #define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \
  15493. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  15494. #define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \
  15495. ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
  15496. #define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \
  15497. ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
  15498. #if !defined(_WIN32)
  15499. #define ID3D12Resource1_GetDesc(This) \
  15500. ( (This)->lpVtbl -> GetDesc(This) )
  15501. #else
  15502. #define ID3D12Resource1_GetDesc(This,RetVal) \
  15503. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  15504. #endif
  15505. #define ID3D12Resource1_GetGPUVirtualAddress(This) \
  15506. ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
  15507. #define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
  15508. ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
  15509. #define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
  15510. ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
  15511. #define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
  15512. ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
  15513. #define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
  15514. ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
  15515. #endif /* COBJMACROS */
  15516. #endif /* C style interface */
  15517. #endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
  15518. #ifndef __ID3D12Resource2_INTERFACE_DEFINED__
  15519. #define __ID3D12Resource2_INTERFACE_DEFINED__
  15520. /* interface ID3D12Resource2 */
  15521. /* [unique][local][object][uuid] */
  15522. EXTERN_C const IID IID_ID3D12Resource2;
  15523. #if defined(__cplusplus) && !defined(CINTERFACE)
  15524. MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495")
  15525. ID3D12Resource2 : public ID3D12Resource1
  15526. {
  15527. public:
  15528. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  15529. virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
  15530. #else
  15531. virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1(
  15532. D3D12_RESOURCE_DESC1 * RetVal) = 0;
  15533. #endif
  15534. };
  15535. #else /* C style interface */
  15536. typedef struct ID3D12Resource2Vtbl
  15537. {
  15538. BEGIN_INTERFACE
  15539. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  15540. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  15541. ID3D12Resource2 * This,
  15542. REFIID riid,
  15543. _COM_Outptr_ void **ppvObject);
  15544. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  15545. ULONG ( STDMETHODCALLTYPE *AddRef )(
  15546. ID3D12Resource2 * This);
  15547. DECLSPEC_XFGVIRT(IUnknown, Release)
  15548. ULONG ( STDMETHODCALLTYPE *Release )(
  15549. ID3D12Resource2 * This);
  15550. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  15551. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  15552. ID3D12Resource2 * This,
  15553. _In_ REFGUID guid,
  15554. _Inout_ UINT *pDataSize,
  15555. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  15556. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  15557. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  15558. ID3D12Resource2 * This,
  15559. _In_ REFGUID guid,
  15560. _In_ UINT DataSize,
  15561. _In_reads_bytes_opt_( DataSize ) const void *pData);
  15562. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  15563. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  15564. ID3D12Resource2 * This,
  15565. _In_ REFGUID guid,
  15566. _In_opt_ const IUnknown *pData);
  15567. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  15568. HRESULT ( STDMETHODCALLTYPE *SetName )(
  15569. ID3D12Resource2 * This,
  15570. _In_z_ LPCWSTR Name);
  15571. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  15572. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  15573. ID3D12Resource2 * This,
  15574. REFIID riid,
  15575. _COM_Outptr_opt_ void **ppvDevice);
  15576. DECLSPEC_XFGVIRT(ID3D12Resource, Map)
  15577. HRESULT ( STDMETHODCALLTYPE *Map )(
  15578. ID3D12Resource2 * This,
  15579. UINT Subresource,
  15580. _In_opt_ const D3D12_RANGE *pReadRange,
  15581. _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
  15582. DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
  15583. void ( STDMETHODCALLTYPE *Unmap )(
  15584. ID3D12Resource2 * This,
  15585. UINT Subresource,
  15586. _In_opt_ const D3D12_RANGE *pWrittenRange);
  15587. DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
  15588. #if !defined(_WIN32)
  15589. D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
  15590. ID3D12Resource2 * This);
  15591. #else
  15592. D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
  15593. ID3D12Resource2 * This,
  15594. D3D12_RESOURCE_DESC * RetVal);
  15595. #endif
  15596. DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
  15597. D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
  15598. ID3D12Resource2 * This);
  15599. DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
  15600. HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
  15601. ID3D12Resource2 * This,
  15602. UINT DstSubresource,
  15603. _In_opt_ const D3D12_BOX *pDstBox,
  15604. _In_ const void *pSrcData,
  15605. UINT SrcRowPitch,
  15606. UINT SrcDepthPitch);
  15607. DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
  15608. HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
  15609. ID3D12Resource2 * This,
  15610. _Out_ void *pDstData,
  15611. UINT DstRowPitch,
  15612. UINT DstDepthPitch,
  15613. UINT SrcSubresource,
  15614. _In_opt_ const D3D12_BOX *pSrcBox);
  15615. DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
  15616. HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
  15617. ID3D12Resource2 * This,
  15618. _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
  15619. _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
  15620. DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
  15621. HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
  15622. ID3D12Resource2 * This,
  15623. REFIID riid,
  15624. _COM_Outptr_opt_ void **ppProtectedSession);
  15625. DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1)
  15626. #if !defined(_WIN32)
  15627. D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
  15628. ID3D12Resource2 * This);
  15629. #else
  15630. D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
  15631. ID3D12Resource2 * This,
  15632. D3D12_RESOURCE_DESC1 * RetVal);
  15633. #endif
  15634. END_INTERFACE
  15635. } ID3D12Resource2Vtbl;
  15636. interface ID3D12Resource2
  15637. {
  15638. CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl;
  15639. };
  15640. #ifdef COBJMACROS
  15641. #define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \
  15642. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  15643. #define ID3D12Resource2_AddRef(This) \
  15644. ( (This)->lpVtbl -> AddRef(This) )
  15645. #define ID3D12Resource2_Release(This) \
  15646. ( (This)->lpVtbl -> Release(This) )
  15647. #define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \
  15648. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  15649. #define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \
  15650. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  15651. #define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \
  15652. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  15653. #define ID3D12Resource2_SetName(This,Name) \
  15654. ( (This)->lpVtbl -> SetName(This,Name) )
  15655. #define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \
  15656. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  15657. #define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \
  15658. ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
  15659. #define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \
  15660. ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
  15661. #if !defined(_WIN32)
  15662. #define ID3D12Resource2_GetDesc(This) \
  15663. ( (This)->lpVtbl -> GetDesc(This) )
  15664. #else
  15665. #define ID3D12Resource2_GetDesc(This,RetVal) \
  15666. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  15667. #endif
  15668. #define ID3D12Resource2_GetGPUVirtualAddress(This) \
  15669. ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
  15670. #define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
  15671. ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
  15672. #define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
  15673. ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
  15674. #define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
  15675. ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
  15676. #define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \
  15677. ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
  15678. #if !defined(_WIN32)
  15679. #define ID3D12Resource2_GetDesc1(This) \
  15680. ( (This)->lpVtbl -> GetDesc1(This) )
  15681. #else
  15682. #define ID3D12Resource2_GetDesc1(This,RetVal) \
  15683. ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
  15684. #endif
  15685. #endif /* COBJMACROS */
  15686. #endif /* C style interface */
  15687. #endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
  15688. #ifndef __ID3D12Heap1_INTERFACE_DEFINED__
  15689. #define __ID3D12Heap1_INTERFACE_DEFINED__
  15690. /* interface ID3D12Heap1 */
  15691. /* [unique][local][object][uuid] */
  15692. EXTERN_C const IID IID_ID3D12Heap1;
  15693. #if defined(__cplusplus) && !defined(CINTERFACE)
  15694. MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D")
  15695. ID3D12Heap1 : public ID3D12Heap
  15696. {
  15697. public:
  15698. virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
  15699. REFIID riid,
  15700. _COM_Outptr_opt_ void **ppProtectedSession) = 0;
  15701. };
  15702. #else /* C style interface */
  15703. typedef struct ID3D12Heap1Vtbl
  15704. {
  15705. BEGIN_INTERFACE
  15706. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  15707. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  15708. ID3D12Heap1 * This,
  15709. REFIID riid,
  15710. _COM_Outptr_ void **ppvObject);
  15711. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  15712. ULONG ( STDMETHODCALLTYPE *AddRef )(
  15713. ID3D12Heap1 * This);
  15714. DECLSPEC_XFGVIRT(IUnknown, Release)
  15715. ULONG ( STDMETHODCALLTYPE *Release )(
  15716. ID3D12Heap1 * This);
  15717. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  15718. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  15719. ID3D12Heap1 * This,
  15720. _In_ REFGUID guid,
  15721. _Inout_ UINT *pDataSize,
  15722. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  15723. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  15724. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  15725. ID3D12Heap1 * This,
  15726. _In_ REFGUID guid,
  15727. _In_ UINT DataSize,
  15728. _In_reads_bytes_opt_( DataSize ) const void *pData);
  15729. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  15730. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  15731. ID3D12Heap1 * This,
  15732. _In_ REFGUID guid,
  15733. _In_opt_ const IUnknown *pData);
  15734. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  15735. HRESULT ( STDMETHODCALLTYPE *SetName )(
  15736. ID3D12Heap1 * This,
  15737. _In_z_ LPCWSTR Name);
  15738. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  15739. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  15740. ID3D12Heap1 * This,
  15741. REFIID riid,
  15742. _COM_Outptr_opt_ void **ppvDevice);
  15743. DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
  15744. #if !defined(_WIN32)
  15745. D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
  15746. ID3D12Heap1 * This);
  15747. #else
  15748. D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
  15749. ID3D12Heap1 * This,
  15750. D3D12_HEAP_DESC * RetVal);
  15751. #endif
  15752. DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession)
  15753. HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
  15754. ID3D12Heap1 * This,
  15755. REFIID riid,
  15756. _COM_Outptr_opt_ void **ppProtectedSession);
  15757. END_INTERFACE
  15758. } ID3D12Heap1Vtbl;
  15759. interface ID3D12Heap1
  15760. {
  15761. CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl;
  15762. };
  15763. #ifdef COBJMACROS
  15764. #define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \
  15765. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  15766. #define ID3D12Heap1_AddRef(This) \
  15767. ( (This)->lpVtbl -> AddRef(This) )
  15768. #define ID3D12Heap1_Release(This) \
  15769. ( (This)->lpVtbl -> Release(This) )
  15770. #define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \
  15771. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  15772. #define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \
  15773. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  15774. #define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \
  15775. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  15776. #define ID3D12Heap1_SetName(This,Name) \
  15777. ( (This)->lpVtbl -> SetName(This,Name) )
  15778. #define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \
  15779. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  15780. #if !defined(_WIN32)
  15781. #define ID3D12Heap1_GetDesc(This) \
  15782. ( (This)->lpVtbl -> GetDesc(This) )
  15783. #else
  15784. #define ID3D12Heap1_GetDesc(This,RetVal) \
  15785. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  15786. #endif
  15787. #define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
  15788. ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
  15789. #endif /* COBJMACROS */
  15790. #endif /* C style interface */
  15791. #endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
  15792. #ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
  15793. #define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
  15794. /* interface ID3D12GraphicsCommandList3 */
  15795. /* [unique][local][object][uuid] */
  15796. EXTERN_C const IID IID_ID3D12GraphicsCommandList3;
  15797. #if defined(__cplusplus) && !defined(CINTERFACE)
  15798. MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D")
  15799. ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
  15800. {
  15801. public:
  15802. virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
  15803. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
  15804. };
  15805. #else /* C style interface */
  15806. typedef struct ID3D12GraphicsCommandList3Vtbl
  15807. {
  15808. BEGIN_INTERFACE
  15809. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  15810. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  15811. ID3D12GraphicsCommandList3 * This,
  15812. REFIID riid,
  15813. _COM_Outptr_ void **ppvObject);
  15814. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  15815. ULONG ( STDMETHODCALLTYPE *AddRef )(
  15816. ID3D12GraphicsCommandList3 * This);
  15817. DECLSPEC_XFGVIRT(IUnknown, Release)
  15818. ULONG ( STDMETHODCALLTYPE *Release )(
  15819. ID3D12GraphicsCommandList3 * This);
  15820. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  15821. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  15822. ID3D12GraphicsCommandList3 * This,
  15823. _In_ REFGUID guid,
  15824. _Inout_ UINT *pDataSize,
  15825. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  15826. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  15827. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  15828. ID3D12GraphicsCommandList3 * This,
  15829. _In_ REFGUID guid,
  15830. _In_ UINT DataSize,
  15831. _In_reads_bytes_opt_( DataSize ) const void *pData);
  15832. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  15833. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  15834. ID3D12GraphicsCommandList3 * This,
  15835. _In_ REFGUID guid,
  15836. _In_opt_ const IUnknown *pData);
  15837. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  15838. HRESULT ( STDMETHODCALLTYPE *SetName )(
  15839. ID3D12GraphicsCommandList3 * This,
  15840. _In_z_ LPCWSTR Name);
  15841. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  15842. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  15843. ID3D12GraphicsCommandList3 * This,
  15844. REFIID riid,
  15845. _COM_Outptr_opt_ void **ppvDevice);
  15846. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  15847. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  15848. ID3D12GraphicsCommandList3 * This);
  15849. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  15850. HRESULT ( STDMETHODCALLTYPE *Close )(
  15851. ID3D12GraphicsCommandList3 * This);
  15852. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  15853. HRESULT ( STDMETHODCALLTYPE *Reset )(
  15854. ID3D12GraphicsCommandList3 * This,
  15855. _In_ ID3D12CommandAllocator *pAllocator,
  15856. _In_opt_ ID3D12PipelineState *pInitialState);
  15857. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  15858. void ( STDMETHODCALLTYPE *ClearState )(
  15859. ID3D12GraphicsCommandList3 * This,
  15860. _In_opt_ ID3D12PipelineState *pPipelineState);
  15861. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  15862. void ( STDMETHODCALLTYPE *DrawInstanced )(
  15863. ID3D12GraphicsCommandList3 * This,
  15864. _In_ UINT VertexCountPerInstance,
  15865. _In_ UINT InstanceCount,
  15866. _In_ UINT StartVertexLocation,
  15867. _In_ UINT StartInstanceLocation);
  15868. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  15869. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  15870. ID3D12GraphicsCommandList3 * This,
  15871. _In_ UINT IndexCountPerInstance,
  15872. _In_ UINT InstanceCount,
  15873. _In_ UINT StartIndexLocation,
  15874. _In_ INT BaseVertexLocation,
  15875. _In_ UINT StartInstanceLocation);
  15876. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  15877. void ( STDMETHODCALLTYPE *Dispatch )(
  15878. ID3D12GraphicsCommandList3 * This,
  15879. _In_ UINT ThreadGroupCountX,
  15880. _In_ UINT ThreadGroupCountY,
  15881. _In_ UINT ThreadGroupCountZ);
  15882. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  15883. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  15884. ID3D12GraphicsCommandList3 * This,
  15885. _In_ ID3D12Resource *pDstBuffer,
  15886. UINT64 DstOffset,
  15887. _In_ ID3D12Resource *pSrcBuffer,
  15888. UINT64 SrcOffset,
  15889. UINT64 NumBytes);
  15890. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  15891. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  15892. ID3D12GraphicsCommandList3 * This,
  15893. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  15894. UINT DstX,
  15895. UINT DstY,
  15896. UINT DstZ,
  15897. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  15898. _In_opt_ const D3D12_BOX *pSrcBox);
  15899. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  15900. void ( STDMETHODCALLTYPE *CopyResource )(
  15901. ID3D12GraphicsCommandList3 * This,
  15902. _In_ ID3D12Resource *pDstResource,
  15903. _In_ ID3D12Resource *pSrcResource);
  15904. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  15905. void ( STDMETHODCALLTYPE *CopyTiles )(
  15906. ID3D12GraphicsCommandList3 * This,
  15907. _In_ ID3D12Resource *pTiledResource,
  15908. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  15909. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  15910. _In_ ID3D12Resource *pBuffer,
  15911. UINT64 BufferStartOffsetInBytes,
  15912. D3D12_TILE_COPY_FLAGS Flags);
  15913. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  15914. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  15915. ID3D12GraphicsCommandList3 * This,
  15916. _In_ ID3D12Resource *pDstResource,
  15917. _In_ UINT DstSubresource,
  15918. _In_ ID3D12Resource *pSrcResource,
  15919. _In_ UINT SrcSubresource,
  15920. _In_ DXGI_FORMAT Format);
  15921. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  15922. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  15923. ID3D12GraphicsCommandList3 * This,
  15924. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  15925. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  15926. void ( STDMETHODCALLTYPE *RSSetViewports )(
  15927. ID3D12GraphicsCommandList3 * This,
  15928. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  15929. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  15930. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  15931. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  15932. ID3D12GraphicsCommandList3 * This,
  15933. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  15934. _In_reads_( NumRects) const D3D12_RECT *pRects);
  15935. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  15936. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  15937. ID3D12GraphicsCommandList3 * This,
  15938. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  15939. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  15940. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  15941. ID3D12GraphicsCommandList3 * This,
  15942. _In_ UINT StencilRef);
  15943. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  15944. void ( STDMETHODCALLTYPE *SetPipelineState )(
  15945. ID3D12GraphicsCommandList3 * This,
  15946. _In_ ID3D12PipelineState *pPipelineState);
  15947. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  15948. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  15949. ID3D12GraphicsCommandList3 * This,
  15950. _In_ UINT NumBarriers,
  15951. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  15952. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  15953. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  15954. ID3D12GraphicsCommandList3 * This,
  15955. _In_ ID3D12GraphicsCommandList *pCommandList);
  15956. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  15957. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  15958. ID3D12GraphicsCommandList3 * This,
  15959. _In_ UINT NumDescriptorHeaps,
  15960. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  15961. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  15962. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  15963. ID3D12GraphicsCommandList3 * This,
  15964. _In_opt_ ID3D12RootSignature *pRootSignature);
  15965. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  15966. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  15967. ID3D12GraphicsCommandList3 * This,
  15968. _In_opt_ ID3D12RootSignature *pRootSignature);
  15969. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  15970. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  15971. ID3D12GraphicsCommandList3 * This,
  15972. _In_ UINT RootParameterIndex,
  15973. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  15974. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  15975. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  15976. ID3D12GraphicsCommandList3 * This,
  15977. _In_ UINT RootParameterIndex,
  15978. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  15979. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  15980. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  15981. ID3D12GraphicsCommandList3 * This,
  15982. _In_ UINT RootParameterIndex,
  15983. _In_ UINT SrcData,
  15984. _In_ UINT DestOffsetIn32BitValues);
  15985. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  15986. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  15987. ID3D12GraphicsCommandList3 * This,
  15988. _In_ UINT RootParameterIndex,
  15989. _In_ UINT SrcData,
  15990. _In_ UINT DestOffsetIn32BitValues);
  15991. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  15992. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  15993. ID3D12GraphicsCommandList3 * This,
  15994. _In_ UINT RootParameterIndex,
  15995. _In_ UINT Num32BitValuesToSet,
  15996. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  15997. _In_ UINT DestOffsetIn32BitValues);
  15998. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  15999. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  16000. ID3D12GraphicsCommandList3 * This,
  16001. _In_ UINT RootParameterIndex,
  16002. _In_ UINT Num32BitValuesToSet,
  16003. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  16004. _In_ UINT DestOffsetIn32BitValues);
  16005. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  16006. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  16007. ID3D12GraphicsCommandList3 * This,
  16008. _In_ UINT RootParameterIndex,
  16009. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16010. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  16011. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  16012. ID3D12GraphicsCommandList3 * This,
  16013. _In_ UINT RootParameterIndex,
  16014. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16015. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  16016. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  16017. ID3D12GraphicsCommandList3 * This,
  16018. _In_ UINT RootParameterIndex,
  16019. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16020. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  16021. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  16022. ID3D12GraphicsCommandList3 * This,
  16023. _In_ UINT RootParameterIndex,
  16024. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16025. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  16026. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  16027. ID3D12GraphicsCommandList3 * This,
  16028. _In_ UINT RootParameterIndex,
  16029. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16030. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  16031. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  16032. ID3D12GraphicsCommandList3 * This,
  16033. _In_ UINT RootParameterIndex,
  16034. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16035. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  16036. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  16037. ID3D12GraphicsCommandList3 * This,
  16038. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  16039. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  16040. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  16041. ID3D12GraphicsCommandList3 * This,
  16042. _In_ UINT StartSlot,
  16043. _In_ UINT NumViews,
  16044. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  16045. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  16046. void ( STDMETHODCALLTYPE *SOSetTargets )(
  16047. ID3D12GraphicsCommandList3 * This,
  16048. _In_ UINT StartSlot,
  16049. _In_ UINT NumViews,
  16050. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  16051. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  16052. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  16053. ID3D12GraphicsCommandList3 * This,
  16054. _In_ UINT NumRenderTargetDescriptors,
  16055. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  16056. _In_ BOOL RTsSingleHandleToDescriptorRange,
  16057. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  16058. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  16059. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  16060. ID3D12GraphicsCommandList3 * This,
  16061. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  16062. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  16063. _In_ FLOAT Depth,
  16064. _In_ UINT8 Stencil,
  16065. _In_ UINT NumRects,
  16066. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16067. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  16068. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  16069. ID3D12GraphicsCommandList3 * This,
  16070. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  16071. _In_ const FLOAT ColorRGBA[ 4 ],
  16072. _In_ UINT NumRects,
  16073. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16074. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  16075. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  16076. ID3D12GraphicsCommandList3 * This,
  16077. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  16078. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  16079. _In_ ID3D12Resource *pResource,
  16080. _In_ const UINT Values[ 4 ],
  16081. _In_ UINT NumRects,
  16082. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16083. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  16084. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  16085. ID3D12GraphicsCommandList3 * This,
  16086. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  16087. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  16088. _In_ ID3D12Resource *pResource,
  16089. _In_ const FLOAT Values[ 4 ],
  16090. _In_ UINT NumRects,
  16091. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16092. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  16093. void ( STDMETHODCALLTYPE *DiscardResource )(
  16094. ID3D12GraphicsCommandList3 * This,
  16095. _In_ ID3D12Resource *pResource,
  16096. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  16097. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  16098. void ( STDMETHODCALLTYPE *BeginQuery )(
  16099. ID3D12GraphicsCommandList3 * This,
  16100. _In_ ID3D12QueryHeap *pQueryHeap,
  16101. _In_ D3D12_QUERY_TYPE Type,
  16102. _In_ UINT Index);
  16103. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  16104. void ( STDMETHODCALLTYPE *EndQuery )(
  16105. ID3D12GraphicsCommandList3 * This,
  16106. _In_ ID3D12QueryHeap *pQueryHeap,
  16107. _In_ D3D12_QUERY_TYPE Type,
  16108. _In_ UINT Index);
  16109. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  16110. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  16111. ID3D12GraphicsCommandList3 * This,
  16112. _In_ ID3D12QueryHeap *pQueryHeap,
  16113. _In_ D3D12_QUERY_TYPE Type,
  16114. _In_ UINT StartIndex,
  16115. _In_ UINT NumQueries,
  16116. _In_ ID3D12Resource *pDestinationBuffer,
  16117. _In_ UINT64 AlignedDestinationBufferOffset);
  16118. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  16119. void ( STDMETHODCALLTYPE *SetPredication )(
  16120. ID3D12GraphicsCommandList3 * This,
  16121. _In_opt_ ID3D12Resource *pBuffer,
  16122. _In_ UINT64 AlignedBufferOffset,
  16123. _In_ D3D12_PREDICATION_OP Operation);
  16124. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  16125. void ( STDMETHODCALLTYPE *SetMarker )(
  16126. ID3D12GraphicsCommandList3 * This,
  16127. UINT Metadata,
  16128. _In_reads_bytes_opt_(Size) const void *pData,
  16129. UINT Size);
  16130. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  16131. void ( STDMETHODCALLTYPE *BeginEvent )(
  16132. ID3D12GraphicsCommandList3 * This,
  16133. UINT Metadata,
  16134. _In_reads_bytes_opt_(Size) const void *pData,
  16135. UINT Size);
  16136. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  16137. void ( STDMETHODCALLTYPE *EndEvent )(
  16138. ID3D12GraphicsCommandList3 * This);
  16139. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  16140. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  16141. ID3D12GraphicsCommandList3 * This,
  16142. _In_ ID3D12CommandSignature *pCommandSignature,
  16143. _In_ UINT MaxCommandCount,
  16144. _In_ ID3D12Resource *pArgumentBuffer,
  16145. _In_ UINT64 ArgumentBufferOffset,
  16146. _In_opt_ ID3D12Resource *pCountBuffer,
  16147. _In_ UINT64 CountBufferOffset);
  16148. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  16149. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  16150. ID3D12GraphicsCommandList3 * This,
  16151. _In_ ID3D12Resource *pDstBuffer,
  16152. UINT64 DstOffset,
  16153. _In_ ID3D12Resource *pSrcBuffer,
  16154. UINT64 SrcOffset,
  16155. UINT Dependencies,
  16156. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  16157. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  16158. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  16159. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  16160. ID3D12GraphicsCommandList3 * This,
  16161. _In_ ID3D12Resource *pDstBuffer,
  16162. UINT64 DstOffset,
  16163. _In_ ID3D12Resource *pSrcBuffer,
  16164. UINT64 SrcOffset,
  16165. UINT Dependencies,
  16166. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  16167. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  16168. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  16169. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  16170. ID3D12GraphicsCommandList3 * This,
  16171. _In_ FLOAT Min,
  16172. _In_ FLOAT Max);
  16173. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  16174. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  16175. ID3D12GraphicsCommandList3 * This,
  16176. _In_ UINT NumSamplesPerPixel,
  16177. _In_ UINT NumPixels,
  16178. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  16179. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  16180. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  16181. ID3D12GraphicsCommandList3 * This,
  16182. _In_ ID3D12Resource *pDstResource,
  16183. _In_ UINT DstSubresource,
  16184. _In_ UINT DstX,
  16185. _In_ UINT DstY,
  16186. _In_ ID3D12Resource *pSrcResource,
  16187. _In_ UINT SrcSubresource,
  16188. _In_opt_ D3D12_RECT *pSrcRect,
  16189. _In_ DXGI_FORMAT Format,
  16190. _In_ D3D12_RESOLVE_MODE ResolveMode);
  16191. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  16192. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  16193. ID3D12GraphicsCommandList3 * This,
  16194. _In_ UINT Mask);
  16195. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  16196. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  16197. ID3D12GraphicsCommandList3 * This,
  16198. UINT Count,
  16199. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  16200. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  16201. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  16202. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  16203. ID3D12GraphicsCommandList3 * This,
  16204. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  16205. END_INTERFACE
  16206. } ID3D12GraphicsCommandList3Vtbl;
  16207. interface ID3D12GraphicsCommandList3
  16208. {
  16209. CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl;
  16210. };
  16211. #ifdef COBJMACROS
  16212. #define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \
  16213. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  16214. #define ID3D12GraphicsCommandList3_AddRef(This) \
  16215. ( (This)->lpVtbl -> AddRef(This) )
  16216. #define ID3D12GraphicsCommandList3_Release(This) \
  16217. ( (This)->lpVtbl -> Release(This) )
  16218. #define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
  16219. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  16220. #define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \
  16221. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  16222. #define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \
  16223. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  16224. #define ID3D12GraphicsCommandList3_SetName(This,Name) \
  16225. ( (This)->lpVtbl -> SetName(This,Name) )
  16226. #define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \
  16227. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  16228. #define ID3D12GraphicsCommandList3_GetType(This) \
  16229. ( (This)->lpVtbl -> GetType(This) )
  16230. #define ID3D12GraphicsCommandList3_Close(This) \
  16231. ( (This)->lpVtbl -> Close(This) )
  16232. #define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \
  16233. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  16234. #define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \
  16235. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  16236. #define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  16237. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  16238. #define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  16239. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  16240. #define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  16241. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  16242. #define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  16243. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  16244. #define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  16245. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  16246. #define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \
  16247. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  16248. #define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  16249. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  16250. #define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  16251. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  16252. #define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \
  16253. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  16254. #define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \
  16255. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  16256. #define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \
  16257. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  16258. #define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \
  16259. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  16260. #define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \
  16261. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  16262. #define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \
  16263. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  16264. #define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
  16265. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  16266. #define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \
  16267. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  16268. #define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  16269. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  16270. #define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \
  16271. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  16272. #define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \
  16273. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  16274. #define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  16275. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  16276. #define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  16277. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  16278. #define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  16279. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  16280. #define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  16281. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  16282. #define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  16283. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  16284. #define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  16285. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  16286. #define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  16287. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  16288. #define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  16289. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  16290. #define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  16291. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  16292. #define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  16293. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  16294. #define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  16295. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  16296. #define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  16297. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  16298. #define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \
  16299. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  16300. #define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  16301. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  16302. #define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \
  16303. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  16304. #define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  16305. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  16306. #define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  16307. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  16308. #define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  16309. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  16310. #define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  16311. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  16312. #define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  16313. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  16314. #define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \
  16315. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  16316. #define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
  16317. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  16318. #define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
  16319. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  16320. #define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  16321. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  16322. #define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  16323. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  16324. #define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \
  16325. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  16326. #define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \
  16327. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  16328. #define ID3D12GraphicsCommandList3_EndEvent(This) \
  16329. ( (This)->lpVtbl -> EndEvent(This) )
  16330. #define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  16331. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  16332. #define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  16333. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  16334. #define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  16335. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  16336. #define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \
  16337. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  16338. #define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  16339. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  16340. #define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  16341. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  16342. #define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \
  16343. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  16344. #define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
  16345. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  16346. #define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
  16347. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  16348. #endif /* COBJMACROS */
  16349. #endif /* C style interface */
  16350. #endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
  16351. /* interface __MIDL_itf_d3d12_0000_0054 */
  16352. /* [local] */
  16353. typedef
  16354. enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
  16355. {
  16356. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0,
  16357. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) ,
  16358. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) ,
  16359. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) ,
  16360. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
  16361. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
  16362. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
  16363. } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
  16364. typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
  16365. {
  16366. D3D12_CLEAR_VALUE ClearValue;
  16367. } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
  16368. typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS
  16369. {
  16370. UINT AdditionalWidth;
  16371. UINT AdditionalHeight;
  16372. } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
  16373. typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
  16374. {
  16375. D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
  16376. union
  16377. {
  16378. D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
  16379. D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
  16380. } ;
  16381. } D3D12_RENDER_PASS_BEGINNING_ACCESS;
  16382. typedef
  16383. enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
  16384. {
  16385. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0,
  16386. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) ,
  16387. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) ,
  16388. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) ,
  16389. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
  16390. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
  16391. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
  16392. } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
  16393. typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
  16394. {
  16395. UINT SrcSubresource;
  16396. UINT DstSubresource;
  16397. UINT DstX;
  16398. UINT DstY;
  16399. D3D12_RECT SrcRect;
  16400. } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
  16401. typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
  16402. {
  16403. ID3D12Resource *pSrcResource;
  16404. ID3D12Resource *pDstResource;
  16405. UINT SubresourceCount;
  16406. _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
  16407. DXGI_FORMAT Format;
  16408. D3D12_RESOLVE_MODE ResolveMode;
  16409. BOOL PreserveResolveSource;
  16410. } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
  16411. typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS
  16412. {
  16413. UINT AdditionalWidth;
  16414. UINT AdditionalHeight;
  16415. } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
  16416. typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
  16417. {
  16418. D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
  16419. union
  16420. {
  16421. D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
  16422. D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
  16423. } ;
  16424. } D3D12_RENDER_PASS_ENDING_ACCESS;
  16425. typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
  16426. {
  16427. D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
  16428. D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
  16429. D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
  16430. } D3D12_RENDER_PASS_RENDER_TARGET_DESC;
  16431. typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
  16432. {
  16433. D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
  16434. D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
  16435. D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
  16436. D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
  16437. D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
  16438. } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
  16439. typedef
  16440. enum D3D12_RENDER_PASS_FLAGS
  16441. {
  16442. D3D12_RENDER_PASS_FLAG_NONE = 0,
  16443. D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
  16444. D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
  16445. D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4,
  16446. D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8,
  16447. D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10
  16448. } D3D12_RENDER_PASS_FLAGS;
  16449. DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS )
  16450. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec;
  16451. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec;
  16452. #ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
  16453. #define __ID3D12MetaCommand_INTERFACE_DEFINED__
  16454. /* interface ID3D12MetaCommand */
  16455. /* [unique][local][object][uuid] */
  16456. EXTERN_C const IID IID_ID3D12MetaCommand;
  16457. #if defined(__cplusplus) && !defined(CINTERFACE)
  16458. MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570")
  16459. ID3D12MetaCommand : public ID3D12Pageable
  16460. {
  16461. public:
  16462. virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
  16463. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  16464. _In_ UINT ParameterIndex) = 0;
  16465. };
  16466. #else /* C style interface */
  16467. typedef struct ID3D12MetaCommandVtbl
  16468. {
  16469. BEGIN_INTERFACE
  16470. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  16471. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  16472. ID3D12MetaCommand * This,
  16473. REFIID riid,
  16474. _COM_Outptr_ void **ppvObject);
  16475. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  16476. ULONG ( STDMETHODCALLTYPE *AddRef )(
  16477. ID3D12MetaCommand * This);
  16478. DECLSPEC_XFGVIRT(IUnknown, Release)
  16479. ULONG ( STDMETHODCALLTYPE *Release )(
  16480. ID3D12MetaCommand * This);
  16481. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  16482. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  16483. ID3D12MetaCommand * This,
  16484. _In_ REFGUID guid,
  16485. _Inout_ UINT *pDataSize,
  16486. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  16487. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  16488. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  16489. ID3D12MetaCommand * This,
  16490. _In_ REFGUID guid,
  16491. _In_ UINT DataSize,
  16492. _In_reads_bytes_opt_( DataSize ) const void *pData);
  16493. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  16494. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  16495. ID3D12MetaCommand * This,
  16496. _In_ REFGUID guid,
  16497. _In_opt_ const IUnknown *pData);
  16498. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  16499. HRESULT ( STDMETHODCALLTYPE *SetName )(
  16500. ID3D12MetaCommand * This,
  16501. _In_z_ LPCWSTR Name);
  16502. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  16503. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  16504. ID3D12MetaCommand * This,
  16505. REFIID riid,
  16506. _COM_Outptr_opt_ void **ppvDevice);
  16507. DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize)
  16508. UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )(
  16509. ID3D12MetaCommand * This,
  16510. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  16511. _In_ UINT ParameterIndex);
  16512. END_INTERFACE
  16513. } ID3D12MetaCommandVtbl;
  16514. interface ID3D12MetaCommand
  16515. {
  16516. CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl;
  16517. };
  16518. #ifdef COBJMACROS
  16519. #define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \
  16520. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  16521. #define ID3D12MetaCommand_AddRef(This) \
  16522. ( (This)->lpVtbl -> AddRef(This) )
  16523. #define ID3D12MetaCommand_Release(This) \
  16524. ( (This)->lpVtbl -> Release(This) )
  16525. #define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \
  16526. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  16527. #define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \
  16528. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  16529. #define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \
  16530. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  16531. #define ID3D12MetaCommand_SetName(This,Name) \
  16532. ( (This)->lpVtbl -> SetName(This,Name) )
  16533. #define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \
  16534. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  16535. #define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \
  16536. ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) )
  16537. #endif /* COBJMACROS */
  16538. #endif /* C style interface */
  16539. #endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
  16540. /* interface __MIDL_itf_d3d12_0000_0055 */
  16541. /* [local] */
  16542. typedef struct D3D12_DISPATCH_RAYS_DESC
  16543. {
  16544. D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
  16545. D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
  16546. D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
  16547. D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
  16548. UINT Width;
  16549. UINT Height;
  16550. UINT Depth;
  16551. } D3D12_DISPATCH_RAYS_DESC;
  16552. typedef
  16553. enum D3D12_SET_WORK_GRAPH_FLAGS
  16554. {
  16555. D3D12_SET_WORK_GRAPH_FLAG_NONE = 0,
  16556. D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1
  16557. } D3D12_SET_WORK_GRAPH_FLAGS;
  16558. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS )
  16559. typedef struct D3D12_SET_WORK_GRAPH_DESC
  16560. {
  16561. D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
  16562. D3D12_SET_WORK_GRAPH_FLAGS Flags;
  16563. D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory;
  16564. D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable;
  16565. } D3D12_SET_WORK_GRAPH_DESC;
  16566. typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC
  16567. {
  16568. D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
  16569. } D3D12_SET_RAYTRACING_PIPELINE_DESC;
  16570. typedef struct D3D12_SET_GENERIC_PIPELINE_DESC
  16571. {
  16572. D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
  16573. } D3D12_SET_GENERIC_PIPELINE_DESC;
  16574. typedef
  16575. enum D3D12_PROGRAM_TYPE
  16576. {
  16577. D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1,
  16578. D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4,
  16579. D3D12_PROGRAM_TYPE_WORK_GRAPH = 5
  16580. } D3D12_PROGRAM_TYPE;
  16581. typedef struct D3D12_SET_PROGRAM_DESC
  16582. {
  16583. D3D12_PROGRAM_TYPE Type;
  16584. union
  16585. {
  16586. D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline;
  16587. D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline;
  16588. D3D12_SET_WORK_GRAPH_DESC WorkGraph;
  16589. } ;
  16590. } D3D12_SET_PROGRAM_DESC;
  16591. typedef
  16592. enum D3D12_DISPATCH_MODE
  16593. {
  16594. D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0,
  16595. D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1,
  16596. D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2,
  16597. D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3
  16598. } D3D12_DISPATCH_MODE;
  16599. typedef struct D3D12_NODE_CPU_INPUT
  16600. {
  16601. UINT EntrypointIndex;
  16602. UINT NumRecords;
  16603. const void *pRecords;
  16604. UINT64 RecordStrideInBytes;
  16605. } D3D12_NODE_CPU_INPUT;
  16606. typedef struct D3D12_NODE_GPU_INPUT
  16607. {
  16608. UINT EntrypointIndex;
  16609. UINT NumRecords;
  16610. D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records;
  16611. } D3D12_NODE_GPU_INPUT;
  16612. typedef struct D3D12_MULTI_NODE_CPU_INPUT
  16613. {
  16614. UINT NumNodeInputs;
  16615. const D3D12_NODE_CPU_INPUT *pNodeInputs;
  16616. UINT64 NodeInputStrideInBytes;
  16617. } D3D12_MULTI_NODE_CPU_INPUT;
  16618. typedef struct D3D12_MULTI_NODE_GPU_INPUT
  16619. {
  16620. UINT NumNodeInputs;
  16621. D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs;
  16622. } D3D12_MULTI_NODE_GPU_INPUT;
  16623. typedef struct D3D12_DISPATCH_GRAPH_DESC
  16624. {
  16625. D3D12_DISPATCH_MODE Mode;
  16626. union
  16627. {
  16628. D3D12_NODE_CPU_INPUT NodeCPUInput;
  16629. D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput;
  16630. D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput;
  16631. D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput;
  16632. } ;
  16633. } D3D12_DISPATCH_GRAPH_DESC;
  16634. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec;
  16635. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec;
  16636. #ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
  16637. #define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
  16638. /* interface ID3D12GraphicsCommandList4 */
  16639. /* [unique][local][object][uuid] */
  16640. EXTERN_C const IID IID_ID3D12GraphicsCommandList4;
  16641. #if defined(__cplusplus) && !defined(CINTERFACE)
  16642. MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
  16643. ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
  16644. {
  16645. public:
  16646. virtual void STDMETHODCALLTYPE BeginRenderPass(
  16647. _In_ UINT NumRenderTargets,
  16648. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  16649. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  16650. D3D12_RENDER_PASS_FLAGS Flags) = 0;
  16651. virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0;
  16652. virtual void STDMETHODCALLTYPE InitializeMetaCommand(
  16653. _In_ ID3D12MetaCommand *pMetaCommand,
  16654. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  16655. _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0;
  16656. virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
  16657. _In_ ID3D12MetaCommand *pMetaCommand,
  16658. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  16659. _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0;
  16660. virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
  16661. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  16662. _In_ UINT NumPostbuildInfoDescs,
  16663. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0;
  16664. virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
  16665. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  16666. _In_ UINT NumSourceAccelerationStructures,
  16667. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0;
  16668. virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
  16669. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  16670. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  16671. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0;
  16672. virtual void STDMETHODCALLTYPE SetPipelineState1(
  16673. _In_ ID3D12StateObject *pStateObject) = 0;
  16674. virtual void STDMETHODCALLTYPE DispatchRays(
  16675. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0;
  16676. };
  16677. #else /* C style interface */
  16678. typedef struct ID3D12GraphicsCommandList4Vtbl
  16679. {
  16680. BEGIN_INTERFACE
  16681. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  16682. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  16683. ID3D12GraphicsCommandList4 * This,
  16684. REFIID riid,
  16685. _COM_Outptr_ void **ppvObject);
  16686. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  16687. ULONG ( STDMETHODCALLTYPE *AddRef )(
  16688. ID3D12GraphicsCommandList4 * This);
  16689. DECLSPEC_XFGVIRT(IUnknown, Release)
  16690. ULONG ( STDMETHODCALLTYPE *Release )(
  16691. ID3D12GraphicsCommandList4 * This);
  16692. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  16693. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  16694. ID3D12GraphicsCommandList4 * This,
  16695. _In_ REFGUID guid,
  16696. _Inout_ UINT *pDataSize,
  16697. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  16698. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  16699. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  16700. ID3D12GraphicsCommandList4 * This,
  16701. _In_ REFGUID guid,
  16702. _In_ UINT DataSize,
  16703. _In_reads_bytes_opt_( DataSize ) const void *pData);
  16704. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  16705. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  16706. ID3D12GraphicsCommandList4 * This,
  16707. _In_ REFGUID guid,
  16708. _In_opt_ const IUnknown *pData);
  16709. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  16710. HRESULT ( STDMETHODCALLTYPE *SetName )(
  16711. ID3D12GraphicsCommandList4 * This,
  16712. _In_z_ LPCWSTR Name);
  16713. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  16714. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  16715. ID3D12GraphicsCommandList4 * This,
  16716. REFIID riid,
  16717. _COM_Outptr_opt_ void **ppvDevice);
  16718. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  16719. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  16720. ID3D12GraphicsCommandList4 * This);
  16721. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  16722. HRESULT ( STDMETHODCALLTYPE *Close )(
  16723. ID3D12GraphicsCommandList4 * This);
  16724. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  16725. HRESULT ( STDMETHODCALLTYPE *Reset )(
  16726. ID3D12GraphicsCommandList4 * This,
  16727. _In_ ID3D12CommandAllocator *pAllocator,
  16728. _In_opt_ ID3D12PipelineState *pInitialState);
  16729. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  16730. void ( STDMETHODCALLTYPE *ClearState )(
  16731. ID3D12GraphicsCommandList4 * This,
  16732. _In_opt_ ID3D12PipelineState *pPipelineState);
  16733. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  16734. void ( STDMETHODCALLTYPE *DrawInstanced )(
  16735. ID3D12GraphicsCommandList4 * This,
  16736. _In_ UINT VertexCountPerInstance,
  16737. _In_ UINT InstanceCount,
  16738. _In_ UINT StartVertexLocation,
  16739. _In_ UINT StartInstanceLocation);
  16740. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  16741. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  16742. ID3D12GraphicsCommandList4 * This,
  16743. _In_ UINT IndexCountPerInstance,
  16744. _In_ UINT InstanceCount,
  16745. _In_ UINT StartIndexLocation,
  16746. _In_ INT BaseVertexLocation,
  16747. _In_ UINT StartInstanceLocation);
  16748. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  16749. void ( STDMETHODCALLTYPE *Dispatch )(
  16750. ID3D12GraphicsCommandList4 * This,
  16751. _In_ UINT ThreadGroupCountX,
  16752. _In_ UINT ThreadGroupCountY,
  16753. _In_ UINT ThreadGroupCountZ);
  16754. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  16755. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  16756. ID3D12GraphicsCommandList4 * This,
  16757. _In_ ID3D12Resource *pDstBuffer,
  16758. UINT64 DstOffset,
  16759. _In_ ID3D12Resource *pSrcBuffer,
  16760. UINT64 SrcOffset,
  16761. UINT64 NumBytes);
  16762. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  16763. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  16764. ID3D12GraphicsCommandList4 * This,
  16765. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  16766. UINT DstX,
  16767. UINT DstY,
  16768. UINT DstZ,
  16769. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  16770. _In_opt_ const D3D12_BOX *pSrcBox);
  16771. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  16772. void ( STDMETHODCALLTYPE *CopyResource )(
  16773. ID3D12GraphicsCommandList4 * This,
  16774. _In_ ID3D12Resource *pDstResource,
  16775. _In_ ID3D12Resource *pSrcResource);
  16776. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  16777. void ( STDMETHODCALLTYPE *CopyTiles )(
  16778. ID3D12GraphicsCommandList4 * This,
  16779. _In_ ID3D12Resource *pTiledResource,
  16780. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  16781. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  16782. _In_ ID3D12Resource *pBuffer,
  16783. UINT64 BufferStartOffsetInBytes,
  16784. D3D12_TILE_COPY_FLAGS Flags);
  16785. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  16786. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  16787. ID3D12GraphicsCommandList4 * This,
  16788. _In_ ID3D12Resource *pDstResource,
  16789. _In_ UINT DstSubresource,
  16790. _In_ ID3D12Resource *pSrcResource,
  16791. _In_ UINT SrcSubresource,
  16792. _In_ DXGI_FORMAT Format);
  16793. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  16794. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  16795. ID3D12GraphicsCommandList4 * This,
  16796. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  16797. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  16798. void ( STDMETHODCALLTYPE *RSSetViewports )(
  16799. ID3D12GraphicsCommandList4 * This,
  16800. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  16801. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  16802. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  16803. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  16804. ID3D12GraphicsCommandList4 * This,
  16805. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  16806. _In_reads_( NumRects) const D3D12_RECT *pRects);
  16807. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  16808. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  16809. ID3D12GraphicsCommandList4 * This,
  16810. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  16811. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  16812. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  16813. ID3D12GraphicsCommandList4 * This,
  16814. _In_ UINT StencilRef);
  16815. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  16816. void ( STDMETHODCALLTYPE *SetPipelineState )(
  16817. ID3D12GraphicsCommandList4 * This,
  16818. _In_ ID3D12PipelineState *pPipelineState);
  16819. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  16820. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  16821. ID3D12GraphicsCommandList4 * This,
  16822. _In_ UINT NumBarriers,
  16823. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  16824. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  16825. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  16826. ID3D12GraphicsCommandList4 * This,
  16827. _In_ ID3D12GraphicsCommandList *pCommandList);
  16828. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  16829. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  16830. ID3D12GraphicsCommandList4 * This,
  16831. _In_ UINT NumDescriptorHeaps,
  16832. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  16833. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  16834. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  16835. ID3D12GraphicsCommandList4 * This,
  16836. _In_opt_ ID3D12RootSignature *pRootSignature);
  16837. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  16838. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  16839. ID3D12GraphicsCommandList4 * This,
  16840. _In_opt_ ID3D12RootSignature *pRootSignature);
  16841. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  16842. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  16843. ID3D12GraphicsCommandList4 * This,
  16844. _In_ UINT RootParameterIndex,
  16845. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  16846. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  16847. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  16848. ID3D12GraphicsCommandList4 * This,
  16849. _In_ UINT RootParameterIndex,
  16850. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  16851. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  16852. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  16853. ID3D12GraphicsCommandList4 * This,
  16854. _In_ UINT RootParameterIndex,
  16855. _In_ UINT SrcData,
  16856. _In_ UINT DestOffsetIn32BitValues);
  16857. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  16858. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  16859. ID3D12GraphicsCommandList4 * This,
  16860. _In_ UINT RootParameterIndex,
  16861. _In_ UINT SrcData,
  16862. _In_ UINT DestOffsetIn32BitValues);
  16863. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  16864. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  16865. ID3D12GraphicsCommandList4 * This,
  16866. _In_ UINT RootParameterIndex,
  16867. _In_ UINT Num32BitValuesToSet,
  16868. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  16869. _In_ UINT DestOffsetIn32BitValues);
  16870. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  16871. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  16872. ID3D12GraphicsCommandList4 * This,
  16873. _In_ UINT RootParameterIndex,
  16874. _In_ UINT Num32BitValuesToSet,
  16875. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  16876. _In_ UINT DestOffsetIn32BitValues);
  16877. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  16878. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  16879. ID3D12GraphicsCommandList4 * This,
  16880. _In_ UINT RootParameterIndex,
  16881. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16882. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  16883. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  16884. ID3D12GraphicsCommandList4 * This,
  16885. _In_ UINT RootParameterIndex,
  16886. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16887. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  16888. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  16889. ID3D12GraphicsCommandList4 * This,
  16890. _In_ UINT RootParameterIndex,
  16891. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16892. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  16893. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  16894. ID3D12GraphicsCommandList4 * This,
  16895. _In_ UINT RootParameterIndex,
  16896. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16897. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  16898. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  16899. ID3D12GraphicsCommandList4 * This,
  16900. _In_ UINT RootParameterIndex,
  16901. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16902. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  16903. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  16904. ID3D12GraphicsCommandList4 * This,
  16905. _In_ UINT RootParameterIndex,
  16906. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  16907. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  16908. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  16909. ID3D12GraphicsCommandList4 * This,
  16910. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  16911. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  16912. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  16913. ID3D12GraphicsCommandList4 * This,
  16914. _In_ UINT StartSlot,
  16915. _In_ UINT NumViews,
  16916. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  16917. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  16918. void ( STDMETHODCALLTYPE *SOSetTargets )(
  16919. ID3D12GraphicsCommandList4 * This,
  16920. _In_ UINT StartSlot,
  16921. _In_ UINT NumViews,
  16922. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  16923. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  16924. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  16925. ID3D12GraphicsCommandList4 * This,
  16926. _In_ UINT NumRenderTargetDescriptors,
  16927. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  16928. _In_ BOOL RTsSingleHandleToDescriptorRange,
  16929. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  16930. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  16931. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  16932. ID3D12GraphicsCommandList4 * This,
  16933. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  16934. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  16935. _In_ FLOAT Depth,
  16936. _In_ UINT8 Stencil,
  16937. _In_ UINT NumRects,
  16938. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16939. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  16940. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  16941. ID3D12GraphicsCommandList4 * This,
  16942. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  16943. _In_ const FLOAT ColorRGBA[ 4 ],
  16944. _In_ UINT NumRects,
  16945. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16946. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  16947. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  16948. ID3D12GraphicsCommandList4 * This,
  16949. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  16950. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  16951. _In_ ID3D12Resource *pResource,
  16952. _In_ const UINT Values[ 4 ],
  16953. _In_ UINT NumRects,
  16954. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16955. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  16956. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  16957. ID3D12GraphicsCommandList4 * This,
  16958. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  16959. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  16960. _In_ ID3D12Resource *pResource,
  16961. _In_ const FLOAT Values[ 4 ],
  16962. _In_ UINT NumRects,
  16963. _In_reads_(NumRects) const D3D12_RECT *pRects);
  16964. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  16965. void ( STDMETHODCALLTYPE *DiscardResource )(
  16966. ID3D12GraphicsCommandList4 * This,
  16967. _In_ ID3D12Resource *pResource,
  16968. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  16969. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  16970. void ( STDMETHODCALLTYPE *BeginQuery )(
  16971. ID3D12GraphicsCommandList4 * This,
  16972. _In_ ID3D12QueryHeap *pQueryHeap,
  16973. _In_ D3D12_QUERY_TYPE Type,
  16974. _In_ UINT Index);
  16975. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  16976. void ( STDMETHODCALLTYPE *EndQuery )(
  16977. ID3D12GraphicsCommandList4 * This,
  16978. _In_ ID3D12QueryHeap *pQueryHeap,
  16979. _In_ D3D12_QUERY_TYPE Type,
  16980. _In_ UINT Index);
  16981. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  16982. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  16983. ID3D12GraphicsCommandList4 * This,
  16984. _In_ ID3D12QueryHeap *pQueryHeap,
  16985. _In_ D3D12_QUERY_TYPE Type,
  16986. _In_ UINT StartIndex,
  16987. _In_ UINT NumQueries,
  16988. _In_ ID3D12Resource *pDestinationBuffer,
  16989. _In_ UINT64 AlignedDestinationBufferOffset);
  16990. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  16991. void ( STDMETHODCALLTYPE *SetPredication )(
  16992. ID3D12GraphicsCommandList4 * This,
  16993. _In_opt_ ID3D12Resource *pBuffer,
  16994. _In_ UINT64 AlignedBufferOffset,
  16995. _In_ D3D12_PREDICATION_OP Operation);
  16996. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  16997. void ( STDMETHODCALLTYPE *SetMarker )(
  16998. ID3D12GraphicsCommandList4 * This,
  16999. UINT Metadata,
  17000. _In_reads_bytes_opt_(Size) const void *pData,
  17001. UINT Size);
  17002. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  17003. void ( STDMETHODCALLTYPE *BeginEvent )(
  17004. ID3D12GraphicsCommandList4 * This,
  17005. UINT Metadata,
  17006. _In_reads_bytes_opt_(Size) const void *pData,
  17007. UINT Size);
  17008. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  17009. void ( STDMETHODCALLTYPE *EndEvent )(
  17010. ID3D12GraphicsCommandList4 * This);
  17011. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  17012. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  17013. ID3D12GraphicsCommandList4 * This,
  17014. _In_ ID3D12CommandSignature *pCommandSignature,
  17015. _In_ UINT MaxCommandCount,
  17016. _In_ ID3D12Resource *pArgumentBuffer,
  17017. _In_ UINT64 ArgumentBufferOffset,
  17018. _In_opt_ ID3D12Resource *pCountBuffer,
  17019. _In_ UINT64 CountBufferOffset);
  17020. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  17021. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  17022. ID3D12GraphicsCommandList4 * This,
  17023. _In_ ID3D12Resource *pDstBuffer,
  17024. UINT64 DstOffset,
  17025. _In_ ID3D12Resource *pSrcBuffer,
  17026. UINT64 SrcOffset,
  17027. UINT Dependencies,
  17028. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  17029. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  17030. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  17031. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  17032. ID3D12GraphicsCommandList4 * This,
  17033. _In_ ID3D12Resource *pDstBuffer,
  17034. UINT64 DstOffset,
  17035. _In_ ID3D12Resource *pSrcBuffer,
  17036. UINT64 SrcOffset,
  17037. UINT Dependencies,
  17038. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  17039. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  17040. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  17041. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  17042. ID3D12GraphicsCommandList4 * This,
  17043. _In_ FLOAT Min,
  17044. _In_ FLOAT Max);
  17045. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  17046. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  17047. ID3D12GraphicsCommandList4 * This,
  17048. _In_ UINT NumSamplesPerPixel,
  17049. _In_ UINT NumPixels,
  17050. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  17051. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  17052. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  17053. ID3D12GraphicsCommandList4 * This,
  17054. _In_ ID3D12Resource *pDstResource,
  17055. _In_ UINT DstSubresource,
  17056. _In_ UINT DstX,
  17057. _In_ UINT DstY,
  17058. _In_ ID3D12Resource *pSrcResource,
  17059. _In_ UINT SrcSubresource,
  17060. _In_opt_ D3D12_RECT *pSrcRect,
  17061. _In_ DXGI_FORMAT Format,
  17062. _In_ D3D12_RESOLVE_MODE ResolveMode);
  17063. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  17064. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  17065. ID3D12GraphicsCommandList4 * This,
  17066. _In_ UINT Mask);
  17067. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  17068. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  17069. ID3D12GraphicsCommandList4 * This,
  17070. UINT Count,
  17071. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  17072. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  17073. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  17074. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  17075. ID3D12GraphicsCommandList4 * This,
  17076. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  17077. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  17078. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  17079. ID3D12GraphicsCommandList4 * This,
  17080. _In_ UINT NumRenderTargets,
  17081. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  17082. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  17083. D3D12_RENDER_PASS_FLAGS Flags);
  17084. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  17085. void ( STDMETHODCALLTYPE *EndRenderPass )(
  17086. ID3D12GraphicsCommandList4 * This);
  17087. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  17088. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  17089. ID3D12GraphicsCommandList4 * This,
  17090. _In_ ID3D12MetaCommand *pMetaCommand,
  17091. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  17092. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  17093. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  17094. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  17095. ID3D12GraphicsCommandList4 * This,
  17096. _In_ ID3D12MetaCommand *pMetaCommand,
  17097. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  17098. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  17099. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  17100. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  17101. ID3D12GraphicsCommandList4 * This,
  17102. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  17103. _In_ UINT NumPostbuildInfoDescs,
  17104. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  17105. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  17106. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  17107. ID3D12GraphicsCommandList4 * This,
  17108. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  17109. _In_ UINT NumSourceAccelerationStructures,
  17110. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  17111. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  17112. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  17113. ID3D12GraphicsCommandList4 * This,
  17114. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  17115. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  17116. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  17117. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  17118. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  17119. ID3D12GraphicsCommandList4 * This,
  17120. _In_ ID3D12StateObject *pStateObject);
  17121. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  17122. void ( STDMETHODCALLTYPE *DispatchRays )(
  17123. ID3D12GraphicsCommandList4 * This,
  17124. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  17125. END_INTERFACE
  17126. } ID3D12GraphicsCommandList4Vtbl;
  17127. interface ID3D12GraphicsCommandList4
  17128. {
  17129. CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl;
  17130. };
  17131. #ifdef COBJMACROS
  17132. #define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \
  17133. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  17134. #define ID3D12GraphicsCommandList4_AddRef(This) \
  17135. ( (This)->lpVtbl -> AddRef(This) )
  17136. #define ID3D12GraphicsCommandList4_Release(This) \
  17137. ( (This)->lpVtbl -> Release(This) )
  17138. #define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \
  17139. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  17140. #define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \
  17141. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  17142. #define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \
  17143. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  17144. #define ID3D12GraphicsCommandList4_SetName(This,Name) \
  17145. ( (This)->lpVtbl -> SetName(This,Name) )
  17146. #define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \
  17147. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  17148. #define ID3D12GraphicsCommandList4_GetType(This) \
  17149. ( (This)->lpVtbl -> GetType(This) )
  17150. #define ID3D12GraphicsCommandList4_Close(This) \
  17151. ( (This)->lpVtbl -> Close(This) )
  17152. #define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \
  17153. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  17154. #define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \
  17155. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  17156. #define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  17157. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  17158. #define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  17159. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  17160. #define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  17161. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  17162. #define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  17163. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  17164. #define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  17165. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  17166. #define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \
  17167. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  17168. #define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  17169. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  17170. #define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  17171. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  17172. #define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \
  17173. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  17174. #define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \
  17175. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  17176. #define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \
  17177. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  17178. #define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \
  17179. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  17180. #define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \
  17181. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  17182. #define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \
  17183. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  17184. #define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \
  17185. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  17186. #define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \
  17187. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  17188. #define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  17189. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  17190. #define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \
  17191. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  17192. #define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \
  17193. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  17194. #define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  17195. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  17196. #define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  17197. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  17198. #define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  17199. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  17200. #define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  17201. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  17202. #define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  17203. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  17204. #define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  17205. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  17206. #define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  17207. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  17208. #define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  17209. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  17210. #define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  17211. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  17212. #define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  17213. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  17214. #define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  17215. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  17216. #define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  17217. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  17218. #define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \
  17219. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  17220. #define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  17221. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  17222. #define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \
  17223. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  17224. #define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  17225. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  17226. #define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  17227. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  17228. #define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  17229. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  17230. #define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  17231. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  17232. #define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  17233. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  17234. #define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \
  17235. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  17236. #define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \
  17237. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  17238. #define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \
  17239. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  17240. #define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  17241. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  17242. #define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  17243. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  17244. #define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \
  17245. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  17246. #define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \
  17247. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  17248. #define ID3D12GraphicsCommandList4_EndEvent(This) \
  17249. ( (This)->lpVtbl -> EndEvent(This) )
  17250. #define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  17251. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  17252. #define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  17253. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  17254. #define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  17255. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  17256. #define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \
  17257. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  17258. #define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  17259. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  17260. #define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  17261. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  17262. #define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \
  17263. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  17264. #define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \
  17265. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  17266. #define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \
  17267. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  17268. #define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  17269. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  17270. #define ID3D12GraphicsCommandList4_EndRenderPass(This) \
  17271. ( (This)->lpVtbl -> EndRenderPass(This) )
  17272. #define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  17273. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  17274. #define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  17275. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  17276. #define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  17277. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  17278. #define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  17279. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  17280. #define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  17281. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  17282. #define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \
  17283. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  17284. #define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \
  17285. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  17286. #endif /* COBJMACROS */
  17287. #endif /* C style interface */
  17288. #endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
  17289. /* interface __MIDL_itf_d3d12_0000_0056 */
  17290. /* [local] */
  17291. typedef
  17292. enum D3D12_SHADER_CACHE_MODE
  17293. {
  17294. D3D12_SHADER_CACHE_MODE_MEMORY = 0,
  17295. D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 )
  17296. } D3D12_SHADER_CACHE_MODE;
  17297. typedef
  17298. enum D3D12_SHADER_CACHE_FLAGS
  17299. {
  17300. D3D12_SHADER_CACHE_FLAG_NONE = 0,
  17301. D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
  17302. D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
  17303. } D3D12_SHADER_CACHE_FLAGS;
  17304. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS )
  17305. typedef struct D3D12_SHADER_CACHE_SESSION_DESC
  17306. {
  17307. GUID Identifier;
  17308. D3D12_SHADER_CACHE_MODE Mode;
  17309. D3D12_SHADER_CACHE_FLAGS Flags;
  17310. UINT MaximumInMemoryCacheSizeBytes;
  17311. UINT MaximumInMemoryCacheEntries;
  17312. UINT MaximumValueFileSizeBytes;
  17313. UINT64 Version;
  17314. } D3D12_SHADER_CACHE_SESSION_DESC;
  17315. typedef
  17316. enum D3D12_BARRIER_LAYOUT
  17317. {
  17318. D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
  17319. D3D12_BARRIER_LAYOUT_COMMON = 0,
  17320. D3D12_BARRIER_LAYOUT_PRESENT = 0,
  17321. D3D12_BARRIER_LAYOUT_GENERIC_READ = 1,
  17322. D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2,
  17323. D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3,
  17324. D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4,
  17325. D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5,
  17326. D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6,
  17327. D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7,
  17328. D3D12_BARRIER_LAYOUT_COPY_DEST = 8,
  17329. D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9,
  17330. D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10,
  17331. D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11,
  17332. D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12,
  17333. D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13,
  17334. D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14,
  17335. D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15,
  17336. D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16,
  17337. D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17,
  17338. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18,
  17339. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19,
  17340. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20,
  17341. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21,
  17342. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22,
  17343. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23,
  17344. D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24,
  17345. D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25,
  17346. D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26,
  17347. D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27,
  17348. D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28,
  17349. D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29,
  17350. D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31
  17351. } D3D12_BARRIER_LAYOUT;
  17352. typedef
  17353. enum D3D12_BARRIER_SYNC
  17354. {
  17355. D3D12_BARRIER_SYNC_NONE = 0,
  17356. D3D12_BARRIER_SYNC_ALL = 0x1,
  17357. D3D12_BARRIER_SYNC_DRAW = 0x2,
  17358. D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
  17359. D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
  17360. D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
  17361. D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
  17362. D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
  17363. D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
  17364. D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
  17365. D3D12_BARRIER_SYNC_COPY = 0x200,
  17366. D3D12_BARRIER_SYNC_RESOLVE = 0x400,
  17367. D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
  17368. D3D12_BARRIER_SYNC_PREDICATION = 0x800,
  17369. D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
  17370. D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
  17371. D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
  17372. D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
  17373. D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
  17374. D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
  17375. D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
  17376. D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
  17377. D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
  17378. D3D12_BARRIER_SYNC_SPLIT = 0x80000000
  17379. } D3D12_BARRIER_SYNC;
  17380. DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC )
  17381. typedef
  17382. enum D3D12_BARRIER_ACCESS
  17383. {
  17384. D3D12_BARRIER_ACCESS_COMMON = 0,
  17385. D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  17386. D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  17387. D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  17388. D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  17389. D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  17390. D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  17391. D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  17392. D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  17393. D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  17394. D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  17395. D3D12_BARRIER_ACCESS_PREDICATION = 0x200,
  17396. D3D12_BARRIER_ACCESS_COPY_DEST = 0x400,
  17397. D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  17398. D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  17399. D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  17400. D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  17401. D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  17402. D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  17403. D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  17404. D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  17405. D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  17406. D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  17407. D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  17408. D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  17409. D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000
  17410. } D3D12_BARRIER_ACCESS;
  17411. DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS )
  17412. typedef
  17413. enum D3D12_BARRIER_TYPE
  17414. {
  17415. D3D12_BARRIER_TYPE_GLOBAL = 0,
  17416. D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) ,
  17417. D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 )
  17418. } D3D12_BARRIER_TYPE;
  17419. typedef
  17420. enum D3D12_TEXTURE_BARRIER_FLAGS
  17421. {
  17422. D3D12_TEXTURE_BARRIER_FLAG_NONE = 0,
  17423. D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1
  17424. } D3D12_TEXTURE_BARRIER_FLAGS;
  17425. DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS )
  17426. typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE
  17427. {
  17428. UINT IndexOrFirstMipLevel;
  17429. UINT NumMipLevels;
  17430. UINT FirstArraySlice;
  17431. UINT NumArraySlices;
  17432. UINT FirstPlane;
  17433. UINT NumPlanes;
  17434. } D3D12_BARRIER_SUBRESOURCE_RANGE;
  17435. typedef struct D3D12_GLOBAL_BARRIER
  17436. {
  17437. D3D12_BARRIER_SYNC SyncBefore;
  17438. D3D12_BARRIER_SYNC SyncAfter;
  17439. D3D12_BARRIER_ACCESS AccessBefore;
  17440. D3D12_BARRIER_ACCESS AccessAfter;
  17441. } D3D12_GLOBAL_BARRIER;
  17442. typedef struct D3D12_TEXTURE_BARRIER
  17443. {
  17444. D3D12_BARRIER_SYNC SyncBefore;
  17445. D3D12_BARRIER_SYNC SyncAfter;
  17446. D3D12_BARRIER_ACCESS AccessBefore;
  17447. D3D12_BARRIER_ACCESS AccessAfter;
  17448. D3D12_BARRIER_LAYOUT LayoutBefore;
  17449. D3D12_BARRIER_LAYOUT LayoutAfter;
  17450. _In_ ID3D12Resource *pResource;
  17451. D3D12_BARRIER_SUBRESOURCE_RANGE Subresources;
  17452. D3D12_TEXTURE_BARRIER_FLAGS Flags;
  17453. } D3D12_TEXTURE_BARRIER;
  17454. typedef struct D3D12_BUFFER_BARRIER
  17455. {
  17456. D3D12_BARRIER_SYNC SyncBefore;
  17457. D3D12_BARRIER_SYNC SyncAfter;
  17458. D3D12_BARRIER_ACCESS AccessBefore;
  17459. D3D12_BARRIER_ACCESS AccessAfter;
  17460. _In_ ID3D12Resource *pResource;
  17461. UINT64 Offset;
  17462. UINT64 Size;
  17463. } D3D12_BUFFER_BARRIER;
  17464. typedef struct D3D12_BARRIER_GROUP
  17465. {
  17466. D3D12_BARRIER_TYPE Type;
  17467. UINT32 NumBarriers;
  17468. union
  17469. {
  17470. _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers;
  17471. _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers;
  17472. _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers;
  17473. } ;
  17474. } D3D12_BARRIER_GROUP;
  17475. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec;
  17476. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec;
  17477. #ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
  17478. #define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
  17479. /* interface ID3D12ShaderCacheSession */
  17480. /* [unique][local][object][uuid] */
  17481. EXTERN_C const IID IID_ID3D12ShaderCacheSession;
  17482. #if defined(__cplusplus) && !defined(CINTERFACE)
  17483. MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
  17484. ID3D12ShaderCacheSession : public ID3D12DeviceChild
  17485. {
  17486. public:
  17487. virtual HRESULT STDMETHODCALLTYPE FindValue(
  17488. /* [annotation][in] */
  17489. _In_reads_bytes_(KeySize) const void *pKey,
  17490. UINT KeySize,
  17491. /* [annotation][out] */
  17492. _Out_writes_bytes_(*pValueSize) void *pValue,
  17493. _Inout_ UINT *pValueSize) = 0;
  17494. virtual HRESULT STDMETHODCALLTYPE StoreValue(
  17495. /* [annotation][in] */
  17496. _In_reads_bytes_(KeySize) const void *pKey,
  17497. UINT KeySize,
  17498. /* [annotation][in] */
  17499. _In_reads_bytes_(ValueSize) const void *pValue,
  17500. UINT ValueSize) = 0;
  17501. virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0;
  17502. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  17503. virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  17504. #else
  17505. virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
  17506. D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0;
  17507. #endif
  17508. };
  17509. #else /* C style interface */
  17510. typedef struct ID3D12ShaderCacheSessionVtbl
  17511. {
  17512. BEGIN_INTERFACE
  17513. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  17514. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  17515. ID3D12ShaderCacheSession * This,
  17516. REFIID riid,
  17517. _COM_Outptr_ void **ppvObject);
  17518. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  17519. ULONG ( STDMETHODCALLTYPE *AddRef )(
  17520. ID3D12ShaderCacheSession * This);
  17521. DECLSPEC_XFGVIRT(IUnknown, Release)
  17522. ULONG ( STDMETHODCALLTYPE *Release )(
  17523. ID3D12ShaderCacheSession * This);
  17524. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  17525. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  17526. ID3D12ShaderCacheSession * This,
  17527. _In_ REFGUID guid,
  17528. _Inout_ UINT *pDataSize,
  17529. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  17530. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  17531. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  17532. ID3D12ShaderCacheSession * This,
  17533. _In_ REFGUID guid,
  17534. _In_ UINT DataSize,
  17535. _In_reads_bytes_opt_( DataSize ) const void *pData);
  17536. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  17537. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  17538. ID3D12ShaderCacheSession * This,
  17539. _In_ REFGUID guid,
  17540. _In_opt_ const IUnknown *pData);
  17541. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  17542. HRESULT ( STDMETHODCALLTYPE *SetName )(
  17543. ID3D12ShaderCacheSession * This,
  17544. _In_z_ LPCWSTR Name);
  17545. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  17546. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  17547. ID3D12ShaderCacheSession * This,
  17548. REFIID riid,
  17549. _COM_Outptr_opt_ void **ppvDevice);
  17550. DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue)
  17551. HRESULT ( STDMETHODCALLTYPE *FindValue )(
  17552. ID3D12ShaderCacheSession * This,
  17553. /* [annotation][in] */
  17554. _In_reads_bytes_(KeySize) const void *pKey,
  17555. UINT KeySize,
  17556. /* [annotation][out] */
  17557. _Out_writes_bytes_(*pValueSize) void *pValue,
  17558. _Inout_ UINT *pValueSize);
  17559. DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue)
  17560. HRESULT ( STDMETHODCALLTYPE *StoreValue )(
  17561. ID3D12ShaderCacheSession * This,
  17562. /* [annotation][in] */
  17563. _In_reads_bytes_(KeySize) const void *pKey,
  17564. UINT KeySize,
  17565. /* [annotation][in] */
  17566. _In_reads_bytes_(ValueSize) const void *pValue,
  17567. UINT ValueSize);
  17568. DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy)
  17569. void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )(
  17570. ID3D12ShaderCacheSession * This);
  17571. DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc)
  17572. #if !defined(_WIN32)
  17573. D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
  17574. ID3D12ShaderCacheSession * This);
  17575. #else
  17576. D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
  17577. ID3D12ShaderCacheSession * This,
  17578. D3D12_SHADER_CACHE_SESSION_DESC * RetVal);
  17579. #endif
  17580. END_INTERFACE
  17581. } ID3D12ShaderCacheSessionVtbl;
  17582. interface ID3D12ShaderCacheSession
  17583. {
  17584. CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl;
  17585. };
  17586. #ifdef COBJMACROS
  17587. #define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \
  17588. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  17589. #define ID3D12ShaderCacheSession_AddRef(This) \
  17590. ( (This)->lpVtbl -> AddRef(This) )
  17591. #define ID3D12ShaderCacheSession_Release(This) \
  17592. ( (This)->lpVtbl -> Release(This) )
  17593. #define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \
  17594. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  17595. #define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \
  17596. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  17597. #define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \
  17598. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  17599. #define ID3D12ShaderCacheSession_SetName(This,Name) \
  17600. ( (This)->lpVtbl -> SetName(This,Name) )
  17601. #define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \
  17602. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  17603. #define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \
  17604. ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) )
  17605. #define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \
  17606. ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) )
  17607. #define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \
  17608. ( (This)->lpVtbl -> SetDeleteOnDestroy(This) )
  17609. #if !defined(_WIN32)
  17610. #define ID3D12ShaderCacheSession_GetDesc(This) \
  17611. ( (This)->lpVtbl -> GetDesc(This) )
  17612. #else
  17613. #define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \
  17614. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  17615. #endif
  17616. #endif /* COBJMACROS */
  17617. #endif /* C style interface */
  17618. #endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
  17619. /* interface __MIDL_itf_d3d12_0000_0057 */
  17620. /* [local] */
  17621. typedef
  17622. enum D3D12_SHADER_CACHE_KIND_FLAGS
  17623. {
  17624. D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
  17625. D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
  17626. D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
  17627. D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
  17628. } D3D12_SHADER_CACHE_KIND_FLAGS;
  17629. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS )
  17630. typedef
  17631. enum D3D12_SHADER_CACHE_CONTROL_FLAGS
  17632. {
  17633. D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
  17634. D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
  17635. D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
  17636. } D3D12_SHADER_CACHE_CONTROL_FLAGS;
  17637. DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS )
  17638. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_c_ifspec;
  17639. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_s_ifspec;
  17640. #ifndef __ID3D12Device9_INTERFACE_DEFINED__
  17641. #define __ID3D12Device9_INTERFACE_DEFINED__
  17642. /* interface ID3D12Device9 */
  17643. /* [unique][local][object][uuid] */
  17644. EXTERN_C const IID IID_ID3D12Device9;
  17645. #if defined(__cplusplus) && !defined(CINTERFACE)
  17646. MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
  17647. ID3D12Device9 : public ID3D12Device8
  17648. {
  17649. public:
  17650. virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
  17651. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  17652. REFIID riid,
  17653. _COM_Outptr_opt_ void **ppvSession) = 0;
  17654. virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
  17655. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  17656. D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0;
  17657. virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
  17658. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  17659. REFIID CreatorID,
  17660. REFIID riid,
  17661. _COM_Outptr_ void **ppCommandQueue) = 0;
  17662. };
  17663. #else /* C style interface */
  17664. typedef struct ID3D12Device9Vtbl
  17665. {
  17666. BEGIN_INTERFACE
  17667. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  17668. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  17669. ID3D12Device9 * This,
  17670. REFIID riid,
  17671. _COM_Outptr_ void **ppvObject);
  17672. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  17673. ULONG ( STDMETHODCALLTYPE *AddRef )(
  17674. ID3D12Device9 * This);
  17675. DECLSPEC_XFGVIRT(IUnknown, Release)
  17676. ULONG ( STDMETHODCALLTYPE *Release )(
  17677. ID3D12Device9 * This);
  17678. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  17679. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  17680. ID3D12Device9 * This,
  17681. _In_ REFGUID guid,
  17682. _Inout_ UINT *pDataSize,
  17683. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  17684. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  17685. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  17686. ID3D12Device9 * This,
  17687. _In_ REFGUID guid,
  17688. _In_ UINT DataSize,
  17689. _In_reads_bytes_opt_( DataSize ) const void *pData);
  17690. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  17691. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  17692. ID3D12Device9 * This,
  17693. _In_ REFGUID guid,
  17694. _In_opt_ const IUnknown *pData);
  17695. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  17696. HRESULT ( STDMETHODCALLTYPE *SetName )(
  17697. ID3D12Device9 * This,
  17698. _In_z_ LPCWSTR Name);
  17699. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  17700. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  17701. ID3D12Device9 * This);
  17702. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  17703. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  17704. ID3D12Device9 * This,
  17705. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  17706. REFIID riid,
  17707. _COM_Outptr_ void **ppCommandQueue);
  17708. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  17709. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  17710. ID3D12Device9 * This,
  17711. _In_ D3D12_COMMAND_LIST_TYPE type,
  17712. REFIID riid,
  17713. _COM_Outptr_ void **ppCommandAllocator);
  17714. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  17715. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  17716. ID3D12Device9 * This,
  17717. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  17718. REFIID riid,
  17719. _COM_Outptr_ void **ppPipelineState);
  17720. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  17721. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  17722. ID3D12Device9 * This,
  17723. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  17724. REFIID riid,
  17725. _COM_Outptr_ void **ppPipelineState);
  17726. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  17727. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  17728. ID3D12Device9 * This,
  17729. _In_ UINT nodeMask,
  17730. _In_ D3D12_COMMAND_LIST_TYPE type,
  17731. _In_ ID3D12CommandAllocator *pCommandAllocator,
  17732. _In_opt_ ID3D12PipelineState *pInitialState,
  17733. REFIID riid,
  17734. _COM_Outptr_ void **ppCommandList);
  17735. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  17736. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  17737. ID3D12Device9 * This,
  17738. D3D12_FEATURE Feature,
  17739. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  17740. UINT FeatureSupportDataSize);
  17741. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  17742. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  17743. ID3D12Device9 * This,
  17744. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  17745. REFIID riid,
  17746. _COM_Outptr_ void **ppvHeap);
  17747. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  17748. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  17749. ID3D12Device9 * This,
  17750. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  17751. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  17752. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  17753. ID3D12Device9 * This,
  17754. _In_ UINT nodeMask,
  17755. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  17756. _In_ SIZE_T blobLengthInBytes,
  17757. REFIID riid,
  17758. _COM_Outptr_ void **ppvRootSignature);
  17759. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  17760. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  17761. ID3D12Device9 * This,
  17762. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  17763. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  17764. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  17765. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  17766. ID3D12Device9 * This,
  17767. _In_opt_ ID3D12Resource *pResource,
  17768. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  17769. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  17770. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  17771. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  17772. ID3D12Device9 * This,
  17773. _In_opt_ ID3D12Resource *pResource,
  17774. _In_opt_ ID3D12Resource *pCounterResource,
  17775. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  17776. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  17777. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  17778. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  17779. ID3D12Device9 * This,
  17780. _In_opt_ ID3D12Resource *pResource,
  17781. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  17782. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  17783. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  17784. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  17785. ID3D12Device9 * This,
  17786. _In_opt_ ID3D12Resource *pResource,
  17787. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  17788. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  17789. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  17790. void ( STDMETHODCALLTYPE *CreateSampler )(
  17791. ID3D12Device9 * This,
  17792. _In_ const D3D12_SAMPLER_DESC *pDesc,
  17793. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  17794. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  17795. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  17796. ID3D12Device9 * This,
  17797. _In_ UINT NumDestDescriptorRanges,
  17798. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  17799. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  17800. _In_ UINT NumSrcDescriptorRanges,
  17801. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  17802. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  17803. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  17804. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  17805. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  17806. ID3D12Device9 * This,
  17807. _In_ UINT NumDescriptors,
  17808. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  17809. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  17810. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  17811. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  17812. #if !defined(_WIN32)
  17813. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  17814. ID3D12Device9 * This,
  17815. _In_ UINT visibleMask,
  17816. _In_ UINT numResourceDescs,
  17817. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  17818. #else
  17819. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  17820. ID3D12Device9 * This,
  17821. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  17822. _In_ UINT visibleMask,
  17823. _In_ UINT numResourceDescs,
  17824. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  17825. #endif
  17826. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  17827. #if !defined(_WIN32)
  17828. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  17829. ID3D12Device9 * This,
  17830. _In_ UINT nodeMask,
  17831. D3D12_HEAP_TYPE heapType);
  17832. #else
  17833. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  17834. ID3D12Device9 * This,
  17835. D3D12_HEAP_PROPERTIES * RetVal,
  17836. _In_ UINT nodeMask,
  17837. D3D12_HEAP_TYPE heapType);
  17838. #endif
  17839. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  17840. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  17841. ID3D12Device9 * This,
  17842. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  17843. D3D12_HEAP_FLAGS HeapFlags,
  17844. _In_ const D3D12_RESOURCE_DESC *pDesc,
  17845. D3D12_RESOURCE_STATES InitialResourceState,
  17846. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  17847. REFIID riidResource,
  17848. _COM_Outptr_opt_ void **ppvResource);
  17849. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  17850. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  17851. ID3D12Device9 * This,
  17852. _In_ const D3D12_HEAP_DESC *pDesc,
  17853. REFIID riid,
  17854. _COM_Outptr_opt_ void **ppvHeap);
  17855. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  17856. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  17857. ID3D12Device9 * This,
  17858. _In_ ID3D12Heap *pHeap,
  17859. UINT64 HeapOffset,
  17860. _In_ const D3D12_RESOURCE_DESC *pDesc,
  17861. D3D12_RESOURCE_STATES InitialState,
  17862. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  17863. REFIID riid,
  17864. _COM_Outptr_opt_ void **ppvResource);
  17865. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  17866. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  17867. ID3D12Device9 * This,
  17868. _In_ const D3D12_RESOURCE_DESC *pDesc,
  17869. D3D12_RESOURCE_STATES InitialState,
  17870. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  17871. REFIID riid,
  17872. _COM_Outptr_opt_ void **ppvResource);
  17873. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  17874. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  17875. ID3D12Device9 * This,
  17876. _In_ ID3D12DeviceChild *pObject,
  17877. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  17878. DWORD Access,
  17879. _In_opt_ LPCWSTR Name,
  17880. _Out_ HANDLE *pHandle);
  17881. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  17882. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  17883. ID3D12Device9 * This,
  17884. _In_ HANDLE NTHandle,
  17885. REFIID riid,
  17886. _COM_Outptr_opt_ void **ppvObj);
  17887. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  17888. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  17889. ID3D12Device9 * This,
  17890. _In_ LPCWSTR Name,
  17891. DWORD Access,
  17892. /* [annotation][out] */
  17893. _Out_ HANDLE *pNTHandle);
  17894. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  17895. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  17896. ID3D12Device9 * This,
  17897. UINT NumObjects,
  17898. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  17899. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  17900. HRESULT ( STDMETHODCALLTYPE *Evict )(
  17901. ID3D12Device9 * This,
  17902. UINT NumObjects,
  17903. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  17904. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  17905. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  17906. ID3D12Device9 * This,
  17907. UINT64 InitialValue,
  17908. D3D12_FENCE_FLAGS Flags,
  17909. REFIID riid,
  17910. _COM_Outptr_ void **ppFence);
  17911. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  17912. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  17913. ID3D12Device9 * This);
  17914. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  17915. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  17916. ID3D12Device9 * This,
  17917. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  17918. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  17919. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  17920. UINT64 BaseOffset,
  17921. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  17922. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  17923. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  17924. _Out_opt_ UINT64 *pTotalBytes);
  17925. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  17926. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  17927. ID3D12Device9 * This,
  17928. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  17929. REFIID riid,
  17930. _COM_Outptr_opt_ void **ppvHeap);
  17931. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  17932. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  17933. ID3D12Device9 * This,
  17934. BOOL Enable);
  17935. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  17936. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  17937. ID3D12Device9 * This,
  17938. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  17939. _In_opt_ ID3D12RootSignature *pRootSignature,
  17940. REFIID riid,
  17941. _COM_Outptr_opt_ void **ppvCommandSignature);
  17942. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  17943. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  17944. ID3D12Device9 * This,
  17945. _In_ ID3D12Resource *pTiledResource,
  17946. _Out_opt_ UINT *pNumTilesForEntireResource,
  17947. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  17948. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  17949. _Inout_opt_ UINT *pNumSubresourceTilings,
  17950. _In_ UINT FirstSubresourceTilingToGet,
  17951. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  17952. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  17953. #if !defined(_WIN32)
  17954. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  17955. ID3D12Device9 * This);
  17956. #else
  17957. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  17958. ID3D12Device9 * This,
  17959. LUID * RetVal);
  17960. #endif
  17961. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  17962. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  17963. ID3D12Device9 * This,
  17964. _In_reads_(BlobLength) const void *pLibraryBlob,
  17965. SIZE_T BlobLength,
  17966. REFIID riid,
  17967. _COM_Outptr_ void **ppPipelineLibrary);
  17968. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  17969. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  17970. ID3D12Device9 * This,
  17971. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  17972. _In_reads_(NumFences) const UINT64 *pFenceValues,
  17973. UINT NumFences,
  17974. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  17975. HANDLE hEvent);
  17976. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  17977. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  17978. ID3D12Device9 * This,
  17979. UINT NumObjects,
  17980. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  17981. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  17982. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  17983. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  17984. ID3D12Device9 * This,
  17985. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  17986. REFIID riid,
  17987. _COM_Outptr_ void **ppPipelineState);
  17988. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  17989. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  17990. ID3D12Device9 * This,
  17991. _In_ const void *pAddress,
  17992. REFIID riid,
  17993. _COM_Outptr_ void **ppvHeap);
  17994. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  17995. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  17996. ID3D12Device9 * This,
  17997. _In_ HANDLE hFileMapping,
  17998. REFIID riid,
  17999. _COM_Outptr_ void **ppvHeap);
  18000. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  18001. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  18002. ID3D12Device9 * This,
  18003. D3D12_RESIDENCY_FLAGS Flags,
  18004. UINT NumObjects,
  18005. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  18006. _In_ ID3D12Fence *pFenceToSignal,
  18007. UINT64 FenceValueToSignal);
  18008. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  18009. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  18010. ID3D12Device9 * This,
  18011. _In_ UINT nodeMask,
  18012. _In_ D3D12_COMMAND_LIST_TYPE type,
  18013. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  18014. REFIID riid,
  18015. _COM_Outptr_ void **ppCommandList);
  18016. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  18017. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  18018. ID3D12Device9 * This,
  18019. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  18020. _In_ REFIID riid,
  18021. _COM_Outptr_ void **ppSession);
  18022. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  18023. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  18024. ID3D12Device9 * This,
  18025. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18026. D3D12_HEAP_FLAGS HeapFlags,
  18027. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18028. D3D12_RESOURCE_STATES InitialResourceState,
  18029. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18030. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18031. REFIID riidResource,
  18032. _COM_Outptr_opt_ void **ppvResource);
  18033. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  18034. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  18035. ID3D12Device9 * This,
  18036. _In_ const D3D12_HEAP_DESC *pDesc,
  18037. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18038. REFIID riid,
  18039. _COM_Outptr_opt_ void **ppvHeap);
  18040. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  18041. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  18042. ID3D12Device9 * This,
  18043. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18044. D3D12_RESOURCE_STATES InitialState,
  18045. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18046. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18047. REFIID riid,
  18048. _COM_Outptr_opt_ void **ppvResource);
  18049. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  18050. #if !defined(_WIN32)
  18051. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  18052. ID3D12Device9 * This,
  18053. UINT visibleMask,
  18054. UINT numResourceDescs,
  18055. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  18056. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18057. #else
  18058. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  18059. ID3D12Device9 * This,
  18060. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  18061. UINT visibleMask,
  18062. UINT numResourceDescs,
  18063. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  18064. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18065. #endif
  18066. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  18067. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  18068. ID3D12Device9 * This,
  18069. _In_ ID3D12LifetimeOwner *pOwner,
  18070. REFIID riid,
  18071. _COM_Outptr_ void **ppvTracker);
  18072. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  18073. void ( STDMETHODCALLTYPE *RemoveDevice )(
  18074. ID3D12Device9 * This);
  18075. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  18076. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  18077. ID3D12Device9 * This,
  18078. _Inout_ UINT *pNumMetaCommands,
  18079. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  18080. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  18081. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  18082. ID3D12Device9 * This,
  18083. _In_ REFGUID CommandId,
  18084. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  18085. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  18086. _Inout_ UINT *pParameterCount,
  18087. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  18088. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  18089. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  18090. ID3D12Device9 * This,
  18091. _In_ REFGUID CommandId,
  18092. _In_ UINT NodeMask,
  18093. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  18094. _In_ SIZE_T CreationParametersDataSizeInBytes,
  18095. REFIID riid,
  18096. _COM_Outptr_ void **ppMetaCommand);
  18097. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  18098. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  18099. ID3D12Device9 * This,
  18100. const D3D12_STATE_OBJECT_DESC *pDesc,
  18101. REFIID riid,
  18102. _COM_Outptr_ void **ppStateObject);
  18103. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  18104. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  18105. ID3D12Device9 * This,
  18106. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  18107. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  18108. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  18109. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  18110. ID3D12Device9 * This,
  18111. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  18112. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  18113. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  18114. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  18115. ID3D12Device9 * This,
  18116. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  18117. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  18118. _In_opt_ HANDLE hEventToSignalUponCompletion,
  18119. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  18120. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  18121. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  18122. ID3D12Device9 * This,
  18123. const D3D12_STATE_OBJECT_DESC *pAddition,
  18124. ID3D12StateObject *pStateObjectToGrowFrom,
  18125. REFIID riid,
  18126. _COM_Outptr_ void **ppNewStateObject);
  18127. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  18128. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  18129. ID3D12Device9 * This,
  18130. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  18131. _In_ REFIID riid,
  18132. _COM_Outptr_ void **ppSession);
  18133. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  18134. #if !defined(_WIN32)
  18135. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  18136. ID3D12Device9 * This,
  18137. UINT visibleMask,
  18138. UINT numResourceDescs,
  18139. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  18140. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18141. #else
  18142. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  18143. ID3D12Device9 * This,
  18144. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  18145. UINT visibleMask,
  18146. UINT numResourceDescs,
  18147. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  18148. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18149. #endif
  18150. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  18151. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  18152. ID3D12Device9 * This,
  18153. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18154. D3D12_HEAP_FLAGS HeapFlags,
  18155. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18156. D3D12_RESOURCE_STATES InitialResourceState,
  18157. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18158. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18159. REFIID riidResource,
  18160. _COM_Outptr_opt_ void **ppvResource);
  18161. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  18162. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  18163. ID3D12Device9 * This,
  18164. _In_ ID3D12Heap *pHeap,
  18165. UINT64 HeapOffset,
  18166. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18167. D3D12_RESOURCE_STATES InitialState,
  18168. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18169. REFIID riid,
  18170. _COM_Outptr_opt_ void **ppvResource);
  18171. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  18172. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  18173. ID3D12Device9 * This,
  18174. _In_opt_ ID3D12Resource *pTargetedResource,
  18175. _In_opt_ ID3D12Resource *pFeedbackResource,
  18176. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18177. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  18178. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  18179. ID3D12Device9 * This,
  18180. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  18181. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  18182. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  18183. UINT64 BaseOffset,
  18184. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  18185. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  18186. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  18187. _Out_opt_ UINT64 *pTotalBytes);
  18188. DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
  18189. HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
  18190. ID3D12Device9 * This,
  18191. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  18192. REFIID riid,
  18193. _COM_Outptr_opt_ void **ppvSession);
  18194. DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
  18195. HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
  18196. ID3D12Device9 * This,
  18197. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  18198. D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
  18199. DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
  18200. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
  18201. ID3D12Device9 * This,
  18202. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  18203. REFIID CreatorID,
  18204. REFIID riid,
  18205. _COM_Outptr_ void **ppCommandQueue);
  18206. END_INTERFACE
  18207. } ID3D12Device9Vtbl;
  18208. interface ID3D12Device9
  18209. {
  18210. CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl;
  18211. };
  18212. #ifdef COBJMACROS
  18213. #define ID3D12Device9_QueryInterface(This,riid,ppvObject) \
  18214. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  18215. #define ID3D12Device9_AddRef(This) \
  18216. ( (This)->lpVtbl -> AddRef(This) )
  18217. #define ID3D12Device9_Release(This) \
  18218. ( (This)->lpVtbl -> Release(This) )
  18219. #define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \
  18220. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  18221. #define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \
  18222. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  18223. #define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \
  18224. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  18225. #define ID3D12Device9_SetName(This,Name) \
  18226. ( (This)->lpVtbl -> SetName(This,Name) )
  18227. #define ID3D12Device9_GetNodeCount(This) \
  18228. ( (This)->lpVtbl -> GetNodeCount(This) )
  18229. #define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  18230. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  18231. #define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  18232. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  18233. #define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  18234. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  18235. #define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  18236. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  18237. #define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  18238. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  18239. #define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  18240. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  18241. #define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  18242. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  18243. #define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  18244. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  18245. #define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  18246. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  18247. #define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  18248. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  18249. #define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  18250. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  18251. #define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  18252. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  18253. #define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  18254. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  18255. #define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  18256. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  18257. #define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \
  18258. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  18259. #define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  18260. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  18261. #define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  18262. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  18263. #if !defined(_WIN32)
  18264. #define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  18265. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  18266. #else
  18267. #define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  18268. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  18269. #endif
  18270. #if !defined(_WIN32)
  18271. #define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \
  18272. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  18273. #else
  18274. #define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  18275. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  18276. #endif
  18277. #define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  18278. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  18279. #define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \
  18280. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  18281. #define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  18282. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  18283. #define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  18284. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  18285. #define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  18286. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  18287. #define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  18288. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  18289. #define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  18290. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  18291. #define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \
  18292. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  18293. #define ID3D12Device9_Evict(This,NumObjects,ppObjects) \
  18294. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  18295. #define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  18296. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  18297. #define ID3D12Device9_GetDeviceRemovedReason(This) \
  18298. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  18299. #define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  18300. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  18301. #define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  18302. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  18303. #define ID3D12Device9_SetStablePowerState(This,Enable) \
  18304. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  18305. #define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  18306. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  18307. #define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  18308. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  18309. #if !defined(_WIN32)
  18310. #define ID3D12Device9_GetAdapterLuid(This) \
  18311. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  18312. #else
  18313. #define ID3D12Device9_GetAdapterLuid(This,RetVal) \
  18314. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  18315. #endif
  18316. #define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  18317. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  18318. #define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  18319. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  18320. #define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  18321. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  18322. #define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  18323. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  18324. #define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  18325. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  18326. #define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  18327. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  18328. #define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  18329. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  18330. #define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  18331. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  18332. #define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  18333. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  18334. #define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  18335. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  18336. #define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  18337. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  18338. #define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  18339. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  18340. #if !defined(_WIN32)
  18341. #define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  18342. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  18343. #else
  18344. #define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  18345. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  18346. #endif
  18347. #define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  18348. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  18349. #define ID3D12Device9_RemoveDevice(This) \
  18350. ( (This)->lpVtbl -> RemoveDevice(This) )
  18351. #define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  18352. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  18353. #define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  18354. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  18355. #define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  18356. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  18357. #define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \
  18358. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  18359. #define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  18360. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  18361. #define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  18362. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  18363. #define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  18364. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  18365. #define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  18366. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  18367. #define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  18368. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  18369. #if !defined(_WIN32)
  18370. #define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  18371. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  18372. #else
  18373. #define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  18374. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  18375. #endif
  18376. #define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  18377. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  18378. #define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  18379. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  18380. #define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  18381. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  18382. #define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  18383. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  18384. #define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
  18385. ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
  18386. #define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \
  18387. ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
  18388. #define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
  18389. ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
  18390. #endif /* COBJMACROS */
  18391. #endif /* C style interface */
  18392. #endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
  18393. #ifndef __ID3D12Device10_INTERFACE_DEFINED__
  18394. #define __ID3D12Device10_INTERFACE_DEFINED__
  18395. /* interface ID3D12Device10 */
  18396. /* [unique][local][object][uuid] */
  18397. EXTERN_C const IID IID_ID3D12Device10;
  18398. #if defined(__cplusplus) && !defined(CINTERFACE)
  18399. MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031")
  18400. ID3D12Device10 : public ID3D12Device9
  18401. {
  18402. public:
  18403. virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3(
  18404. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18405. D3D12_HEAP_FLAGS HeapFlags,
  18406. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18407. D3D12_BARRIER_LAYOUT InitialLayout,
  18408. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18409. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18410. UINT32 NumCastableFormats,
  18411. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  18412. REFIID riidResource,
  18413. _COM_Outptr_opt_ void **ppvResource) = 0;
  18414. virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2(
  18415. _In_ ID3D12Heap *pHeap,
  18416. UINT64 HeapOffset,
  18417. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18418. D3D12_BARRIER_LAYOUT InitialLayout,
  18419. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18420. UINT32 NumCastableFormats,
  18421. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  18422. REFIID riid,
  18423. _COM_Outptr_opt_ void **ppvResource) = 0;
  18424. virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2(
  18425. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18426. D3D12_BARRIER_LAYOUT InitialLayout,
  18427. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18428. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18429. UINT32 NumCastableFormats,
  18430. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  18431. REFIID riid,
  18432. _COM_Outptr_opt_ void **ppvResource) = 0;
  18433. };
  18434. #else /* C style interface */
  18435. typedef struct ID3D12Device10Vtbl
  18436. {
  18437. BEGIN_INTERFACE
  18438. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  18439. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  18440. ID3D12Device10 * This,
  18441. REFIID riid,
  18442. _COM_Outptr_ void **ppvObject);
  18443. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  18444. ULONG ( STDMETHODCALLTYPE *AddRef )(
  18445. ID3D12Device10 * This);
  18446. DECLSPEC_XFGVIRT(IUnknown, Release)
  18447. ULONG ( STDMETHODCALLTYPE *Release )(
  18448. ID3D12Device10 * This);
  18449. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  18450. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  18451. ID3D12Device10 * This,
  18452. _In_ REFGUID guid,
  18453. _Inout_ UINT *pDataSize,
  18454. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  18455. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  18456. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  18457. ID3D12Device10 * This,
  18458. _In_ REFGUID guid,
  18459. _In_ UINT DataSize,
  18460. _In_reads_bytes_opt_( DataSize ) const void *pData);
  18461. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  18462. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  18463. ID3D12Device10 * This,
  18464. _In_ REFGUID guid,
  18465. _In_opt_ const IUnknown *pData);
  18466. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  18467. HRESULT ( STDMETHODCALLTYPE *SetName )(
  18468. ID3D12Device10 * This,
  18469. _In_z_ LPCWSTR Name);
  18470. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  18471. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  18472. ID3D12Device10 * This);
  18473. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  18474. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  18475. ID3D12Device10 * This,
  18476. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  18477. REFIID riid,
  18478. _COM_Outptr_ void **ppCommandQueue);
  18479. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  18480. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  18481. ID3D12Device10 * This,
  18482. _In_ D3D12_COMMAND_LIST_TYPE type,
  18483. REFIID riid,
  18484. _COM_Outptr_ void **ppCommandAllocator);
  18485. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  18486. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  18487. ID3D12Device10 * This,
  18488. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  18489. REFIID riid,
  18490. _COM_Outptr_ void **ppPipelineState);
  18491. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  18492. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  18493. ID3D12Device10 * This,
  18494. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  18495. REFIID riid,
  18496. _COM_Outptr_ void **ppPipelineState);
  18497. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  18498. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  18499. ID3D12Device10 * This,
  18500. _In_ UINT nodeMask,
  18501. _In_ D3D12_COMMAND_LIST_TYPE type,
  18502. _In_ ID3D12CommandAllocator *pCommandAllocator,
  18503. _In_opt_ ID3D12PipelineState *pInitialState,
  18504. REFIID riid,
  18505. _COM_Outptr_ void **ppCommandList);
  18506. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  18507. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  18508. ID3D12Device10 * This,
  18509. D3D12_FEATURE Feature,
  18510. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  18511. UINT FeatureSupportDataSize);
  18512. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  18513. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  18514. ID3D12Device10 * This,
  18515. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  18516. REFIID riid,
  18517. _COM_Outptr_ void **ppvHeap);
  18518. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  18519. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  18520. ID3D12Device10 * This,
  18521. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  18522. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  18523. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  18524. ID3D12Device10 * This,
  18525. _In_ UINT nodeMask,
  18526. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  18527. _In_ SIZE_T blobLengthInBytes,
  18528. REFIID riid,
  18529. _COM_Outptr_ void **ppvRootSignature);
  18530. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  18531. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  18532. ID3D12Device10 * This,
  18533. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  18534. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18535. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  18536. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  18537. ID3D12Device10 * This,
  18538. _In_opt_ ID3D12Resource *pResource,
  18539. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  18540. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18541. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  18542. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  18543. ID3D12Device10 * This,
  18544. _In_opt_ ID3D12Resource *pResource,
  18545. _In_opt_ ID3D12Resource *pCounterResource,
  18546. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  18547. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18548. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  18549. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  18550. ID3D12Device10 * This,
  18551. _In_opt_ ID3D12Resource *pResource,
  18552. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  18553. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18554. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  18555. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  18556. ID3D12Device10 * This,
  18557. _In_opt_ ID3D12Resource *pResource,
  18558. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  18559. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18560. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  18561. void ( STDMETHODCALLTYPE *CreateSampler )(
  18562. ID3D12Device10 * This,
  18563. _In_ const D3D12_SAMPLER_DESC *pDesc,
  18564. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18565. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  18566. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  18567. ID3D12Device10 * This,
  18568. _In_ UINT NumDestDescriptorRanges,
  18569. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  18570. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  18571. _In_ UINT NumSrcDescriptorRanges,
  18572. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  18573. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  18574. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  18575. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  18576. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  18577. ID3D12Device10 * This,
  18578. _In_ UINT NumDescriptors,
  18579. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  18580. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  18581. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  18582. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  18583. #if !defined(_WIN32)
  18584. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  18585. ID3D12Device10 * This,
  18586. _In_ UINT visibleMask,
  18587. _In_ UINT numResourceDescs,
  18588. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  18589. #else
  18590. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  18591. ID3D12Device10 * This,
  18592. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  18593. _In_ UINT visibleMask,
  18594. _In_ UINT numResourceDescs,
  18595. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  18596. #endif
  18597. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  18598. #if !defined(_WIN32)
  18599. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  18600. ID3D12Device10 * This,
  18601. _In_ UINT nodeMask,
  18602. D3D12_HEAP_TYPE heapType);
  18603. #else
  18604. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  18605. ID3D12Device10 * This,
  18606. D3D12_HEAP_PROPERTIES * RetVal,
  18607. _In_ UINT nodeMask,
  18608. D3D12_HEAP_TYPE heapType);
  18609. #endif
  18610. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  18611. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  18612. ID3D12Device10 * This,
  18613. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18614. D3D12_HEAP_FLAGS HeapFlags,
  18615. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18616. D3D12_RESOURCE_STATES InitialResourceState,
  18617. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18618. REFIID riidResource,
  18619. _COM_Outptr_opt_ void **ppvResource);
  18620. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  18621. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  18622. ID3D12Device10 * This,
  18623. _In_ const D3D12_HEAP_DESC *pDesc,
  18624. REFIID riid,
  18625. _COM_Outptr_opt_ void **ppvHeap);
  18626. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  18627. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  18628. ID3D12Device10 * This,
  18629. _In_ ID3D12Heap *pHeap,
  18630. UINT64 HeapOffset,
  18631. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18632. D3D12_RESOURCE_STATES InitialState,
  18633. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18634. REFIID riid,
  18635. _COM_Outptr_opt_ void **ppvResource);
  18636. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  18637. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  18638. ID3D12Device10 * This,
  18639. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18640. D3D12_RESOURCE_STATES InitialState,
  18641. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18642. REFIID riid,
  18643. _COM_Outptr_opt_ void **ppvResource);
  18644. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  18645. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  18646. ID3D12Device10 * This,
  18647. _In_ ID3D12DeviceChild *pObject,
  18648. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  18649. DWORD Access,
  18650. _In_opt_ LPCWSTR Name,
  18651. _Out_ HANDLE *pHandle);
  18652. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  18653. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  18654. ID3D12Device10 * This,
  18655. _In_ HANDLE NTHandle,
  18656. REFIID riid,
  18657. _COM_Outptr_opt_ void **ppvObj);
  18658. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  18659. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  18660. ID3D12Device10 * This,
  18661. _In_ LPCWSTR Name,
  18662. DWORD Access,
  18663. /* [annotation][out] */
  18664. _Out_ HANDLE *pNTHandle);
  18665. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  18666. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  18667. ID3D12Device10 * This,
  18668. UINT NumObjects,
  18669. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  18670. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  18671. HRESULT ( STDMETHODCALLTYPE *Evict )(
  18672. ID3D12Device10 * This,
  18673. UINT NumObjects,
  18674. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  18675. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  18676. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  18677. ID3D12Device10 * This,
  18678. UINT64 InitialValue,
  18679. D3D12_FENCE_FLAGS Flags,
  18680. REFIID riid,
  18681. _COM_Outptr_ void **ppFence);
  18682. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  18683. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  18684. ID3D12Device10 * This);
  18685. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  18686. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  18687. ID3D12Device10 * This,
  18688. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  18689. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  18690. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  18691. UINT64 BaseOffset,
  18692. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  18693. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  18694. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  18695. _Out_opt_ UINT64 *pTotalBytes);
  18696. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  18697. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  18698. ID3D12Device10 * This,
  18699. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  18700. REFIID riid,
  18701. _COM_Outptr_opt_ void **ppvHeap);
  18702. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  18703. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  18704. ID3D12Device10 * This,
  18705. BOOL Enable);
  18706. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  18707. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  18708. ID3D12Device10 * This,
  18709. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  18710. _In_opt_ ID3D12RootSignature *pRootSignature,
  18711. REFIID riid,
  18712. _COM_Outptr_opt_ void **ppvCommandSignature);
  18713. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  18714. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  18715. ID3D12Device10 * This,
  18716. _In_ ID3D12Resource *pTiledResource,
  18717. _Out_opt_ UINT *pNumTilesForEntireResource,
  18718. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  18719. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  18720. _Inout_opt_ UINT *pNumSubresourceTilings,
  18721. _In_ UINT FirstSubresourceTilingToGet,
  18722. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  18723. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  18724. #if !defined(_WIN32)
  18725. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  18726. ID3D12Device10 * This);
  18727. #else
  18728. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  18729. ID3D12Device10 * This,
  18730. LUID * RetVal);
  18731. #endif
  18732. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  18733. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  18734. ID3D12Device10 * This,
  18735. _In_reads_(BlobLength) const void *pLibraryBlob,
  18736. SIZE_T BlobLength,
  18737. REFIID riid,
  18738. _COM_Outptr_ void **ppPipelineLibrary);
  18739. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  18740. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  18741. ID3D12Device10 * This,
  18742. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  18743. _In_reads_(NumFences) const UINT64 *pFenceValues,
  18744. UINT NumFences,
  18745. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  18746. HANDLE hEvent);
  18747. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  18748. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  18749. ID3D12Device10 * This,
  18750. UINT NumObjects,
  18751. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  18752. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  18753. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  18754. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  18755. ID3D12Device10 * This,
  18756. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  18757. REFIID riid,
  18758. _COM_Outptr_ void **ppPipelineState);
  18759. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  18760. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  18761. ID3D12Device10 * This,
  18762. _In_ const void *pAddress,
  18763. REFIID riid,
  18764. _COM_Outptr_ void **ppvHeap);
  18765. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  18766. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  18767. ID3D12Device10 * This,
  18768. _In_ HANDLE hFileMapping,
  18769. REFIID riid,
  18770. _COM_Outptr_ void **ppvHeap);
  18771. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  18772. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  18773. ID3D12Device10 * This,
  18774. D3D12_RESIDENCY_FLAGS Flags,
  18775. UINT NumObjects,
  18776. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  18777. _In_ ID3D12Fence *pFenceToSignal,
  18778. UINT64 FenceValueToSignal);
  18779. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  18780. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  18781. ID3D12Device10 * This,
  18782. _In_ UINT nodeMask,
  18783. _In_ D3D12_COMMAND_LIST_TYPE type,
  18784. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  18785. REFIID riid,
  18786. _COM_Outptr_ void **ppCommandList);
  18787. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  18788. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  18789. ID3D12Device10 * This,
  18790. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  18791. _In_ REFIID riid,
  18792. _COM_Outptr_ void **ppSession);
  18793. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  18794. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  18795. ID3D12Device10 * This,
  18796. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18797. D3D12_HEAP_FLAGS HeapFlags,
  18798. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18799. D3D12_RESOURCE_STATES InitialResourceState,
  18800. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18801. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18802. REFIID riidResource,
  18803. _COM_Outptr_opt_ void **ppvResource);
  18804. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  18805. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  18806. ID3D12Device10 * This,
  18807. _In_ const D3D12_HEAP_DESC *pDesc,
  18808. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18809. REFIID riid,
  18810. _COM_Outptr_opt_ void **ppvHeap);
  18811. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  18812. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  18813. ID3D12Device10 * This,
  18814. _In_ const D3D12_RESOURCE_DESC *pDesc,
  18815. D3D12_RESOURCE_STATES InitialState,
  18816. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18817. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18818. REFIID riid,
  18819. _COM_Outptr_opt_ void **ppvResource);
  18820. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  18821. #if !defined(_WIN32)
  18822. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  18823. ID3D12Device10 * This,
  18824. UINT visibleMask,
  18825. UINT numResourceDescs,
  18826. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  18827. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18828. #else
  18829. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  18830. ID3D12Device10 * This,
  18831. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  18832. UINT visibleMask,
  18833. UINT numResourceDescs,
  18834. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  18835. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18836. #endif
  18837. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  18838. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  18839. ID3D12Device10 * This,
  18840. _In_ ID3D12LifetimeOwner *pOwner,
  18841. REFIID riid,
  18842. _COM_Outptr_ void **ppvTracker);
  18843. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  18844. void ( STDMETHODCALLTYPE *RemoveDevice )(
  18845. ID3D12Device10 * This);
  18846. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  18847. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  18848. ID3D12Device10 * This,
  18849. _Inout_ UINT *pNumMetaCommands,
  18850. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  18851. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  18852. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  18853. ID3D12Device10 * This,
  18854. _In_ REFGUID CommandId,
  18855. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  18856. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  18857. _Inout_ UINT *pParameterCount,
  18858. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  18859. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  18860. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  18861. ID3D12Device10 * This,
  18862. _In_ REFGUID CommandId,
  18863. _In_ UINT NodeMask,
  18864. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  18865. _In_ SIZE_T CreationParametersDataSizeInBytes,
  18866. REFIID riid,
  18867. _COM_Outptr_ void **ppMetaCommand);
  18868. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  18869. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  18870. ID3D12Device10 * This,
  18871. const D3D12_STATE_OBJECT_DESC *pDesc,
  18872. REFIID riid,
  18873. _COM_Outptr_ void **ppStateObject);
  18874. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  18875. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  18876. ID3D12Device10 * This,
  18877. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  18878. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  18879. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  18880. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  18881. ID3D12Device10 * This,
  18882. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  18883. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  18884. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  18885. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  18886. ID3D12Device10 * This,
  18887. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  18888. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  18889. _In_opt_ HANDLE hEventToSignalUponCompletion,
  18890. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  18891. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  18892. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  18893. ID3D12Device10 * This,
  18894. const D3D12_STATE_OBJECT_DESC *pAddition,
  18895. ID3D12StateObject *pStateObjectToGrowFrom,
  18896. REFIID riid,
  18897. _COM_Outptr_ void **ppNewStateObject);
  18898. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  18899. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  18900. ID3D12Device10 * This,
  18901. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  18902. _In_ REFIID riid,
  18903. _COM_Outptr_ void **ppSession);
  18904. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  18905. #if !defined(_WIN32)
  18906. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  18907. ID3D12Device10 * This,
  18908. UINT visibleMask,
  18909. UINT numResourceDescs,
  18910. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  18911. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18912. #else
  18913. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  18914. ID3D12Device10 * This,
  18915. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  18916. UINT visibleMask,
  18917. UINT numResourceDescs,
  18918. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  18919. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  18920. #endif
  18921. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  18922. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  18923. ID3D12Device10 * This,
  18924. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18925. D3D12_HEAP_FLAGS HeapFlags,
  18926. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18927. D3D12_RESOURCE_STATES InitialResourceState,
  18928. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18929. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18930. REFIID riidResource,
  18931. _COM_Outptr_opt_ void **ppvResource);
  18932. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  18933. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  18934. ID3D12Device10 * This,
  18935. _In_ ID3D12Heap *pHeap,
  18936. UINT64 HeapOffset,
  18937. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18938. D3D12_RESOURCE_STATES InitialState,
  18939. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18940. REFIID riid,
  18941. _COM_Outptr_opt_ void **ppvResource);
  18942. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  18943. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  18944. ID3D12Device10 * This,
  18945. _In_opt_ ID3D12Resource *pTargetedResource,
  18946. _In_opt_ ID3D12Resource *pFeedbackResource,
  18947. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  18948. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  18949. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  18950. ID3D12Device10 * This,
  18951. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  18952. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  18953. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  18954. UINT64 BaseOffset,
  18955. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  18956. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  18957. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  18958. _Out_opt_ UINT64 *pTotalBytes);
  18959. DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
  18960. HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
  18961. ID3D12Device10 * This,
  18962. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  18963. REFIID riid,
  18964. _COM_Outptr_opt_ void **ppvSession);
  18965. DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
  18966. HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
  18967. ID3D12Device10 * This,
  18968. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  18969. D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
  18970. DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
  18971. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
  18972. ID3D12Device10 * This,
  18973. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  18974. REFIID CreatorID,
  18975. REFIID riid,
  18976. _COM_Outptr_ void **ppCommandQueue);
  18977. DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
  18978. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
  18979. ID3D12Device10 * This,
  18980. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  18981. D3D12_HEAP_FLAGS HeapFlags,
  18982. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18983. D3D12_BARRIER_LAYOUT InitialLayout,
  18984. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18985. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  18986. UINT32 NumCastableFormats,
  18987. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  18988. REFIID riidResource,
  18989. _COM_Outptr_opt_ void **ppvResource);
  18990. DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
  18991. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
  18992. ID3D12Device10 * This,
  18993. _In_ ID3D12Heap *pHeap,
  18994. UINT64 HeapOffset,
  18995. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  18996. D3D12_BARRIER_LAYOUT InitialLayout,
  18997. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  18998. UINT32 NumCastableFormats,
  18999. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  19000. REFIID riid,
  19001. _COM_Outptr_opt_ void **ppvResource);
  19002. DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
  19003. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
  19004. ID3D12Device10 * This,
  19005. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19006. D3D12_BARRIER_LAYOUT InitialLayout,
  19007. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19008. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19009. UINT32 NumCastableFormats,
  19010. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  19011. REFIID riid,
  19012. _COM_Outptr_opt_ void **ppvResource);
  19013. END_INTERFACE
  19014. } ID3D12Device10Vtbl;
  19015. interface ID3D12Device10
  19016. {
  19017. CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl;
  19018. };
  19019. #ifdef COBJMACROS
  19020. #define ID3D12Device10_QueryInterface(This,riid,ppvObject) \
  19021. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  19022. #define ID3D12Device10_AddRef(This) \
  19023. ( (This)->lpVtbl -> AddRef(This) )
  19024. #define ID3D12Device10_Release(This) \
  19025. ( (This)->lpVtbl -> Release(This) )
  19026. #define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \
  19027. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  19028. #define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \
  19029. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  19030. #define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \
  19031. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  19032. #define ID3D12Device10_SetName(This,Name) \
  19033. ( (This)->lpVtbl -> SetName(This,Name) )
  19034. #define ID3D12Device10_GetNodeCount(This) \
  19035. ( (This)->lpVtbl -> GetNodeCount(This) )
  19036. #define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  19037. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  19038. #define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  19039. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  19040. #define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  19041. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  19042. #define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  19043. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  19044. #define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  19045. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  19046. #define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  19047. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  19048. #define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  19049. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  19050. #define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  19051. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  19052. #define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  19053. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  19054. #define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  19055. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  19056. #define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  19057. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  19058. #define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  19059. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  19060. #define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  19061. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  19062. #define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  19063. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  19064. #define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \
  19065. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  19066. #define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  19067. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  19068. #define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  19069. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  19070. #if !defined(_WIN32)
  19071. #define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  19072. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  19073. #else
  19074. #define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  19075. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  19076. #endif
  19077. #if !defined(_WIN32)
  19078. #define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \
  19079. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  19080. #else
  19081. #define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  19082. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  19083. #endif
  19084. #define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  19085. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  19086. #define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \
  19087. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  19088. #define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  19089. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  19090. #define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  19091. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  19092. #define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  19093. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  19094. #define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  19095. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  19096. #define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  19097. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  19098. #define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \
  19099. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  19100. #define ID3D12Device10_Evict(This,NumObjects,ppObjects) \
  19101. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  19102. #define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  19103. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  19104. #define ID3D12Device10_GetDeviceRemovedReason(This) \
  19105. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  19106. #define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  19107. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  19108. #define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  19109. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  19110. #define ID3D12Device10_SetStablePowerState(This,Enable) \
  19111. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  19112. #define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  19113. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  19114. #define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  19115. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  19116. #if !defined(_WIN32)
  19117. #define ID3D12Device10_GetAdapterLuid(This) \
  19118. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  19119. #else
  19120. #define ID3D12Device10_GetAdapterLuid(This,RetVal) \
  19121. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  19122. #endif
  19123. #define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  19124. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  19125. #define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  19126. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  19127. #define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  19128. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  19129. #define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  19130. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  19131. #define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  19132. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  19133. #define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  19134. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  19135. #define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  19136. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  19137. #define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  19138. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  19139. #define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  19140. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  19141. #define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  19142. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  19143. #define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  19144. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  19145. #define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  19146. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  19147. #if !defined(_WIN32)
  19148. #define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19149. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19150. #else
  19151. #define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19152. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19153. #endif
  19154. #define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  19155. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  19156. #define ID3D12Device10_RemoveDevice(This) \
  19157. ( (This)->lpVtbl -> RemoveDevice(This) )
  19158. #define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  19159. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  19160. #define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  19161. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  19162. #define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  19163. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  19164. #define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \
  19165. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  19166. #define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  19167. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  19168. #define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  19169. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  19170. #define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  19171. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  19172. #define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  19173. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  19174. #define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  19175. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  19176. #if !defined(_WIN32)
  19177. #define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19178. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19179. #else
  19180. #define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19181. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19182. #endif
  19183. #define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  19184. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  19185. #define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  19186. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  19187. #define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  19188. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  19189. #define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  19190. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  19191. #define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
  19192. ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
  19193. #define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \
  19194. ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
  19195. #define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
  19196. ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
  19197. #define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
  19198. ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
  19199. #define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  19200. ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  19201. #define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  19202. ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  19203. #endif /* COBJMACROS */
  19204. #endif /* C style interface */
  19205. #endif /* __ID3D12Device10_INTERFACE_DEFINED__ */
  19206. #ifndef __ID3D12Device11_INTERFACE_DEFINED__
  19207. #define __ID3D12Device11_INTERFACE_DEFINED__
  19208. /* interface ID3D12Device11 */
  19209. /* [unique][local][object][uuid] */
  19210. EXTERN_C const IID IID_ID3D12Device11;
  19211. #if defined(__cplusplus) && !defined(CINTERFACE)
  19212. MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39")
  19213. ID3D12Device11 : public ID3D12Device10
  19214. {
  19215. public:
  19216. virtual void STDMETHODCALLTYPE CreateSampler2(
  19217. _In_ const D3D12_SAMPLER_DESC2 *pDesc,
  19218. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
  19219. };
  19220. #else /* C style interface */
  19221. typedef struct ID3D12Device11Vtbl
  19222. {
  19223. BEGIN_INTERFACE
  19224. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  19225. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  19226. ID3D12Device11 * This,
  19227. REFIID riid,
  19228. _COM_Outptr_ void **ppvObject);
  19229. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  19230. ULONG ( STDMETHODCALLTYPE *AddRef )(
  19231. ID3D12Device11 * This);
  19232. DECLSPEC_XFGVIRT(IUnknown, Release)
  19233. ULONG ( STDMETHODCALLTYPE *Release )(
  19234. ID3D12Device11 * This);
  19235. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  19236. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  19237. ID3D12Device11 * This,
  19238. _In_ REFGUID guid,
  19239. _Inout_ UINT *pDataSize,
  19240. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  19241. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  19242. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  19243. ID3D12Device11 * This,
  19244. _In_ REFGUID guid,
  19245. _In_ UINT DataSize,
  19246. _In_reads_bytes_opt_( DataSize ) const void *pData);
  19247. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  19248. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  19249. ID3D12Device11 * This,
  19250. _In_ REFGUID guid,
  19251. _In_opt_ const IUnknown *pData);
  19252. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  19253. HRESULT ( STDMETHODCALLTYPE *SetName )(
  19254. ID3D12Device11 * This,
  19255. _In_z_ LPCWSTR Name);
  19256. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  19257. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  19258. ID3D12Device11 * This);
  19259. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  19260. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  19261. ID3D12Device11 * This,
  19262. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  19263. REFIID riid,
  19264. _COM_Outptr_ void **ppCommandQueue);
  19265. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  19266. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  19267. ID3D12Device11 * This,
  19268. _In_ D3D12_COMMAND_LIST_TYPE type,
  19269. REFIID riid,
  19270. _COM_Outptr_ void **ppCommandAllocator);
  19271. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  19272. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  19273. ID3D12Device11 * This,
  19274. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  19275. REFIID riid,
  19276. _COM_Outptr_ void **ppPipelineState);
  19277. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  19278. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  19279. ID3D12Device11 * This,
  19280. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  19281. REFIID riid,
  19282. _COM_Outptr_ void **ppPipelineState);
  19283. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  19284. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  19285. ID3D12Device11 * This,
  19286. _In_ UINT nodeMask,
  19287. _In_ D3D12_COMMAND_LIST_TYPE type,
  19288. _In_ ID3D12CommandAllocator *pCommandAllocator,
  19289. _In_opt_ ID3D12PipelineState *pInitialState,
  19290. REFIID riid,
  19291. _COM_Outptr_ void **ppCommandList);
  19292. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  19293. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  19294. ID3D12Device11 * This,
  19295. D3D12_FEATURE Feature,
  19296. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  19297. UINT FeatureSupportDataSize);
  19298. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  19299. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  19300. ID3D12Device11 * This,
  19301. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  19302. REFIID riid,
  19303. _COM_Outptr_ void **ppvHeap);
  19304. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  19305. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  19306. ID3D12Device11 * This,
  19307. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  19308. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  19309. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  19310. ID3D12Device11 * This,
  19311. _In_ UINT nodeMask,
  19312. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  19313. _In_ SIZE_T blobLengthInBytes,
  19314. REFIID riid,
  19315. _COM_Outptr_ void **ppvRootSignature);
  19316. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  19317. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  19318. ID3D12Device11 * This,
  19319. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  19320. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19321. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  19322. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  19323. ID3D12Device11 * This,
  19324. _In_opt_ ID3D12Resource *pResource,
  19325. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  19326. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19327. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  19328. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  19329. ID3D12Device11 * This,
  19330. _In_opt_ ID3D12Resource *pResource,
  19331. _In_opt_ ID3D12Resource *pCounterResource,
  19332. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  19333. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19334. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  19335. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  19336. ID3D12Device11 * This,
  19337. _In_opt_ ID3D12Resource *pResource,
  19338. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  19339. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19340. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  19341. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  19342. ID3D12Device11 * This,
  19343. _In_opt_ ID3D12Resource *pResource,
  19344. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  19345. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19346. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  19347. void ( STDMETHODCALLTYPE *CreateSampler )(
  19348. ID3D12Device11 * This,
  19349. _In_ const D3D12_SAMPLER_DESC *pDesc,
  19350. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19351. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  19352. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  19353. ID3D12Device11 * This,
  19354. _In_ UINT NumDestDescriptorRanges,
  19355. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  19356. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  19357. _In_ UINT NumSrcDescriptorRanges,
  19358. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  19359. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  19360. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  19361. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  19362. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  19363. ID3D12Device11 * This,
  19364. _In_ UINT NumDescriptors,
  19365. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  19366. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  19367. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  19368. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  19369. #if !defined(_WIN32)
  19370. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  19371. ID3D12Device11 * This,
  19372. _In_ UINT visibleMask,
  19373. _In_ UINT numResourceDescs,
  19374. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  19375. #else
  19376. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  19377. ID3D12Device11 * This,
  19378. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  19379. _In_ UINT visibleMask,
  19380. _In_ UINT numResourceDescs,
  19381. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  19382. #endif
  19383. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  19384. #if !defined(_WIN32)
  19385. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  19386. ID3D12Device11 * This,
  19387. _In_ UINT nodeMask,
  19388. D3D12_HEAP_TYPE heapType);
  19389. #else
  19390. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  19391. ID3D12Device11 * This,
  19392. D3D12_HEAP_PROPERTIES * RetVal,
  19393. _In_ UINT nodeMask,
  19394. D3D12_HEAP_TYPE heapType);
  19395. #endif
  19396. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  19397. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  19398. ID3D12Device11 * This,
  19399. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  19400. D3D12_HEAP_FLAGS HeapFlags,
  19401. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19402. D3D12_RESOURCE_STATES InitialResourceState,
  19403. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19404. REFIID riidResource,
  19405. _COM_Outptr_opt_ void **ppvResource);
  19406. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  19407. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  19408. ID3D12Device11 * This,
  19409. _In_ const D3D12_HEAP_DESC *pDesc,
  19410. REFIID riid,
  19411. _COM_Outptr_opt_ void **ppvHeap);
  19412. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  19413. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  19414. ID3D12Device11 * This,
  19415. _In_ ID3D12Heap *pHeap,
  19416. UINT64 HeapOffset,
  19417. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19418. D3D12_RESOURCE_STATES InitialState,
  19419. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19420. REFIID riid,
  19421. _COM_Outptr_opt_ void **ppvResource);
  19422. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  19423. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  19424. ID3D12Device11 * This,
  19425. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19426. D3D12_RESOURCE_STATES InitialState,
  19427. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19428. REFIID riid,
  19429. _COM_Outptr_opt_ void **ppvResource);
  19430. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  19431. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  19432. ID3D12Device11 * This,
  19433. _In_ ID3D12DeviceChild *pObject,
  19434. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  19435. DWORD Access,
  19436. _In_opt_ LPCWSTR Name,
  19437. _Out_ HANDLE *pHandle);
  19438. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  19439. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  19440. ID3D12Device11 * This,
  19441. _In_ HANDLE NTHandle,
  19442. REFIID riid,
  19443. _COM_Outptr_opt_ void **ppvObj);
  19444. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  19445. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  19446. ID3D12Device11 * This,
  19447. _In_ LPCWSTR Name,
  19448. DWORD Access,
  19449. /* [annotation][out] */
  19450. _Out_ HANDLE *pNTHandle);
  19451. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  19452. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  19453. ID3D12Device11 * This,
  19454. UINT NumObjects,
  19455. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  19456. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  19457. HRESULT ( STDMETHODCALLTYPE *Evict )(
  19458. ID3D12Device11 * This,
  19459. UINT NumObjects,
  19460. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  19461. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  19462. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  19463. ID3D12Device11 * This,
  19464. UINT64 InitialValue,
  19465. D3D12_FENCE_FLAGS Flags,
  19466. REFIID riid,
  19467. _COM_Outptr_ void **ppFence);
  19468. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  19469. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  19470. ID3D12Device11 * This);
  19471. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  19472. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  19473. ID3D12Device11 * This,
  19474. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  19475. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  19476. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  19477. UINT64 BaseOffset,
  19478. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  19479. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  19480. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  19481. _Out_opt_ UINT64 *pTotalBytes);
  19482. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  19483. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  19484. ID3D12Device11 * This,
  19485. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  19486. REFIID riid,
  19487. _COM_Outptr_opt_ void **ppvHeap);
  19488. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  19489. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  19490. ID3D12Device11 * This,
  19491. BOOL Enable);
  19492. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  19493. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  19494. ID3D12Device11 * This,
  19495. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  19496. _In_opt_ ID3D12RootSignature *pRootSignature,
  19497. REFIID riid,
  19498. _COM_Outptr_opt_ void **ppvCommandSignature);
  19499. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  19500. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  19501. ID3D12Device11 * This,
  19502. _In_ ID3D12Resource *pTiledResource,
  19503. _Out_opt_ UINT *pNumTilesForEntireResource,
  19504. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  19505. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  19506. _Inout_opt_ UINT *pNumSubresourceTilings,
  19507. _In_ UINT FirstSubresourceTilingToGet,
  19508. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  19509. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  19510. #if !defined(_WIN32)
  19511. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  19512. ID3D12Device11 * This);
  19513. #else
  19514. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  19515. ID3D12Device11 * This,
  19516. LUID * RetVal);
  19517. #endif
  19518. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  19519. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  19520. ID3D12Device11 * This,
  19521. _In_reads_(BlobLength) const void *pLibraryBlob,
  19522. SIZE_T BlobLength,
  19523. REFIID riid,
  19524. _COM_Outptr_ void **ppPipelineLibrary);
  19525. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  19526. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  19527. ID3D12Device11 * This,
  19528. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  19529. _In_reads_(NumFences) const UINT64 *pFenceValues,
  19530. UINT NumFences,
  19531. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  19532. HANDLE hEvent);
  19533. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  19534. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  19535. ID3D12Device11 * This,
  19536. UINT NumObjects,
  19537. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  19538. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  19539. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  19540. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  19541. ID3D12Device11 * This,
  19542. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  19543. REFIID riid,
  19544. _COM_Outptr_ void **ppPipelineState);
  19545. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  19546. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  19547. ID3D12Device11 * This,
  19548. _In_ const void *pAddress,
  19549. REFIID riid,
  19550. _COM_Outptr_ void **ppvHeap);
  19551. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  19552. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  19553. ID3D12Device11 * This,
  19554. _In_ HANDLE hFileMapping,
  19555. REFIID riid,
  19556. _COM_Outptr_ void **ppvHeap);
  19557. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  19558. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  19559. ID3D12Device11 * This,
  19560. D3D12_RESIDENCY_FLAGS Flags,
  19561. UINT NumObjects,
  19562. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  19563. _In_ ID3D12Fence *pFenceToSignal,
  19564. UINT64 FenceValueToSignal);
  19565. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  19566. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  19567. ID3D12Device11 * This,
  19568. _In_ UINT nodeMask,
  19569. _In_ D3D12_COMMAND_LIST_TYPE type,
  19570. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  19571. REFIID riid,
  19572. _COM_Outptr_ void **ppCommandList);
  19573. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  19574. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  19575. ID3D12Device11 * This,
  19576. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  19577. _In_ REFIID riid,
  19578. _COM_Outptr_ void **ppSession);
  19579. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  19580. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  19581. ID3D12Device11 * This,
  19582. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  19583. D3D12_HEAP_FLAGS HeapFlags,
  19584. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19585. D3D12_RESOURCE_STATES InitialResourceState,
  19586. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19587. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19588. REFIID riidResource,
  19589. _COM_Outptr_opt_ void **ppvResource);
  19590. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  19591. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  19592. ID3D12Device11 * This,
  19593. _In_ const D3D12_HEAP_DESC *pDesc,
  19594. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19595. REFIID riid,
  19596. _COM_Outptr_opt_ void **ppvHeap);
  19597. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  19598. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  19599. ID3D12Device11 * This,
  19600. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19601. D3D12_RESOURCE_STATES InitialState,
  19602. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19603. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19604. REFIID riid,
  19605. _COM_Outptr_opt_ void **ppvResource);
  19606. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  19607. #if !defined(_WIN32)
  19608. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  19609. ID3D12Device11 * This,
  19610. UINT visibleMask,
  19611. UINT numResourceDescs,
  19612. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  19613. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  19614. #else
  19615. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  19616. ID3D12Device11 * This,
  19617. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  19618. UINT visibleMask,
  19619. UINT numResourceDescs,
  19620. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  19621. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  19622. #endif
  19623. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  19624. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  19625. ID3D12Device11 * This,
  19626. _In_ ID3D12LifetimeOwner *pOwner,
  19627. REFIID riid,
  19628. _COM_Outptr_ void **ppvTracker);
  19629. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  19630. void ( STDMETHODCALLTYPE *RemoveDevice )(
  19631. ID3D12Device11 * This);
  19632. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  19633. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  19634. ID3D12Device11 * This,
  19635. _Inout_ UINT *pNumMetaCommands,
  19636. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  19637. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  19638. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  19639. ID3D12Device11 * This,
  19640. _In_ REFGUID CommandId,
  19641. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  19642. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  19643. _Inout_ UINT *pParameterCount,
  19644. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  19645. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  19646. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  19647. ID3D12Device11 * This,
  19648. _In_ REFGUID CommandId,
  19649. _In_ UINT NodeMask,
  19650. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  19651. _In_ SIZE_T CreationParametersDataSizeInBytes,
  19652. REFIID riid,
  19653. _COM_Outptr_ void **ppMetaCommand);
  19654. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  19655. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  19656. ID3D12Device11 * This,
  19657. const D3D12_STATE_OBJECT_DESC *pDesc,
  19658. REFIID riid,
  19659. _COM_Outptr_ void **ppStateObject);
  19660. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  19661. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  19662. ID3D12Device11 * This,
  19663. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  19664. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  19665. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  19666. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  19667. ID3D12Device11 * This,
  19668. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  19669. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  19670. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  19671. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  19672. ID3D12Device11 * This,
  19673. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  19674. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  19675. _In_opt_ HANDLE hEventToSignalUponCompletion,
  19676. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  19677. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  19678. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  19679. ID3D12Device11 * This,
  19680. const D3D12_STATE_OBJECT_DESC *pAddition,
  19681. ID3D12StateObject *pStateObjectToGrowFrom,
  19682. REFIID riid,
  19683. _COM_Outptr_ void **ppNewStateObject);
  19684. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  19685. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  19686. ID3D12Device11 * This,
  19687. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  19688. _In_ REFIID riid,
  19689. _COM_Outptr_ void **ppSession);
  19690. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  19691. #if !defined(_WIN32)
  19692. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  19693. ID3D12Device11 * This,
  19694. UINT visibleMask,
  19695. UINT numResourceDescs,
  19696. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  19697. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  19698. #else
  19699. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  19700. ID3D12Device11 * This,
  19701. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  19702. UINT visibleMask,
  19703. UINT numResourceDescs,
  19704. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  19705. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  19706. #endif
  19707. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  19708. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  19709. ID3D12Device11 * This,
  19710. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  19711. D3D12_HEAP_FLAGS HeapFlags,
  19712. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  19713. D3D12_RESOURCE_STATES InitialResourceState,
  19714. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19715. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19716. REFIID riidResource,
  19717. _COM_Outptr_opt_ void **ppvResource);
  19718. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  19719. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  19720. ID3D12Device11 * This,
  19721. _In_ ID3D12Heap *pHeap,
  19722. UINT64 HeapOffset,
  19723. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  19724. D3D12_RESOURCE_STATES InitialState,
  19725. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19726. REFIID riid,
  19727. _COM_Outptr_opt_ void **ppvResource);
  19728. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  19729. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  19730. ID3D12Device11 * This,
  19731. _In_opt_ ID3D12Resource *pTargetedResource,
  19732. _In_opt_ ID3D12Resource *pFeedbackResource,
  19733. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19734. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  19735. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  19736. ID3D12Device11 * This,
  19737. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  19738. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  19739. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  19740. UINT64 BaseOffset,
  19741. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  19742. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  19743. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  19744. _Out_opt_ UINT64 *pTotalBytes);
  19745. DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
  19746. HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
  19747. ID3D12Device11 * This,
  19748. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  19749. REFIID riid,
  19750. _COM_Outptr_opt_ void **ppvSession);
  19751. DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
  19752. HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
  19753. ID3D12Device11 * This,
  19754. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  19755. D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
  19756. DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
  19757. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
  19758. ID3D12Device11 * This,
  19759. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  19760. REFIID CreatorID,
  19761. REFIID riid,
  19762. _COM_Outptr_ void **ppCommandQueue);
  19763. DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
  19764. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
  19765. ID3D12Device11 * This,
  19766. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  19767. D3D12_HEAP_FLAGS HeapFlags,
  19768. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  19769. D3D12_BARRIER_LAYOUT InitialLayout,
  19770. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19771. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19772. UINT32 NumCastableFormats,
  19773. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  19774. REFIID riidResource,
  19775. _COM_Outptr_opt_ void **ppvResource);
  19776. DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
  19777. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
  19778. ID3D12Device11 * This,
  19779. _In_ ID3D12Heap *pHeap,
  19780. UINT64 HeapOffset,
  19781. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  19782. D3D12_BARRIER_LAYOUT InitialLayout,
  19783. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19784. UINT32 NumCastableFormats,
  19785. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  19786. REFIID riid,
  19787. _COM_Outptr_opt_ void **ppvResource);
  19788. DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
  19789. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
  19790. ID3D12Device11 * This,
  19791. _In_ const D3D12_RESOURCE_DESC *pDesc,
  19792. D3D12_BARRIER_LAYOUT InitialLayout,
  19793. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  19794. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  19795. UINT32 NumCastableFormats,
  19796. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  19797. REFIID riid,
  19798. _COM_Outptr_opt_ void **ppvResource);
  19799. DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
  19800. void ( STDMETHODCALLTYPE *CreateSampler2 )(
  19801. ID3D12Device11 * This,
  19802. _In_ const D3D12_SAMPLER_DESC2 *pDesc,
  19803. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  19804. END_INTERFACE
  19805. } ID3D12Device11Vtbl;
  19806. interface ID3D12Device11
  19807. {
  19808. CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl;
  19809. };
  19810. #ifdef COBJMACROS
  19811. #define ID3D12Device11_QueryInterface(This,riid,ppvObject) \
  19812. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  19813. #define ID3D12Device11_AddRef(This) \
  19814. ( (This)->lpVtbl -> AddRef(This) )
  19815. #define ID3D12Device11_Release(This) \
  19816. ( (This)->lpVtbl -> Release(This) )
  19817. #define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \
  19818. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  19819. #define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \
  19820. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  19821. #define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \
  19822. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  19823. #define ID3D12Device11_SetName(This,Name) \
  19824. ( (This)->lpVtbl -> SetName(This,Name) )
  19825. #define ID3D12Device11_GetNodeCount(This) \
  19826. ( (This)->lpVtbl -> GetNodeCount(This) )
  19827. #define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  19828. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  19829. #define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  19830. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  19831. #define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  19832. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  19833. #define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  19834. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  19835. #define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  19836. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  19837. #define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  19838. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  19839. #define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  19840. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  19841. #define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  19842. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  19843. #define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  19844. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  19845. #define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  19846. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  19847. #define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  19848. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  19849. #define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  19850. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  19851. #define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  19852. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  19853. #define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  19854. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  19855. #define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \
  19856. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  19857. #define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  19858. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  19859. #define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  19860. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  19861. #if !defined(_WIN32)
  19862. #define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  19863. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  19864. #else
  19865. #define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  19866. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  19867. #endif
  19868. #if !defined(_WIN32)
  19869. #define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \
  19870. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  19871. #else
  19872. #define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  19873. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  19874. #endif
  19875. #define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  19876. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  19877. #define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \
  19878. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  19879. #define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  19880. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  19881. #define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  19882. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  19883. #define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  19884. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  19885. #define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  19886. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  19887. #define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  19888. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  19889. #define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \
  19890. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  19891. #define ID3D12Device11_Evict(This,NumObjects,ppObjects) \
  19892. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  19893. #define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  19894. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  19895. #define ID3D12Device11_GetDeviceRemovedReason(This) \
  19896. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  19897. #define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  19898. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  19899. #define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  19900. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  19901. #define ID3D12Device11_SetStablePowerState(This,Enable) \
  19902. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  19903. #define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  19904. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  19905. #define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  19906. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  19907. #if !defined(_WIN32)
  19908. #define ID3D12Device11_GetAdapterLuid(This) \
  19909. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  19910. #else
  19911. #define ID3D12Device11_GetAdapterLuid(This,RetVal) \
  19912. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  19913. #endif
  19914. #define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  19915. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  19916. #define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  19917. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  19918. #define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  19919. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  19920. #define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  19921. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  19922. #define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  19923. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  19924. #define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  19925. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  19926. #define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  19927. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  19928. #define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  19929. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  19930. #define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  19931. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  19932. #define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  19933. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  19934. #define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  19935. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  19936. #define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  19937. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  19938. #if !defined(_WIN32)
  19939. #define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19940. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19941. #else
  19942. #define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19943. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19944. #endif
  19945. #define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  19946. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  19947. #define ID3D12Device11_RemoveDevice(This) \
  19948. ( (This)->lpVtbl -> RemoveDevice(This) )
  19949. #define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  19950. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  19951. #define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  19952. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  19953. #define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  19954. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  19955. #define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \
  19956. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  19957. #define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  19958. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  19959. #define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  19960. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  19961. #define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  19962. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  19963. #define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  19964. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  19965. #define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  19966. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  19967. #if !defined(_WIN32)
  19968. #define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19969. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19970. #else
  19971. #define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  19972. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  19973. #endif
  19974. #define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  19975. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  19976. #define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  19977. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  19978. #define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  19979. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  19980. #define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  19981. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  19982. #define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
  19983. ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
  19984. #define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \
  19985. ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
  19986. #define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
  19987. ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
  19988. #define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
  19989. ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
  19990. #define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  19991. ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  19992. #define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  19993. ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  19994. #define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \
  19995. ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
  19996. #endif /* COBJMACROS */
  19997. #endif /* C style interface */
  19998. #endif /* __ID3D12Device11_INTERFACE_DEFINED__ */
  19999. #ifndef __ID3D12Device12_INTERFACE_DEFINED__
  20000. #define __ID3D12Device12_INTERFACE_DEFINED__
  20001. /* interface ID3D12Device12 */
  20002. /* [unique][local][object][uuid] */
  20003. EXTERN_C const IID IID_ID3D12Device12;
  20004. #if defined(__cplusplus) && !defined(CINTERFACE)
  20005. MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5")
  20006. ID3D12Device12 : public ID3D12Device11
  20007. {
  20008. public:
  20009. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  20010. virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3(
  20011. UINT visibleMask,
  20012. UINT numResourceDescs,
  20013. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  20014. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  20015. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  20016. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
  20017. #else
  20018. virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3(
  20019. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  20020. UINT visibleMask,
  20021. UINT numResourceDescs,
  20022. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  20023. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  20024. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  20025. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
  20026. #endif
  20027. };
  20028. #else /* C style interface */
  20029. typedef struct ID3D12Device12Vtbl
  20030. {
  20031. BEGIN_INTERFACE
  20032. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  20033. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  20034. ID3D12Device12 * This,
  20035. REFIID riid,
  20036. _COM_Outptr_ void **ppvObject);
  20037. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  20038. ULONG ( STDMETHODCALLTYPE *AddRef )(
  20039. ID3D12Device12 * This);
  20040. DECLSPEC_XFGVIRT(IUnknown, Release)
  20041. ULONG ( STDMETHODCALLTYPE *Release )(
  20042. ID3D12Device12 * This);
  20043. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  20044. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  20045. ID3D12Device12 * This,
  20046. _In_ REFGUID guid,
  20047. _Inout_ UINT *pDataSize,
  20048. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  20049. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  20050. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  20051. ID3D12Device12 * This,
  20052. _In_ REFGUID guid,
  20053. _In_ UINT DataSize,
  20054. _In_reads_bytes_opt_( DataSize ) const void *pData);
  20055. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  20056. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  20057. ID3D12Device12 * This,
  20058. _In_ REFGUID guid,
  20059. _In_opt_ const IUnknown *pData);
  20060. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  20061. HRESULT ( STDMETHODCALLTYPE *SetName )(
  20062. ID3D12Device12 * This,
  20063. _In_z_ LPCWSTR Name);
  20064. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  20065. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  20066. ID3D12Device12 * This);
  20067. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  20068. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  20069. ID3D12Device12 * This,
  20070. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  20071. REFIID riid,
  20072. _COM_Outptr_ void **ppCommandQueue);
  20073. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  20074. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  20075. ID3D12Device12 * This,
  20076. _In_ D3D12_COMMAND_LIST_TYPE type,
  20077. REFIID riid,
  20078. _COM_Outptr_ void **ppCommandAllocator);
  20079. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  20080. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  20081. ID3D12Device12 * This,
  20082. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  20083. REFIID riid,
  20084. _COM_Outptr_ void **ppPipelineState);
  20085. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  20086. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  20087. ID3D12Device12 * This,
  20088. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  20089. REFIID riid,
  20090. _COM_Outptr_ void **ppPipelineState);
  20091. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  20092. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  20093. ID3D12Device12 * This,
  20094. _In_ UINT nodeMask,
  20095. _In_ D3D12_COMMAND_LIST_TYPE type,
  20096. _In_ ID3D12CommandAllocator *pCommandAllocator,
  20097. _In_opt_ ID3D12PipelineState *pInitialState,
  20098. REFIID riid,
  20099. _COM_Outptr_ void **ppCommandList);
  20100. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  20101. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  20102. ID3D12Device12 * This,
  20103. D3D12_FEATURE Feature,
  20104. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  20105. UINT FeatureSupportDataSize);
  20106. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  20107. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  20108. ID3D12Device12 * This,
  20109. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  20110. REFIID riid,
  20111. _COM_Outptr_ void **ppvHeap);
  20112. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  20113. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  20114. ID3D12Device12 * This,
  20115. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  20116. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  20117. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  20118. ID3D12Device12 * This,
  20119. _In_ UINT nodeMask,
  20120. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  20121. _In_ SIZE_T blobLengthInBytes,
  20122. REFIID riid,
  20123. _COM_Outptr_ void **ppvRootSignature);
  20124. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  20125. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  20126. ID3D12Device12 * This,
  20127. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  20128. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20129. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  20130. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  20131. ID3D12Device12 * This,
  20132. _In_opt_ ID3D12Resource *pResource,
  20133. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  20134. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20135. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  20136. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  20137. ID3D12Device12 * This,
  20138. _In_opt_ ID3D12Resource *pResource,
  20139. _In_opt_ ID3D12Resource *pCounterResource,
  20140. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  20141. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20142. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  20143. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  20144. ID3D12Device12 * This,
  20145. _In_opt_ ID3D12Resource *pResource,
  20146. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  20147. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20148. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  20149. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  20150. ID3D12Device12 * This,
  20151. _In_opt_ ID3D12Resource *pResource,
  20152. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  20153. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20154. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  20155. void ( STDMETHODCALLTYPE *CreateSampler )(
  20156. ID3D12Device12 * This,
  20157. _In_ const D3D12_SAMPLER_DESC *pDesc,
  20158. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20159. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  20160. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  20161. ID3D12Device12 * This,
  20162. _In_ UINT NumDestDescriptorRanges,
  20163. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  20164. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  20165. _In_ UINT NumSrcDescriptorRanges,
  20166. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  20167. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  20168. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  20169. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  20170. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  20171. ID3D12Device12 * This,
  20172. _In_ UINT NumDescriptors,
  20173. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  20174. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  20175. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  20176. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  20177. #if !defined(_WIN32)
  20178. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  20179. ID3D12Device12 * This,
  20180. _In_ UINT visibleMask,
  20181. _In_ UINT numResourceDescs,
  20182. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  20183. #else
  20184. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  20185. ID3D12Device12 * This,
  20186. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  20187. _In_ UINT visibleMask,
  20188. _In_ UINT numResourceDescs,
  20189. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  20190. #endif
  20191. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  20192. #if !defined(_WIN32)
  20193. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  20194. ID3D12Device12 * This,
  20195. _In_ UINT nodeMask,
  20196. D3D12_HEAP_TYPE heapType);
  20197. #else
  20198. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  20199. ID3D12Device12 * This,
  20200. D3D12_HEAP_PROPERTIES * RetVal,
  20201. _In_ UINT nodeMask,
  20202. D3D12_HEAP_TYPE heapType);
  20203. #endif
  20204. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  20205. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  20206. ID3D12Device12 * This,
  20207. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  20208. D3D12_HEAP_FLAGS HeapFlags,
  20209. _In_ const D3D12_RESOURCE_DESC *pDesc,
  20210. D3D12_RESOURCE_STATES InitialResourceState,
  20211. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20212. REFIID riidResource,
  20213. _COM_Outptr_opt_ void **ppvResource);
  20214. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  20215. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  20216. ID3D12Device12 * This,
  20217. _In_ const D3D12_HEAP_DESC *pDesc,
  20218. REFIID riid,
  20219. _COM_Outptr_opt_ void **ppvHeap);
  20220. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  20221. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  20222. ID3D12Device12 * This,
  20223. _In_ ID3D12Heap *pHeap,
  20224. UINT64 HeapOffset,
  20225. _In_ const D3D12_RESOURCE_DESC *pDesc,
  20226. D3D12_RESOURCE_STATES InitialState,
  20227. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20228. REFIID riid,
  20229. _COM_Outptr_opt_ void **ppvResource);
  20230. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  20231. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  20232. ID3D12Device12 * This,
  20233. _In_ const D3D12_RESOURCE_DESC *pDesc,
  20234. D3D12_RESOURCE_STATES InitialState,
  20235. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20236. REFIID riid,
  20237. _COM_Outptr_opt_ void **ppvResource);
  20238. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  20239. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  20240. ID3D12Device12 * This,
  20241. _In_ ID3D12DeviceChild *pObject,
  20242. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  20243. DWORD Access,
  20244. _In_opt_ LPCWSTR Name,
  20245. _Out_ HANDLE *pHandle);
  20246. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  20247. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  20248. ID3D12Device12 * This,
  20249. _In_ HANDLE NTHandle,
  20250. REFIID riid,
  20251. _COM_Outptr_opt_ void **ppvObj);
  20252. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  20253. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  20254. ID3D12Device12 * This,
  20255. _In_ LPCWSTR Name,
  20256. DWORD Access,
  20257. /* [annotation][out] */
  20258. _Out_ HANDLE *pNTHandle);
  20259. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  20260. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  20261. ID3D12Device12 * This,
  20262. UINT NumObjects,
  20263. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  20264. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  20265. HRESULT ( STDMETHODCALLTYPE *Evict )(
  20266. ID3D12Device12 * This,
  20267. UINT NumObjects,
  20268. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  20269. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  20270. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  20271. ID3D12Device12 * This,
  20272. UINT64 InitialValue,
  20273. D3D12_FENCE_FLAGS Flags,
  20274. REFIID riid,
  20275. _COM_Outptr_ void **ppFence);
  20276. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  20277. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  20278. ID3D12Device12 * This);
  20279. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  20280. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  20281. ID3D12Device12 * This,
  20282. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  20283. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  20284. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  20285. UINT64 BaseOffset,
  20286. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  20287. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  20288. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  20289. _Out_opt_ UINT64 *pTotalBytes);
  20290. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  20291. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  20292. ID3D12Device12 * This,
  20293. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  20294. REFIID riid,
  20295. _COM_Outptr_opt_ void **ppvHeap);
  20296. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  20297. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  20298. ID3D12Device12 * This,
  20299. BOOL Enable);
  20300. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  20301. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  20302. ID3D12Device12 * This,
  20303. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  20304. _In_opt_ ID3D12RootSignature *pRootSignature,
  20305. REFIID riid,
  20306. _COM_Outptr_opt_ void **ppvCommandSignature);
  20307. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  20308. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  20309. ID3D12Device12 * This,
  20310. _In_ ID3D12Resource *pTiledResource,
  20311. _Out_opt_ UINT *pNumTilesForEntireResource,
  20312. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  20313. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  20314. _Inout_opt_ UINT *pNumSubresourceTilings,
  20315. _In_ UINT FirstSubresourceTilingToGet,
  20316. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  20317. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  20318. #if !defined(_WIN32)
  20319. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  20320. ID3D12Device12 * This);
  20321. #else
  20322. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  20323. ID3D12Device12 * This,
  20324. LUID * RetVal);
  20325. #endif
  20326. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  20327. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  20328. ID3D12Device12 * This,
  20329. _In_reads_(BlobLength) const void *pLibraryBlob,
  20330. SIZE_T BlobLength,
  20331. REFIID riid,
  20332. _COM_Outptr_ void **ppPipelineLibrary);
  20333. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  20334. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  20335. ID3D12Device12 * This,
  20336. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  20337. _In_reads_(NumFences) const UINT64 *pFenceValues,
  20338. UINT NumFences,
  20339. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  20340. HANDLE hEvent);
  20341. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  20342. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  20343. ID3D12Device12 * This,
  20344. UINT NumObjects,
  20345. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  20346. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  20347. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  20348. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  20349. ID3D12Device12 * This,
  20350. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  20351. REFIID riid,
  20352. _COM_Outptr_ void **ppPipelineState);
  20353. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  20354. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  20355. ID3D12Device12 * This,
  20356. _In_ const void *pAddress,
  20357. REFIID riid,
  20358. _COM_Outptr_ void **ppvHeap);
  20359. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  20360. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  20361. ID3D12Device12 * This,
  20362. _In_ HANDLE hFileMapping,
  20363. REFIID riid,
  20364. _COM_Outptr_ void **ppvHeap);
  20365. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  20366. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  20367. ID3D12Device12 * This,
  20368. D3D12_RESIDENCY_FLAGS Flags,
  20369. UINT NumObjects,
  20370. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  20371. _In_ ID3D12Fence *pFenceToSignal,
  20372. UINT64 FenceValueToSignal);
  20373. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  20374. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  20375. ID3D12Device12 * This,
  20376. _In_ UINT nodeMask,
  20377. _In_ D3D12_COMMAND_LIST_TYPE type,
  20378. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  20379. REFIID riid,
  20380. _COM_Outptr_ void **ppCommandList);
  20381. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  20382. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  20383. ID3D12Device12 * This,
  20384. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  20385. _In_ REFIID riid,
  20386. _COM_Outptr_ void **ppSession);
  20387. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  20388. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  20389. ID3D12Device12 * This,
  20390. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  20391. D3D12_HEAP_FLAGS HeapFlags,
  20392. _In_ const D3D12_RESOURCE_DESC *pDesc,
  20393. D3D12_RESOURCE_STATES InitialResourceState,
  20394. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20395. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  20396. REFIID riidResource,
  20397. _COM_Outptr_opt_ void **ppvResource);
  20398. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  20399. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  20400. ID3D12Device12 * This,
  20401. _In_ const D3D12_HEAP_DESC *pDesc,
  20402. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  20403. REFIID riid,
  20404. _COM_Outptr_opt_ void **ppvHeap);
  20405. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  20406. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  20407. ID3D12Device12 * This,
  20408. _In_ const D3D12_RESOURCE_DESC *pDesc,
  20409. D3D12_RESOURCE_STATES InitialState,
  20410. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20411. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  20412. REFIID riid,
  20413. _COM_Outptr_opt_ void **ppvResource);
  20414. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  20415. #if !defined(_WIN32)
  20416. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  20417. ID3D12Device12 * This,
  20418. UINT visibleMask,
  20419. UINT numResourceDescs,
  20420. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  20421. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  20422. #else
  20423. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  20424. ID3D12Device12 * This,
  20425. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  20426. UINT visibleMask,
  20427. UINT numResourceDescs,
  20428. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  20429. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  20430. #endif
  20431. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  20432. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  20433. ID3D12Device12 * This,
  20434. _In_ ID3D12LifetimeOwner *pOwner,
  20435. REFIID riid,
  20436. _COM_Outptr_ void **ppvTracker);
  20437. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  20438. void ( STDMETHODCALLTYPE *RemoveDevice )(
  20439. ID3D12Device12 * This);
  20440. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  20441. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  20442. ID3D12Device12 * This,
  20443. _Inout_ UINT *pNumMetaCommands,
  20444. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  20445. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  20446. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  20447. ID3D12Device12 * This,
  20448. _In_ REFGUID CommandId,
  20449. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  20450. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  20451. _Inout_ UINT *pParameterCount,
  20452. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  20453. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  20454. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  20455. ID3D12Device12 * This,
  20456. _In_ REFGUID CommandId,
  20457. _In_ UINT NodeMask,
  20458. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  20459. _In_ SIZE_T CreationParametersDataSizeInBytes,
  20460. REFIID riid,
  20461. _COM_Outptr_ void **ppMetaCommand);
  20462. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  20463. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  20464. ID3D12Device12 * This,
  20465. const D3D12_STATE_OBJECT_DESC *pDesc,
  20466. REFIID riid,
  20467. _COM_Outptr_ void **ppStateObject);
  20468. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  20469. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  20470. ID3D12Device12 * This,
  20471. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  20472. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  20473. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  20474. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  20475. ID3D12Device12 * This,
  20476. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  20477. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  20478. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  20479. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  20480. ID3D12Device12 * This,
  20481. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  20482. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  20483. _In_opt_ HANDLE hEventToSignalUponCompletion,
  20484. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  20485. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  20486. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  20487. ID3D12Device12 * This,
  20488. const D3D12_STATE_OBJECT_DESC *pAddition,
  20489. ID3D12StateObject *pStateObjectToGrowFrom,
  20490. REFIID riid,
  20491. _COM_Outptr_ void **ppNewStateObject);
  20492. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  20493. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  20494. ID3D12Device12 * This,
  20495. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  20496. _In_ REFIID riid,
  20497. _COM_Outptr_ void **ppSession);
  20498. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  20499. #if !defined(_WIN32)
  20500. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  20501. ID3D12Device12 * This,
  20502. UINT visibleMask,
  20503. UINT numResourceDescs,
  20504. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  20505. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  20506. #else
  20507. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  20508. ID3D12Device12 * This,
  20509. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  20510. UINT visibleMask,
  20511. UINT numResourceDescs,
  20512. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  20513. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  20514. #endif
  20515. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  20516. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  20517. ID3D12Device12 * This,
  20518. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  20519. D3D12_HEAP_FLAGS HeapFlags,
  20520. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  20521. D3D12_RESOURCE_STATES InitialResourceState,
  20522. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20523. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  20524. REFIID riidResource,
  20525. _COM_Outptr_opt_ void **ppvResource);
  20526. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  20527. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  20528. ID3D12Device12 * This,
  20529. _In_ ID3D12Heap *pHeap,
  20530. UINT64 HeapOffset,
  20531. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  20532. D3D12_RESOURCE_STATES InitialState,
  20533. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20534. REFIID riid,
  20535. _COM_Outptr_opt_ void **ppvResource);
  20536. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  20537. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  20538. ID3D12Device12 * This,
  20539. _In_opt_ ID3D12Resource *pTargetedResource,
  20540. _In_opt_ ID3D12Resource *pFeedbackResource,
  20541. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20542. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  20543. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  20544. ID3D12Device12 * This,
  20545. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  20546. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  20547. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  20548. UINT64 BaseOffset,
  20549. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  20550. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  20551. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  20552. _Out_opt_ UINT64 *pTotalBytes);
  20553. DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
  20554. HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
  20555. ID3D12Device12 * This,
  20556. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  20557. REFIID riid,
  20558. _COM_Outptr_opt_ void **ppvSession);
  20559. DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
  20560. HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
  20561. ID3D12Device12 * This,
  20562. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  20563. D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
  20564. DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
  20565. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
  20566. ID3D12Device12 * This,
  20567. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  20568. REFIID CreatorID,
  20569. REFIID riid,
  20570. _COM_Outptr_ void **ppCommandQueue);
  20571. DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
  20572. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
  20573. ID3D12Device12 * This,
  20574. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  20575. D3D12_HEAP_FLAGS HeapFlags,
  20576. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  20577. D3D12_BARRIER_LAYOUT InitialLayout,
  20578. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20579. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  20580. UINT32 NumCastableFormats,
  20581. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  20582. REFIID riidResource,
  20583. _COM_Outptr_opt_ void **ppvResource);
  20584. DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
  20585. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
  20586. ID3D12Device12 * This,
  20587. _In_ ID3D12Heap *pHeap,
  20588. UINT64 HeapOffset,
  20589. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  20590. D3D12_BARRIER_LAYOUT InitialLayout,
  20591. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20592. UINT32 NumCastableFormats,
  20593. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  20594. REFIID riid,
  20595. _COM_Outptr_opt_ void **ppvResource);
  20596. DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
  20597. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
  20598. ID3D12Device12 * This,
  20599. _In_ const D3D12_RESOURCE_DESC *pDesc,
  20600. D3D12_BARRIER_LAYOUT InitialLayout,
  20601. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  20602. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  20603. UINT32 NumCastableFormats,
  20604. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  20605. REFIID riid,
  20606. _COM_Outptr_opt_ void **ppvResource);
  20607. DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
  20608. void ( STDMETHODCALLTYPE *CreateSampler2 )(
  20609. ID3D12Device12 * This,
  20610. _In_ const D3D12_SAMPLER_DESC2 *pDesc,
  20611. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20612. DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
  20613. #if !defined(_WIN32)
  20614. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
  20615. ID3D12Device12 * This,
  20616. UINT visibleMask,
  20617. UINT numResourceDescs,
  20618. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  20619. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  20620. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  20621. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  20622. #else
  20623. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
  20624. ID3D12Device12 * This,
  20625. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  20626. UINT visibleMask,
  20627. UINT numResourceDescs,
  20628. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  20629. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  20630. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  20631. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  20632. #endif
  20633. END_INTERFACE
  20634. } ID3D12Device12Vtbl;
  20635. interface ID3D12Device12
  20636. {
  20637. CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl;
  20638. };
  20639. #ifdef COBJMACROS
  20640. #define ID3D12Device12_QueryInterface(This,riid,ppvObject) \
  20641. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  20642. #define ID3D12Device12_AddRef(This) \
  20643. ( (This)->lpVtbl -> AddRef(This) )
  20644. #define ID3D12Device12_Release(This) \
  20645. ( (This)->lpVtbl -> Release(This) )
  20646. #define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \
  20647. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  20648. #define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \
  20649. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  20650. #define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \
  20651. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  20652. #define ID3D12Device12_SetName(This,Name) \
  20653. ( (This)->lpVtbl -> SetName(This,Name) )
  20654. #define ID3D12Device12_GetNodeCount(This) \
  20655. ( (This)->lpVtbl -> GetNodeCount(This) )
  20656. #define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  20657. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  20658. #define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  20659. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  20660. #define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  20661. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  20662. #define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  20663. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  20664. #define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  20665. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  20666. #define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  20667. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  20668. #define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  20669. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  20670. #define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  20671. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  20672. #define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  20673. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  20674. #define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  20675. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  20676. #define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  20677. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  20678. #define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  20679. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  20680. #define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  20681. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  20682. #define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  20683. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  20684. #define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \
  20685. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  20686. #define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  20687. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  20688. #define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  20689. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  20690. #if !defined(_WIN32)
  20691. #define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  20692. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  20693. #else
  20694. #define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  20695. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  20696. #endif
  20697. #if !defined(_WIN32)
  20698. #define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \
  20699. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  20700. #else
  20701. #define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  20702. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  20703. #endif
  20704. #define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  20705. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  20706. #define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \
  20707. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  20708. #define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  20709. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  20710. #define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  20711. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  20712. #define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  20713. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  20714. #define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  20715. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  20716. #define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  20717. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  20718. #define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \
  20719. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  20720. #define ID3D12Device12_Evict(This,NumObjects,ppObjects) \
  20721. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  20722. #define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  20723. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  20724. #define ID3D12Device12_GetDeviceRemovedReason(This) \
  20725. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  20726. #define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  20727. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  20728. #define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  20729. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  20730. #define ID3D12Device12_SetStablePowerState(This,Enable) \
  20731. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  20732. #define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  20733. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  20734. #define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  20735. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  20736. #if !defined(_WIN32)
  20737. #define ID3D12Device12_GetAdapterLuid(This) \
  20738. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  20739. #else
  20740. #define ID3D12Device12_GetAdapterLuid(This,RetVal) \
  20741. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  20742. #endif
  20743. #define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  20744. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  20745. #define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  20746. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  20747. #define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  20748. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  20749. #define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  20750. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  20751. #define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  20752. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  20753. #define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  20754. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  20755. #define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  20756. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  20757. #define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  20758. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  20759. #define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  20760. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  20761. #define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  20762. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  20763. #define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  20764. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  20765. #define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  20766. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  20767. #if !defined(_WIN32)
  20768. #define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  20769. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  20770. #else
  20771. #define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  20772. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  20773. #endif
  20774. #define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  20775. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  20776. #define ID3D12Device12_RemoveDevice(This) \
  20777. ( (This)->lpVtbl -> RemoveDevice(This) )
  20778. #define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  20779. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  20780. #define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  20781. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  20782. #define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  20783. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  20784. #define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \
  20785. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  20786. #define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  20787. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  20788. #define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  20789. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  20790. #define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  20791. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  20792. #define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  20793. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  20794. #define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  20795. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  20796. #if !defined(_WIN32)
  20797. #define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  20798. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  20799. #else
  20800. #define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  20801. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  20802. #endif
  20803. #define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  20804. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  20805. #define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  20806. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  20807. #define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  20808. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  20809. #define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  20810. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  20811. #define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
  20812. ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
  20813. #define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \
  20814. ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
  20815. #define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
  20816. ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
  20817. #define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
  20818. ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
  20819. #define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  20820. ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  20821. #define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  20822. ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  20823. #define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \
  20824. ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
  20825. #if !defined(_WIN32)
  20826. #define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
  20827. ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
  20828. #else
  20829. #define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
  20830. ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
  20831. #endif
  20832. #endif /* COBJMACROS */
  20833. #endif /* C style interface */
  20834. #endif /* __ID3D12Device12_INTERFACE_DEFINED__ */
  20835. #ifndef __ID3D12Device13_INTERFACE_DEFINED__
  20836. #define __ID3D12Device13_INTERFACE_DEFINED__
  20837. /* interface ID3D12Device13 */
  20838. /* [unique][local][object][uuid] */
  20839. EXTERN_C const IID IID_ID3D12Device13;
  20840. #if defined(__cplusplus) && !defined(CINTERFACE)
  20841. MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e")
  20842. ID3D12Device13 : public ID3D12Device12
  20843. {
  20844. public:
  20845. virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1(
  20846. _In_ const void *pAddress,
  20847. SIZE_T size,
  20848. REFIID riid,
  20849. _COM_Outptr_ void **ppvHeap) = 0;
  20850. };
  20851. #else /* C style interface */
  20852. typedef struct ID3D12Device13Vtbl
  20853. {
  20854. BEGIN_INTERFACE
  20855. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  20856. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  20857. ID3D12Device13 * This,
  20858. REFIID riid,
  20859. _COM_Outptr_ void **ppvObject);
  20860. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  20861. ULONG ( STDMETHODCALLTYPE *AddRef )(
  20862. ID3D12Device13 * This);
  20863. DECLSPEC_XFGVIRT(IUnknown, Release)
  20864. ULONG ( STDMETHODCALLTYPE *Release )(
  20865. ID3D12Device13 * This);
  20866. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  20867. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  20868. ID3D12Device13 * This,
  20869. _In_ REFGUID guid,
  20870. _Inout_ UINT *pDataSize,
  20871. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  20872. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  20873. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  20874. ID3D12Device13 * This,
  20875. _In_ REFGUID guid,
  20876. _In_ UINT DataSize,
  20877. _In_reads_bytes_opt_( DataSize ) const void *pData);
  20878. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  20879. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  20880. ID3D12Device13 * This,
  20881. _In_ REFGUID guid,
  20882. _In_opt_ const IUnknown *pData);
  20883. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  20884. HRESULT ( STDMETHODCALLTYPE *SetName )(
  20885. ID3D12Device13 * This,
  20886. _In_z_ LPCWSTR Name);
  20887. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  20888. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  20889. ID3D12Device13 * This);
  20890. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  20891. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  20892. ID3D12Device13 * This,
  20893. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  20894. REFIID riid,
  20895. _COM_Outptr_ void **ppCommandQueue);
  20896. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  20897. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  20898. ID3D12Device13 * This,
  20899. _In_ D3D12_COMMAND_LIST_TYPE type,
  20900. REFIID riid,
  20901. _COM_Outptr_ void **ppCommandAllocator);
  20902. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  20903. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  20904. ID3D12Device13 * This,
  20905. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  20906. REFIID riid,
  20907. _COM_Outptr_ void **ppPipelineState);
  20908. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  20909. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  20910. ID3D12Device13 * This,
  20911. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  20912. REFIID riid,
  20913. _COM_Outptr_ void **ppPipelineState);
  20914. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  20915. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  20916. ID3D12Device13 * This,
  20917. _In_ UINT nodeMask,
  20918. _In_ D3D12_COMMAND_LIST_TYPE type,
  20919. _In_ ID3D12CommandAllocator *pCommandAllocator,
  20920. _In_opt_ ID3D12PipelineState *pInitialState,
  20921. REFIID riid,
  20922. _COM_Outptr_ void **ppCommandList);
  20923. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  20924. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  20925. ID3D12Device13 * This,
  20926. D3D12_FEATURE Feature,
  20927. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  20928. UINT FeatureSupportDataSize);
  20929. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  20930. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  20931. ID3D12Device13 * This,
  20932. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  20933. REFIID riid,
  20934. _COM_Outptr_ void **ppvHeap);
  20935. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  20936. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  20937. ID3D12Device13 * This,
  20938. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  20939. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  20940. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  20941. ID3D12Device13 * This,
  20942. _In_ UINT nodeMask,
  20943. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  20944. _In_ SIZE_T blobLengthInBytes,
  20945. REFIID riid,
  20946. _COM_Outptr_ void **ppvRootSignature);
  20947. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  20948. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  20949. ID3D12Device13 * This,
  20950. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  20951. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20952. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  20953. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  20954. ID3D12Device13 * This,
  20955. _In_opt_ ID3D12Resource *pResource,
  20956. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  20957. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20958. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  20959. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  20960. ID3D12Device13 * This,
  20961. _In_opt_ ID3D12Resource *pResource,
  20962. _In_opt_ ID3D12Resource *pCounterResource,
  20963. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  20964. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20965. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  20966. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  20967. ID3D12Device13 * This,
  20968. _In_opt_ ID3D12Resource *pResource,
  20969. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  20970. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20971. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  20972. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  20973. ID3D12Device13 * This,
  20974. _In_opt_ ID3D12Resource *pResource,
  20975. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  20976. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20977. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  20978. void ( STDMETHODCALLTYPE *CreateSampler )(
  20979. ID3D12Device13 * This,
  20980. _In_ const D3D12_SAMPLER_DESC *pDesc,
  20981. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  20982. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  20983. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  20984. ID3D12Device13 * This,
  20985. _In_ UINT NumDestDescriptorRanges,
  20986. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  20987. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  20988. _In_ UINT NumSrcDescriptorRanges,
  20989. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  20990. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  20991. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  20992. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  20993. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  20994. ID3D12Device13 * This,
  20995. _In_ UINT NumDescriptors,
  20996. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  20997. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  20998. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  20999. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  21000. #if !defined(_WIN32)
  21001. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  21002. ID3D12Device13 * This,
  21003. _In_ UINT visibleMask,
  21004. _In_ UINT numResourceDescs,
  21005. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  21006. #else
  21007. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  21008. ID3D12Device13 * This,
  21009. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  21010. _In_ UINT visibleMask,
  21011. _In_ UINT numResourceDescs,
  21012. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  21013. #endif
  21014. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  21015. #if !defined(_WIN32)
  21016. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  21017. ID3D12Device13 * This,
  21018. _In_ UINT nodeMask,
  21019. D3D12_HEAP_TYPE heapType);
  21020. #else
  21021. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  21022. ID3D12Device13 * This,
  21023. D3D12_HEAP_PROPERTIES * RetVal,
  21024. _In_ UINT nodeMask,
  21025. D3D12_HEAP_TYPE heapType);
  21026. #endif
  21027. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  21028. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  21029. ID3D12Device13 * This,
  21030. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  21031. D3D12_HEAP_FLAGS HeapFlags,
  21032. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21033. D3D12_RESOURCE_STATES InitialResourceState,
  21034. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21035. REFIID riidResource,
  21036. _COM_Outptr_opt_ void **ppvResource);
  21037. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  21038. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  21039. ID3D12Device13 * This,
  21040. _In_ const D3D12_HEAP_DESC *pDesc,
  21041. REFIID riid,
  21042. _COM_Outptr_opt_ void **ppvHeap);
  21043. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  21044. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  21045. ID3D12Device13 * This,
  21046. _In_ ID3D12Heap *pHeap,
  21047. UINT64 HeapOffset,
  21048. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21049. D3D12_RESOURCE_STATES InitialState,
  21050. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21051. REFIID riid,
  21052. _COM_Outptr_opt_ void **ppvResource);
  21053. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  21054. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  21055. ID3D12Device13 * This,
  21056. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21057. D3D12_RESOURCE_STATES InitialState,
  21058. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21059. REFIID riid,
  21060. _COM_Outptr_opt_ void **ppvResource);
  21061. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  21062. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  21063. ID3D12Device13 * This,
  21064. _In_ ID3D12DeviceChild *pObject,
  21065. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  21066. DWORD Access,
  21067. _In_opt_ LPCWSTR Name,
  21068. _Out_ HANDLE *pHandle);
  21069. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  21070. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  21071. ID3D12Device13 * This,
  21072. _In_ HANDLE NTHandle,
  21073. REFIID riid,
  21074. _COM_Outptr_opt_ void **ppvObj);
  21075. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  21076. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  21077. ID3D12Device13 * This,
  21078. _In_ LPCWSTR Name,
  21079. DWORD Access,
  21080. /* [annotation][out] */
  21081. _Out_ HANDLE *pNTHandle);
  21082. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  21083. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  21084. ID3D12Device13 * This,
  21085. UINT NumObjects,
  21086. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  21087. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  21088. HRESULT ( STDMETHODCALLTYPE *Evict )(
  21089. ID3D12Device13 * This,
  21090. UINT NumObjects,
  21091. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  21092. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  21093. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  21094. ID3D12Device13 * This,
  21095. UINT64 InitialValue,
  21096. D3D12_FENCE_FLAGS Flags,
  21097. REFIID riid,
  21098. _COM_Outptr_ void **ppFence);
  21099. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  21100. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  21101. ID3D12Device13 * This);
  21102. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  21103. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  21104. ID3D12Device13 * This,
  21105. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  21106. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  21107. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  21108. UINT64 BaseOffset,
  21109. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  21110. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  21111. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  21112. _Out_opt_ UINT64 *pTotalBytes);
  21113. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  21114. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  21115. ID3D12Device13 * This,
  21116. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  21117. REFIID riid,
  21118. _COM_Outptr_opt_ void **ppvHeap);
  21119. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  21120. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  21121. ID3D12Device13 * This,
  21122. BOOL Enable);
  21123. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  21124. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  21125. ID3D12Device13 * This,
  21126. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  21127. _In_opt_ ID3D12RootSignature *pRootSignature,
  21128. REFIID riid,
  21129. _COM_Outptr_opt_ void **ppvCommandSignature);
  21130. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  21131. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  21132. ID3D12Device13 * This,
  21133. _In_ ID3D12Resource *pTiledResource,
  21134. _Out_opt_ UINT *pNumTilesForEntireResource,
  21135. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  21136. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  21137. _Inout_opt_ UINT *pNumSubresourceTilings,
  21138. _In_ UINT FirstSubresourceTilingToGet,
  21139. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  21140. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  21141. #if !defined(_WIN32)
  21142. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  21143. ID3D12Device13 * This);
  21144. #else
  21145. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  21146. ID3D12Device13 * This,
  21147. LUID * RetVal);
  21148. #endif
  21149. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  21150. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  21151. ID3D12Device13 * This,
  21152. _In_reads_(BlobLength) const void *pLibraryBlob,
  21153. SIZE_T BlobLength,
  21154. REFIID riid,
  21155. _COM_Outptr_ void **ppPipelineLibrary);
  21156. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  21157. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  21158. ID3D12Device13 * This,
  21159. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  21160. _In_reads_(NumFences) const UINT64 *pFenceValues,
  21161. UINT NumFences,
  21162. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  21163. HANDLE hEvent);
  21164. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  21165. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  21166. ID3D12Device13 * This,
  21167. UINT NumObjects,
  21168. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  21169. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  21170. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  21171. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  21172. ID3D12Device13 * This,
  21173. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  21174. REFIID riid,
  21175. _COM_Outptr_ void **ppPipelineState);
  21176. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  21177. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  21178. ID3D12Device13 * This,
  21179. _In_ const void *pAddress,
  21180. REFIID riid,
  21181. _COM_Outptr_ void **ppvHeap);
  21182. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  21183. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  21184. ID3D12Device13 * This,
  21185. _In_ HANDLE hFileMapping,
  21186. REFIID riid,
  21187. _COM_Outptr_ void **ppvHeap);
  21188. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  21189. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  21190. ID3D12Device13 * This,
  21191. D3D12_RESIDENCY_FLAGS Flags,
  21192. UINT NumObjects,
  21193. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  21194. _In_ ID3D12Fence *pFenceToSignal,
  21195. UINT64 FenceValueToSignal);
  21196. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  21197. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  21198. ID3D12Device13 * This,
  21199. _In_ UINT nodeMask,
  21200. _In_ D3D12_COMMAND_LIST_TYPE type,
  21201. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  21202. REFIID riid,
  21203. _COM_Outptr_ void **ppCommandList);
  21204. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  21205. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  21206. ID3D12Device13 * This,
  21207. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  21208. _In_ REFIID riid,
  21209. _COM_Outptr_ void **ppSession);
  21210. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  21211. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  21212. ID3D12Device13 * This,
  21213. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  21214. D3D12_HEAP_FLAGS HeapFlags,
  21215. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21216. D3D12_RESOURCE_STATES InitialResourceState,
  21217. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21218. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  21219. REFIID riidResource,
  21220. _COM_Outptr_opt_ void **ppvResource);
  21221. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  21222. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  21223. ID3D12Device13 * This,
  21224. _In_ const D3D12_HEAP_DESC *pDesc,
  21225. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  21226. REFIID riid,
  21227. _COM_Outptr_opt_ void **ppvHeap);
  21228. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  21229. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  21230. ID3D12Device13 * This,
  21231. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21232. D3D12_RESOURCE_STATES InitialState,
  21233. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21234. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  21235. REFIID riid,
  21236. _COM_Outptr_opt_ void **ppvResource);
  21237. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  21238. #if !defined(_WIN32)
  21239. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  21240. ID3D12Device13 * This,
  21241. UINT visibleMask,
  21242. UINT numResourceDescs,
  21243. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  21244. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  21245. #else
  21246. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  21247. ID3D12Device13 * This,
  21248. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  21249. UINT visibleMask,
  21250. UINT numResourceDescs,
  21251. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  21252. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  21253. #endif
  21254. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  21255. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  21256. ID3D12Device13 * This,
  21257. _In_ ID3D12LifetimeOwner *pOwner,
  21258. REFIID riid,
  21259. _COM_Outptr_ void **ppvTracker);
  21260. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  21261. void ( STDMETHODCALLTYPE *RemoveDevice )(
  21262. ID3D12Device13 * This);
  21263. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  21264. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  21265. ID3D12Device13 * This,
  21266. _Inout_ UINT *pNumMetaCommands,
  21267. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  21268. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  21269. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  21270. ID3D12Device13 * This,
  21271. _In_ REFGUID CommandId,
  21272. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  21273. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  21274. _Inout_ UINT *pParameterCount,
  21275. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  21276. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  21277. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  21278. ID3D12Device13 * This,
  21279. _In_ REFGUID CommandId,
  21280. _In_ UINT NodeMask,
  21281. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  21282. _In_ SIZE_T CreationParametersDataSizeInBytes,
  21283. REFIID riid,
  21284. _COM_Outptr_ void **ppMetaCommand);
  21285. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  21286. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  21287. ID3D12Device13 * This,
  21288. const D3D12_STATE_OBJECT_DESC *pDesc,
  21289. REFIID riid,
  21290. _COM_Outptr_ void **ppStateObject);
  21291. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  21292. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  21293. ID3D12Device13 * This,
  21294. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  21295. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  21296. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  21297. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  21298. ID3D12Device13 * This,
  21299. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  21300. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  21301. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  21302. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  21303. ID3D12Device13 * This,
  21304. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  21305. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  21306. _In_opt_ HANDLE hEventToSignalUponCompletion,
  21307. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  21308. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  21309. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  21310. ID3D12Device13 * This,
  21311. const D3D12_STATE_OBJECT_DESC *pAddition,
  21312. ID3D12StateObject *pStateObjectToGrowFrom,
  21313. REFIID riid,
  21314. _COM_Outptr_ void **ppNewStateObject);
  21315. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  21316. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  21317. ID3D12Device13 * This,
  21318. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  21319. _In_ REFIID riid,
  21320. _COM_Outptr_ void **ppSession);
  21321. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  21322. #if !defined(_WIN32)
  21323. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  21324. ID3D12Device13 * This,
  21325. UINT visibleMask,
  21326. UINT numResourceDescs,
  21327. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  21328. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  21329. #else
  21330. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  21331. ID3D12Device13 * This,
  21332. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  21333. UINT visibleMask,
  21334. UINT numResourceDescs,
  21335. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  21336. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  21337. #endif
  21338. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  21339. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  21340. ID3D12Device13 * This,
  21341. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  21342. D3D12_HEAP_FLAGS HeapFlags,
  21343. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  21344. D3D12_RESOURCE_STATES InitialResourceState,
  21345. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21346. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  21347. REFIID riidResource,
  21348. _COM_Outptr_opt_ void **ppvResource);
  21349. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  21350. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  21351. ID3D12Device13 * This,
  21352. _In_ ID3D12Heap *pHeap,
  21353. UINT64 HeapOffset,
  21354. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  21355. D3D12_RESOURCE_STATES InitialState,
  21356. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21357. REFIID riid,
  21358. _COM_Outptr_opt_ void **ppvResource);
  21359. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  21360. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  21361. ID3D12Device13 * This,
  21362. _In_opt_ ID3D12Resource *pTargetedResource,
  21363. _In_opt_ ID3D12Resource *pFeedbackResource,
  21364. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21365. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  21366. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  21367. ID3D12Device13 * This,
  21368. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  21369. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  21370. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  21371. UINT64 BaseOffset,
  21372. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  21373. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  21374. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  21375. _Out_opt_ UINT64 *pTotalBytes);
  21376. DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
  21377. HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
  21378. ID3D12Device13 * This,
  21379. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  21380. REFIID riid,
  21381. _COM_Outptr_opt_ void **ppvSession);
  21382. DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
  21383. HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
  21384. ID3D12Device13 * This,
  21385. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  21386. D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
  21387. DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
  21388. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
  21389. ID3D12Device13 * This,
  21390. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  21391. REFIID CreatorID,
  21392. REFIID riid,
  21393. _COM_Outptr_ void **ppCommandQueue);
  21394. DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
  21395. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
  21396. ID3D12Device13 * This,
  21397. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  21398. D3D12_HEAP_FLAGS HeapFlags,
  21399. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  21400. D3D12_BARRIER_LAYOUT InitialLayout,
  21401. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21402. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  21403. UINT32 NumCastableFormats,
  21404. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  21405. REFIID riidResource,
  21406. _COM_Outptr_opt_ void **ppvResource);
  21407. DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
  21408. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
  21409. ID3D12Device13 * This,
  21410. _In_ ID3D12Heap *pHeap,
  21411. UINT64 HeapOffset,
  21412. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  21413. D3D12_BARRIER_LAYOUT InitialLayout,
  21414. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21415. UINT32 NumCastableFormats,
  21416. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  21417. REFIID riid,
  21418. _COM_Outptr_opt_ void **ppvResource);
  21419. DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
  21420. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
  21421. ID3D12Device13 * This,
  21422. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21423. D3D12_BARRIER_LAYOUT InitialLayout,
  21424. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21425. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  21426. UINT32 NumCastableFormats,
  21427. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  21428. REFIID riid,
  21429. _COM_Outptr_opt_ void **ppvResource);
  21430. DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
  21431. void ( STDMETHODCALLTYPE *CreateSampler2 )(
  21432. ID3D12Device13 * This,
  21433. _In_ const D3D12_SAMPLER_DESC2 *pDesc,
  21434. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21435. DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
  21436. #if !defined(_WIN32)
  21437. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
  21438. ID3D12Device13 * This,
  21439. UINT visibleMask,
  21440. UINT numResourceDescs,
  21441. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  21442. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  21443. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  21444. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  21445. #else
  21446. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
  21447. ID3D12Device13 * This,
  21448. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  21449. UINT visibleMask,
  21450. UINT numResourceDescs,
  21451. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  21452. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  21453. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  21454. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  21455. #endif
  21456. DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
  21457. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
  21458. ID3D12Device13 * This,
  21459. _In_ const void *pAddress,
  21460. SIZE_T size,
  21461. REFIID riid,
  21462. _COM_Outptr_ void **ppvHeap);
  21463. END_INTERFACE
  21464. } ID3D12Device13Vtbl;
  21465. interface ID3D12Device13
  21466. {
  21467. CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl;
  21468. };
  21469. #ifdef COBJMACROS
  21470. #define ID3D12Device13_QueryInterface(This,riid,ppvObject) \
  21471. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  21472. #define ID3D12Device13_AddRef(This) \
  21473. ( (This)->lpVtbl -> AddRef(This) )
  21474. #define ID3D12Device13_Release(This) \
  21475. ( (This)->lpVtbl -> Release(This) )
  21476. #define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \
  21477. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  21478. #define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \
  21479. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  21480. #define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \
  21481. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  21482. #define ID3D12Device13_SetName(This,Name) \
  21483. ( (This)->lpVtbl -> SetName(This,Name) )
  21484. #define ID3D12Device13_GetNodeCount(This) \
  21485. ( (This)->lpVtbl -> GetNodeCount(This) )
  21486. #define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  21487. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  21488. #define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  21489. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  21490. #define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  21491. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  21492. #define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  21493. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  21494. #define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  21495. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  21496. #define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  21497. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  21498. #define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  21499. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  21500. #define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  21501. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  21502. #define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  21503. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  21504. #define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  21505. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  21506. #define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  21507. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  21508. #define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  21509. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  21510. #define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  21511. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  21512. #define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  21513. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  21514. #define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \
  21515. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  21516. #define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  21517. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  21518. #define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  21519. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  21520. #if !defined(_WIN32)
  21521. #define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  21522. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  21523. #else
  21524. #define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  21525. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  21526. #endif
  21527. #if !defined(_WIN32)
  21528. #define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \
  21529. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  21530. #else
  21531. #define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  21532. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  21533. #endif
  21534. #define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  21535. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  21536. #define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \
  21537. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  21538. #define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  21539. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  21540. #define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  21541. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  21542. #define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  21543. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  21544. #define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  21545. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  21546. #define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  21547. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  21548. #define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \
  21549. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  21550. #define ID3D12Device13_Evict(This,NumObjects,ppObjects) \
  21551. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  21552. #define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  21553. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  21554. #define ID3D12Device13_GetDeviceRemovedReason(This) \
  21555. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  21556. #define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  21557. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  21558. #define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  21559. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  21560. #define ID3D12Device13_SetStablePowerState(This,Enable) \
  21561. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  21562. #define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  21563. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  21564. #define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  21565. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  21566. #if !defined(_WIN32)
  21567. #define ID3D12Device13_GetAdapterLuid(This) \
  21568. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  21569. #else
  21570. #define ID3D12Device13_GetAdapterLuid(This,RetVal) \
  21571. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  21572. #endif
  21573. #define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  21574. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  21575. #define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  21576. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  21577. #define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  21578. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  21579. #define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  21580. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  21581. #define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  21582. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  21583. #define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  21584. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  21585. #define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  21586. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  21587. #define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  21588. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  21589. #define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  21590. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  21591. #define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  21592. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  21593. #define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  21594. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  21595. #define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  21596. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  21597. #if !defined(_WIN32)
  21598. #define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  21599. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  21600. #else
  21601. #define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  21602. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  21603. #endif
  21604. #define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  21605. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  21606. #define ID3D12Device13_RemoveDevice(This) \
  21607. ( (This)->lpVtbl -> RemoveDevice(This) )
  21608. #define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  21609. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  21610. #define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  21611. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  21612. #define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  21613. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  21614. #define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \
  21615. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  21616. #define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  21617. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  21618. #define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  21619. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  21620. #define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  21621. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  21622. #define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  21623. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  21624. #define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  21625. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  21626. #if !defined(_WIN32)
  21627. #define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  21628. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  21629. #else
  21630. #define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  21631. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  21632. #endif
  21633. #define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  21634. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  21635. #define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  21636. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  21637. #define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  21638. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  21639. #define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  21640. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  21641. #define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
  21642. ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
  21643. #define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \
  21644. ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
  21645. #define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
  21646. ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
  21647. #define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
  21648. ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
  21649. #define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  21650. ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  21651. #define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  21652. ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  21653. #define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \
  21654. ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
  21655. #if !defined(_WIN32)
  21656. #define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
  21657. ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
  21658. #else
  21659. #define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
  21660. ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
  21661. #endif
  21662. #define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
  21663. ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
  21664. #endif /* COBJMACROS */
  21665. #endif /* C style interface */
  21666. #endif /* __ID3D12Device13_INTERFACE_DEFINED__ */
  21667. #ifndef __ID3D12Device14_INTERFACE_DEFINED__
  21668. #define __ID3D12Device14_INTERFACE_DEFINED__
  21669. /* interface ID3D12Device14 */
  21670. /* [unique][local][object][uuid] */
  21671. EXTERN_C const IID IID_ID3D12Device14;
  21672. #if defined(__cplusplus) && !defined(CINTERFACE)
  21673. MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323")
  21674. ID3D12Device14 : public ID3D12Device13
  21675. {
  21676. public:
  21677. virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary(
  21678. _In_ UINT nodeMask,
  21679. _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
  21680. _In_ SIZE_T blobLengthInBytes,
  21681. _In_opt_ LPCWSTR subobjectName,
  21682. REFIID riid,
  21683. _COM_Outptr_ void **ppvRootSignature) = 0;
  21684. };
  21685. #else /* C style interface */
  21686. typedef struct ID3D12Device14Vtbl
  21687. {
  21688. BEGIN_INTERFACE
  21689. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  21690. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  21691. ID3D12Device14 * This,
  21692. REFIID riid,
  21693. _COM_Outptr_ void **ppvObject);
  21694. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  21695. ULONG ( STDMETHODCALLTYPE *AddRef )(
  21696. ID3D12Device14 * This);
  21697. DECLSPEC_XFGVIRT(IUnknown, Release)
  21698. ULONG ( STDMETHODCALLTYPE *Release )(
  21699. ID3D12Device14 * This);
  21700. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  21701. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  21702. ID3D12Device14 * This,
  21703. _In_ REFGUID guid,
  21704. _Inout_ UINT *pDataSize,
  21705. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  21706. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  21707. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  21708. ID3D12Device14 * This,
  21709. _In_ REFGUID guid,
  21710. _In_ UINT DataSize,
  21711. _In_reads_bytes_opt_( DataSize ) const void *pData);
  21712. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  21713. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  21714. ID3D12Device14 * This,
  21715. _In_ REFGUID guid,
  21716. _In_opt_ const IUnknown *pData);
  21717. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  21718. HRESULT ( STDMETHODCALLTYPE *SetName )(
  21719. ID3D12Device14 * This,
  21720. _In_z_ LPCWSTR Name);
  21721. DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
  21722. UINT ( STDMETHODCALLTYPE *GetNodeCount )(
  21723. ID3D12Device14 * This);
  21724. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
  21725. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
  21726. ID3D12Device14 * This,
  21727. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  21728. REFIID riid,
  21729. _COM_Outptr_ void **ppCommandQueue);
  21730. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
  21731. HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
  21732. ID3D12Device14 * This,
  21733. _In_ D3D12_COMMAND_LIST_TYPE type,
  21734. REFIID riid,
  21735. _COM_Outptr_ void **ppCommandAllocator);
  21736. DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
  21737. HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
  21738. ID3D12Device14 * This,
  21739. _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
  21740. REFIID riid,
  21741. _COM_Outptr_ void **ppPipelineState);
  21742. DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
  21743. HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
  21744. ID3D12Device14 * This,
  21745. _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
  21746. REFIID riid,
  21747. _COM_Outptr_ void **ppPipelineState);
  21748. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
  21749. HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
  21750. ID3D12Device14 * This,
  21751. _In_ UINT nodeMask,
  21752. _In_ D3D12_COMMAND_LIST_TYPE type,
  21753. _In_ ID3D12CommandAllocator *pCommandAllocator,
  21754. _In_opt_ ID3D12PipelineState *pInitialState,
  21755. REFIID riid,
  21756. _COM_Outptr_ void **ppCommandList);
  21757. DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
  21758. HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
  21759. ID3D12Device14 * This,
  21760. D3D12_FEATURE Feature,
  21761. _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
  21762. UINT FeatureSupportDataSize);
  21763. DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
  21764. HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
  21765. ID3D12Device14 * This,
  21766. _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
  21767. REFIID riid,
  21768. _COM_Outptr_ void **ppvHeap);
  21769. DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
  21770. UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
  21771. ID3D12Device14 * This,
  21772. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
  21773. DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
  21774. HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
  21775. ID3D12Device14 * This,
  21776. _In_ UINT nodeMask,
  21777. _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
  21778. _In_ SIZE_T blobLengthInBytes,
  21779. REFIID riid,
  21780. _COM_Outptr_ void **ppvRootSignature);
  21781. DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
  21782. void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
  21783. ID3D12Device14 * This,
  21784. _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
  21785. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21786. DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
  21787. void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
  21788. ID3D12Device14 * This,
  21789. _In_opt_ ID3D12Resource *pResource,
  21790. _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
  21791. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21792. DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
  21793. void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
  21794. ID3D12Device14 * This,
  21795. _In_opt_ ID3D12Resource *pResource,
  21796. _In_opt_ ID3D12Resource *pCounterResource,
  21797. _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  21798. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21799. DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
  21800. void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
  21801. ID3D12Device14 * This,
  21802. _In_opt_ ID3D12Resource *pResource,
  21803. _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
  21804. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21805. DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
  21806. void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
  21807. ID3D12Device14 * This,
  21808. _In_opt_ ID3D12Resource *pResource,
  21809. _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
  21810. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21811. DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
  21812. void ( STDMETHODCALLTYPE *CreateSampler )(
  21813. ID3D12Device14 * This,
  21814. _In_ const D3D12_SAMPLER_DESC *pDesc,
  21815. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  21816. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
  21817. void ( STDMETHODCALLTYPE *CopyDescriptors )(
  21818. ID3D12Device14 * This,
  21819. _In_ UINT NumDestDescriptorRanges,
  21820. _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
  21821. _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
  21822. _In_ UINT NumSrcDescriptorRanges,
  21823. _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
  21824. _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
  21825. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  21826. DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
  21827. void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
  21828. ID3D12Device14 * This,
  21829. _In_ UINT NumDescriptors,
  21830. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
  21831. _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
  21832. _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
  21833. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
  21834. #if !defined(_WIN32)
  21835. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  21836. ID3D12Device14 * This,
  21837. _In_ UINT visibleMask,
  21838. _In_ UINT numResourceDescs,
  21839. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  21840. #else
  21841. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
  21842. ID3D12Device14 * This,
  21843. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  21844. _In_ UINT visibleMask,
  21845. _In_ UINT numResourceDescs,
  21846. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
  21847. #endif
  21848. DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
  21849. #if !defined(_WIN32)
  21850. D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  21851. ID3D12Device14 * This,
  21852. _In_ UINT nodeMask,
  21853. D3D12_HEAP_TYPE heapType);
  21854. #else
  21855. D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
  21856. ID3D12Device14 * This,
  21857. D3D12_HEAP_PROPERTIES * RetVal,
  21858. _In_ UINT nodeMask,
  21859. D3D12_HEAP_TYPE heapType);
  21860. #endif
  21861. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
  21862. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
  21863. ID3D12Device14 * This,
  21864. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  21865. D3D12_HEAP_FLAGS HeapFlags,
  21866. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21867. D3D12_RESOURCE_STATES InitialResourceState,
  21868. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21869. REFIID riidResource,
  21870. _COM_Outptr_opt_ void **ppvResource);
  21871. DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
  21872. HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
  21873. ID3D12Device14 * This,
  21874. _In_ const D3D12_HEAP_DESC *pDesc,
  21875. REFIID riid,
  21876. _COM_Outptr_opt_ void **ppvHeap);
  21877. DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
  21878. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
  21879. ID3D12Device14 * This,
  21880. _In_ ID3D12Heap *pHeap,
  21881. UINT64 HeapOffset,
  21882. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21883. D3D12_RESOURCE_STATES InitialState,
  21884. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21885. REFIID riid,
  21886. _COM_Outptr_opt_ void **ppvResource);
  21887. DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
  21888. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
  21889. ID3D12Device14 * This,
  21890. _In_ const D3D12_RESOURCE_DESC *pDesc,
  21891. D3D12_RESOURCE_STATES InitialState,
  21892. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  21893. REFIID riid,
  21894. _COM_Outptr_opt_ void **ppvResource);
  21895. DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
  21896. HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
  21897. ID3D12Device14 * This,
  21898. _In_ ID3D12DeviceChild *pObject,
  21899. _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
  21900. DWORD Access,
  21901. _In_opt_ LPCWSTR Name,
  21902. _Out_ HANDLE *pHandle);
  21903. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
  21904. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
  21905. ID3D12Device14 * This,
  21906. _In_ HANDLE NTHandle,
  21907. REFIID riid,
  21908. _COM_Outptr_opt_ void **ppvObj);
  21909. DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
  21910. HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
  21911. ID3D12Device14 * This,
  21912. _In_ LPCWSTR Name,
  21913. DWORD Access,
  21914. /* [annotation][out] */
  21915. _Out_ HANDLE *pNTHandle);
  21916. DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
  21917. HRESULT ( STDMETHODCALLTYPE *MakeResident )(
  21918. ID3D12Device14 * This,
  21919. UINT NumObjects,
  21920. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  21921. DECLSPEC_XFGVIRT(ID3D12Device, Evict)
  21922. HRESULT ( STDMETHODCALLTYPE *Evict )(
  21923. ID3D12Device14 * This,
  21924. UINT NumObjects,
  21925. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
  21926. DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
  21927. HRESULT ( STDMETHODCALLTYPE *CreateFence )(
  21928. ID3D12Device14 * This,
  21929. UINT64 InitialValue,
  21930. D3D12_FENCE_FLAGS Flags,
  21931. REFIID riid,
  21932. _COM_Outptr_ void **ppFence);
  21933. DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
  21934. HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
  21935. ID3D12Device14 * This);
  21936. DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
  21937. void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
  21938. ID3D12Device14 * This,
  21939. _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
  21940. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  21941. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  21942. UINT64 BaseOffset,
  21943. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  21944. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  21945. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  21946. _Out_opt_ UINT64 *pTotalBytes);
  21947. DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
  21948. HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
  21949. ID3D12Device14 * This,
  21950. _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
  21951. REFIID riid,
  21952. _COM_Outptr_opt_ void **ppvHeap);
  21953. DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
  21954. HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
  21955. ID3D12Device14 * This,
  21956. BOOL Enable);
  21957. DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
  21958. HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
  21959. ID3D12Device14 * This,
  21960. _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
  21961. _In_opt_ ID3D12RootSignature *pRootSignature,
  21962. REFIID riid,
  21963. _COM_Outptr_opt_ void **ppvCommandSignature);
  21964. DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
  21965. void ( STDMETHODCALLTYPE *GetResourceTiling )(
  21966. ID3D12Device14 * This,
  21967. _In_ ID3D12Resource *pTiledResource,
  21968. _Out_opt_ UINT *pNumTilesForEntireResource,
  21969. _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
  21970. _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
  21971. _Inout_opt_ UINT *pNumSubresourceTilings,
  21972. _In_ UINT FirstSubresourceTilingToGet,
  21973. _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
  21974. DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
  21975. #if !defined(_WIN32)
  21976. LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
  21977. ID3D12Device14 * This);
  21978. #else
  21979. LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
  21980. ID3D12Device14 * This,
  21981. LUID * RetVal);
  21982. #endif
  21983. DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
  21984. HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
  21985. ID3D12Device14 * This,
  21986. _In_reads_(BlobLength) const void *pLibraryBlob,
  21987. SIZE_T BlobLength,
  21988. REFIID riid,
  21989. _COM_Outptr_ void **ppPipelineLibrary);
  21990. DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
  21991. HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
  21992. ID3D12Device14 * This,
  21993. _In_reads_(NumFences) ID3D12Fence *const *ppFences,
  21994. _In_reads_(NumFences) const UINT64 *pFenceValues,
  21995. UINT NumFences,
  21996. D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
  21997. HANDLE hEvent);
  21998. DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
  21999. HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
  22000. ID3D12Device14 * This,
  22001. UINT NumObjects,
  22002. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  22003. _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
  22004. DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
  22005. HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
  22006. ID3D12Device14 * This,
  22007. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  22008. REFIID riid,
  22009. _COM_Outptr_ void **ppPipelineState);
  22010. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
  22011. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
  22012. ID3D12Device14 * This,
  22013. _In_ const void *pAddress,
  22014. REFIID riid,
  22015. _COM_Outptr_ void **ppvHeap);
  22016. DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
  22017. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
  22018. ID3D12Device14 * This,
  22019. _In_ HANDLE hFileMapping,
  22020. REFIID riid,
  22021. _COM_Outptr_ void **ppvHeap);
  22022. DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
  22023. HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
  22024. ID3D12Device14 * This,
  22025. D3D12_RESIDENCY_FLAGS Flags,
  22026. UINT NumObjects,
  22027. _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
  22028. _In_ ID3D12Fence *pFenceToSignal,
  22029. UINT64 FenceValueToSignal);
  22030. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
  22031. HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
  22032. ID3D12Device14 * This,
  22033. _In_ UINT nodeMask,
  22034. _In_ D3D12_COMMAND_LIST_TYPE type,
  22035. _In_ D3D12_COMMAND_LIST_FLAGS flags,
  22036. REFIID riid,
  22037. _COM_Outptr_ void **ppCommandList);
  22038. DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
  22039. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
  22040. ID3D12Device14 * This,
  22041. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
  22042. _In_ REFIID riid,
  22043. _COM_Outptr_ void **ppSession);
  22044. DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
  22045. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
  22046. ID3D12Device14 * This,
  22047. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  22048. D3D12_HEAP_FLAGS HeapFlags,
  22049. _In_ const D3D12_RESOURCE_DESC *pDesc,
  22050. D3D12_RESOURCE_STATES InitialResourceState,
  22051. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22052. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  22053. REFIID riidResource,
  22054. _COM_Outptr_opt_ void **ppvResource);
  22055. DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
  22056. HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
  22057. ID3D12Device14 * This,
  22058. _In_ const D3D12_HEAP_DESC *pDesc,
  22059. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  22060. REFIID riid,
  22061. _COM_Outptr_opt_ void **ppvHeap);
  22062. DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
  22063. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
  22064. ID3D12Device14 * This,
  22065. _In_ const D3D12_RESOURCE_DESC *pDesc,
  22066. D3D12_RESOURCE_STATES InitialState,
  22067. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22068. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  22069. REFIID riid,
  22070. _COM_Outptr_opt_ void **ppvResource);
  22071. DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
  22072. #if !defined(_WIN32)
  22073. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  22074. ID3D12Device14 * This,
  22075. UINT visibleMask,
  22076. UINT numResourceDescs,
  22077. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  22078. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  22079. #else
  22080. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
  22081. ID3D12Device14 * This,
  22082. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  22083. UINT visibleMask,
  22084. UINT numResourceDescs,
  22085. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
  22086. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  22087. #endif
  22088. DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
  22089. HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
  22090. ID3D12Device14 * This,
  22091. _In_ ID3D12LifetimeOwner *pOwner,
  22092. REFIID riid,
  22093. _COM_Outptr_ void **ppvTracker);
  22094. DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
  22095. void ( STDMETHODCALLTYPE *RemoveDevice )(
  22096. ID3D12Device14 * This);
  22097. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
  22098. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
  22099. ID3D12Device14 * This,
  22100. _Inout_ UINT *pNumMetaCommands,
  22101. _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
  22102. DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
  22103. HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
  22104. ID3D12Device14 * This,
  22105. _In_ REFGUID CommandId,
  22106. _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
  22107. _Out_opt_ UINT *pTotalStructureSizeInBytes,
  22108. _Inout_ UINT *pParameterCount,
  22109. _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
  22110. DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
  22111. HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
  22112. ID3D12Device14 * This,
  22113. _In_ REFGUID CommandId,
  22114. _In_ UINT NodeMask,
  22115. _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
  22116. _In_ SIZE_T CreationParametersDataSizeInBytes,
  22117. REFIID riid,
  22118. _COM_Outptr_ void **ppMetaCommand);
  22119. DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
  22120. HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
  22121. ID3D12Device14 * This,
  22122. const D3D12_STATE_OBJECT_DESC *pDesc,
  22123. REFIID riid,
  22124. _COM_Outptr_ void **ppStateObject);
  22125. DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
  22126. void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
  22127. ID3D12Device14 * This,
  22128. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  22129. _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
  22130. DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
  22131. D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
  22132. ID3D12Device14 * This,
  22133. _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
  22134. _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
  22135. DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
  22136. HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
  22137. ID3D12Device14 * This,
  22138. D3D12_BACKGROUND_PROCESSING_MODE Mode,
  22139. D3D12_MEASUREMENTS_ACTION MeasurementsAction,
  22140. _In_opt_ HANDLE hEventToSignalUponCompletion,
  22141. _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
  22142. DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
  22143. HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
  22144. ID3D12Device14 * This,
  22145. const D3D12_STATE_OBJECT_DESC *pAddition,
  22146. ID3D12StateObject *pStateObjectToGrowFrom,
  22147. REFIID riid,
  22148. _COM_Outptr_ void **ppNewStateObject);
  22149. DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
  22150. HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
  22151. ID3D12Device14 * This,
  22152. _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
  22153. _In_ REFIID riid,
  22154. _COM_Outptr_ void **ppSession);
  22155. DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
  22156. #if !defined(_WIN32)
  22157. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  22158. ID3D12Device14 * This,
  22159. UINT visibleMask,
  22160. UINT numResourceDescs,
  22161. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  22162. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  22163. #else
  22164. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
  22165. ID3D12Device14 * This,
  22166. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  22167. UINT visibleMask,
  22168. UINT numResourceDescs,
  22169. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  22170. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  22171. #endif
  22172. DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
  22173. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
  22174. ID3D12Device14 * This,
  22175. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  22176. D3D12_HEAP_FLAGS HeapFlags,
  22177. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  22178. D3D12_RESOURCE_STATES InitialResourceState,
  22179. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22180. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  22181. REFIID riidResource,
  22182. _COM_Outptr_opt_ void **ppvResource);
  22183. DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
  22184. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
  22185. ID3D12Device14 * This,
  22186. _In_ ID3D12Heap *pHeap,
  22187. UINT64 HeapOffset,
  22188. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  22189. D3D12_RESOURCE_STATES InitialState,
  22190. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22191. REFIID riid,
  22192. _COM_Outptr_opt_ void **ppvResource);
  22193. DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
  22194. void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
  22195. ID3D12Device14 * This,
  22196. _In_opt_ ID3D12Resource *pTargetedResource,
  22197. _In_opt_ ID3D12Resource *pFeedbackResource,
  22198. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  22199. DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
  22200. void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
  22201. ID3D12Device14 * This,
  22202. _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
  22203. _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
  22204. _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
  22205. UINT64 BaseOffset,
  22206. _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  22207. _Out_writes_opt_(NumSubresources) UINT *pNumRows,
  22208. _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
  22209. _Out_opt_ UINT64 *pTotalBytes);
  22210. DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
  22211. HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
  22212. ID3D12Device14 * This,
  22213. _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
  22214. REFIID riid,
  22215. _COM_Outptr_opt_ void **ppvSession);
  22216. DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
  22217. HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
  22218. ID3D12Device14 * This,
  22219. D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
  22220. D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
  22221. DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
  22222. HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
  22223. ID3D12Device14 * This,
  22224. _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
  22225. REFIID CreatorID,
  22226. REFIID riid,
  22227. _COM_Outptr_ void **ppCommandQueue);
  22228. DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
  22229. HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
  22230. ID3D12Device14 * This,
  22231. _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
  22232. D3D12_HEAP_FLAGS HeapFlags,
  22233. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  22234. D3D12_BARRIER_LAYOUT InitialLayout,
  22235. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22236. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  22237. UINT32 NumCastableFormats,
  22238. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  22239. REFIID riidResource,
  22240. _COM_Outptr_opt_ void **ppvResource);
  22241. DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
  22242. HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
  22243. ID3D12Device14 * This,
  22244. _In_ ID3D12Heap *pHeap,
  22245. UINT64 HeapOffset,
  22246. _In_ const D3D12_RESOURCE_DESC1 *pDesc,
  22247. D3D12_BARRIER_LAYOUT InitialLayout,
  22248. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22249. UINT32 NumCastableFormats,
  22250. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  22251. REFIID riid,
  22252. _COM_Outptr_opt_ void **ppvResource);
  22253. DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
  22254. HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
  22255. ID3D12Device14 * This,
  22256. _In_ const D3D12_RESOURCE_DESC *pDesc,
  22257. D3D12_BARRIER_LAYOUT InitialLayout,
  22258. _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
  22259. _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
  22260. UINT32 NumCastableFormats,
  22261. _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
  22262. REFIID riid,
  22263. _COM_Outptr_opt_ void **ppvResource);
  22264. DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
  22265. void ( STDMETHODCALLTYPE *CreateSampler2 )(
  22266. ID3D12Device14 * This,
  22267. _In_ const D3D12_SAMPLER_DESC2 *pDesc,
  22268. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
  22269. DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
  22270. #if !defined(_WIN32)
  22271. D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
  22272. ID3D12Device14 * This,
  22273. UINT visibleMask,
  22274. UINT numResourceDescs,
  22275. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  22276. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  22277. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  22278. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  22279. #else
  22280. D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
  22281. ID3D12Device14 * This,
  22282. D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
  22283. UINT visibleMask,
  22284. UINT numResourceDescs,
  22285. _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
  22286. _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
  22287. _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
  22288. _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
  22289. #endif
  22290. DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
  22291. HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
  22292. ID3D12Device14 * This,
  22293. _In_ const void *pAddress,
  22294. SIZE_T size,
  22295. REFIID riid,
  22296. _COM_Outptr_ void **ppvHeap);
  22297. DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary)
  22298. HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )(
  22299. ID3D12Device14 * This,
  22300. _In_ UINT nodeMask,
  22301. _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
  22302. _In_ SIZE_T blobLengthInBytes,
  22303. _In_opt_ LPCWSTR subobjectName,
  22304. REFIID riid,
  22305. _COM_Outptr_ void **ppvRootSignature);
  22306. END_INTERFACE
  22307. } ID3D12Device14Vtbl;
  22308. interface ID3D12Device14
  22309. {
  22310. CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl;
  22311. };
  22312. #ifdef COBJMACROS
  22313. #define ID3D12Device14_QueryInterface(This,riid,ppvObject) \
  22314. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22315. #define ID3D12Device14_AddRef(This) \
  22316. ( (This)->lpVtbl -> AddRef(This) )
  22317. #define ID3D12Device14_Release(This) \
  22318. ( (This)->lpVtbl -> Release(This) )
  22319. #define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \
  22320. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  22321. #define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \
  22322. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  22323. #define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \
  22324. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  22325. #define ID3D12Device14_SetName(This,Name) \
  22326. ( (This)->lpVtbl -> SetName(This,Name) )
  22327. #define ID3D12Device14_GetNodeCount(This) \
  22328. ( (This)->lpVtbl -> GetNodeCount(This) )
  22329. #define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
  22330. ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
  22331. #define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
  22332. ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
  22333. #define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
  22334. ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
  22335. #define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
  22336. ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
  22337. #define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
  22338. ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
  22339. #define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
  22340. ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
  22341. #define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
  22342. ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
  22343. #define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
  22344. ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
  22345. #define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
  22346. ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
  22347. #define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \
  22348. ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
  22349. #define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
  22350. ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
  22351. #define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
  22352. ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
  22353. #define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
  22354. ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
  22355. #define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
  22356. ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
  22357. #define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \
  22358. ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
  22359. #define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
  22360. ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
  22361. #define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
  22362. ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
  22363. #if !defined(_WIN32)
  22364. #define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
  22365. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
  22366. #else
  22367. #define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
  22368. ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
  22369. #endif
  22370. #if !defined(_WIN32)
  22371. #define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \
  22372. ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
  22373. #else
  22374. #define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
  22375. ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
  22376. #endif
  22377. #define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
  22378. ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
  22379. #define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \
  22380. ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
  22381. #define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  22382. ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  22383. #define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  22384. ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  22385. #define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
  22386. ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
  22387. #define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
  22388. ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
  22389. #define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
  22390. ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
  22391. #define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \
  22392. ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
  22393. #define ID3D12Device14_Evict(This,NumObjects,ppObjects) \
  22394. ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
  22395. #define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \
  22396. ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
  22397. #define ID3D12Device14_GetDeviceRemovedReason(This) \
  22398. ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
  22399. #define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  22400. ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  22401. #define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
  22402. ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
  22403. #define ID3D12Device14_SetStablePowerState(This,Enable) \
  22404. ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
  22405. #define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
  22406. ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
  22407. #define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
  22408. ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
  22409. #if !defined(_WIN32)
  22410. #define ID3D12Device14_GetAdapterLuid(This) \
  22411. ( (This)->lpVtbl -> GetAdapterLuid(This) )
  22412. #else
  22413. #define ID3D12Device14_GetAdapterLuid(This,RetVal) \
  22414. ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
  22415. #endif
  22416. #define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
  22417. ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
  22418. #define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
  22419. ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
  22420. #define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
  22421. ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
  22422. #define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
  22423. ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
  22424. #define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
  22425. ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
  22426. #define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
  22427. ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
  22428. #define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
  22429. ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
  22430. #define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
  22431. ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
  22432. #define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
  22433. ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
  22434. #define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  22435. ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  22436. #define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
  22437. ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
  22438. #define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
  22439. ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
  22440. #if !defined(_WIN32)
  22441. #define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  22442. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  22443. #else
  22444. #define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  22445. ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  22446. #endif
  22447. #define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
  22448. ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
  22449. #define ID3D12Device14_RemoveDevice(This) \
  22450. ( (This)->lpVtbl -> RemoveDevice(This) )
  22451. #define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
  22452. ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
  22453. #define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
  22454. ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
  22455. #define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
  22456. ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
  22457. #define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \
  22458. ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
  22459. #define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
  22460. ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
  22461. #define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
  22462. ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
  22463. #define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
  22464. ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
  22465. #define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
  22466. ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
  22467. #define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
  22468. ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
  22469. #if !defined(_WIN32)
  22470. #define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  22471. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  22472. #else
  22473. #define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
  22474. ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
  22475. #endif
  22476. #define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
  22477. ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
  22478. #define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
  22479. ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
  22480. #define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
  22481. ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
  22482. #define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
  22483. ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
  22484. #define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
  22485. ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
  22486. #define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \
  22487. ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
  22488. #define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
  22489. ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
  22490. #define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
  22491. ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
  22492. #define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  22493. ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  22494. #define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
  22495. ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
  22496. #define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \
  22497. ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
  22498. #if !defined(_WIN32)
  22499. #define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
  22500. ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
  22501. #else
  22502. #define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
  22503. ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
  22504. #endif
  22505. #define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
  22506. ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
  22507. #define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \
  22508. ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) )
  22509. #endif /* COBJMACROS */
  22510. #endif /* C style interface */
  22511. #endif /* __ID3D12Device14_INTERFACE_DEFINED__ */
  22512. /* interface __MIDL_itf_d3d12_0000_0063 */
  22513. /* [local] */
  22514. typedef union D3D12_VERSION_NUMBER
  22515. {
  22516. UINT64 Version;
  22517. UINT16 VersionParts[ 4 ];
  22518. } D3D12_VERSION_NUMBER;
  22519. typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT
  22520. {
  22521. WCHAR szAdapterFamily[ 128 ];
  22522. UINT64 MinimumABISupportVersion;
  22523. UINT64 MaximumABISupportVersion;
  22524. D3D12_VERSION_NUMBER CompilerVersion;
  22525. D3D12_VERSION_NUMBER ApplicationProfileVersion;
  22526. } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT;
  22527. typedef void ( __stdcall *D3D12PipelineStateFunc )(
  22528. _In_reads_bytes_(KeySize) const void *pKey,
  22529. UINT KeySize,
  22530. UINT Version,
  22531. const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
  22532. _Inout_opt_ void *pContext);
  22533. typedef void ( __stdcall *D3D12StateObjectFunc )(
  22534. _In_reads_bytes_(KeySize) const void *pKey,
  22535. UINT KeySize,
  22536. UINT Version,
  22537. const D3D12_STATE_OBJECT_DESC *pDesc,
  22538. _In_reads_bytes_(ParentKeySize) const void *pParentKey,
  22539. UINT ParentKeySize,
  22540. _Inout_opt_ void *pContext);
  22541. typedef struct D3D12_APPLICATION_DESC
  22542. {
  22543. LPCWSTR pExeFilename;
  22544. LPCWSTR pName;
  22545. D3D12_VERSION_NUMBER Version;
  22546. LPCWSTR pEngineName;
  22547. D3D12_VERSION_NUMBER EngineVersion;
  22548. } D3D12_APPLICATION_DESC;
  22549. typedef void ( __stdcall *D3D12ApplicationDescFunc )(
  22550. _In_ const D3D12_APPLICATION_DESC *pApplicationDesc,
  22551. _Inout_opt_ void *pContext);
  22552. typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC
  22553. {
  22554. _Field_size_bytes_full_(KeySize) const void *pKey;
  22555. UINT KeySize;
  22556. UINT NumExports;
  22557. _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
  22558. } D3D12_EXISTING_COLLECTION_BY_KEY_DESC;
  22559. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_c_ifspec;
  22560. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_s_ifspec;
  22561. #ifndef __ID3D12StateObjectDatabase_INTERFACE_DEFINED__
  22562. #define __ID3D12StateObjectDatabase_INTERFACE_DEFINED__
  22563. /* interface ID3D12StateObjectDatabase */
  22564. /* [unique][local][object][uuid] */
  22565. EXTERN_C const IID IID_ID3D12StateObjectDatabase;
  22566. #if defined(__cplusplus) && !defined(CINTERFACE)
  22567. MIDL_INTERFACE("c56060b7-b5fc-4135-98e0-a1e9997eace0")
  22568. ID3D12StateObjectDatabase : public IUnknown
  22569. {
  22570. public:
  22571. virtual HRESULT STDMETHODCALLTYPE SetApplicationDesc(
  22572. _In_ const D3D12_APPLICATION_DESC *pApplicationDesc) = 0;
  22573. virtual HRESULT STDMETHODCALLTYPE GetApplicationDesc(
  22574. _In_ D3D12ApplicationDescFunc CallbackFunc,
  22575. _Inout_opt_ void *pContext) = 0;
  22576. virtual HRESULT STDMETHODCALLTYPE StorePipelineStateDesc(
  22577. _In_reads_(KeySize) const void *pKey,
  22578. UINT KeySize,
  22579. UINT Version,
  22580. _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0;
  22581. virtual HRESULT STDMETHODCALLTYPE FindPipelineStateDesc(
  22582. _In_reads_(KeySize) const void *pKey,
  22583. UINT KeySize,
  22584. _In_ D3D12PipelineStateFunc CallbackFunc,
  22585. _Inout_opt_ void *pContext) = 0;
  22586. virtual HRESULT STDMETHODCALLTYPE StoreStateObjectDesc(
  22587. _In_reads_(KeySize) const void *pKey,
  22588. UINT KeySize,
  22589. UINT Version,
  22590. _In_ const D3D12_STATE_OBJECT_DESC *pDesc,
  22591. _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey,
  22592. UINT StateObjectToGrowFromKeySize) = 0;
  22593. virtual HRESULT STDMETHODCALLTYPE FindStateObjectDesc(
  22594. _In_reads_(keySize) const void *pKey,
  22595. UINT KeySize,
  22596. D3D12StateObjectFunc CallbackFunc,
  22597. _Inout_opt_ void *pContext) = 0;
  22598. virtual HRESULT STDMETHODCALLTYPE FindObjectVersion(
  22599. _In_reads_(keySize) const void *pKey,
  22600. UINT KeySize,
  22601. _Out_ UINT *pVersion) = 0;
  22602. };
  22603. #else /* C style interface */
  22604. typedef struct ID3D12StateObjectDatabaseVtbl
  22605. {
  22606. BEGIN_INTERFACE
  22607. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  22608. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  22609. ID3D12StateObjectDatabase * This,
  22610. REFIID riid,
  22611. _COM_Outptr_ void **ppvObject);
  22612. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  22613. ULONG ( STDMETHODCALLTYPE *AddRef )(
  22614. ID3D12StateObjectDatabase * This);
  22615. DECLSPEC_XFGVIRT(IUnknown, Release)
  22616. ULONG ( STDMETHODCALLTYPE *Release )(
  22617. ID3D12StateObjectDatabase * This);
  22618. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, SetApplicationDesc)
  22619. HRESULT ( STDMETHODCALLTYPE *SetApplicationDesc )(
  22620. ID3D12StateObjectDatabase * This,
  22621. _In_ const D3D12_APPLICATION_DESC *pApplicationDesc);
  22622. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, GetApplicationDesc)
  22623. HRESULT ( STDMETHODCALLTYPE *GetApplicationDesc )(
  22624. ID3D12StateObjectDatabase * This,
  22625. _In_ D3D12ApplicationDescFunc CallbackFunc,
  22626. _Inout_opt_ void *pContext);
  22627. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StorePipelineStateDesc)
  22628. HRESULT ( STDMETHODCALLTYPE *StorePipelineStateDesc )(
  22629. ID3D12StateObjectDatabase * This,
  22630. _In_reads_(KeySize) const void *pKey,
  22631. UINT KeySize,
  22632. UINT Version,
  22633. _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc);
  22634. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindPipelineStateDesc)
  22635. HRESULT ( STDMETHODCALLTYPE *FindPipelineStateDesc )(
  22636. ID3D12StateObjectDatabase * This,
  22637. _In_reads_(KeySize) const void *pKey,
  22638. UINT KeySize,
  22639. _In_ D3D12PipelineStateFunc CallbackFunc,
  22640. _Inout_opt_ void *pContext);
  22641. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StoreStateObjectDesc)
  22642. HRESULT ( STDMETHODCALLTYPE *StoreStateObjectDesc )(
  22643. ID3D12StateObjectDatabase * This,
  22644. _In_reads_(KeySize) const void *pKey,
  22645. UINT KeySize,
  22646. UINT Version,
  22647. _In_ const D3D12_STATE_OBJECT_DESC *pDesc,
  22648. _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey,
  22649. UINT StateObjectToGrowFromKeySize);
  22650. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindStateObjectDesc)
  22651. HRESULT ( STDMETHODCALLTYPE *FindStateObjectDesc )(
  22652. ID3D12StateObjectDatabase * This,
  22653. _In_reads_(keySize) const void *pKey,
  22654. UINT KeySize,
  22655. D3D12StateObjectFunc CallbackFunc,
  22656. _Inout_opt_ void *pContext);
  22657. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindObjectVersion)
  22658. HRESULT ( STDMETHODCALLTYPE *FindObjectVersion )(
  22659. ID3D12StateObjectDatabase * This,
  22660. _In_reads_(keySize) const void *pKey,
  22661. UINT KeySize,
  22662. _Out_ UINT *pVersion);
  22663. END_INTERFACE
  22664. } ID3D12StateObjectDatabaseVtbl;
  22665. interface ID3D12StateObjectDatabase
  22666. {
  22667. CONST_VTBL struct ID3D12StateObjectDatabaseVtbl *lpVtbl;
  22668. };
  22669. #ifdef COBJMACROS
  22670. #define ID3D12StateObjectDatabase_QueryInterface(This,riid,ppvObject) \
  22671. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22672. #define ID3D12StateObjectDatabase_AddRef(This) \
  22673. ( (This)->lpVtbl -> AddRef(This) )
  22674. #define ID3D12StateObjectDatabase_Release(This) \
  22675. ( (This)->lpVtbl -> Release(This) )
  22676. #define ID3D12StateObjectDatabase_SetApplicationDesc(This,pApplicationDesc) \
  22677. ( (This)->lpVtbl -> SetApplicationDesc(This,pApplicationDesc) )
  22678. #define ID3D12StateObjectDatabase_GetApplicationDesc(This,CallbackFunc,pContext) \
  22679. ( (This)->lpVtbl -> GetApplicationDesc(This,CallbackFunc,pContext) )
  22680. #define ID3D12StateObjectDatabase_StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) \
  22681. ( (This)->lpVtbl -> StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) )
  22682. #define ID3D12StateObjectDatabase_FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) \
  22683. ( (This)->lpVtbl -> FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) )
  22684. #define ID3D12StateObjectDatabase_StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) \
  22685. ( (This)->lpVtbl -> StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) )
  22686. #define ID3D12StateObjectDatabase_FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) \
  22687. ( (This)->lpVtbl -> FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) )
  22688. #define ID3D12StateObjectDatabase_FindObjectVersion(This,pKey,KeySize,pVersion) \
  22689. ( (This)->lpVtbl -> FindObjectVersion(This,pKey,KeySize,pVersion) )
  22690. #endif /* COBJMACROS */
  22691. #endif /* C style interface */
  22692. #endif /* __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ */
  22693. #ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
  22694. #define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
  22695. /* interface ID3D12VirtualizationGuestDevice */
  22696. /* [unique][local][object][uuid] */
  22697. EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice;
  22698. #if defined(__cplusplus) && !defined(CINTERFACE)
  22699. MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476")
  22700. ID3D12VirtualizationGuestDevice : public IUnknown
  22701. {
  22702. public:
  22703. virtual HRESULT STDMETHODCALLTYPE ShareWithHost(
  22704. _In_ ID3D12DeviceChild *pObject,
  22705. _Out_ HANDLE *pHandle) = 0;
  22706. virtual HRESULT STDMETHODCALLTYPE CreateFenceFd(
  22707. _In_ ID3D12Fence *pFence,
  22708. UINT64 FenceValue,
  22709. _Out_ int *pFenceFd) = 0;
  22710. };
  22711. #else /* C style interface */
  22712. typedef struct ID3D12VirtualizationGuestDeviceVtbl
  22713. {
  22714. BEGIN_INTERFACE
  22715. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  22716. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  22717. ID3D12VirtualizationGuestDevice * This,
  22718. REFIID riid,
  22719. _COM_Outptr_ void **ppvObject);
  22720. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  22721. ULONG ( STDMETHODCALLTYPE *AddRef )(
  22722. ID3D12VirtualizationGuestDevice * This);
  22723. DECLSPEC_XFGVIRT(IUnknown, Release)
  22724. ULONG ( STDMETHODCALLTYPE *Release )(
  22725. ID3D12VirtualizationGuestDevice * This);
  22726. DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost)
  22727. HRESULT ( STDMETHODCALLTYPE *ShareWithHost )(
  22728. ID3D12VirtualizationGuestDevice * This,
  22729. _In_ ID3D12DeviceChild *pObject,
  22730. _Out_ HANDLE *pHandle);
  22731. DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd)
  22732. HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )(
  22733. ID3D12VirtualizationGuestDevice * This,
  22734. _In_ ID3D12Fence *pFence,
  22735. UINT64 FenceValue,
  22736. _Out_ int *pFenceFd);
  22737. END_INTERFACE
  22738. } ID3D12VirtualizationGuestDeviceVtbl;
  22739. interface ID3D12VirtualizationGuestDevice
  22740. {
  22741. CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl;
  22742. };
  22743. #ifdef COBJMACROS
  22744. #define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \
  22745. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22746. #define ID3D12VirtualizationGuestDevice_AddRef(This) \
  22747. ( (This)->lpVtbl -> AddRef(This) )
  22748. #define ID3D12VirtualizationGuestDevice_Release(This) \
  22749. ( (This)->lpVtbl -> Release(This) )
  22750. #define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \
  22751. ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) )
  22752. #define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \
  22753. ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) )
  22754. #endif /* COBJMACROS */
  22755. #endif /* C style interface */
  22756. #endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */
  22757. #ifndef __ID3D12Tools_INTERFACE_DEFINED__
  22758. #define __ID3D12Tools_INTERFACE_DEFINED__
  22759. /* interface ID3D12Tools */
  22760. /* [unique][local][object][uuid] */
  22761. EXTERN_C const IID IID_ID3D12Tools;
  22762. #if defined(__cplusplus) && !defined(CINTERFACE)
  22763. MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
  22764. ID3D12Tools : public IUnknown
  22765. {
  22766. public:
  22767. virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
  22768. BOOL bEnable) = 0;
  22769. virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0;
  22770. };
  22771. #else /* C style interface */
  22772. typedef struct ID3D12ToolsVtbl
  22773. {
  22774. BEGIN_INTERFACE
  22775. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  22776. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  22777. ID3D12Tools * This,
  22778. REFIID riid,
  22779. _COM_Outptr_ void **ppvObject);
  22780. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  22781. ULONG ( STDMETHODCALLTYPE *AddRef )(
  22782. ID3D12Tools * This);
  22783. DECLSPEC_XFGVIRT(IUnknown, Release)
  22784. ULONG ( STDMETHODCALLTYPE *Release )(
  22785. ID3D12Tools * This);
  22786. DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
  22787. void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
  22788. ID3D12Tools * This,
  22789. BOOL bEnable);
  22790. DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
  22791. BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
  22792. ID3D12Tools * This);
  22793. END_INTERFACE
  22794. } ID3D12ToolsVtbl;
  22795. interface ID3D12Tools
  22796. {
  22797. CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl;
  22798. };
  22799. #ifdef COBJMACROS
  22800. #define ID3D12Tools_QueryInterface(This,riid,ppvObject) \
  22801. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22802. #define ID3D12Tools_AddRef(This) \
  22803. ( (This)->lpVtbl -> AddRef(This) )
  22804. #define ID3D12Tools_Release(This) \
  22805. ( (This)->lpVtbl -> Release(This) )
  22806. #define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \
  22807. ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
  22808. #define ID3D12Tools_ShaderInstrumentationEnabled(This) \
  22809. ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
  22810. #endif /* COBJMACROS */
  22811. #endif /* C style interface */
  22812. #endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
  22813. #ifndef __ID3D12Tools1_INTERFACE_DEFINED__
  22814. #define __ID3D12Tools1_INTERFACE_DEFINED__
  22815. /* interface ID3D12Tools1 */
  22816. /* [unique][local][object][uuid] */
  22817. EXTERN_C const IID IID_ID3D12Tools1;
  22818. #if defined(__cplusplus) && !defined(CINTERFACE)
  22819. MIDL_INTERFACE("e4fbc019-dd3c-43e1-8f32-7f649575f0a0")
  22820. ID3D12Tools1 : public ID3D12Tools
  22821. {
  22822. public:
  22823. virtual HRESULT STDMETHODCALLTYPE ReserveGPUVARangesAtCreate(
  22824. _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
  22825. _In_ UINT uiNumRanges) = 0;
  22826. virtual void STDMETHODCALLTYPE ClearReservedGPUVARangesList( void) = 0;
  22827. };
  22828. #else /* C style interface */
  22829. typedef struct ID3D12Tools1Vtbl
  22830. {
  22831. BEGIN_INTERFACE
  22832. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  22833. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  22834. ID3D12Tools1 * This,
  22835. REFIID riid,
  22836. _COM_Outptr_ void **ppvObject);
  22837. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  22838. ULONG ( STDMETHODCALLTYPE *AddRef )(
  22839. ID3D12Tools1 * This);
  22840. DECLSPEC_XFGVIRT(IUnknown, Release)
  22841. ULONG ( STDMETHODCALLTYPE *Release )(
  22842. ID3D12Tools1 * This);
  22843. DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
  22844. void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
  22845. ID3D12Tools1 * This,
  22846. BOOL bEnable);
  22847. DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
  22848. BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
  22849. ID3D12Tools1 * This);
  22850. DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate)
  22851. HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )(
  22852. ID3D12Tools1 * This,
  22853. _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
  22854. _In_ UINT uiNumRanges);
  22855. DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList)
  22856. void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )(
  22857. ID3D12Tools1 * This);
  22858. END_INTERFACE
  22859. } ID3D12Tools1Vtbl;
  22860. interface ID3D12Tools1
  22861. {
  22862. CONST_VTBL struct ID3D12Tools1Vtbl *lpVtbl;
  22863. };
  22864. #ifdef COBJMACROS
  22865. #define ID3D12Tools1_QueryInterface(This,riid,ppvObject) \
  22866. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22867. #define ID3D12Tools1_AddRef(This) \
  22868. ( (This)->lpVtbl -> AddRef(This) )
  22869. #define ID3D12Tools1_Release(This) \
  22870. ( (This)->lpVtbl -> Release(This) )
  22871. #define ID3D12Tools1_EnableShaderInstrumentation(This,bEnable) \
  22872. ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
  22873. #define ID3D12Tools1_ShaderInstrumentationEnabled(This) \
  22874. ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
  22875. #define ID3D12Tools1_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \
  22876. ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) )
  22877. #define ID3D12Tools1_ClearReservedGPUVARangesList(This) \
  22878. ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) )
  22879. #endif /* COBJMACROS */
  22880. #endif /* C style interface */
  22881. #endif /* __ID3D12Tools1_INTERFACE_DEFINED__ */
  22882. #ifndef __ID3D12Tools2_INTERFACE_DEFINED__
  22883. #define __ID3D12Tools2_INTERFACE_DEFINED__
  22884. /* interface ID3D12Tools2 */
  22885. /* [unique][local][object][uuid] */
  22886. EXTERN_C const IID IID_ID3D12Tools2;
  22887. #if defined(__cplusplus) && !defined(CINTERFACE)
  22888. MIDL_INTERFACE("01d393c5-c9b0-42a1-958c-c26b02d4d097")
  22889. ID3D12Tools2 : public ID3D12Tools1
  22890. {
  22891. public:
  22892. virtual HRESULT STDMETHODCALLTYPE SetApplicationSpecificDriverState(
  22893. _In_ IUnknown *pAdapter,
  22894. _In_opt_ ID3DBlob *pBlob) = 0;
  22895. };
  22896. #else /* C style interface */
  22897. typedef struct ID3D12Tools2Vtbl
  22898. {
  22899. BEGIN_INTERFACE
  22900. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  22901. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  22902. ID3D12Tools2 * This,
  22903. REFIID riid,
  22904. _COM_Outptr_ void **ppvObject);
  22905. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  22906. ULONG ( STDMETHODCALLTYPE *AddRef )(
  22907. ID3D12Tools2 * This);
  22908. DECLSPEC_XFGVIRT(IUnknown, Release)
  22909. ULONG ( STDMETHODCALLTYPE *Release )(
  22910. ID3D12Tools2 * This);
  22911. DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
  22912. void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
  22913. ID3D12Tools2 * This,
  22914. BOOL bEnable);
  22915. DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
  22916. BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
  22917. ID3D12Tools2 * This);
  22918. DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate)
  22919. HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )(
  22920. ID3D12Tools2 * This,
  22921. _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
  22922. _In_ UINT uiNumRanges);
  22923. DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList)
  22924. void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )(
  22925. ID3D12Tools2 * This);
  22926. DECLSPEC_XFGVIRT(ID3D12Tools2, SetApplicationSpecificDriverState)
  22927. HRESULT ( STDMETHODCALLTYPE *SetApplicationSpecificDriverState )(
  22928. ID3D12Tools2 * This,
  22929. _In_ IUnknown *pAdapter,
  22930. _In_opt_ ID3DBlob *pBlob);
  22931. END_INTERFACE
  22932. } ID3D12Tools2Vtbl;
  22933. interface ID3D12Tools2
  22934. {
  22935. CONST_VTBL struct ID3D12Tools2Vtbl *lpVtbl;
  22936. };
  22937. #ifdef COBJMACROS
  22938. #define ID3D12Tools2_QueryInterface(This,riid,ppvObject) \
  22939. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22940. #define ID3D12Tools2_AddRef(This) \
  22941. ( (This)->lpVtbl -> AddRef(This) )
  22942. #define ID3D12Tools2_Release(This) \
  22943. ( (This)->lpVtbl -> Release(This) )
  22944. #define ID3D12Tools2_EnableShaderInstrumentation(This,bEnable) \
  22945. ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
  22946. #define ID3D12Tools2_ShaderInstrumentationEnabled(This) \
  22947. ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
  22948. #define ID3D12Tools2_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \
  22949. ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) )
  22950. #define ID3D12Tools2_ClearReservedGPUVARangesList(This) \
  22951. ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) )
  22952. #define ID3D12Tools2_SetApplicationSpecificDriverState(This,pAdapter,pBlob) \
  22953. ( (This)->lpVtbl -> SetApplicationSpecificDriverState(This,pAdapter,pBlob) )
  22954. #endif /* COBJMACROS */
  22955. #endif /* C style interface */
  22956. #endif /* __ID3D12Tools2_INTERFACE_DEFINED__ */
  22957. #ifndef __ID3D12PageableTools_INTERFACE_DEFINED__
  22958. #define __ID3D12PageableTools_INTERFACE_DEFINED__
  22959. /* interface ID3D12PageableTools */
  22960. /* [unique][local][object][uuid] */
  22961. EXTERN_C const IID IID_ID3D12PageableTools;
  22962. #if defined(__cplusplus) && !defined(CINTERFACE)
  22963. MIDL_INTERFACE("8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d")
  22964. ID3D12PageableTools : public IUnknown
  22965. {
  22966. public:
  22967. virtual HRESULT STDMETHODCALLTYPE GetAllocation(
  22968. _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation) = 0;
  22969. };
  22970. #else /* C style interface */
  22971. typedef struct ID3D12PageableToolsVtbl
  22972. {
  22973. BEGIN_INTERFACE
  22974. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  22975. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  22976. ID3D12PageableTools * This,
  22977. REFIID riid,
  22978. _COM_Outptr_ void **ppvObject);
  22979. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  22980. ULONG ( STDMETHODCALLTYPE *AddRef )(
  22981. ID3D12PageableTools * This);
  22982. DECLSPEC_XFGVIRT(IUnknown, Release)
  22983. ULONG ( STDMETHODCALLTYPE *Release )(
  22984. ID3D12PageableTools * This);
  22985. DECLSPEC_XFGVIRT(ID3D12PageableTools, GetAllocation)
  22986. HRESULT ( STDMETHODCALLTYPE *GetAllocation )(
  22987. ID3D12PageableTools * This,
  22988. _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation);
  22989. END_INTERFACE
  22990. } ID3D12PageableToolsVtbl;
  22991. interface ID3D12PageableTools
  22992. {
  22993. CONST_VTBL struct ID3D12PageableToolsVtbl *lpVtbl;
  22994. };
  22995. #ifdef COBJMACROS
  22996. #define ID3D12PageableTools_QueryInterface(This,riid,ppvObject) \
  22997. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  22998. #define ID3D12PageableTools_AddRef(This) \
  22999. ( (This)->lpVtbl -> AddRef(This) )
  23000. #define ID3D12PageableTools_Release(This) \
  23001. ( (This)->lpVtbl -> Release(This) )
  23002. #define ID3D12PageableTools_GetAllocation(This,pAllocation) \
  23003. ( (This)->lpVtbl -> GetAllocation(This,pAllocation) )
  23004. #endif /* COBJMACROS */
  23005. #endif /* C style interface */
  23006. #endif /* __ID3D12PageableTools_INTERFACE_DEFINED__ */
  23007. #ifndef __ID3D12DeviceTools_INTERFACE_DEFINED__
  23008. #define __ID3D12DeviceTools_INTERFACE_DEFINED__
  23009. /* interface ID3D12DeviceTools */
  23010. /* [unique][local][object][uuid] */
  23011. EXTERN_C const IID IID_ID3D12DeviceTools;
  23012. #if defined(__cplusplus) && !defined(CINTERFACE)
  23013. MIDL_INTERFACE("2ea68e9c-19c3-4e47-a109-6cdadff0aca9")
  23014. ID3D12DeviceTools : public IUnknown
  23015. {
  23016. public:
  23017. virtual void STDMETHODCALLTYPE SetNextAllocationAddress(
  23018. _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress) = 0;
  23019. };
  23020. #else /* C style interface */
  23021. typedef struct ID3D12DeviceToolsVtbl
  23022. {
  23023. BEGIN_INTERFACE
  23024. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23025. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23026. ID3D12DeviceTools * This,
  23027. REFIID riid,
  23028. _COM_Outptr_ void **ppvObject);
  23029. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23030. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23031. ID3D12DeviceTools * This);
  23032. DECLSPEC_XFGVIRT(IUnknown, Release)
  23033. ULONG ( STDMETHODCALLTYPE *Release )(
  23034. ID3D12DeviceTools * This);
  23035. DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress)
  23036. void ( STDMETHODCALLTYPE *SetNextAllocationAddress )(
  23037. ID3D12DeviceTools * This,
  23038. _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress);
  23039. END_INTERFACE
  23040. } ID3D12DeviceToolsVtbl;
  23041. interface ID3D12DeviceTools
  23042. {
  23043. CONST_VTBL struct ID3D12DeviceToolsVtbl *lpVtbl;
  23044. };
  23045. #ifdef COBJMACROS
  23046. #define ID3D12DeviceTools_QueryInterface(This,riid,ppvObject) \
  23047. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23048. #define ID3D12DeviceTools_AddRef(This) \
  23049. ( (This)->lpVtbl -> AddRef(This) )
  23050. #define ID3D12DeviceTools_Release(This) \
  23051. ( (This)->lpVtbl -> Release(This) )
  23052. #define ID3D12DeviceTools_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \
  23053. ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) )
  23054. #endif /* COBJMACROS */
  23055. #endif /* C style interface */
  23056. #endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */
  23057. /* interface __MIDL_itf_d3d12_0000_0070 */
  23058. /* [local] */
  23059. typedef
  23060. enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS
  23061. {
  23062. D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_UNKNOWN = 1,
  23063. D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_USED = 2,
  23064. D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_IGNORED = 3,
  23065. D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_NOT_SPECIFIED = 4
  23066. } D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS;
  23067. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec;
  23068. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec;
  23069. #ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__
  23070. #define __ID3D12DeviceTools1_INTERFACE_DEFINED__
  23071. /* interface ID3D12DeviceTools1 */
  23072. /* [unique][local][object][uuid] */
  23073. EXTERN_C const IID IID_ID3D12DeviceTools1;
  23074. #if defined(__cplusplus) && !defined(CINTERFACE)
  23075. MIDL_INTERFACE("e30e9fc7-e641-4d6e-8a81-9dd9206ec47a")
  23076. ID3D12DeviceTools1 : public ID3D12DeviceTools
  23077. {
  23078. public:
  23079. virtual HRESULT STDMETHODCALLTYPE GetApplicationSpecificDriverState(
  23080. _COM_Outptr_ ID3DBlob **ppBlob) = 0;
  23081. virtual D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS STDMETHODCALLTYPE GetApplicationSpecificDriverBlobStatus( void) = 0;
  23082. };
  23083. #else /* C style interface */
  23084. typedef struct ID3D12DeviceTools1Vtbl
  23085. {
  23086. BEGIN_INTERFACE
  23087. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23088. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23089. ID3D12DeviceTools1 * This,
  23090. REFIID riid,
  23091. _COM_Outptr_ void **ppvObject);
  23092. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23093. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23094. ID3D12DeviceTools1 * This);
  23095. DECLSPEC_XFGVIRT(IUnknown, Release)
  23096. ULONG ( STDMETHODCALLTYPE *Release )(
  23097. ID3D12DeviceTools1 * This);
  23098. DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress)
  23099. void ( STDMETHODCALLTYPE *SetNextAllocationAddress )(
  23100. ID3D12DeviceTools1 * This,
  23101. _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress);
  23102. DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverState)
  23103. HRESULT ( STDMETHODCALLTYPE *GetApplicationSpecificDriverState )(
  23104. ID3D12DeviceTools1 * This,
  23105. _COM_Outptr_ ID3DBlob **ppBlob);
  23106. DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverBlobStatus)
  23107. D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS ( STDMETHODCALLTYPE *GetApplicationSpecificDriverBlobStatus )(
  23108. ID3D12DeviceTools1 * This);
  23109. END_INTERFACE
  23110. } ID3D12DeviceTools1Vtbl;
  23111. interface ID3D12DeviceTools1
  23112. {
  23113. CONST_VTBL struct ID3D12DeviceTools1Vtbl *lpVtbl;
  23114. };
  23115. #ifdef COBJMACROS
  23116. #define ID3D12DeviceTools1_QueryInterface(This,riid,ppvObject) \
  23117. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23118. #define ID3D12DeviceTools1_AddRef(This) \
  23119. ( (This)->lpVtbl -> AddRef(This) )
  23120. #define ID3D12DeviceTools1_Release(This) \
  23121. ( (This)->lpVtbl -> Release(This) )
  23122. #define ID3D12DeviceTools1_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \
  23123. ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) )
  23124. #define ID3D12DeviceTools1_GetApplicationSpecificDriverState(This,ppBlob) \
  23125. ( (This)->lpVtbl -> GetApplicationSpecificDriverState(This,ppBlob) )
  23126. #define ID3D12DeviceTools1_GetApplicationSpecificDriverBlobStatus(This) \
  23127. ( (This)->lpVtbl -> GetApplicationSpecificDriverBlobStatus(This) )
  23128. #endif /* COBJMACROS */
  23129. #endif /* C style interface */
  23130. #endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */
  23131. /* interface __MIDL_itf_d3d12_0000_0071 */
  23132. /* [local] */
  23133. typedef struct D3D12_SUBRESOURCE_DATA
  23134. {
  23135. const void *pData;
  23136. LONG_PTR RowPitch;
  23137. LONG_PTR SlicePitch;
  23138. } D3D12_SUBRESOURCE_DATA;
  23139. typedef struct D3D12_MEMCPY_DEST
  23140. {
  23141. void *pData;
  23142. SIZE_T RowPitch;
  23143. SIZE_T SlicePitch;
  23144. } D3D12_MEMCPY_DEST;
  23145. #if !defined( D3D12_IGNORE_SDK_LAYERS )
  23146. #include "d3d12sdklayers.h"
  23147. #endif
  23148. ///////////////////////////////////////////////////////////////////////////
  23149. // D3D12CreateDevice
  23150. // ------------------
  23151. //
  23152. // pAdapter
  23153. // If NULL, D3D12CreateDevice will choose the primary adapter.
  23154. // If non-NULL, D3D12CreateDevice will use the provided adapter.
  23155. // MinimumFeatureLevel
  23156. // The minimum feature level required for successful device creation.
  23157. // riid
  23158. // The interface IID of the device to be returned. Expected: ID3D12Device.
  23159. // ppDevice
  23160. // Pointer to returned interface. May be NULL.
  23161. //
  23162. // Return Values
  23163. // Any of those documented for
  23164. // CreateDXGIFactory1
  23165. // IDXGIFactory::EnumAdapters
  23166. // D3D12CreateDevice
  23167. //
  23168. ///////////////////////////////////////////////////////////////////////////
  23169. typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*,
  23170. D3D_FEATURE_LEVEL,
  23171. _In_ REFIID, _COM_Outptr_opt_ void** );
  23172. HRESULT WINAPI D3D12CreateDevice(
  23173. _In_opt_ IUnknown* pAdapter,
  23174. D3D_FEATURE_LEVEL MinimumFeatureLevel,
  23175. _In_ REFIID riid, // Expected: ID3D12Device
  23176. _COM_Outptr_opt_ void** ppDevice );
  23177. typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );
  23178. HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
  23179. // --------------------------------------------------------------------------------------------------------------------------------
  23180. // D3D12EnableExperimentalFeatures
  23181. //
  23182. // Pass in a list of feature GUIDs to be enabled together.
  23183. //
  23184. // If a particular feature requires some configuration information on enablement, it will have
  23185. // a configuration struct that can be passed alongside the GUID.
  23186. //
  23187. // Some features might use an interface IID as the GUID. For these, once the feature is enabled via
  23188. // D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface
  23189. // for manipulating the feature. This allows for control that might not cleanly be expressed by just
  23190. // the configuration struct that D3D12EnableExperimentalFeatures provides.
  23191. //
  23192. // If this method is called and a change to existing feature enablement is made,
  23193. // all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one
  23194. // singleton device for a process. Removing the devices when configuration changes prevents
  23195. // mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.
  23196. //
  23197. // The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.
  23198. // The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed
  23199. // in are known to be incompatible with each other, or other errors.
  23200. // Returns S_OK otherwise.
  23201. //
  23202. // --------------------------------------------------------------------------------------------------------------------------------
  23203. HRESULT WINAPI D3D12EnableExperimentalFeatures(
  23204. UINT NumFeatures,
  23205. _In_count_(NumFeatures) const IID* pIIDs,
  23206. _In_opt_count_(NumFeatures) void* pConfigurationStructs,
  23207. _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);
  23208. // --------------------------------------------------------------------------------------------------------------------------------
  23209. // Experimental Feature: D3D12ExperimentalShaderModels
  23210. //
  23211. // Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
  23212. // meaning shader models that haven't been finalized for use in retail.
  23213. //
  23214. // Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
  23215. //
  23216. // --------------------------------------------------------------------------------------------------------------------------------
  23217. static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
  23218. 0x76f5573e,
  23219. 0xf13a,
  23220. 0x40f5,
  23221. { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
  23222. };
  23223. // --------------------------------------------------------------------------------------------------------------------------------
  23224. // Experimental Feature: D3D12TiledResourceTier4
  23225. //
  23226. // Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,
  23227. // meaning texture tile data-inheritance is allowed.
  23228. //
  23229. // Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.
  23230. //
  23231. // --------------------------------------------------------------------------------------------------------------------------------
  23232. static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */
  23233. 0xc9c4725f,
  23234. 0xa81a,
  23235. 0x4f56,
  23236. { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }
  23237. };
  23238. // --------------------------------------------------------------------------------------------------------------------------------
  23239. // Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS
  23240. //
  23241. // Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS,
  23242. // driver support is still required for this feature.
  23243. //
  23244. // Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array.
  23245. //
  23246. // --------------------------------------------------------------------------------------------------------------------------------
  23247. static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */
  23248. 0x45dc51f3,
  23249. 0x767f,
  23250. 0x4588,
  23251. { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae }
  23252. };
  23253. // --------------------------------------------------------------------------------------------------------------------------------
  23254. // D3D12GetInterface
  23255. //
  23256. // Retrieve Global D3D12 Interface.
  23257. //
  23258. DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
  23259. DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
  23260. DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
  23261. DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
  23262. DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55);
  23263. DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28);
  23264. DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73);
  23265. typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );
  23266. HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
  23267. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec;
  23268. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec;
  23269. #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
  23270. #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
  23271. /* interface ID3D12SDKConfiguration */
  23272. /* [unique][local][object][uuid] */
  23273. EXTERN_C const IID IID_ID3D12SDKConfiguration;
  23274. #if defined(__cplusplus) && !defined(CINTERFACE)
  23275. MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
  23276. ID3D12SDKConfiguration : public IUnknown
  23277. {
  23278. public:
  23279. virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
  23280. UINT SDKVersion,
  23281. _In_z_ LPCSTR SDKPath) = 0;
  23282. };
  23283. #else /* C style interface */
  23284. typedef struct ID3D12SDKConfigurationVtbl
  23285. {
  23286. BEGIN_INTERFACE
  23287. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23288. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23289. ID3D12SDKConfiguration * This,
  23290. REFIID riid,
  23291. _COM_Outptr_ void **ppvObject);
  23292. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23293. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23294. ID3D12SDKConfiguration * This);
  23295. DECLSPEC_XFGVIRT(IUnknown, Release)
  23296. ULONG ( STDMETHODCALLTYPE *Release )(
  23297. ID3D12SDKConfiguration * This);
  23298. DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
  23299. HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
  23300. ID3D12SDKConfiguration * This,
  23301. UINT SDKVersion,
  23302. _In_z_ LPCSTR SDKPath);
  23303. END_INTERFACE
  23304. } ID3D12SDKConfigurationVtbl;
  23305. interface ID3D12SDKConfiguration
  23306. {
  23307. CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl;
  23308. };
  23309. #ifdef COBJMACROS
  23310. #define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \
  23311. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23312. #define ID3D12SDKConfiguration_AddRef(This) \
  23313. ( (This)->lpVtbl -> AddRef(This) )
  23314. #define ID3D12SDKConfiguration_Release(This) \
  23315. ( (This)->lpVtbl -> Release(This) )
  23316. #define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \
  23317. ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
  23318. #endif /* COBJMACROS */
  23319. #endif /* C style interface */
  23320. #endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
  23321. #ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
  23322. #define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
  23323. /* interface ID3D12SDKConfiguration1 */
  23324. /* [unique][local][object][uuid] */
  23325. EXTERN_C const IID IID_ID3D12SDKConfiguration1;
  23326. #if defined(__cplusplus) && !defined(CINTERFACE)
  23327. MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f")
  23328. ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration
  23329. {
  23330. public:
  23331. virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory(
  23332. UINT SDKVersion,
  23333. _In_ LPCSTR SDKPath,
  23334. REFIID riid,
  23335. _COM_Outptr_ void **ppvFactory) = 0;
  23336. virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0;
  23337. };
  23338. #else /* C style interface */
  23339. typedef struct ID3D12SDKConfiguration1Vtbl
  23340. {
  23341. BEGIN_INTERFACE
  23342. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23343. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23344. ID3D12SDKConfiguration1 * This,
  23345. REFIID riid,
  23346. _COM_Outptr_ void **ppvObject);
  23347. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23348. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23349. ID3D12SDKConfiguration1 * This);
  23350. DECLSPEC_XFGVIRT(IUnknown, Release)
  23351. ULONG ( STDMETHODCALLTYPE *Release )(
  23352. ID3D12SDKConfiguration1 * This);
  23353. DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
  23354. HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
  23355. ID3D12SDKConfiguration1 * This,
  23356. UINT SDKVersion,
  23357. _In_z_ LPCSTR SDKPath);
  23358. DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory)
  23359. HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )(
  23360. ID3D12SDKConfiguration1 * This,
  23361. UINT SDKVersion,
  23362. _In_ LPCSTR SDKPath,
  23363. REFIID riid,
  23364. _COM_Outptr_ void **ppvFactory);
  23365. DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs)
  23366. void ( STDMETHODCALLTYPE *FreeUnusedSDKs )(
  23367. ID3D12SDKConfiguration1 * This);
  23368. END_INTERFACE
  23369. } ID3D12SDKConfiguration1Vtbl;
  23370. interface ID3D12SDKConfiguration1
  23371. {
  23372. CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl;
  23373. };
  23374. #ifdef COBJMACROS
  23375. #define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \
  23376. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23377. #define ID3D12SDKConfiguration1_AddRef(This) \
  23378. ( (This)->lpVtbl -> AddRef(This) )
  23379. #define ID3D12SDKConfiguration1_Release(This) \
  23380. ( (This)->lpVtbl -> Release(This) )
  23381. #define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \
  23382. ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
  23383. #define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \
  23384. ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) )
  23385. #define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \
  23386. ( (This)->lpVtbl -> FreeUnusedSDKs(This) )
  23387. #endif /* COBJMACROS */
  23388. #endif /* C style interface */
  23389. #endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */
  23390. /* interface __MIDL_itf_d3d12_0000_0073 */
  23391. /* [local] */
  23392. typedef
  23393. enum D3D12_DEVICE_FACTORY_FLAGS
  23394. {
  23395. D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
  23396. D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
  23397. D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
  23398. D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4
  23399. } D3D12_DEVICE_FACTORY_FLAGS;
  23400. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS )
  23401. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec;
  23402. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec;
  23403. #ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__
  23404. #define __ID3D12DeviceFactory_INTERFACE_DEFINED__
  23405. /* interface ID3D12DeviceFactory */
  23406. /* [unique][local][object][uuid] */
  23407. EXTERN_C const IID IID_ID3D12DeviceFactory;
  23408. #if defined(__cplusplus) && !defined(CINTERFACE)
  23409. MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb")
  23410. ID3D12DeviceFactory : public IUnknown
  23411. {
  23412. public:
  23413. virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0;
  23414. virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0;
  23415. virtual HRESULT STDMETHODCALLTYPE SetFlags(
  23416. D3D12_DEVICE_FACTORY_FLAGS flags) = 0;
  23417. virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0;
  23418. virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface(
  23419. REFCLSID clsid,
  23420. REFIID iid,
  23421. _COM_Outptr_ void **ppv) = 0;
  23422. virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures(
  23423. UINT NumFeatures,
  23424. _In_reads_(NumFeatures) const IID *pIIDs,
  23425. _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
  23426. _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0;
  23427. virtual HRESULT STDMETHODCALLTYPE CreateDevice(
  23428. _In_opt_ IUnknown *adapter,
  23429. D3D_FEATURE_LEVEL FeatureLevel,
  23430. REFIID riid,
  23431. _COM_Outptr_opt_ void **ppvDevice) = 0;
  23432. };
  23433. #else /* C style interface */
  23434. typedef struct ID3D12DeviceFactoryVtbl
  23435. {
  23436. BEGIN_INTERFACE
  23437. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23438. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23439. ID3D12DeviceFactory * This,
  23440. REFIID riid,
  23441. _COM_Outptr_ void **ppvObject);
  23442. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23443. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23444. ID3D12DeviceFactory * This);
  23445. DECLSPEC_XFGVIRT(IUnknown, Release)
  23446. ULONG ( STDMETHODCALLTYPE *Release )(
  23447. ID3D12DeviceFactory * This);
  23448. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState)
  23449. HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )(
  23450. ID3D12DeviceFactory * This);
  23451. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState)
  23452. HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )(
  23453. ID3D12DeviceFactory * This);
  23454. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags)
  23455. HRESULT ( STDMETHODCALLTYPE *SetFlags )(
  23456. ID3D12DeviceFactory * This,
  23457. D3D12_DEVICE_FACTORY_FLAGS flags);
  23458. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags)
  23459. D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )(
  23460. ID3D12DeviceFactory * This);
  23461. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface)
  23462. HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )(
  23463. ID3D12DeviceFactory * This,
  23464. REFCLSID clsid,
  23465. REFIID iid,
  23466. _COM_Outptr_ void **ppv);
  23467. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures)
  23468. HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )(
  23469. ID3D12DeviceFactory * This,
  23470. UINT NumFeatures,
  23471. _In_reads_(NumFeatures) const IID *pIIDs,
  23472. _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
  23473. _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes);
  23474. DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice)
  23475. HRESULT ( STDMETHODCALLTYPE *CreateDevice )(
  23476. ID3D12DeviceFactory * This,
  23477. _In_opt_ IUnknown *adapter,
  23478. D3D_FEATURE_LEVEL FeatureLevel,
  23479. REFIID riid,
  23480. _COM_Outptr_opt_ void **ppvDevice);
  23481. END_INTERFACE
  23482. } ID3D12DeviceFactoryVtbl;
  23483. interface ID3D12DeviceFactory
  23484. {
  23485. CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl;
  23486. };
  23487. #ifdef COBJMACROS
  23488. #define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \
  23489. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23490. #define ID3D12DeviceFactory_AddRef(This) \
  23491. ( (This)->lpVtbl -> AddRef(This) )
  23492. #define ID3D12DeviceFactory_Release(This) \
  23493. ( (This)->lpVtbl -> Release(This) )
  23494. #define ID3D12DeviceFactory_InitializeFromGlobalState(This) \
  23495. ( (This)->lpVtbl -> InitializeFromGlobalState(This) )
  23496. #define ID3D12DeviceFactory_ApplyToGlobalState(This) \
  23497. ( (This)->lpVtbl -> ApplyToGlobalState(This) )
  23498. #define ID3D12DeviceFactory_SetFlags(This,flags) \
  23499. ( (This)->lpVtbl -> SetFlags(This,flags) )
  23500. #define ID3D12DeviceFactory_GetFlags(This) \
  23501. ( (This)->lpVtbl -> GetFlags(This) )
  23502. #define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \
  23503. ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) )
  23504. #define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \
  23505. ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) )
  23506. #define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \
  23507. ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) )
  23508. #endif /* COBJMACROS */
  23509. #endif /* C style interface */
  23510. #endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */
  23511. /* interface __MIDL_itf_d3d12_0000_0074 */
  23512. /* [local] */
  23513. typedef
  23514. enum D3D12_DEVICE_FLAGS
  23515. {
  23516. D3D12_DEVICE_FLAG_NONE = 0,
  23517. D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
  23518. D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
  23519. D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
  23520. D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
  23521. D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
  23522. D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
  23523. D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
  23524. D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
  23525. D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
  23526. D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
  23527. D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400
  23528. } D3D12_DEVICE_FLAGS;
  23529. DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS )
  23530. typedef struct D3D12_DEVICE_CONFIGURATION_DESC
  23531. {
  23532. D3D12_DEVICE_FLAGS Flags;
  23533. UINT GpuBasedValidationFlags;
  23534. UINT SDKVersion;
  23535. UINT NumEnabledExperimentalFeatures;
  23536. } D3D12_DEVICE_CONFIGURATION_DESC;
  23537. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec;
  23538. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec;
  23539. #ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
  23540. #define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
  23541. /* interface ID3D12DeviceConfiguration */
  23542. /* [unique][local][object][uuid] */
  23543. EXTERN_C const IID IID_ID3D12DeviceConfiguration;
  23544. #if defined(__cplusplus) && !defined(CINTERFACE)
  23545. MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad")
  23546. ID3D12DeviceConfiguration : public IUnknown
  23547. {
  23548. public:
  23549. #if BX_COMPILER_MSVC || (BX_COMPILER_CLANG && defined(_MSC_VER) )
  23550. virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
  23551. #else
  23552. virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc(
  23553. D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0;
  23554. #endif
  23555. virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures(
  23556. _Out_writes_(NumGuids) GUID *pGuids,
  23557. UINT NumGuids) = 0;
  23558. virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature(
  23559. _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
  23560. _COM_Outptr_ ID3DBlob **ppResult,
  23561. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0;
  23562. virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer(
  23563. _In_reads_bytes_(Size) const void *pBlob,
  23564. SIZE_T Size,
  23565. REFIID riid,
  23566. _COM_Outptr_ void **ppvDeserializer) = 0;
  23567. };
  23568. #else /* C style interface */
  23569. typedef struct ID3D12DeviceConfigurationVtbl
  23570. {
  23571. BEGIN_INTERFACE
  23572. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23573. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23574. ID3D12DeviceConfiguration * This,
  23575. REFIID riid,
  23576. _COM_Outptr_ void **ppvObject);
  23577. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23578. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23579. ID3D12DeviceConfiguration * This);
  23580. DECLSPEC_XFGVIRT(IUnknown, Release)
  23581. ULONG ( STDMETHODCALLTYPE *Release )(
  23582. ID3D12DeviceConfiguration * This);
  23583. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
  23584. #if !defined(_WIN32)
  23585. D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
  23586. ID3D12DeviceConfiguration * This);
  23587. #else
  23588. D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
  23589. ID3D12DeviceConfiguration * This,
  23590. D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
  23591. #endif
  23592. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
  23593. HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
  23594. ID3D12DeviceConfiguration * This,
  23595. _Out_writes_(NumGuids) GUID *pGuids,
  23596. UINT NumGuids);
  23597. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
  23598. HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
  23599. ID3D12DeviceConfiguration * This,
  23600. _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
  23601. _COM_Outptr_ ID3DBlob **ppResult,
  23602. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
  23603. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
  23604. HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
  23605. ID3D12DeviceConfiguration * This,
  23606. _In_reads_bytes_(Size) const void *pBlob,
  23607. SIZE_T Size,
  23608. REFIID riid,
  23609. _COM_Outptr_ void **ppvDeserializer);
  23610. END_INTERFACE
  23611. } ID3D12DeviceConfigurationVtbl;
  23612. interface ID3D12DeviceConfiguration
  23613. {
  23614. CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl;
  23615. };
  23616. #ifdef COBJMACROS
  23617. #define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \
  23618. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23619. #define ID3D12DeviceConfiguration_AddRef(This) \
  23620. ( (This)->lpVtbl -> AddRef(This) )
  23621. #define ID3D12DeviceConfiguration_Release(This) \
  23622. ( (This)->lpVtbl -> Release(This) )
  23623. #if !defined(_WIN32)
  23624. #define ID3D12DeviceConfiguration_GetDesc(This) \
  23625. ( (This)->lpVtbl -> GetDesc(This) )
  23626. #else
  23627. #define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \
  23628. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  23629. #endif
  23630. #define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
  23631. ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
  23632. #define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
  23633. ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
  23634. #define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
  23635. ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
  23636. #endif /* COBJMACROS */
  23637. #endif /* C style interface */
  23638. #endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */
  23639. #ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
  23640. #define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
  23641. /* interface ID3D12DeviceConfiguration1 */
  23642. /* [unique][local][object][uuid] */
  23643. EXTERN_C const IID IID_ID3D12DeviceConfiguration1;
  23644. #if defined(__cplusplus) && !defined(CINTERFACE)
  23645. MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56")
  23646. ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration
  23647. {
  23648. public:
  23649. virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
  23650. _In_reads_bytes_(Size) const void *pLibraryBlob,
  23651. SIZE_T Size,
  23652. LPCWSTR RootSignatureSubobjectName,
  23653. REFIID riid,
  23654. _COM_Outptr_ void **ppvDeserializer) = 0;
  23655. };
  23656. #else /* C style interface */
  23657. typedef struct ID3D12DeviceConfiguration1Vtbl
  23658. {
  23659. BEGIN_INTERFACE
  23660. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23661. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23662. ID3D12DeviceConfiguration1 * This,
  23663. REFIID riid,
  23664. _COM_Outptr_ void **ppvObject);
  23665. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23666. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23667. ID3D12DeviceConfiguration1 * This);
  23668. DECLSPEC_XFGVIRT(IUnknown, Release)
  23669. ULONG ( STDMETHODCALLTYPE *Release )(
  23670. ID3D12DeviceConfiguration1 * This);
  23671. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
  23672. #if !defined(_WIN32)
  23673. D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
  23674. ID3D12DeviceConfiguration1 * This);
  23675. #else
  23676. D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
  23677. ID3D12DeviceConfiguration1 * This,
  23678. D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
  23679. #endif
  23680. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
  23681. HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
  23682. ID3D12DeviceConfiguration1 * This,
  23683. _Out_writes_(NumGuids) GUID *pGuids,
  23684. UINT NumGuids);
  23685. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
  23686. HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
  23687. ID3D12DeviceConfiguration1 * This,
  23688. _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
  23689. _COM_Outptr_ ID3DBlob **ppResult,
  23690. _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
  23691. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
  23692. HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
  23693. ID3D12DeviceConfiguration1 * This,
  23694. _In_reads_bytes_(Size) const void *pBlob,
  23695. SIZE_T Size,
  23696. REFIID riid,
  23697. _COM_Outptr_ void **ppvDeserializer);
  23698. DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary)
  23699. HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )(
  23700. ID3D12DeviceConfiguration1 * This,
  23701. _In_reads_bytes_(Size) const void *pLibraryBlob,
  23702. SIZE_T Size,
  23703. LPCWSTR RootSignatureSubobjectName,
  23704. REFIID riid,
  23705. _COM_Outptr_ void **ppvDeserializer);
  23706. END_INTERFACE
  23707. } ID3D12DeviceConfiguration1Vtbl;
  23708. interface ID3D12DeviceConfiguration1
  23709. {
  23710. CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl;
  23711. };
  23712. #ifdef COBJMACROS
  23713. #define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \
  23714. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23715. #define ID3D12DeviceConfiguration1_AddRef(This) \
  23716. ( (This)->lpVtbl -> AddRef(This) )
  23717. #define ID3D12DeviceConfiguration1_Release(This) \
  23718. ( (This)->lpVtbl -> Release(This) )
  23719. #if !defined(_WIN32)
  23720. #define ID3D12DeviceConfiguration1_GetDesc(This) \
  23721. ( (This)->lpVtbl -> GetDesc(This) )
  23722. #else
  23723. #define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \
  23724. ( (This)->lpVtbl -> GetDesc(This,RetVal) )
  23725. #endif
  23726. #define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
  23727. ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
  23728. #define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
  23729. ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
  23730. #define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
  23731. ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
  23732. #define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \
  23733. ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) )
  23734. #endif /* COBJMACROS */
  23735. #endif /* C style interface */
  23736. #endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */
  23737. /* interface __MIDL_itf_d3d12_0000_0076 */
  23738. /* [local] */
  23739. typedef
  23740. enum D3D12_STATE_OBJECT_DATABASE_FLAGS
  23741. {
  23742. D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0,
  23743. D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1
  23744. } D3D12_STATE_OBJECT_DATABASE_FLAGS;
  23745. DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS )
  23746. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_c_ifspec;
  23747. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_s_ifspec;
  23748. #ifndef __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__
  23749. #define __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__
  23750. /* interface ID3D12StateObjectDatabaseFactory */
  23751. /* [unique][local][object][uuid] */
  23752. EXTERN_C const IID IID_ID3D12StateObjectDatabaseFactory;
  23753. #if defined(__cplusplus) && !defined(CINTERFACE)
  23754. MIDL_INTERFACE("f5b066f0-648a-4611-bd41-27fd0948b9eb")
  23755. ID3D12StateObjectDatabaseFactory : public IUnknown
  23756. {
  23757. public:
  23758. virtual HRESULT STDMETHODCALLTYPE CreateStateObjectDatabaseFromFile(
  23759. LPCWSTR pDatabaseFile,
  23760. D3D12_STATE_OBJECT_DATABASE_FLAGS flags,
  23761. REFIID riid,
  23762. _COM_Outptr_ void **ppvStateObjectDatabase) = 0;
  23763. };
  23764. #else /* C style interface */
  23765. typedef struct ID3D12StateObjectDatabaseFactoryVtbl
  23766. {
  23767. BEGIN_INTERFACE
  23768. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23769. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23770. ID3D12StateObjectDatabaseFactory * This,
  23771. REFIID riid,
  23772. _COM_Outptr_ void **ppvObject);
  23773. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23774. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23775. ID3D12StateObjectDatabaseFactory * This);
  23776. DECLSPEC_XFGVIRT(IUnknown, Release)
  23777. ULONG ( STDMETHODCALLTYPE *Release )(
  23778. ID3D12StateObjectDatabaseFactory * This);
  23779. DECLSPEC_XFGVIRT(ID3D12StateObjectDatabaseFactory, CreateStateObjectDatabaseFromFile)
  23780. HRESULT ( STDMETHODCALLTYPE *CreateStateObjectDatabaseFromFile )(
  23781. ID3D12StateObjectDatabaseFactory * This,
  23782. LPCWSTR pDatabaseFile,
  23783. D3D12_STATE_OBJECT_DATABASE_FLAGS flags,
  23784. REFIID riid,
  23785. _COM_Outptr_ void **ppvStateObjectDatabase);
  23786. END_INTERFACE
  23787. } ID3D12StateObjectDatabaseFactoryVtbl;
  23788. interface ID3D12StateObjectDatabaseFactory
  23789. {
  23790. CONST_VTBL struct ID3D12StateObjectDatabaseFactoryVtbl *lpVtbl;
  23791. };
  23792. #ifdef COBJMACROS
  23793. #define ID3D12StateObjectDatabaseFactory_QueryInterface(This,riid,ppvObject) \
  23794. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  23795. #define ID3D12StateObjectDatabaseFactory_AddRef(This) \
  23796. ( (This)->lpVtbl -> AddRef(This) )
  23797. #define ID3D12StateObjectDatabaseFactory_Release(This) \
  23798. ( (This)->lpVtbl -> Release(This) )
  23799. #define ID3D12StateObjectDatabaseFactory_CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) \
  23800. ( (This)->lpVtbl -> CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) )
  23801. #endif /* COBJMACROS */
  23802. #endif /* C style interface */
  23803. #endif /* __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ */
  23804. /* interface __MIDL_itf_d3d12_0000_0077 */
  23805. /* [local] */
  23806. typedef
  23807. enum D3D12_AXIS_SHADING_RATE
  23808. {
  23809. D3D12_AXIS_SHADING_RATE_1X = 0,
  23810. D3D12_AXIS_SHADING_RATE_2X = 0x1,
  23811. D3D12_AXIS_SHADING_RATE_4X = 0x2
  23812. } D3D12_AXIS_SHADING_RATE;
  23813. #define D3D12_SHADING_RATE_X_AXIS_SHIFT 2
  23814. #define D3D12_SHADING_RATE_VALID_MASK 3
  23815. #define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
  23816. #define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
  23817. #define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)
  23818. typedef
  23819. enum D3D12_SHADING_RATE
  23820. {
  23821. D3D12_SHADING_RATE_1X1 = 0,
  23822. D3D12_SHADING_RATE_1X2 = 0x1,
  23823. D3D12_SHADING_RATE_2X1 = 0x4,
  23824. D3D12_SHADING_RATE_2X2 = 0x5,
  23825. D3D12_SHADING_RATE_2X4 = 0x6,
  23826. D3D12_SHADING_RATE_4X2 = 0x9,
  23827. D3D12_SHADING_RATE_4X4 = 0xa
  23828. } D3D12_SHADING_RATE;
  23829. typedef
  23830. enum D3D12_SHADING_RATE_COMBINER
  23831. {
  23832. D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0,
  23833. D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1,
  23834. D3D12_SHADING_RATE_COMBINER_MIN = 2,
  23835. D3D12_SHADING_RATE_COMBINER_MAX = 3,
  23836. D3D12_SHADING_RATE_COMBINER_SUM = 4
  23837. } D3D12_SHADING_RATE_COMBINER;
  23838. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_c_ifspec;
  23839. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_s_ifspec;
  23840. #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
  23841. #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
  23842. /* interface ID3D12GraphicsCommandList5 */
  23843. /* [unique][local][object][uuid] */
  23844. EXTERN_C const IID IID_ID3D12GraphicsCommandList5;
  23845. #if defined(__cplusplus) && !defined(CINTERFACE)
  23846. MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
  23847. ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
  23848. {
  23849. public:
  23850. virtual void STDMETHODCALLTYPE RSSetShadingRate(
  23851. _In_ D3D12_SHADING_RATE baseShadingRate,
  23852. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
  23853. virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
  23854. _In_opt_ ID3D12Resource *shadingRateImage) = 0;
  23855. };
  23856. #else /* C style interface */
  23857. typedef struct ID3D12GraphicsCommandList5Vtbl
  23858. {
  23859. BEGIN_INTERFACE
  23860. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  23861. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  23862. ID3D12GraphicsCommandList5 * This,
  23863. REFIID riid,
  23864. _COM_Outptr_ void **ppvObject);
  23865. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  23866. ULONG ( STDMETHODCALLTYPE *AddRef )(
  23867. ID3D12GraphicsCommandList5 * This);
  23868. DECLSPEC_XFGVIRT(IUnknown, Release)
  23869. ULONG ( STDMETHODCALLTYPE *Release )(
  23870. ID3D12GraphicsCommandList5 * This);
  23871. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  23872. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  23873. ID3D12GraphicsCommandList5 * This,
  23874. _In_ REFGUID guid,
  23875. _Inout_ UINT *pDataSize,
  23876. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  23877. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  23878. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  23879. ID3D12GraphicsCommandList5 * This,
  23880. _In_ REFGUID guid,
  23881. _In_ UINT DataSize,
  23882. _In_reads_bytes_opt_( DataSize ) const void *pData);
  23883. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  23884. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  23885. ID3D12GraphicsCommandList5 * This,
  23886. _In_ REFGUID guid,
  23887. _In_opt_ const IUnknown *pData);
  23888. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  23889. HRESULT ( STDMETHODCALLTYPE *SetName )(
  23890. ID3D12GraphicsCommandList5 * This,
  23891. _In_z_ LPCWSTR Name);
  23892. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  23893. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  23894. ID3D12GraphicsCommandList5 * This,
  23895. REFIID riid,
  23896. _COM_Outptr_opt_ void **ppvDevice);
  23897. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  23898. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  23899. ID3D12GraphicsCommandList5 * This);
  23900. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  23901. HRESULT ( STDMETHODCALLTYPE *Close )(
  23902. ID3D12GraphicsCommandList5 * This);
  23903. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  23904. HRESULT ( STDMETHODCALLTYPE *Reset )(
  23905. ID3D12GraphicsCommandList5 * This,
  23906. _In_ ID3D12CommandAllocator *pAllocator,
  23907. _In_opt_ ID3D12PipelineState *pInitialState);
  23908. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  23909. void ( STDMETHODCALLTYPE *ClearState )(
  23910. ID3D12GraphicsCommandList5 * This,
  23911. _In_opt_ ID3D12PipelineState *pPipelineState);
  23912. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  23913. void ( STDMETHODCALLTYPE *DrawInstanced )(
  23914. ID3D12GraphicsCommandList5 * This,
  23915. _In_ UINT VertexCountPerInstance,
  23916. _In_ UINT InstanceCount,
  23917. _In_ UINT StartVertexLocation,
  23918. _In_ UINT StartInstanceLocation);
  23919. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  23920. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  23921. ID3D12GraphicsCommandList5 * This,
  23922. _In_ UINT IndexCountPerInstance,
  23923. _In_ UINT InstanceCount,
  23924. _In_ UINT StartIndexLocation,
  23925. _In_ INT BaseVertexLocation,
  23926. _In_ UINT StartInstanceLocation);
  23927. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  23928. void ( STDMETHODCALLTYPE *Dispatch )(
  23929. ID3D12GraphicsCommandList5 * This,
  23930. _In_ UINT ThreadGroupCountX,
  23931. _In_ UINT ThreadGroupCountY,
  23932. _In_ UINT ThreadGroupCountZ);
  23933. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  23934. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  23935. ID3D12GraphicsCommandList5 * This,
  23936. _In_ ID3D12Resource *pDstBuffer,
  23937. UINT64 DstOffset,
  23938. _In_ ID3D12Resource *pSrcBuffer,
  23939. UINT64 SrcOffset,
  23940. UINT64 NumBytes);
  23941. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  23942. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  23943. ID3D12GraphicsCommandList5 * This,
  23944. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  23945. UINT DstX,
  23946. UINT DstY,
  23947. UINT DstZ,
  23948. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  23949. _In_opt_ const D3D12_BOX *pSrcBox);
  23950. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  23951. void ( STDMETHODCALLTYPE *CopyResource )(
  23952. ID3D12GraphicsCommandList5 * This,
  23953. _In_ ID3D12Resource *pDstResource,
  23954. _In_ ID3D12Resource *pSrcResource);
  23955. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  23956. void ( STDMETHODCALLTYPE *CopyTiles )(
  23957. ID3D12GraphicsCommandList5 * This,
  23958. _In_ ID3D12Resource *pTiledResource,
  23959. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  23960. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  23961. _In_ ID3D12Resource *pBuffer,
  23962. UINT64 BufferStartOffsetInBytes,
  23963. D3D12_TILE_COPY_FLAGS Flags);
  23964. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  23965. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  23966. ID3D12GraphicsCommandList5 * This,
  23967. _In_ ID3D12Resource *pDstResource,
  23968. _In_ UINT DstSubresource,
  23969. _In_ ID3D12Resource *pSrcResource,
  23970. _In_ UINT SrcSubresource,
  23971. _In_ DXGI_FORMAT Format);
  23972. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  23973. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  23974. ID3D12GraphicsCommandList5 * This,
  23975. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  23976. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  23977. void ( STDMETHODCALLTYPE *RSSetViewports )(
  23978. ID3D12GraphicsCommandList5 * This,
  23979. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  23980. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  23981. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  23982. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  23983. ID3D12GraphicsCommandList5 * This,
  23984. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  23985. _In_reads_( NumRects) const D3D12_RECT *pRects);
  23986. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  23987. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  23988. ID3D12GraphicsCommandList5 * This,
  23989. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  23990. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  23991. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  23992. ID3D12GraphicsCommandList5 * This,
  23993. _In_ UINT StencilRef);
  23994. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  23995. void ( STDMETHODCALLTYPE *SetPipelineState )(
  23996. ID3D12GraphicsCommandList5 * This,
  23997. _In_ ID3D12PipelineState *pPipelineState);
  23998. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  23999. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  24000. ID3D12GraphicsCommandList5 * This,
  24001. _In_ UINT NumBarriers,
  24002. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  24003. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  24004. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  24005. ID3D12GraphicsCommandList5 * This,
  24006. _In_ ID3D12GraphicsCommandList *pCommandList);
  24007. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  24008. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  24009. ID3D12GraphicsCommandList5 * This,
  24010. _In_ UINT NumDescriptorHeaps,
  24011. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  24012. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  24013. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  24014. ID3D12GraphicsCommandList5 * This,
  24015. _In_opt_ ID3D12RootSignature *pRootSignature);
  24016. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  24017. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  24018. ID3D12GraphicsCommandList5 * This,
  24019. _In_opt_ ID3D12RootSignature *pRootSignature);
  24020. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  24021. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  24022. ID3D12GraphicsCommandList5 * This,
  24023. _In_ UINT RootParameterIndex,
  24024. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  24025. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  24026. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  24027. ID3D12GraphicsCommandList5 * This,
  24028. _In_ UINT RootParameterIndex,
  24029. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  24030. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  24031. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  24032. ID3D12GraphicsCommandList5 * This,
  24033. _In_ UINT RootParameterIndex,
  24034. _In_ UINT SrcData,
  24035. _In_ UINT DestOffsetIn32BitValues);
  24036. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  24037. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  24038. ID3D12GraphicsCommandList5 * This,
  24039. _In_ UINT RootParameterIndex,
  24040. _In_ UINT SrcData,
  24041. _In_ UINT DestOffsetIn32BitValues);
  24042. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  24043. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  24044. ID3D12GraphicsCommandList5 * This,
  24045. _In_ UINT RootParameterIndex,
  24046. _In_ UINT Num32BitValuesToSet,
  24047. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  24048. _In_ UINT DestOffsetIn32BitValues);
  24049. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  24050. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  24051. ID3D12GraphicsCommandList5 * This,
  24052. _In_ UINT RootParameterIndex,
  24053. _In_ UINT Num32BitValuesToSet,
  24054. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  24055. _In_ UINT DestOffsetIn32BitValues);
  24056. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  24057. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  24058. ID3D12GraphicsCommandList5 * This,
  24059. _In_ UINT RootParameterIndex,
  24060. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24061. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  24062. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  24063. ID3D12GraphicsCommandList5 * This,
  24064. _In_ UINT RootParameterIndex,
  24065. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24066. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  24067. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  24068. ID3D12GraphicsCommandList5 * This,
  24069. _In_ UINT RootParameterIndex,
  24070. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24071. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  24072. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  24073. ID3D12GraphicsCommandList5 * This,
  24074. _In_ UINT RootParameterIndex,
  24075. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24076. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  24077. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  24078. ID3D12GraphicsCommandList5 * This,
  24079. _In_ UINT RootParameterIndex,
  24080. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24081. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  24082. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  24083. ID3D12GraphicsCommandList5 * This,
  24084. _In_ UINT RootParameterIndex,
  24085. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24086. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  24087. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  24088. ID3D12GraphicsCommandList5 * This,
  24089. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  24090. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  24091. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  24092. ID3D12GraphicsCommandList5 * This,
  24093. _In_ UINT StartSlot,
  24094. _In_ UINT NumViews,
  24095. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  24096. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  24097. void ( STDMETHODCALLTYPE *SOSetTargets )(
  24098. ID3D12GraphicsCommandList5 * This,
  24099. _In_ UINT StartSlot,
  24100. _In_ UINT NumViews,
  24101. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  24102. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  24103. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  24104. ID3D12GraphicsCommandList5 * This,
  24105. _In_ UINT NumRenderTargetDescriptors,
  24106. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  24107. _In_ BOOL RTsSingleHandleToDescriptorRange,
  24108. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  24109. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  24110. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  24111. ID3D12GraphicsCommandList5 * This,
  24112. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  24113. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  24114. _In_ FLOAT Depth,
  24115. _In_ UINT8 Stencil,
  24116. _In_ UINT NumRects,
  24117. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24118. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  24119. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  24120. ID3D12GraphicsCommandList5 * This,
  24121. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  24122. _In_ const FLOAT ColorRGBA[ 4 ],
  24123. _In_ UINT NumRects,
  24124. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24125. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  24126. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  24127. ID3D12GraphicsCommandList5 * This,
  24128. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  24129. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  24130. _In_ ID3D12Resource *pResource,
  24131. _In_ const UINT Values[ 4 ],
  24132. _In_ UINT NumRects,
  24133. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24134. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  24135. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  24136. ID3D12GraphicsCommandList5 * This,
  24137. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  24138. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  24139. _In_ ID3D12Resource *pResource,
  24140. _In_ const FLOAT Values[ 4 ],
  24141. _In_ UINT NumRects,
  24142. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24143. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  24144. void ( STDMETHODCALLTYPE *DiscardResource )(
  24145. ID3D12GraphicsCommandList5 * This,
  24146. _In_ ID3D12Resource *pResource,
  24147. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  24148. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  24149. void ( STDMETHODCALLTYPE *BeginQuery )(
  24150. ID3D12GraphicsCommandList5 * This,
  24151. _In_ ID3D12QueryHeap *pQueryHeap,
  24152. _In_ D3D12_QUERY_TYPE Type,
  24153. _In_ UINT Index);
  24154. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  24155. void ( STDMETHODCALLTYPE *EndQuery )(
  24156. ID3D12GraphicsCommandList5 * This,
  24157. _In_ ID3D12QueryHeap *pQueryHeap,
  24158. _In_ D3D12_QUERY_TYPE Type,
  24159. _In_ UINT Index);
  24160. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  24161. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  24162. ID3D12GraphicsCommandList5 * This,
  24163. _In_ ID3D12QueryHeap *pQueryHeap,
  24164. _In_ D3D12_QUERY_TYPE Type,
  24165. _In_ UINT StartIndex,
  24166. _In_ UINT NumQueries,
  24167. _In_ ID3D12Resource *pDestinationBuffer,
  24168. _In_ UINT64 AlignedDestinationBufferOffset);
  24169. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  24170. void ( STDMETHODCALLTYPE *SetPredication )(
  24171. ID3D12GraphicsCommandList5 * This,
  24172. _In_opt_ ID3D12Resource *pBuffer,
  24173. _In_ UINT64 AlignedBufferOffset,
  24174. _In_ D3D12_PREDICATION_OP Operation);
  24175. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  24176. void ( STDMETHODCALLTYPE *SetMarker )(
  24177. ID3D12GraphicsCommandList5 * This,
  24178. UINT Metadata,
  24179. _In_reads_bytes_opt_(Size) const void *pData,
  24180. UINT Size);
  24181. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  24182. void ( STDMETHODCALLTYPE *BeginEvent )(
  24183. ID3D12GraphicsCommandList5 * This,
  24184. UINT Metadata,
  24185. _In_reads_bytes_opt_(Size) const void *pData,
  24186. UINT Size);
  24187. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  24188. void ( STDMETHODCALLTYPE *EndEvent )(
  24189. ID3D12GraphicsCommandList5 * This);
  24190. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  24191. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  24192. ID3D12GraphicsCommandList5 * This,
  24193. _In_ ID3D12CommandSignature *pCommandSignature,
  24194. _In_ UINT MaxCommandCount,
  24195. _In_ ID3D12Resource *pArgumentBuffer,
  24196. _In_ UINT64 ArgumentBufferOffset,
  24197. _In_opt_ ID3D12Resource *pCountBuffer,
  24198. _In_ UINT64 CountBufferOffset);
  24199. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  24200. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  24201. ID3D12GraphicsCommandList5 * This,
  24202. _In_ ID3D12Resource *pDstBuffer,
  24203. UINT64 DstOffset,
  24204. _In_ ID3D12Resource *pSrcBuffer,
  24205. UINT64 SrcOffset,
  24206. UINT Dependencies,
  24207. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  24208. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  24209. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  24210. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  24211. ID3D12GraphicsCommandList5 * This,
  24212. _In_ ID3D12Resource *pDstBuffer,
  24213. UINT64 DstOffset,
  24214. _In_ ID3D12Resource *pSrcBuffer,
  24215. UINT64 SrcOffset,
  24216. UINT Dependencies,
  24217. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  24218. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  24219. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  24220. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  24221. ID3D12GraphicsCommandList5 * This,
  24222. _In_ FLOAT Min,
  24223. _In_ FLOAT Max);
  24224. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  24225. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  24226. ID3D12GraphicsCommandList5 * This,
  24227. _In_ UINT NumSamplesPerPixel,
  24228. _In_ UINT NumPixels,
  24229. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  24230. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  24231. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  24232. ID3D12GraphicsCommandList5 * This,
  24233. _In_ ID3D12Resource *pDstResource,
  24234. _In_ UINT DstSubresource,
  24235. _In_ UINT DstX,
  24236. _In_ UINT DstY,
  24237. _In_ ID3D12Resource *pSrcResource,
  24238. _In_ UINT SrcSubresource,
  24239. _In_opt_ D3D12_RECT *pSrcRect,
  24240. _In_ DXGI_FORMAT Format,
  24241. _In_ D3D12_RESOLVE_MODE ResolveMode);
  24242. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  24243. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  24244. ID3D12GraphicsCommandList5 * This,
  24245. _In_ UINT Mask);
  24246. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  24247. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  24248. ID3D12GraphicsCommandList5 * This,
  24249. UINT Count,
  24250. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  24251. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  24252. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  24253. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  24254. ID3D12GraphicsCommandList5 * This,
  24255. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  24256. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  24257. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  24258. ID3D12GraphicsCommandList5 * This,
  24259. _In_ UINT NumRenderTargets,
  24260. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  24261. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  24262. D3D12_RENDER_PASS_FLAGS Flags);
  24263. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  24264. void ( STDMETHODCALLTYPE *EndRenderPass )(
  24265. ID3D12GraphicsCommandList5 * This);
  24266. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  24267. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  24268. ID3D12GraphicsCommandList5 * This,
  24269. _In_ ID3D12MetaCommand *pMetaCommand,
  24270. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  24271. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  24272. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  24273. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  24274. ID3D12GraphicsCommandList5 * This,
  24275. _In_ ID3D12MetaCommand *pMetaCommand,
  24276. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  24277. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  24278. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  24279. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  24280. ID3D12GraphicsCommandList5 * This,
  24281. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  24282. _In_ UINT NumPostbuildInfoDescs,
  24283. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  24284. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  24285. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  24286. ID3D12GraphicsCommandList5 * This,
  24287. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  24288. _In_ UINT NumSourceAccelerationStructures,
  24289. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  24290. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  24291. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  24292. ID3D12GraphicsCommandList5 * This,
  24293. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  24294. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  24295. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  24296. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  24297. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  24298. ID3D12GraphicsCommandList5 * This,
  24299. _In_ ID3D12StateObject *pStateObject);
  24300. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  24301. void ( STDMETHODCALLTYPE *DispatchRays )(
  24302. ID3D12GraphicsCommandList5 * This,
  24303. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  24304. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
  24305. void ( STDMETHODCALLTYPE *RSSetShadingRate )(
  24306. ID3D12GraphicsCommandList5 * This,
  24307. _In_ D3D12_SHADING_RATE baseShadingRate,
  24308. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
  24309. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
  24310. void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
  24311. ID3D12GraphicsCommandList5 * This,
  24312. _In_opt_ ID3D12Resource *shadingRateImage);
  24313. END_INTERFACE
  24314. } ID3D12GraphicsCommandList5Vtbl;
  24315. interface ID3D12GraphicsCommandList5
  24316. {
  24317. CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl;
  24318. };
  24319. #ifdef COBJMACROS
  24320. #define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \
  24321. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  24322. #define ID3D12GraphicsCommandList5_AddRef(This) \
  24323. ( (This)->lpVtbl -> AddRef(This) )
  24324. #define ID3D12GraphicsCommandList5_Release(This) \
  24325. ( (This)->lpVtbl -> Release(This) )
  24326. #define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \
  24327. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  24328. #define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \
  24329. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  24330. #define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \
  24331. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  24332. #define ID3D12GraphicsCommandList5_SetName(This,Name) \
  24333. ( (This)->lpVtbl -> SetName(This,Name) )
  24334. #define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \
  24335. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  24336. #define ID3D12GraphicsCommandList5_GetType(This) \
  24337. ( (This)->lpVtbl -> GetType(This) )
  24338. #define ID3D12GraphicsCommandList5_Close(This) \
  24339. ( (This)->lpVtbl -> Close(This) )
  24340. #define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \
  24341. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  24342. #define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \
  24343. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  24344. #define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  24345. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  24346. #define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  24347. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  24348. #define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  24349. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  24350. #define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  24351. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  24352. #define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  24353. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  24354. #define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \
  24355. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  24356. #define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  24357. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  24358. #define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  24359. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  24360. #define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \
  24361. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  24362. #define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \
  24363. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  24364. #define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \
  24365. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  24366. #define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \
  24367. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  24368. #define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \
  24369. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  24370. #define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \
  24371. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  24372. #define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \
  24373. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  24374. #define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \
  24375. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  24376. #define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  24377. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  24378. #define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \
  24379. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  24380. #define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \
  24381. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  24382. #define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  24383. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  24384. #define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  24385. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  24386. #define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  24387. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  24388. #define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  24389. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  24390. #define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  24391. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  24392. #define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  24393. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  24394. #define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  24395. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  24396. #define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  24397. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  24398. #define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  24399. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  24400. #define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  24401. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  24402. #define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  24403. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  24404. #define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  24405. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  24406. #define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \
  24407. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  24408. #define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  24409. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  24410. #define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \
  24411. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  24412. #define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  24413. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  24414. #define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  24415. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  24416. #define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  24417. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  24418. #define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  24419. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  24420. #define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  24421. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  24422. #define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \
  24423. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  24424. #define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \
  24425. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  24426. #define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \
  24427. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  24428. #define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  24429. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  24430. #define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  24431. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  24432. #define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \
  24433. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  24434. #define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \
  24435. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  24436. #define ID3D12GraphicsCommandList5_EndEvent(This) \
  24437. ( (This)->lpVtbl -> EndEvent(This) )
  24438. #define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  24439. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  24440. #define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  24441. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  24442. #define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  24443. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  24444. #define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \
  24445. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  24446. #define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  24447. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  24448. #define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  24449. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  24450. #define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \
  24451. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  24452. #define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \
  24453. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  24454. #define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \
  24455. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  24456. #define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  24457. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  24458. #define ID3D12GraphicsCommandList5_EndRenderPass(This) \
  24459. ( (This)->lpVtbl -> EndRenderPass(This) )
  24460. #define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  24461. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  24462. #define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  24463. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  24464. #define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  24465. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  24466. #define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  24467. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  24468. #define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  24469. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  24470. #define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \
  24471. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  24472. #define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \
  24473. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  24474. #define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \
  24475. ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
  24476. #define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \
  24477. ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
  24478. #endif /* COBJMACROS */
  24479. #endif /* C style interface */
  24480. #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
  24481. /* interface __MIDL_itf_d3d12_0000_0078 */
  24482. /* [local] */
  24483. typedef struct D3D12_DISPATCH_MESH_ARGUMENTS
  24484. {
  24485. UINT ThreadGroupCountX;
  24486. UINT ThreadGroupCountY;
  24487. UINT ThreadGroupCountZ;
  24488. } D3D12_DISPATCH_MESH_ARGUMENTS;
  24489. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec;
  24490. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec;
  24491. #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
  24492. #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
  24493. /* interface ID3D12GraphicsCommandList6 */
  24494. /* [unique][local][object][uuid] */
  24495. EXTERN_C const IID IID_ID3D12GraphicsCommandList6;
  24496. #if defined(__cplusplus) && !defined(CINTERFACE)
  24497. MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
  24498. ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
  24499. {
  24500. public:
  24501. virtual void STDMETHODCALLTYPE DispatchMesh(
  24502. _In_ UINT ThreadGroupCountX,
  24503. _In_ UINT ThreadGroupCountY,
  24504. _In_ UINT ThreadGroupCountZ) = 0;
  24505. };
  24506. #else /* C style interface */
  24507. typedef struct ID3D12GraphicsCommandList6Vtbl
  24508. {
  24509. BEGIN_INTERFACE
  24510. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  24511. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  24512. ID3D12GraphicsCommandList6 * This,
  24513. REFIID riid,
  24514. _COM_Outptr_ void **ppvObject);
  24515. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  24516. ULONG ( STDMETHODCALLTYPE *AddRef )(
  24517. ID3D12GraphicsCommandList6 * This);
  24518. DECLSPEC_XFGVIRT(IUnknown, Release)
  24519. ULONG ( STDMETHODCALLTYPE *Release )(
  24520. ID3D12GraphicsCommandList6 * This);
  24521. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  24522. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  24523. ID3D12GraphicsCommandList6 * This,
  24524. _In_ REFGUID guid,
  24525. _Inout_ UINT *pDataSize,
  24526. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  24527. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  24528. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  24529. ID3D12GraphicsCommandList6 * This,
  24530. _In_ REFGUID guid,
  24531. _In_ UINT DataSize,
  24532. _In_reads_bytes_opt_( DataSize ) const void *pData);
  24533. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  24534. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  24535. ID3D12GraphicsCommandList6 * This,
  24536. _In_ REFGUID guid,
  24537. _In_opt_ const IUnknown *pData);
  24538. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  24539. HRESULT ( STDMETHODCALLTYPE *SetName )(
  24540. ID3D12GraphicsCommandList6 * This,
  24541. _In_z_ LPCWSTR Name);
  24542. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  24543. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  24544. ID3D12GraphicsCommandList6 * This,
  24545. REFIID riid,
  24546. _COM_Outptr_opt_ void **ppvDevice);
  24547. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  24548. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  24549. ID3D12GraphicsCommandList6 * This);
  24550. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  24551. HRESULT ( STDMETHODCALLTYPE *Close )(
  24552. ID3D12GraphicsCommandList6 * This);
  24553. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  24554. HRESULT ( STDMETHODCALLTYPE *Reset )(
  24555. ID3D12GraphicsCommandList6 * This,
  24556. _In_ ID3D12CommandAllocator *pAllocator,
  24557. _In_opt_ ID3D12PipelineState *pInitialState);
  24558. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  24559. void ( STDMETHODCALLTYPE *ClearState )(
  24560. ID3D12GraphicsCommandList6 * This,
  24561. _In_opt_ ID3D12PipelineState *pPipelineState);
  24562. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  24563. void ( STDMETHODCALLTYPE *DrawInstanced )(
  24564. ID3D12GraphicsCommandList6 * This,
  24565. _In_ UINT VertexCountPerInstance,
  24566. _In_ UINT InstanceCount,
  24567. _In_ UINT StartVertexLocation,
  24568. _In_ UINT StartInstanceLocation);
  24569. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  24570. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  24571. ID3D12GraphicsCommandList6 * This,
  24572. _In_ UINT IndexCountPerInstance,
  24573. _In_ UINT InstanceCount,
  24574. _In_ UINT StartIndexLocation,
  24575. _In_ INT BaseVertexLocation,
  24576. _In_ UINT StartInstanceLocation);
  24577. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  24578. void ( STDMETHODCALLTYPE *Dispatch )(
  24579. ID3D12GraphicsCommandList6 * This,
  24580. _In_ UINT ThreadGroupCountX,
  24581. _In_ UINT ThreadGroupCountY,
  24582. _In_ UINT ThreadGroupCountZ);
  24583. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  24584. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  24585. ID3D12GraphicsCommandList6 * This,
  24586. _In_ ID3D12Resource *pDstBuffer,
  24587. UINT64 DstOffset,
  24588. _In_ ID3D12Resource *pSrcBuffer,
  24589. UINT64 SrcOffset,
  24590. UINT64 NumBytes);
  24591. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  24592. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  24593. ID3D12GraphicsCommandList6 * This,
  24594. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  24595. UINT DstX,
  24596. UINT DstY,
  24597. UINT DstZ,
  24598. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  24599. _In_opt_ const D3D12_BOX *pSrcBox);
  24600. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  24601. void ( STDMETHODCALLTYPE *CopyResource )(
  24602. ID3D12GraphicsCommandList6 * This,
  24603. _In_ ID3D12Resource *pDstResource,
  24604. _In_ ID3D12Resource *pSrcResource);
  24605. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  24606. void ( STDMETHODCALLTYPE *CopyTiles )(
  24607. ID3D12GraphicsCommandList6 * This,
  24608. _In_ ID3D12Resource *pTiledResource,
  24609. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  24610. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  24611. _In_ ID3D12Resource *pBuffer,
  24612. UINT64 BufferStartOffsetInBytes,
  24613. D3D12_TILE_COPY_FLAGS Flags);
  24614. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  24615. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  24616. ID3D12GraphicsCommandList6 * This,
  24617. _In_ ID3D12Resource *pDstResource,
  24618. _In_ UINT DstSubresource,
  24619. _In_ ID3D12Resource *pSrcResource,
  24620. _In_ UINT SrcSubresource,
  24621. _In_ DXGI_FORMAT Format);
  24622. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  24623. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  24624. ID3D12GraphicsCommandList6 * This,
  24625. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  24626. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  24627. void ( STDMETHODCALLTYPE *RSSetViewports )(
  24628. ID3D12GraphicsCommandList6 * This,
  24629. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  24630. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  24631. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  24632. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  24633. ID3D12GraphicsCommandList6 * This,
  24634. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  24635. _In_reads_( NumRects) const D3D12_RECT *pRects);
  24636. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  24637. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  24638. ID3D12GraphicsCommandList6 * This,
  24639. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  24640. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  24641. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  24642. ID3D12GraphicsCommandList6 * This,
  24643. _In_ UINT StencilRef);
  24644. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  24645. void ( STDMETHODCALLTYPE *SetPipelineState )(
  24646. ID3D12GraphicsCommandList6 * This,
  24647. _In_ ID3D12PipelineState *pPipelineState);
  24648. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  24649. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  24650. ID3D12GraphicsCommandList6 * This,
  24651. _In_ UINT NumBarriers,
  24652. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  24653. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  24654. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  24655. ID3D12GraphicsCommandList6 * This,
  24656. _In_ ID3D12GraphicsCommandList *pCommandList);
  24657. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  24658. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  24659. ID3D12GraphicsCommandList6 * This,
  24660. _In_ UINT NumDescriptorHeaps,
  24661. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  24662. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  24663. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  24664. ID3D12GraphicsCommandList6 * This,
  24665. _In_opt_ ID3D12RootSignature *pRootSignature);
  24666. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  24667. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  24668. ID3D12GraphicsCommandList6 * This,
  24669. _In_opt_ ID3D12RootSignature *pRootSignature);
  24670. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  24671. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  24672. ID3D12GraphicsCommandList6 * This,
  24673. _In_ UINT RootParameterIndex,
  24674. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  24675. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  24676. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  24677. ID3D12GraphicsCommandList6 * This,
  24678. _In_ UINT RootParameterIndex,
  24679. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  24680. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  24681. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  24682. ID3D12GraphicsCommandList6 * This,
  24683. _In_ UINT RootParameterIndex,
  24684. _In_ UINT SrcData,
  24685. _In_ UINT DestOffsetIn32BitValues);
  24686. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  24687. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  24688. ID3D12GraphicsCommandList6 * This,
  24689. _In_ UINT RootParameterIndex,
  24690. _In_ UINT SrcData,
  24691. _In_ UINT DestOffsetIn32BitValues);
  24692. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  24693. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  24694. ID3D12GraphicsCommandList6 * This,
  24695. _In_ UINT RootParameterIndex,
  24696. _In_ UINT Num32BitValuesToSet,
  24697. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  24698. _In_ UINT DestOffsetIn32BitValues);
  24699. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  24700. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  24701. ID3D12GraphicsCommandList6 * This,
  24702. _In_ UINT RootParameterIndex,
  24703. _In_ UINT Num32BitValuesToSet,
  24704. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  24705. _In_ UINT DestOffsetIn32BitValues);
  24706. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  24707. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  24708. ID3D12GraphicsCommandList6 * This,
  24709. _In_ UINT RootParameterIndex,
  24710. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24711. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  24712. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  24713. ID3D12GraphicsCommandList6 * This,
  24714. _In_ UINT RootParameterIndex,
  24715. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24716. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  24717. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  24718. ID3D12GraphicsCommandList6 * This,
  24719. _In_ UINT RootParameterIndex,
  24720. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24721. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  24722. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  24723. ID3D12GraphicsCommandList6 * This,
  24724. _In_ UINT RootParameterIndex,
  24725. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24726. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  24727. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  24728. ID3D12GraphicsCommandList6 * This,
  24729. _In_ UINT RootParameterIndex,
  24730. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24731. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  24732. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  24733. ID3D12GraphicsCommandList6 * This,
  24734. _In_ UINT RootParameterIndex,
  24735. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  24736. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  24737. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  24738. ID3D12GraphicsCommandList6 * This,
  24739. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  24740. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  24741. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  24742. ID3D12GraphicsCommandList6 * This,
  24743. _In_ UINT StartSlot,
  24744. _In_ UINT NumViews,
  24745. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  24746. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  24747. void ( STDMETHODCALLTYPE *SOSetTargets )(
  24748. ID3D12GraphicsCommandList6 * This,
  24749. _In_ UINT StartSlot,
  24750. _In_ UINT NumViews,
  24751. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  24752. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  24753. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  24754. ID3D12GraphicsCommandList6 * This,
  24755. _In_ UINT NumRenderTargetDescriptors,
  24756. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  24757. _In_ BOOL RTsSingleHandleToDescriptorRange,
  24758. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  24759. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  24760. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  24761. ID3D12GraphicsCommandList6 * This,
  24762. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  24763. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  24764. _In_ FLOAT Depth,
  24765. _In_ UINT8 Stencil,
  24766. _In_ UINT NumRects,
  24767. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24768. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  24769. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  24770. ID3D12GraphicsCommandList6 * This,
  24771. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  24772. _In_ const FLOAT ColorRGBA[ 4 ],
  24773. _In_ UINT NumRects,
  24774. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24775. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  24776. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  24777. ID3D12GraphicsCommandList6 * This,
  24778. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  24779. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  24780. _In_ ID3D12Resource *pResource,
  24781. _In_ const UINT Values[ 4 ],
  24782. _In_ UINT NumRects,
  24783. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24784. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  24785. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  24786. ID3D12GraphicsCommandList6 * This,
  24787. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  24788. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  24789. _In_ ID3D12Resource *pResource,
  24790. _In_ const FLOAT Values[ 4 ],
  24791. _In_ UINT NumRects,
  24792. _In_reads_(NumRects) const D3D12_RECT *pRects);
  24793. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  24794. void ( STDMETHODCALLTYPE *DiscardResource )(
  24795. ID3D12GraphicsCommandList6 * This,
  24796. _In_ ID3D12Resource *pResource,
  24797. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  24798. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  24799. void ( STDMETHODCALLTYPE *BeginQuery )(
  24800. ID3D12GraphicsCommandList6 * This,
  24801. _In_ ID3D12QueryHeap *pQueryHeap,
  24802. _In_ D3D12_QUERY_TYPE Type,
  24803. _In_ UINT Index);
  24804. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  24805. void ( STDMETHODCALLTYPE *EndQuery )(
  24806. ID3D12GraphicsCommandList6 * This,
  24807. _In_ ID3D12QueryHeap *pQueryHeap,
  24808. _In_ D3D12_QUERY_TYPE Type,
  24809. _In_ UINT Index);
  24810. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  24811. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  24812. ID3D12GraphicsCommandList6 * This,
  24813. _In_ ID3D12QueryHeap *pQueryHeap,
  24814. _In_ D3D12_QUERY_TYPE Type,
  24815. _In_ UINT StartIndex,
  24816. _In_ UINT NumQueries,
  24817. _In_ ID3D12Resource *pDestinationBuffer,
  24818. _In_ UINT64 AlignedDestinationBufferOffset);
  24819. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  24820. void ( STDMETHODCALLTYPE *SetPredication )(
  24821. ID3D12GraphicsCommandList6 * This,
  24822. _In_opt_ ID3D12Resource *pBuffer,
  24823. _In_ UINT64 AlignedBufferOffset,
  24824. _In_ D3D12_PREDICATION_OP Operation);
  24825. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  24826. void ( STDMETHODCALLTYPE *SetMarker )(
  24827. ID3D12GraphicsCommandList6 * This,
  24828. UINT Metadata,
  24829. _In_reads_bytes_opt_(Size) const void *pData,
  24830. UINT Size);
  24831. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  24832. void ( STDMETHODCALLTYPE *BeginEvent )(
  24833. ID3D12GraphicsCommandList6 * This,
  24834. UINT Metadata,
  24835. _In_reads_bytes_opt_(Size) const void *pData,
  24836. UINT Size);
  24837. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  24838. void ( STDMETHODCALLTYPE *EndEvent )(
  24839. ID3D12GraphicsCommandList6 * This);
  24840. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  24841. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  24842. ID3D12GraphicsCommandList6 * This,
  24843. _In_ ID3D12CommandSignature *pCommandSignature,
  24844. _In_ UINT MaxCommandCount,
  24845. _In_ ID3D12Resource *pArgumentBuffer,
  24846. _In_ UINT64 ArgumentBufferOffset,
  24847. _In_opt_ ID3D12Resource *pCountBuffer,
  24848. _In_ UINT64 CountBufferOffset);
  24849. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  24850. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  24851. ID3D12GraphicsCommandList6 * This,
  24852. _In_ ID3D12Resource *pDstBuffer,
  24853. UINT64 DstOffset,
  24854. _In_ ID3D12Resource *pSrcBuffer,
  24855. UINT64 SrcOffset,
  24856. UINT Dependencies,
  24857. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  24858. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  24859. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  24860. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  24861. ID3D12GraphicsCommandList6 * This,
  24862. _In_ ID3D12Resource *pDstBuffer,
  24863. UINT64 DstOffset,
  24864. _In_ ID3D12Resource *pSrcBuffer,
  24865. UINT64 SrcOffset,
  24866. UINT Dependencies,
  24867. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  24868. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  24869. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  24870. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  24871. ID3D12GraphicsCommandList6 * This,
  24872. _In_ FLOAT Min,
  24873. _In_ FLOAT Max);
  24874. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  24875. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  24876. ID3D12GraphicsCommandList6 * This,
  24877. _In_ UINT NumSamplesPerPixel,
  24878. _In_ UINT NumPixels,
  24879. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  24880. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  24881. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  24882. ID3D12GraphicsCommandList6 * This,
  24883. _In_ ID3D12Resource *pDstResource,
  24884. _In_ UINT DstSubresource,
  24885. _In_ UINT DstX,
  24886. _In_ UINT DstY,
  24887. _In_ ID3D12Resource *pSrcResource,
  24888. _In_ UINT SrcSubresource,
  24889. _In_opt_ D3D12_RECT *pSrcRect,
  24890. _In_ DXGI_FORMAT Format,
  24891. _In_ D3D12_RESOLVE_MODE ResolveMode);
  24892. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  24893. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  24894. ID3D12GraphicsCommandList6 * This,
  24895. _In_ UINT Mask);
  24896. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  24897. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  24898. ID3D12GraphicsCommandList6 * This,
  24899. UINT Count,
  24900. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  24901. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  24902. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  24903. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  24904. ID3D12GraphicsCommandList6 * This,
  24905. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  24906. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  24907. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  24908. ID3D12GraphicsCommandList6 * This,
  24909. _In_ UINT NumRenderTargets,
  24910. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  24911. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  24912. D3D12_RENDER_PASS_FLAGS Flags);
  24913. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  24914. void ( STDMETHODCALLTYPE *EndRenderPass )(
  24915. ID3D12GraphicsCommandList6 * This);
  24916. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  24917. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  24918. ID3D12GraphicsCommandList6 * This,
  24919. _In_ ID3D12MetaCommand *pMetaCommand,
  24920. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  24921. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  24922. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  24923. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  24924. ID3D12GraphicsCommandList6 * This,
  24925. _In_ ID3D12MetaCommand *pMetaCommand,
  24926. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  24927. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  24928. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  24929. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  24930. ID3D12GraphicsCommandList6 * This,
  24931. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  24932. _In_ UINT NumPostbuildInfoDescs,
  24933. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  24934. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  24935. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  24936. ID3D12GraphicsCommandList6 * This,
  24937. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  24938. _In_ UINT NumSourceAccelerationStructures,
  24939. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  24940. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  24941. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  24942. ID3D12GraphicsCommandList6 * This,
  24943. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  24944. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  24945. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  24946. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  24947. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  24948. ID3D12GraphicsCommandList6 * This,
  24949. _In_ ID3D12StateObject *pStateObject);
  24950. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  24951. void ( STDMETHODCALLTYPE *DispatchRays )(
  24952. ID3D12GraphicsCommandList6 * This,
  24953. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  24954. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
  24955. void ( STDMETHODCALLTYPE *RSSetShadingRate )(
  24956. ID3D12GraphicsCommandList6 * This,
  24957. _In_ D3D12_SHADING_RATE baseShadingRate,
  24958. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
  24959. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
  24960. void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
  24961. ID3D12GraphicsCommandList6 * This,
  24962. _In_opt_ ID3D12Resource *shadingRateImage);
  24963. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
  24964. void ( STDMETHODCALLTYPE *DispatchMesh )(
  24965. ID3D12GraphicsCommandList6 * This,
  24966. _In_ UINT ThreadGroupCountX,
  24967. _In_ UINT ThreadGroupCountY,
  24968. _In_ UINT ThreadGroupCountZ);
  24969. END_INTERFACE
  24970. } ID3D12GraphicsCommandList6Vtbl;
  24971. interface ID3D12GraphicsCommandList6
  24972. {
  24973. CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl;
  24974. };
  24975. #ifdef COBJMACROS
  24976. #define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \
  24977. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  24978. #define ID3D12GraphicsCommandList6_AddRef(This) \
  24979. ( (This)->lpVtbl -> AddRef(This) )
  24980. #define ID3D12GraphicsCommandList6_Release(This) \
  24981. ( (This)->lpVtbl -> Release(This) )
  24982. #define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \
  24983. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  24984. #define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \
  24985. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  24986. #define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \
  24987. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  24988. #define ID3D12GraphicsCommandList6_SetName(This,Name) \
  24989. ( (This)->lpVtbl -> SetName(This,Name) )
  24990. #define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \
  24991. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  24992. #define ID3D12GraphicsCommandList6_GetType(This) \
  24993. ( (This)->lpVtbl -> GetType(This) )
  24994. #define ID3D12GraphicsCommandList6_Close(This) \
  24995. ( (This)->lpVtbl -> Close(This) )
  24996. #define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \
  24997. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  24998. #define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \
  24999. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  25000. #define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  25001. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  25002. #define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  25003. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  25004. #define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  25005. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  25006. #define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  25007. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  25008. #define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  25009. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  25010. #define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \
  25011. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  25012. #define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  25013. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  25014. #define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  25015. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  25016. #define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \
  25017. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  25018. #define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \
  25019. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  25020. #define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \
  25021. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  25022. #define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \
  25023. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  25024. #define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \
  25025. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  25026. #define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \
  25027. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  25028. #define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \
  25029. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  25030. #define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \
  25031. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  25032. #define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  25033. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  25034. #define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \
  25035. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  25036. #define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \
  25037. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  25038. #define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  25039. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  25040. #define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  25041. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  25042. #define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  25043. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  25044. #define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  25045. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  25046. #define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  25047. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  25048. #define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  25049. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  25050. #define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  25051. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  25052. #define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  25053. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  25054. #define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  25055. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  25056. #define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  25057. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  25058. #define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  25059. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  25060. #define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  25061. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  25062. #define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \
  25063. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  25064. #define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  25065. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  25066. #define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \
  25067. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  25068. #define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  25069. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  25070. #define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  25071. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  25072. #define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  25073. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  25074. #define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  25075. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  25076. #define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  25077. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  25078. #define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \
  25079. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  25080. #define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \
  25081. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  25082. #define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \
  25083. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  25084. #define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  25085. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  25086. #define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  25087. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  25088. #define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \
  25089. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  25090. #define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \
  25091. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  25092. #define ID3D12GraphicsCommandList6_EndEvent(This) \
  25093. ( (This)->lpVtbl -> EndEvent(This) )
  25094. #define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  25095. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  25096. #define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  25097. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  25098. #define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  25099. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  25100. #define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \
  25101. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  25102. #define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  25103. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  25104. #define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  25105. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  25106. #define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \
  25107. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  25108. #define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \
  25109. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  25110. #define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \
  25111. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  25112. #define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  25113. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  25114. #define ID3D12GraphicsCommandList6_EndRenderPass(This) \
  25115. ( (This)->lpVtbl -> EndRenderPass(This) )
  25116. #define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  25117. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  25118. #define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  25119. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  25120. #define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  25121. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  25122. #define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  25123. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  25124. #define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  25125. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  25126. #define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \
  25127. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  25128. #define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \
  25129. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  25130. #define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \
  25131. ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
  25132. #define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \
  25133. ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
  25134. #define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  25135. ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  25136. #endif /* COBJMACROS */
  25137. #endif /* C style interface */
  25138. #endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
  25139. #ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
  25140. #define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
  25141. /* interface ID3D12GraphicsCommandList7 */
  25142. /* [unique][local][object][uuid] */
  25143. EXTERN_C const IID IID_ID3D12GraphicsCommandList7;
  25144. #if defined(__cplusplus) && !defined(CINTERFACE)
  25145. MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1")
  25146. ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6
  25147. {
  25148. public:
  25149. virtual void STDMETHODCALLTYPE Barrier(
  25150. UINT32 NumBarrierGroups,
  25151. _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
  25152. };
  25153. #else /* C style interface */
  25154. typedef struct ID3D12GraphicsCommandList7Vtbl
  25155. {
  25156. BEGIN_INTERFACE
  25157. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  25158. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  25159. ID3D12GraphicsCommandList7 * This,
  25160. REFIID riid,
  25161. _COM_Outptr_ void **ppvObject);
  25162. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  25163. ULONG ( STDMETHODCALLTYPE *AddRef )(
  25164. ID3D12GraphicsCommandList7 * This);
  25165. DECLSPEC_XFGVIRT(IUnknown, Release)
  25166. ULONG ( STDMETHODCALLTYPE *Release )(
  25167. ID3D12GraphicsCommandList7 * This);
  25168. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  25169. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  25170. ID3D12GraphicsCommandList7 * This,
  25171. _In_ REFGUID guid,
  25172. _Inout_ UINT *pDataSize,
  25173. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  25174. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  25175. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  25176. ID3D12GraphicsCommandList7 * This,
  25177. _In_ REFGUID guid,
  25178. _In_ UINT DataSize,
  25179. _In_reads_bytes_opt_( DataSize ) const void *pData);
  25180. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  25181. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  25182. ID3D12GraphicsCommandList7 * This,
  25183. _In_ REFGUID guid,
  25184. _In_opt_ const IUnknown *pData);
  25185. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  25186. HRESULT ( STDMETHODCALLTYPE *SetName )(
  25187. ID3D12GraphicsCommandList7 * This,
  25188. _In_z_ LPCWSTR Name);
  25189. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  25190. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  25191. ID3D12GraphicsCommandList7 * This,
  25192. REFIID riid,
  25193. _COM_Outptr_opt_ void **ppvDevice);
  25194. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  25195. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  25196. ID3D12GraphicsCommandList7 * This);
  25197. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  25198. HRESULT ( STDMETHODCALLTYPE *Close )(
  25199. ID3D12GraphicsCommandList7 * This);
  25200. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  25201. HRESULT ( STDMETHODCALLTYPE *Reset )(
  25202. ID3D12GraphicsCommandList7 * This,
  25203. _In_ ID3D12CommandAllocator *pAllocator,
  25204. _In_opt_ ID3D12PipelineState *pInitialState);
  25205. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  25206. void ( STDMETHODCALLTYPE *ClearState )(
  25207. ID3D12GraphicsCommandList7 * This,
  25208. _In_opt_ ID3D12PipelineState *pPipelineState);
  25209. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  25210. void ( STDMETHODCALLTYPE *DrawInstanced )(
  25211. ID3D12GraphicsCommandList7 * This,
  25212. _In_ UINT VertexCountPerInstance,
  25213. _In_ UINT InstanceCount,
  25214. _In_ UINT StartVertexLocation,
  25215. _In_ UINT StartInstanceLocation);
  25216. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  25217. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  25218. ID3D12GraphicsCommandList7 * This,
  25219. _In_ UINT IndexCountPerInstance,
  25220. _In_ UINT InstanceCount,
  25221. _In_ UINT StartIndexLocation,
  25222. _In_ INT BaseVertexLocation,
  25223. _In_ UINT StartInstanceLocation);
  25224. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  25225. void ( STDMETHODCALLTYPE *Dispatch )(
  25226. ID3D12GraphicsCommandList7 * This,
  25227. _In_ UINT ThreadGroupCountX,
  25228. _In_ UINT ThreadGroupCountY,
  25229. _In_ UINT ThreadGroupCountZ);
  25230. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  25231. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  25232. ID3D12GraphicsCommandList7 * This,
  25233. _In_ ID3D12Resource *pDstBuffer,
  25234. UINT64 DstOffset,
  25235. _In_ ID3D12Resource *pSrcBuffer,
  25236. UINT64 SrcOffset,
  25237. UINT64 NumBytes);
  25238. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  25239. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  25240. ID3D12GraphicsCommandList7 * This,
  25241. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  25242. UINT DstX,
  25243. UINT DstY,
  25244. UINT DstZ,
  25245. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  25246. _In_opt_ const D3D12_BOX *pSrcBox);
  25247. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  25248. void ( STDMETHODCALLTYPE *CopyResource )(
  25249. ID3D12GraphicsCommandList7 * This,
  25250. _In_ ID3D12Resource *pDstResource,
  25251. _In_ ID3D12Resource *pSrcResource);
  25252. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  25253. void ( STDMETHODCALLTYPE *CopyTiles )(
  25254. ID3D12GraphicsCommandList7 * This,
  25255. _In_ ID3D12Resource *pTiledResource,
  25256. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  25257. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  25258. _In_ ID3D12Resource *pBuffer,
  25259. UINT64 BufferStartOffsetInBytes,
  25260. D3D12_TILE_COPY_FLAGS Flags);
  25261. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  25262. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  25263. ID3D12GraphicsCommandList7 * This,
  25264. _In_ ID3D12Resource *pDstResource,
  25265. _In_ UINT DstSubresource,
  25266. _In_ ID3D12Resource *pSrcResource,
  25267. _In_ UINT SrcSubresource,
  25268. _In_ DXGI_FORMAT Format);
  25269. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  25270. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  25271. ID3D12GraphicsCommandList7 * This,
  25272. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  25273. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  25274. void ( STDMETHODCALLTYPE *RSSetViewports )(
  25275. ID3D12GraphicsCommandList7 * This,
  25276. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  25277. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  25278. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  25279. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  25280. ID3D12GraphicsCommandList7 * This,
  25281. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  25282. _In_reads_( NumRects) const D3D12_RECT *pRects);
  25283. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  25284. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  25285. ID3D12GraphicsCommandList7 * This,
  25286. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  25287. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  25288. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  25289. ID3D12GraphicsCommandList7 * This,
  25290. _In_ UINT StencilRef);
  25291. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  25292. void ( STDMETHODCALLTYPE *SetPipelineState )(
  25293. ID3D12GraphicsCommandList7 * This,
  25294. _In_ ID3D12PipelineState *pPipelineState);
  25295. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  25296. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  25297. ID3D12GraphicsCommandList7 * This,
  25298. _In_ UINT NumBarriers,
  25299. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  25300. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  25301. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  25302. ID3D12GraphicsCommandList7 * This,
  25303. _In_ ID3D12GraphicsCommandList *pCommandList);
  25304. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  25305. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  25306. ID3D12GraphicsCommandList7 * This,
  25307. _In_ UINT NumDescriptorHeaps,
  25308. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  25309. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  25310. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  25311. ID3D12GraphicsCommandList7 * This,
  25312. _In_opt_ ID3D12RootSignature *pRootSignature);
  25313. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  25314. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  25315. ID3D12GraphicsCommandList7 * This,
  25316. _In_opt_ ID3D12RootSignature *pRootSignature);
  25317. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  25318. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  25319. ID3D12GraphicsCommandList7 * This,
  25320. _In_ UINT RootParameterIndex,
  25321. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  25322. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  25323. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  25324. ID3D12GraphicsCommandList7 * This,
  25325. _In_ UINT RootParameterIndex,
  25326. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  25327. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  25328. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  25329. ID3D12GraphicsCommandList7 * This,
  25330. _In_ UINT RootParameterIndex,
  25331. _In_ UINT SrcData,
  25332. _In_ UINT DestOffsetIn32BitValues);
  25333. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  25334. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  25335. ID3D12GraphicsCommandList7 * This,
  25336. _In_ UINT RootParameterIndex,
  25337. _In_ UINT SrcData,
  25338. _In_ UINT DestOffsetIn32BitValues);
  25339. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  25340. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  25341. ID3D12GraphicsCommandList7 * This,
  25342. _In_ UINT RootParameterIndex,
  25343. _In_ UINT Num32BitValuesToSet,
  25344. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  25345. _In_ UINT DestOffsetIn32BitValues);
  25346. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  25347. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  25348. ID3D12GraphicsCommandList7 * This,
  25349. _In_ UINT RootParameterIndex,
  25350. _In_ UINT Num32BitValuesToSet,
  25351. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  25352. _In_ UINT DestOffsetIn32BitValues);
  25353. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  25354. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  25355. ID3D12GraphicsCommandList7 * This,
  25356. _In_ UINT RootParameterIndex,
  25357. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  25358. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  25359. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  25360. ID3D12GraphicsCommandList7 * This,
  25361. _In_ UINT RootParameterIndex,
  25362. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  25363. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  25364. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  25365. ID3D12GraphicsCommandList7 * This,
  25366. _In_ UINT RootParameterIndex,
  25367. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  25368. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  25369. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  25370. ID3D12GraphicsCommandList7 * This,
  25371. _In_ UINT RootParameterIndex,
  25372. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  25373. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  25374. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  25375. ID3D12GraphicsCommandList7 * This,
  25376. _In_ UINT RootParameterIndex,
  25377. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  25378. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  25379. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  25380. ID3D12GraphicsCommandList7 * This,
  25381. _In_ UINT RootParameterIndex,
  25382. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  25383. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  25384. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  25385. ID3D12GraphicsCommandList7 * This,
  25386. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  25387. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  25388. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  25389. ID3D12GraphicsCommandList7 * This,
  25390. _In_ UINT StartSlot,
  25391. _In_ UINT NumViews,
  25392. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  25393. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  25394. void ( STDMETHODCALLTYPE *SOSetTargets )(
  25395. ID3D12GraphicsCommandList7 * This,
  25396. _In_ UINT StartSlot,
  25397. _In_ UINT NumViews,
  25398. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  25399. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  25400. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  25401. ID3D12GraphicsCommandList7 * This,
  25402. _In_ UINT NumRenderTargetDescriptors,
  25403. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  25404. _In_ BOOL RTsSingleHandleToDescriptorRange,
  25405. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  25406. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  25407. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  25408. ID3D12GraphicsCommandList7 * This,
  25409. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  25410. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  25411. _In_ FLOAT Depth,
  25412. _In_ UINT8 Stencil,
  25413. _In_ UINT NumRects,
  25414. _In_reads_(NumRects) const D3D12_RECT *pRects);
  25415. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  25416. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  25417. ID3D12GraphicsCommandList7 * This,
  25418. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  25419. _In_ const FLOAT ColorRGBA[ 4 ],
  25420. _In_ UINT NumRects,
  25421. _In_reads_(NumRects) const D3D12_RECT *pRects);
  25422. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  25423. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  25424. ID3D12GraphicsCommandList7 * This,
  25425. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  25426. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  25427. _In_ ID3D12Resource *pResource,
  25428. _In_ const UINT Values[ 4 ],
  25429. _In_ UINT NumRects,
  25430. _In_reads_(NumRects) const D3D12_RECT *pRects);
  25431. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  25432. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  25433. ID3D12GraphicsCommandList7 * This,
  25434. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  25435. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  25436. _In_ ID3D12Resource *pResource,
  25437. _In_ const FLOAT Values[ 4 ],
  25438. _In_ UINT NumRects,
  25439. _In_reads_(NumRects) const D3D12_RECT *pRects);
  25440. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  25441. void ( STDMETHODCALLTYPE *DiscardResource )(
  25442. ID3D12GraphicsCommandList7 * This,
  25443. _In_ ID3D12Resource *pResource,
  25444. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  25445. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  25446. void ( STDMETHODCALLTYPE *BeginQuery )(
  25447. ID3D12GraphicsCommandList7 * This,
  25448. _In_ ID3D12QueryHeap *pQueryHeap,
  25449. _In_ D3D12_QUERY_TYPE Type,
  25450. _In_ UINT Index);
  25451. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  25452. void ( STDMETHODCALLTYPE *EndQuery )(
  25453. ID3D12GraphicsCommandList7 * This,
  25454. _In_ ID3D12QueryHeap *pQueryHeap,
  25455. _In_ D3D12_QUERY_TYPE Type,
  25456. _In_ UINT Index);
  25457. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  25458. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  25459. ID3D12GraphicsCommandList7 * This,
  25460. _In_ ID3D12QueryHeap *pQueryHeap,
  25461. _In_ D3D12_QUERY_TYPE Type,
  25462. _In_ UINT StartIndex,
  25463. _In_ UINT NumQueries,
  25464. _In_ ID3D12Resource *pDestinationBuffer,
  25465. _In_ UINT64 AlignedDestinationBufferOffset);
  25466. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  25467. void ( STDMETHODCALLTYPE *SetPredication )(
  25468. ID3D12GraphicsCommandList7 * This,
  25469. _In_opt_ ID3D12Resource *pBuffer,
  25470. _In_ UINT64 AlignedBufferOffset,
  25471. _In_ D3D12_PREDICATION_OP Operation);
  25472. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  25473. void ( STDMETHODCALLTYPE *SetMarker )(
  25474. ID3D12GraphicsCommandList7 * This,
  25475. UINT Metadata,
  25476. _In_reads_bytes_opt_(Size) const void *pData,
  25477. UINT Size);
  25478. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  25479. void ( STDMETHODCALLTYPE *BeginEvent )(
  25480. ID3D12GraphicsCommandList7 * This,
  25481. UINT Metadata,
  25482. _In_reads_bytes_opt_(Size) const void *pData,
  25483. UINT Size);
  25484. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  25485. void ( STDMETHODCALLTYPE *EndEvent )(
  25486. ID3D12GraphicsCommandList7 * This);
  25487. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  25488. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  25489. ID3D12GraphicsCommandList7 * This,
  25490. _In_ ID3D12CommandSignature *pCommandSignature,
  25491. _In_ UINT MaxCommandCount,
  25492. _In_ ID3D12Resource *pArgumentBuffer,
  25493. _In_ UINT64 ArgumentBufferOffset,
  25494. _In_opt_ ID3D12Resource *pCountBuffer,
  25495. _In_ UINT64 CountBufferOffset);
  25496. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  25497. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  25498. ID3D12GraphicsCommandList7 * This,
  25499. _In_ ID3D12Resource *pDstBuffer,
  25500. UINT64 DstOffset,
  25501. _In_ ID3D12Resource *pSrcBuffer,
  25502. UINT64 SrcOffset,
  25503. UINT Dependencies,
  25504. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  25505. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  25506. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  25507. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  25508. ID3D12GraphicsCommandList7 * This,
  25509. _In_ ID3D12Resource *pDstBuffer,
  25510. UINT64 DstOffset,
  25511. _In_ ID3D12Resource *pSrcBuffer,
  25512. UINT64 SrcOffset,
  25513. UINT Dependencies,
  25514. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  25515. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  25516. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  25517. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  25518. ID3D12GraphicsCommandList7 * This,
  25519. _In_ FLOAT Min,
  25520. _In_ FLOAT Max);
  25521. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  25522. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  25523. ID3D12GraphicsCommandList7 * This,
  25524. _In_ UINT NumSamplesPerPixel,
  25525. _In_ UINT NumPixels,
  25526. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  25527. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  25528. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  25529. ID3D12GraphicsCommandList7 * This,
  25530. _In_ ID3D12Resource *pDstResource,
  25531. _In_ UINT DstSubresource,
  25532. _In_ UINT DstX,
  25533. _In_ UINT DstY,
  25534. _In_ ID3D12Resource *pSrcResource,
  25535. _In_ UINT SrcSubresource,
  25536. _In_opt_ D3D12_RECT *pSrcRect,
  25537. _In_ DXGI_FORMAT Format,
  25538. _In_ D3D12_RESOLVE_MODE ResolveMode);
  25539. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  25540. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  25541. ID3D12GraphicsCommandList7 * This,
  25542. _In_ UINT Mask);
  25543. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  25544. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  25545. ID3D12GraphicsCommandList7 * This,
  25546. UINT Count,
  25547. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  25548. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  25549. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  25550. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  25551. ID3D12GraphicsCommandList7 * This,
  25552. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  25553. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  25554. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  25555. ID3D12GraphicsCommandList7 * This,
  25556. _In_ UINT NumRenderTargets,
  25557. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  25558. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  25559. D3D12_RENDER_PASS_FLAGS Flags);
  25560. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  25561. void ( STDMETHODCALLTYPE *EndRenderPass )(
  25562. ID3D12GraphicsCommandList7 * This);
  25563. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  25564. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  25565. ID3D12GraphicsCommandList7 * This,
  25566. _In_ ID3D12MetaCommand *pMetaCommand,
  25567. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  25568. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  25569. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  25570. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  25571. ID3D12GraphicsCommandList7 * This,
  25572. _In_ ID3D12MetaCommand *pMetaCommand,
  25573. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  25574. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  25575. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  25576. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  25577. ID3D12GraphicsCommandList7 * This,
  25578. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  25579. _In_ UINT NumPostbuildInfoDescs,
  25580. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  25581. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  25582. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  25583. ID3D12GraphicsCommandList7 * This,
  25584. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  25585. _In_ UINT NumSourceAccelerationStructures,
  25586. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  25587. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  25588. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  25589. ID3D12GraphicsCommandList7 * This,
  25590. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  25591. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  25592. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  25593. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  25594. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  25595. ID3D12GraphicsCommandList7 * This,
  25596. _In_ ID3D12StateObject *pStateObject);
  25597. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  25598. void ( STDMETHODCALLTYPE *DispatchRays )(
  25599. ID3D12GraphicsCommandList7 * This,
  25600. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  25601. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
  25602. void ( STDMETHODCALLTYPE *RSSetShadingRate )(
  25603. ID3D12GraphicsCommandList7 * This,
  25604. _In_ D3D12_SHADING_RATE baseShadingRate,
  25605. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
  25606. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
  25607. void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
  25608. ID3D12GraphicsCommandList7 * This,
  25609. _In_opt_ ID3D12Resource *shadingRateImage);
  25610. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
  25611. void ( STDMETHODCALLTYPE *DispatchMesh )(
  25612. ID3D12GraphicsCommandList7 * This,
  25613. _In_ UINT ThreadGroupCountX,
  25614. _In_ UINT ThreadGroupCountY,
  25615. _In_ UINT ThreadGroupCountZ);
  25616. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
  25617. void ( STDMETHODCALLTYPE *Barrier )(
  25618. ID3D12GraphicsCommandList7 * This,
  25619. UINT32 NumBarrierGroups,
  25620. _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
  25621. END_INTERFACE
  25622. } ID3D12GraphicsCommandList7Vtbl;
  25623. interface ID3D12GraphicsCommandList7
  25624. {
  25625. CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl;
  25626. };
  25627. #ifdef COBJMACROS
  25628. #define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \
  25629. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  25630. #define ID3D12GraphicsCommandList7_AddRef(This) \
  25631. ( (This)->lpVtbl -> AddRef(This) )
  25632. #define ID3D12GraphicsCommandList7_Release(This) \
  25633. ( (This)->lpVtbl -> Release(This) )
  25634. #define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \
  25635. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  25636. #define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \
  25637. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  25638. #define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \
  25639. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  25640. #define ID3D12GraphicsCommandList7_SetName(This,Name) \
  25641. ( (This)->lpVtbl -> SetName(This,Name) )
  25642. #define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \
  25643. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  25644. #define ID3D12GraphicsCommandList7_GetType(This) \
  25645. ( (This)->lpVtbl -> GetType(This) )
  25646. #define ID3D12GraphicsCommandList7_Close(This) \
  25647. ( (This)->lpVtbl -> Close(This) )
  25648. #define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \
  25649. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  25650. #define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \
  25651. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  25652. #define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  25653. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  25654. #define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  25655. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  25656. #define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  25657. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  25658. #define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  25659. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  25660. #define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  25661. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  25662. #define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \
  25663. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  25664. #define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  25665. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  25666. #define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  25667. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  25668. #define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \
  25669. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  25670. #define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \
  25671. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  25672. #define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \
  25673. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  25674. #define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \
  25675. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  25676. #define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \
  25677. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  25678. #define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \
  25679. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  25680. #define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \
  25681. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  25682. #define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \
  25683. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  25684. #define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  25685. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  25686. #define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \
  25687. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  25688. #define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \
  25689. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  25690. #define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  25691. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  25692. #define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  25693. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  25694. #define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  25695. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  25696. #define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  25697. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  25698. #define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  25699. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  25700. #define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  25701. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  25702. #define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  25703. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  25704. #define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  25705. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  25706. #define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  25707. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  25708. #define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  25709. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  25710. #define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  25711. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  25712. #define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  25713. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  25714. #define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \
  25715. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  25716. #define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  25717. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  25718. #define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \
  25719. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  25720. #define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  25721. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  25722. #define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  25723. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  25724. #define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  25725. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  25726. #define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  25727. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  25728. #define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  25729. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  25730. #define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \
  25731. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  25732. #define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \
  25733. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  25734. #define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \
  25735. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  25736. #define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  25737. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  25738. #define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  25739. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  25740. #define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \
  25741. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  25742. #define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \
  25743. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  25744. #define ID3D12GraphicsCommandList7_EndEvent(This) \
  25745. ( (This)->lpVtbl -> EndEvent(This) )
  25746. #define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  25747. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  25748. #define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  25749. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  25750. #define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  25751. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  25752. #define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \
  25753. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  25754. #define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  25755. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  25756. #define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  25757. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  25758. #define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \
  25759. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  25760. #define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \
  25761. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  25762. #define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \
  25763. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  25764. #define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  25765. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  25766. #define ID3D12GraphicsCommandList7_EndRenderPass(This) \
  25767. ( (This)->lpVtbl -> EndRenderPass(This) )
  25768. #define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  25769. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  25770. #define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  25771. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  25772. #define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  25773. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  25774. #define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  25775. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  25776. #define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  25777. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  25778. #define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \
  25779. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  25780. #define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \
  25781. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  25782. #define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \
  25783. ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
  25784. #define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \
  25785. ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
  25786. #define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  25787. ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  25788. #define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \
  25789. ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
  25790. #endif /* COBJMACROS */
  25791. #endif /* C style interface */
  25792. #endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */
  25793. #ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
  25794. #define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
  25795. /* interface ID3D12GraphicsCommandList8 */
  25796. /* [unique][local][object][uuid] */
  25797. EXTERN_C const IID IID_ID3D12GraphicsCommandList8;
  25798. #if defined(__cplusplus) && !defined(CINTERFACE)
  25799. MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51")
  25800. ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7
  25801. {
  25802. public:
  25803. virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef(
  25804. _In_ UINT FrontStencilRef,
  25805. _In_ UINT BackStencilRef) = 0;
  25806. };
  25807. #else /* C style interface */
  25808. typedef struct ID3D12GraphicsCommandList8Vtbl
  25809. {
  25810. BEGIN_INTERFACE
  25811. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  25812. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  25813. ID3D12GraphicsCommandList8 * This,
  25814. REFIID riid,
  25815. _COM_Outptr_ void **ppvObject);
  25816. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  25817. ULONG ( STDMETHODCALLTYPE *AddRef )(
  25818. ID3D12GraphicsCommandList8 * This);
  25819. DECLSPEC_XFGVIRT(IUnknown, Release)
  25820. ULONG ( STDMETHODCALLTYPE *Release )(
  25821. ID3D12GraphicsCommandList8 * This);
  25822. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  25823. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  25824. ID3D12GraphicsCommandList8 * This,
  25825. _In_ REFGUID guid,
  25826. _Inout_ UINT *pDataSize,
  25827. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  25828. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  25829. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  25830. ID3D12GraphicsCommandList8 * This,
  25831. _In_ REFGUID guid,
  25832. _In_ UINT DataSize,
  25833. _In_reads_bytes_opt_( DataSize ) const void *pData);
  25834. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  25835. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  25836. ID3D12GraphicsCommandList8 * This,
  25837. _In_ REFGUID guid,
  25838. _In_opt_ const IUnknown *pData);
  25839. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  25840. HRESULT ( STDMETHODCALLTYPE *SetName )(
  25841. ID3D12GraphicsCommandList8 * This,
  25842. _In_z_ LPCWSTR Name);
  25843. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  25844. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  25845. ID3D12GraphicsCommandList8 * This,
  25846. REFIID riid,
  25847. _COM_Outptr_opt_ void **ppvDevice);
  25848. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  25849. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  25850. ID3D12GraphicsCommandList8 * This);
  25851. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  25852. HRESULT ( STDMETHODCALLTYPE *Close )(
  25853. ID3D12GraphicsCommandList8 * This);
  25854. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  25855. HRESULT ( STDMETHODCALLTYPE *Reset )(
  25856. ID3D12GraphicsCommandList8 * This,
  25857. _In_ ID3D12CommandAllocator *pAllocator,
  25858. _In_opt_ ID3D12PipelineState *pInitialState);
  25859. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  25860. void ( STDMETHODCALLTYPE *ClearState )(
  25861. ID3D12GraphicsCommandList8 * This,
  25862. _In_opt_ ID3D12PipelineState *pPipelineState);
  25863. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  25864. void ( STDMETHODCALLTYPE *DrawInstanced )(
  25865. ID3D12GraphicsCommandList8 * This,
  25866. _In_ UINT VertexCountPerInstance,
  25867. _In_ UINT InstanceCount,
  25868. _In_ UINT StartVertexLocation,
  25869. _In_ UINT StartInstanceLocation);
  25870. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  25871. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  25872. ID3D12GraphicsCommandList8 * This,
  25873. _In_ UINT IndexCountPerInstance,
  25874. _In_ UINT InstanceCount,
  25875. _In_ UINT StartIndexLocation,
  25876. _In_ INT BaseVertexLocation,
  25877. _In_ UINT StartInstanceLocation);
  25878. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  25879. void ( STDMETHODCALLTYPE *Dispatch )(
  25880. ID3D12GraphicsCommandList8 * This,
  25881. _In_ UINT ThreadGroupCountX,
  25882. _In_ UINT ThreadGroupCountY,
  25883. _In_ UINT ThreadGroupCountZ);
  25884. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  25885. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  25886. ID3D12GraphicsCommandList8 * This,
  25887. _In_ ID3D12Resource *pDstBuffer,
  25888. UINT64 DstOffset,
  25889. _In_ ID3D12Resource *pSrcBuffer,
  25890. UINT64 SrcOffset,
  25891. UINT64 NumBytes);
  25892. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  25893. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  25894. ID3D12GraphicsCommandList8 * This,
  25895. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  25896. UINT DstX,
  25897. UINT DstY,
  25898. UINT DstZ,
  25899. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  25900. _In_opt_ const D3D12_BOX *pSrcBox);
  25901. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  25902. void ( STDMETHODCALLTYPE *CopyResource )(
  25903. ID3D12GraphicsCommandList8 * This,
  25904. _In_ ID3D12Resource *pDstResource,
  25905. _In_ ID3D12Resource *pSrcResource);
  25906. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  25907. void ( STDMETHODCALLTYPE *CopyTiles )(
  25908. ID3D12GraphicsCommandList8 * This,
  25909. _In_ ID3D12Resource *pTiledResource,
  25910. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  25911. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  25912. _In_ ID3D12Resource *pBuffer,
  25913. UINT64 BufferStartOffsetInBytes,
  25914. D3D12_TILE_COPY_FLAGS Flags);
  25915. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  25916. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  25917. ID3D12GraphicsCommandList8 * This,
  25918. _In_ ID3D12Resource *pDstResource,
  25919. _In_ UINT DstSubresource,
  25920. _In_ ID3D12Resource *pSrcResource,
  25921. _In_ UINT SrcSubresource,
  25922. _In_ DXGI_FORMAT Format);
  25923. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  25924. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  25925. ID3D12GraphicsCommandList8 * This,
  25926. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  25927. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  25928. void ( STDMETHODCALLTYPE *RSSetViewports )(
  25929. ID3D12GraphicsCommandList8 * This,
  25930. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  25931. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  25932. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  25933. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  25934. ID3D12GraphicsCommandList8 * This,
  25935. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  25936. _In_reads_( NumRects) const D3D12_RECT *pRects);
  25937. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  25938. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  25939. ID3D12GraphicsCommandList8 * This,
  25940. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  25941. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  25942. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  25943. ID3D12GraphicsCommandList8 * This,
  25944. _In_ UINT StencilRef);
  25945. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  25946. void ( STDMETHODCALLTYPE *SetPipelineState )(
  25947. ID3D12GraphicsCommandList8 * This,
  25948. _In_ ID3D12PipelineState *pPipelineState);
  25949. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  25950. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  25951. ID3D12GraphicsCommandList8 * This,
  25952. _In_ UINT NumBarriers,
  25953. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  25954. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  25955. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  25956. ID3D12GraphicsCommandList8 * This,
  25957. _In_ ID3D12GraphicsCommandList *pCommandList);
  25958. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  25959. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  25960. ID3D12GraphicsCommandList8 * This,
  25961. _In_ UINT NumDescriptorHeaps,
  25962. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  25963. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  25964. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  25965. ID3D12GraphicsCommandList8 * This,
  25966. _In_opt_ ID3D12RootSignature *pRootSignature);
  25967. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  25968. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  25969. ID3D12GraphicsCommandList8 * This,
  25970. _In_opt_ ID3D12RootSignature *pRootSignature);
  25971. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  25972. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  25973. ID3D12GraphicsCommandList8 * This,
  25974. _In_ UINT RootParameterIndex,
  25975. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  25976. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  25977. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  25978. ID3D12GraphicsCommandList8 * This,
  25979. _In_ UINT RootParameterIndex,
  25980. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  25981. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  25982. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  25983. ID3D12GraphicsCommandList8 * This,
  25984. _In_ UINT RootParameterIndex,
  25985. _In_ UINT SrcData,
  25986. _In_ UINT DestOffsetIn32BitValues);
  25987. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  25988. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  25989. ID3D12GraphicsCommandList8 * This,
  25990. _In_ UINT RootParameterIndex,
  25991. _In_ UINT SrcData,
  25992. _In_ UINT DestOffsetIn32BitValues);
  25993. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  25994. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  25995. ID3D12GraphicsCommandList8 * This,
  25996. _In_ UINT RootParameterIndex,
  25997. _In_ UINT Num32BitValuesToSet,
  25998. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  25999. _In_ UINT DestOffsetIn32BitValues);
  26000. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  26001. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  26002. ID3D12GraphicsCommandList8 * This,
  26003. _In_ UINT RootParameterIndex,
  26004. _In_ UINT Num32BitValuesToSet,
  26005. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  26006. _In_ UINT DestOffsetIn32BitValues);
  26007. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  26008. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  26009. ID3D12GraphicsCommandList8 * This,
  26010. _In_ UINT RootParameterIndex,
  26011. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26012. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  26013. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  26014. ID3D12GraphicsCommandList8 * This,
  26015. _In_ UINT RootParameterIndex,
  26016. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26017. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  26018. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  26019. ID3D12GraphicsCommandList8 * This,
  26020. _In_ UINT RootParameterIndex,
  26021. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26022. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  26023. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  26024. ID3D12GraphicsCommandList8 * This,
  26025. _In_ UINT RootParameterIndex,
  26026. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26027. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  26028. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  26029. ID3D12GraphicsCommandList8 * This,
  26030. _In_ UINT RootParameterIndex,
  26031. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26032. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  26033. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  26034. ID3D12GraphicsCommandList8 * This,
  26035. _In_ UINT RootParameterIndex,
  26036. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26037. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  26038. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  26039. ID3D12GraphicsCommandList8 * This,
  26040. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  26041. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  26042. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  26043. ID3D12GraphicsCommandList8 * This,
  26044. _In_ UINT StartSlot,
  26045. _In_ UINT NumViews,
  26046. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  26047. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  26048. void ( STDMETHODCALLTYPE *SOSetTargets )(
  26049. ID3D12GraphicsCommandList8 * This,
  26050. _In_ UINT StartSlot,
  26051. _In_ UINT NumViews,
  26052. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  26053. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  26054. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  26055. ID3D12GraphicsCommandList8 * This,
  26056. _In_ UINT NumRenderTargetDescriptors,
  26057. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  26058. _In_ BOOL RTsSingleHandleToDescriptorRange,
  26059. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  26060. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  26061. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  26062. ID3D12GraphicsCommandList8 * This,
  26063. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  26064. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  26065. _In_ FLOAT Depth,
  26066. _In_ UINT8 Stencil,
  26067. _In_ UINT NumRects,
  26068. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26069. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  26070. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  26071. ID3D12GraphicsCommandList8 * This,
  26072. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  26073. _In_ const FLOAT ColorRGBA[ 4 ],
  26074. _In_ UINT NumRects,
  26075. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26076. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  26077. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  26078. ID3D12GraphicsCommandList8 * This,
  26079. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  26080. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  26081. _In_ ID3D12Resource *pResource,
  26082. _In_ const UINT Values[ 4 ],
  26083. _In_ UINT NumRects,
  26084. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26085. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  26086. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  26087. ID3D12GraphicsCommandList8 * This,
  26088. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  26089. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  26090. _In_ ID3D12Resource *pResource,
  26091. _In_ const FLOAT Values[ 4 ],
  26092. _In_ UINT NumRects,
  26093. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26094. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  26095. void ( STDMETHODCALLTYPE *DiscardResource )(
  26096. ID3D12GraphicsCommandList8 * This,
  26097. _In_ ID3D12Resource *pResource,
  26098. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  26099. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  26100. void ( STDMETHODCALLTYPE *BeginQuery )(
  26101. ID3D12GraphicsCommandList8 * This,
  26102. _In_ ID3D12QueryHeap *pQueryHeap,
  26103. _In_ D3D12_QUERY_TYPE Type,
  26104. _In_ UINT Index);
  26105. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  26106. void ( STDMETHODCALLTYPE *EndQuery )(
  26107. ID3D12GraphicsCommandList8 * This,
  26108. _In_ ID3D12QueryHeap *pQueryHeap,
  26109. _In_ D3D12_QUERY_TYPE Type,
  26110. _In_ UINT Index);
  26111. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  26112. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  26113. ID3D12GraphicsCommandList8 * This,
  26114. _In_ ID3D12QueryHeap *pQueryHeap,
  26115. _In_ D3D12_QUERY_TYPE Type,
  26116. _In_ UINT StartIndex,
  26117. _In_ UINT NumQueries,
  26118. _In_ ID3D12Resource *pDestinationBuffer,
  26119. _In_ UINT64 AlignedDestinationBufferOffset);
  26120. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  26121. void ( STDMETHODCALLTYPE *SetPredication )(
  26122. ID3D12GraphicsCommandList8 * This,
  26123. _In_opt_ ID3D12Resource *pBuffer,
  26124. _In_ UINT64 AlignedBufferOffset,
  26125. _In_ D3D12_PREDICATION_OP Operation);
  26126. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  26127. void ( STDMETHODCALLTYPE *SetMarker )(
  26128. ID3D12GraphicsCommandList8 * This,
  26129. UINT Metadata,
  26130. _In_reads_bytes_opt_(Size) const void *pData,
  26131. UINT Size);
  26132. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  26133. void ( STDMETHODCALLTYPE *BeginEvent )(
  26134. ID3D12GraphicsCommandList8 * This,
  26135. UINT Metadata,
  26136. _In_reads_bytes_opt_(Size) const void *pData,
  26137. UINT Size);
  26138. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  26139. void ( STDMETHODCALLTYPE *EndEvent )(
  26140. ID3D12GraphicsCommandList8 * This);
  26141. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  26142. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  26143. ID3D12GraphicsCommandList8 * This,
  26144. _In_ ID3D12CommandSignature *pCommandSignature,
  26145. _In_ UINT MaxCommandCount,
  26146. _In_ ID3D12Resource *pArgumentBuffer,
  26147. _In_ UINT64 ArgumentBufferOffset,
  26148. _In_opt_ ID3D12Resource *pCountBuffer,
  26149. _In_ UINT64 CountBufferOffset);
  26150. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  26151. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  26152. ID3D12GraphicsCommandList8 * This,
  26153. _In_ ID3D12Resource *pDstBuffer,
  26154. UINT64 DstOffset,
  26155. _In_ ID3D12Resource *pSrcBuffer,
  26156. UINT64 SrcOffset,
  26157. UINT Dependencies,
  26158. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  26159. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  26160. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  26161. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  26162. ID3D12GraphicsCommandList8 * This,
  26163. _In_ ID3D12Resource *pDstBuffer,
  26164. UINT64 DstOffset,
  26165. _In_ ID3D12Resource *pSrcBuffer,
  26166. UINT64 SrcOffset,
  26167. UINT Dependencies,
  26168. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  26169. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  26170. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  26171. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  26172. ID3D12GraphicsCommandList8 * This,
  26173. _In_ FLOAT Min,
  26174. _In_ FLOAT Max);
  26175. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  26176. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  26177. ID3D12GraphicsCommandList8 * This,
  26178. _In_ UINT NumSamplesPerPixel,
  26179. _In_ UINT NumPixels,
  26180. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  26181. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  26182. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  26183. ID3D12GraphicsCommandList8 * This,
  26184. _In_ ID3D12Resource *pDstResource,
  26185. _In_ UINT DstSubresource,
  26186. _In_ UINT DstX,
  26187. _In_ UINT DstY,
  26188. _In_ ID3D12Resource *pSrcResource,
  26189. _In_ UINT SrcSubresource,
  26190. _In_opt_ D3D12_RECT *pSrcRect,
  26191. _In_ DXGI_FORMAT Format,
  26192. _In_ D3D12_RESOLVE_MODE ResolveMode);
  26193. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  26194. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  26195. ID3D12GraphicsCommandList8 * This,
  26196. _In_ UINT Mask);
  26197. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  26198. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  26199. ID3D12GraphicsCommandList8 * This,
  26200. UINT Count,
  26201. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  26202. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  26203. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  26204. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  26205. ID3D12GraphicsCommandList8 * This,
  26206. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  26207. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  26208. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  26209. ID3D12GraphicsCommandList8 * This,
  26210. _In_ UINT NumRenderTargets,
  26211. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  26212. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  26213. D3D12_RENDER_PASS_FLAGS Flags);
  26214. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  26215. void ( STDMETHODCALLTYPE *EndRenderPass )(
  26216. ID3D12GraphicsCommandList8 * This);
  26217. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  26218. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  26219. ID3D12GraphicsCommandList8 * This,
  26220. _In_ ID3D12MetaCommand *pMetaCommand,
  26221. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  26222. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  26223. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  26224. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  26225. ID3D12GraphicsCommandList8 * This,
  26226. _In_ ID3D12MetaCommand *pMetaCommand,
  26227. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  26228. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  26229. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  26230. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  26231. ID3D12GraphicsCommandList8 * This,
  26232. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  26233. _In_ UINT NumPostbuildInfoDescs,
  26234. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  26235. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  26236. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  26237. ID3D12GraphicsCommandList8 * This,
  26238. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  26239. _In_ UINT NumSourceAccelerationStructures,
  26240. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  26241. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  26242. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  26243. ID3D12GraphicsCommandList8 * This,
  26244. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  26245. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  26246. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  26247. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  26248. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  26249. ID3D12GraphicsCommandList8 * This,
  26250. _In_ ID3D12StateObject *pStateObject);
  26251. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  26252. void ( STDMETHODCALLTYPE *DispatchRays )(
  26253. ID3D12GraphicsCommandList8 * This,
  26254. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  26255. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
  26256. void ( STDMETHODCALLTYPE *RSSetShadingRate )(
  26257. ID3D12GraphicsCommandList8 * This,
  26258. _In_ D3D12_SHADING_RATE baseShadingRate,
  26259. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
  26260. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
  26261. void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
  26262. ID3D12GraphicsCommandList8 * This,
  26263. _In_opt_ ID3D12Resource *shadingRateImage);
  26264. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
  26265. void ( STDMETHODCALLTYPE *DispatchMesh )(
  26266. ID3D12GraphicsCommandList8 * This,
  26267. _In_ UINT ThreadGroupCountX,
  26268. _In_ UINT ThreadGroupCountY,
  26269. _In_ UINT ThreadGroupCountZ);
  26270. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
  26271. void ( STDMETHODCALLTYPE *Barrier )(
  26272. ID3D12GraphicsCommandList8 * This,
  26273. UINT32 NumBarrierGroups,
  26274. _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
  26275. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
  26276. void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
  26277. ID3D12GraphicsCommandList8 * This,
  26278. _In_ UINT FrontStencilRef,
  26279. _In_ UINT BackStencilRef);
  26280. END_INTERFACE
  26281. } ID3D12GraphicsCommandList8Vtbl;
  26282. interface ID3D12GraphicsCommandList8
  26283. {
  26284. CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl;
  26285. };
  26286. #ifdef COBJMACROS
  26287. #define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \
  26288. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  26289. #define ID3D12GraphicsCommandList8_AddRef(This) \
  26290. ( (This)->lpVtbl -> AddRef(This) )
  26291. #define ID3D12GraphicsCommandList8_Release(This) \
  26292. ( (This)->lpVtbl -> Release(This) )
  26293. #define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \
  26294. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  26295. #define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \
  26296. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  26297. #define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \
  26298. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  26299. #define ID3D12GraphicsCommandList8_SetName(This,Name) \
  26300. ( (This)->lpVtbl -> SetName(This,Name) )
  26301. #define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \
  26302. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  26303. #define ID3D12GraphicsCommandList8_GetType(This) \
  26304. ( (This)->lpVtbl -> GetType(This) )
  26305. #define ID3D12GraphicsCommandList8_Close(This) \
  26306. ( (This)->lpVtbl -> Close(This) )
  26307. #define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \
  26308. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  26309. #define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \
  26310. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  26311. #define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  26312. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  26313. #define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  26314. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  26315. #define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  26316. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  26317. #define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  26318. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  26319. #define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  26320. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  26321. #define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \
  26322. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  26323. #define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  26324. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  26325. #define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  26326. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  26327. #define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \
  26328. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  26329. #define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \
  26330. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  26331. #define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \
  26332. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  26333. #define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \
  26334. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  26335. #define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \
  26336. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  26337. #define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \
  26338. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  26339. #define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \
  26340. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  26341. #define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \
  26342. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  26343. #define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  26344. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  26345. #define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \
  26346. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  26347. #define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \
  26348. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  26349. #define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  26350. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  26351. #define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  26352. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  26353. #define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  26354. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  26355. #define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  26356. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  26357. #define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  26358. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  26359. #define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  26360. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  26361. #define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  26362. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  26363. #define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  26364. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  26365. #define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  26366. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  26367. #define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  26368. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  26369. #define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  26370. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  26371. #define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  26372. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  26373. #define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \
  26374. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  26375. #define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  26376. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  26377. #define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \
  26378. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  26379. #define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  26380. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  26381. #define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  26382. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  26383. #define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  26384. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  26385. #define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  26386. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  26387. #define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  26388. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  26389. #define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \
  26390. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  26391. #define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \
  26392. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  26393. #define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \
  26394. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  26395. #define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  26396. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  26397. #define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  26398. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  26399. #define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \
  26400. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  26401. #define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \
  26402. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  26403. #define ID3D12GraphicsCommandList8_EndEvent(This) \
  26404. ( (This)->lpVtbl -> EndEvent(This) )
  26405. #define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  26406. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  26407. #define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  26408. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  26409. #define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  26410. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  26411. #define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \
  26412. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  26413. #define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  26414. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  26415. #define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  26416. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  26417. #define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \
  26418. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  26419. #define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \
  26420. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  26421. #define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \
  26422. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  26423. #define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  26424. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  26425. #define ID3D12GraphicsCommandList8_EndRenderPass(This) \
  26426. ( (This)->lpVtbl -> EndRenderPass(This) )
  26427. #define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  26428. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  26429. #define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  26430. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  26431. #define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  26432. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  26433. #define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  26434. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  26435. #define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  26436. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  26437. #define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \
  26438. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  26439. #define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \
  26440. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  26441. #define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \
  26442. ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
  26443. #define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \
  26444. ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
  26445. #define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  26446. ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  26447. #define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \
  26448. ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
  26449. #define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
  26450. ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
  26451. #endif /* COBJMACROS */
  26452. #endif /* C style interface */
  26453. #endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */
  26454. #ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
  26455. #define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
  26456. /* interface ID3D12GraphicsCommandList9 */
  26457. /* [unique][local][object][uuid] */
  26458. EXTERN_C const IID IID_ID3D12GraphicsCommandList9;
  26459. #if defined(__cplusplus) && !defined(CINTERFACE)
  26460. MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1")
  26461. ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8
  26462. {
  26463. public:
  26464. virtual void STDMETHODCALLTYPE RSSetDepthBias(
  26465. _In_ FLOAT DepthBias,
  26466. _In_ FLOAT DepthBiasClamp,
  26467. _In_ FLOAT SlopeScaledDepthBias) = 0;
  26468. virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue(
  26469. _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0;
  26470. };
  26471. #else /* C style interface */
  26472. typedef struct ID3D12GraphicsCommandList9Vtbl
  26473. {
  26474. BEGIN_INTERFACE
  26475. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  26476. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  26477. ID3D12GraphicsCommandList9 * This,
  26478. REFIID riid,
  26479. _COM_Outptr_ void **ppvObject);
  26480. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  26481. ULONG ( STDMETHODCALLTYPE *AddRef )(
  26482. ID3D12GraphicsCommandList9 * This);
  26483. DECLSPEC_XFGVIRT(IUnknown, Release)
  26484. ULONG ( STDMETHODCALLTYPE *Release )(
  26485. ID3D12GraphicsCommandList9 * This);
  26486. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  26487. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  26488. ID3D12GraphicsCommandList9 * This,
  26489. _In_ REFGUID guid,
  26490. _Inout_ UINT *pDataSize,
  26491. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  26492. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  26493. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  26494. ID3D12GraphicsCommandList9 * This,
  26495. _In_ REFGUID guid,
  26496. _In_ UINT DataSize,
  26497. _In_reads_bytes_opt_( DataSize ) const void *pData);
  26498. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  26499. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  26500. ID3D12GraphicsCommandList9 * This,
  26501. _In_ REFGUID guid,
  26502. _In_opt_ const IUnknown *pData);
  26503. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  26504. HRESULT ( STDMETHODCALLTYPE *SetName )(
  26505. ID3D12GraphicsCommandList9 * This,
  26506. _In_z_ LPCWSTR Name);
  26507. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  26508. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  26509. ID3D12GraphicsCommandList9 * This,
  26510. REFIID riid,
  26511. _COM_Outptr_opt_ void **ppvDevice);
  26512. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  26513. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  26514. ID3D12GraphicsCommandList9 * This);
  26515. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  26516. HRESULT ( STDMETHODCALLTYPE *Close )(
  26517. ID3D12GraphicsCommandList9 * This);
  26518. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  26519. HRESULT ( STDMETHODCALLTYPE *Reset )(
  26520. ID3D12GraphicsCommandList9 * This,
  26521. _In_ ID3D12CommandAllocator *pAllocator,
  26522. _In_opt_ ID3D12PipelineState *pInitialState);
  26523. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  26524. void ( STDMETHODCALLTYPE *ClearState )(
  26525. ID3D12GraphicsCommandList9 * This,
  26526. _In_opt_ ID3D12PipelineState *pPipelineState);
  26527. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  26528. void ( STDMETHODCALLTYPE *DrawInstanced )(
  26529. ID3D12GraphicsCommandList9 * This,
  26530. _In_ UINT VertexCountPerInstance,
  26531. _In_ UINT InstanceCount,
  26532. _In_ UINT StartVertexLocation,
  26533. _In_ UINT StartInstanceLocation);
  26534. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  26535. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  26536. ID3D12GraphicsCommandList9 * This,
  26537. _In_ UINT IndexCountPerInstance,
  26538. _In_ UINT InstanceCount,
  26539. _In_ UINT StartIndexLocation,
  26540. _In_ INT BaseVertexLocation,
  26541. _In_ UINT StartInstanceLocation);
  26542. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  26543. void ( STDMETHODCALLTYPE *Dispatch )(
  26544. ID3D12GraphicsCommandList9 * This,
  26545. _In_ UINT ThreadGroupCountX,
  26546. _In_ UINT ThreadGroupCountY,
  26547. _In_ UINT ThreadGroupCountZ);
  26548. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  26549. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  26550. ID3D12GraphicsCommandList9 * This,
  26551. _In_ ID3D12Resource *pDstBuffer,
  26552. UINT64 DstOffset,
  26553. _In_ ID3D12Resource *pSrcBuffer,
  26554. UINT64 SrcOffset,
  26555. UINT64 NumBytes);
  26556. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  26557. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  26558. ID3D12GraphicsCommandList9 * This,
  26559. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  26560. UINT DstX,
  26561. UINT DstY,
  26562. UINT DstZ,
  26563. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  26564. _In_opt_ const D3D12_BOX *pSrcBox);
  26565. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  26566. void ( STDMETHODCALLTYPE *CopyResource )(
  26567. ID3D12GraphicsCommandList9 * This,
  26568. _In_ ID3D12Resource *pDstResource,
  26569. _In_ ID3D12Resource *pSrcResource);
  26570. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  26571. void ( STDMETHODCALLTYPE *CopyTiles )(
  26572. ID3D12GraphicsCommandList9 * This,
  26573. _In_ ID3D12Resource *pTiledResource,
  26574. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  26575. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  26576. _In_ ID3D12Resource *pBuffer,
  26577. UINT64 BufferStartOffsetInBytes,
  26578. D3D12_TILE_COPY_FLAGS Flags);
  26579. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  26580. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  26581. ID3D12GraphicsCommandList9 * This,
  26582. _In_ ID3D12Resource *pDstResource,
  26583. _In_ UINT DstSubresource,
  26584. _In_ ID3D12Resource *pSrcResource,
  26585. _In_ UINT SrcSubresource,
  26586. _In_ DXGI_FORMAT Format);
  26587. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  26588. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  26589. ID3D12GraphicsCommandList9 * This,
  26590. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  26591. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  26592. void ( STDMETHODCALLTYPE *RSSetViewports )(
  26593. ID3D12GraphicsCommandList9 * This,
  26594. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  26595. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  26596. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  26597. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  26598. ID3D12GraphicsCommandList9 * This,
  26599. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  26600. _In_reads_( NumRects) const D3D12_RECT *pRects);
  26601. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  26602. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  26603. ID3D12GraphicsCommandList9 * This,
  26604. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  26605. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  26606. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  26607. ID3D12GraphicsCommandList9 * This,
  26608. _In_ UINT StencilRef);
  26609. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  26610. void ( STDMETHODCALLTYPE *SetPipelineState )(
  26611. ID3D12GraphicsCommandList9 * This,
  26612. _In_ ID3D12PipelineState *pPipelineState);
  26613. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  26614. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  26615. ID3D12GraphicsCommandList9 * This,
  26616. _In_ UINT NumBarriers,
  26617. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  26618. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  26619. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  26620. ID3D12GraphicsCommandList9 * This,
  26621. _In_ ID3D12GraphicsCommandList *pCommandList);
  26622. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  26623. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  26624. ID3D12GraphicsCommandList9 * This,
  26625. _In_ UINT NumDescriptorHeaps,
  26626. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  26627. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  26628. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  26629. ID3D12GraphicsCommandList9 * This,
  26630. _In_opt_ ID3D12RootSignature *pRootSignature);
  26631. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  26632. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  26633. ID3D12GraphicsCommandList9 * This,
  26634. _In_opt_ ID3D12RootSignature *pRootSignature);
  26635. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  26636. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  26637. ID3D12GraphicsCommandList9 * This,
  26638. _In_ UINT RootParameterIndex,
  26639. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  26640. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  26641. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  26642. ID3D12GraphicsCommandList9 * This,
  26643. _In_ UINT RootParameterIndex,
  26644. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  26645. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  26646. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  26647. ID3D12GraphicsCommandList9 * This,
  26648. _In_ UINT RootParameterIndex,
  26649. _In_ UINT SrcData,
  26650. _In_ UINT DestOffsetIn32BitValues);
  26651. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  26652. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  26653. ID3D12GraphicsCommandList9 * This,
  26654. _In_ UINT RootParameterIndex,
  26655. _In_ UINT SrcData,
  26656. _In_ UINT DestOffsetIn32BitValues);
  26657. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  26658. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  26659. ID3D12GraphicsCommandList9 * This,
  26660. _In_ UINT RootParameterIndex,
  26661. _In_ UINT Num32BitValuesToSet,
  26662. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  26663. _In_ UINT DestOffsetIn32BitValues);
  26664. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  26665. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  26666. ID3D12GraphicsCommandList9 * This,
  26667. _In_ UINT RootParameterIndex,
  26668. _In_ UINT Num32BitValuesToSet,
  26669. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  26670. _In_ UINT DestOffsetIn32BitValues);
  26671. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  26672. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  26673. ID3D12GraphicsCommandList9 * This,
  26674. _In_ UINT RootParameterIndex,
  26675. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26676. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  26677. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  26678. ID3D12GraphicsCommandList9 * This,
  26679. _In_ UINT RootParameterIndex,
  26680. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26681. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  26682. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  26683. ID3D12GraphicsCommandList9 * This,
  26684. _In_ UINT RootParameterIndex,
  26685. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26686. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  26687. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  26688. ID3D12GraphicsCommandList9 * This,
  26689. _In_ UINT RootParameterIndex,
  26690. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26691. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  26692. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  26693. ID3D12GraphicsCommandList9 * This,
  26694. _In_ UINT RootParameterIndex,
  26695. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26696. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  26697. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  26698. ID3D12GraphicsCommandList9 * This,
  26699. _In_ UINT RootParameterIndex,
  26700. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  26701. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  26702. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  26703. ID3D12GraphicsCommandList9 * This,
  26704. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  26705. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  26706. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  26707. ID3D12GraphicsCommandList9 * This,
  26708. _In_ UINT StartSlot,
  26709. _In_ UINT NumViews,
  26710. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  26711. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  26712. void ( STDMETHODCALLTYPE *SOSetTargets )(
  26713. ID3D12GraphicsCommandList9 * This,
  26714. _In_ UINT StartSlot,
  26715. _In_ UINT NumViews,
  26716. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  26717. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  26718. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  26719. ID3D12GraphicsCommandList9 * This,
  26720. _In_ UINT NumRenderTargetDescriptors,
  26721. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  26722. _In_ BOOL RTsSingleHandleToDescriptorRange,
  26723. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  26724. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  26725. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  26726. ID3D12GraphicsCommandList9 * This,
  26727. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  26728. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  26729. _In_ FLOAT Depth,
  26730. _In_ UINT8 Stencil,
  26731. _In_ UINT NumRects,
  26732. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26733. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  26734. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  26735. ID3D12GraphicsCommandList9 * This,
  26736. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  26737. _In_ const FLOAT ColorRGBA[ 4 ],
  26738. _In_ UINT NumRects,
  26739. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26740. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  26741. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  26742. ID3D12GraphicsCommandList9 * This,
  26743. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  26744. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  26745. _In_ ID3D12Resource *pResource,
  26746. _In_ const UINT Values[ 4 ],
  26747. _In_ UINT NumRects,
  26748. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26749. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  26750. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  26751. ID3D12GraphicsCommandList9 * This,
  26752. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  26753. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  26754. _In_ ID3D12Resource *pResource,
  26755. _In_ const FLOAT Values[ 4 ],
  26756. _In_ UINT NumRects,
  26757. _In_reads_(NumRects) const D3D12_RECT *pRects);
  26758. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  26759. void ( STDMETHODCALLTYPE *DiscardResource )(
  26760. ID3D12GraphicsCommandList9 * This,
  26761. _In_ ID3D12Resource *pResource,
  26762. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  26763. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  26764. void ( STDMETHODCALLTYPE *BeginQuery )(
  26765. ID3D12GraphicsCommandList9 * This,
  26766. _In_ ID3D12QueryHeap *pQueryHeap,
  26767. _In_ D3D12_QUERY_TYPE Type,
  26768. _In_ UINT Index);
  26769. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  26770. void ( STDMETHODCALLTYPE *EndQuery )(
  26771. ID3D12GraphicsCommandList9 * This,
  26772. _In_ ID3D12QueryHeap *pQueryHeap,
  26773. _In_ D3D12_QUERY_TYPE Type,
  26774. _In_ UINT Index);
  26775. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  26776. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  26777. ID3D12GraphicsCommandList9 * This,
  26778. _In_ ID3D12QueryHeap *pQueryHeap,
  26779. _In_ D3D12_QUERY_TYPE Type,
  26780. _In_ UINT StartIndex,
  26781. _In_ UINT NumQueries,
  26782. _In_ ID3D12Resource *pDestinationBuffer,
  26783. _In_ UINT64 AlignedDestinationBufferOffset);
  26784. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  26785. void ( STDMETHODCALLTYPE *SetPredication )(
  26786. ID3D12GraphicsCommandList9 * This,
  26787. _In_opt_ ID3D12Resource *pBuffer,
  26788. _In_ UINT64 AlignedBufferOffset,
  26789. _In_ D3D12_PREDICATION_OP Operation);
  26790. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  26791. void ( STDMETHODCALLTYPE *SetMarker )(
  26792. ID3D12GraphicsCommandList9 * This,
  26793. UINT Metadata,
  26794. _In_reads_bytes_opt_(Size) const void *pData,
  26795. UINT Size);
  26796. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  26797. void ( STDMETHODCALLTYPE *BeginEvent )(
  26798. ID3D12GraphicsCommandList9 * This,
  26799. UINT Metadata,
  26800. _In_reads_bytes_opt_(Size) const void *pData,
  26801. UINT Size);
  26802. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  26803. void ( STDMETHODCALLTYPE *EndEvent )(
  26804. ID3D12GraphicsCommandList9 * This);
  26805. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  26806. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  26807. ID3D12GraphicsCommandList9 * This,
  26808. _In_ ID3D12CommandSignature *pCommandSignature,
  26809. _In_ UINT MaxCommandCount,
  26810. _In_ ID3D12Resource *pArgumentBuffer,
  26811. _In_ UINT64 ArgumentBufferOffset,
  26812. _In_opt_ ID3D12Resource *pCountBuffer,
  26813. _In_ UINT64 CountBufferOffset);
  26814. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  26815. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  26816. ID3D12GraphicsCommandList9 * This,
  26817. _In_ ID3D12Resource *pDstBuffer,
  26818. UINT64 DstOffset,
  26819. _In_ ID3D12Resource *pSrcBuffer,
  26820. UINT64 SrcOffset,
  26821. UINT Dependencies,
  26822. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  26823. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  26824. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  26825. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  26826. ID3D12GraphicsCommandList9 * This,
  26827. _In_ ID3D12Resource *pDstBuffer,
  26828. UINT64 DstOffset,
  26829. _In_ ID3D12Resource *pSrcBuffer,
  26830. UINT64 SrcOffset,
  26831. UINT Dependencies,
  26832. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  26833. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  26834. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  26835. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  26836. ID3D12GraphicsCommandList9 * This,
  26837. _In_ FLOAT Min,
  26838. _In_ FLOAT Max);
  26839. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  26840. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  26841. ID3D12GraphicsCommandList9 * This,
  26842. _In_ UINT NumSamplesPerPixel,
  26843. _In_ UINT NumPixels,
  26844. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  26845. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  26846. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  26847. ID3D12GraphicsCommandList9 * This,
  26848. _In_ ID3D12Resource *pDstResource,
  26849. _In_ UINT DstSubresource,
  26850. _In_ UINT DstX,
  26851. _In_ UINT DstY,
  26852. _In_ ID3D12Resource *pSrcResource,
  26853. _In_ UINT SrcSubresource,
  26854. _In_opt_ D3D12_RECT *pSrcRect,
  26855. _In_ DXGI_FORMAT Format,
  26856. _In_ D3D12_RESOLVE_MODE ResolveMode);
  26857. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  26858. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  26859. ID3D12GraphicsCommandList9 * This,
  26860. _In_ UINT Mask);
  26861. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  26862. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  26863. ID3D12GraphicsCommandList9 * This,
  26864. UINT Count,
  26865. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  26866. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  26867. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  26868. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  26869. ID3D12GraphicsCommandList9 * This,
  26870. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  26871. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  26872. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  26873. ID3D12GraphicsCommandList9 * This,
  26874. _In_ UINT NumRenderTargets,
  26875. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  26876. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  26877. D3D12_RENDER_PASS_FLAGS Flags);
  26878. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  26879. void ( STDMETHODCALLTYPE *EndRenderPass )(
  26880. ID3D12GraphicsCommandList9 * This);
  26881. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  26882. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  26883. ID3D12GraphicsCommandList9 * This,
  26884. _In_ ID3D12MetaCommand *pMetaCommand,
  26885. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  26886. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  26887. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  26888. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  26889. ID3D12GraphicsCommandList9 * This,
  26890. _In_ ID3D12MetaCommand *pMetaCommand,
  26891. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  26892. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  26893. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  26894. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  26895. ID3D12GraphicsCommandList9 * This,
  26896. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  26897. _In_ UINT NumPostbuildInfoDescs,
  26898. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  26899. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  26900. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  26901. ID3D12GraphicsCommandList9 * This,
  26902. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  26903. _In_ UINT NumSourceAccelerationStructures,
  26904. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  26905. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  26906. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  26907. ID3D12GraphicsCommandList9 * This,
  26908. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  26909. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  26910. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  26911. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  26912. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  26913. ID3D12GraphicsCommandList9 * This,
  26914. _In_ ID3D12StateObject *pStateObject);
  26915. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  26916. void ( STDMETHODCALLTYPE *DispatchRays )(
  26917. ID3D12GraphicsCommandList9 * This,
  26918. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  26919. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
  26920. void ( STDMETHODCALLTYPE *RSSetShadingRate )(
  26921. ID3D12GraphicsCommandList9 * This,
  26922. _In_ D3D12_SHADING_RATE baseShadingRate,
  26923. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
  26924. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
  26925. void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
  26926. ID3D12GraphicsCommandList9 * This,
  26927. _In_opt_ ID3D12Resource *shadingRateImage);
  26928. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
  26929. void ( STDMETHODCALLTYPE *DispatchMesh )(
  26930. ID3D12GraphicsCommandList9 * This,
  26931. _In_ UINT ThreadGroupCountX,
  26932. _In_ UINT ThreadGroupCountY,
  26933. _In_ UINT ThreadGroupCountZ);
  26934. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
  26935. void ( STDMETHODCALLTYPE *Barrier )(
  26936. ID3D12GraphicsCommandList9 * This,
  26937. UINT32 NumBarrierGroups,
  26938. _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
  26939. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
  26940. void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
  26941. ID3D12GraphicsCommandList9 * This,
  26942. _In_ UINT FrontStencilRef,
  26943. _In_ UINT BackStencilRef);
  26944. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
  26945. void ( STDMETHODCALLTYPE *RSSetDepthBias )(
  26946. ID3D12GraphicsCommandList9 * This,
  26947. _In_ FLOAT DepthBias,
  26948. _In_ FLOAT DepthBiasClamp,
  26949. _In_ FLOAT SlopeScaledDepthBias);
  26950. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
  26951. void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
  26952. ID3D12GraphicsCommandList9 * This,
  26953. _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
  26954. END_INTERFACE
  26955. } ID3D12GraphicsCommandList9Vtbl;
  26956. interface ID3D12GraphicsCommandList9
  26957. {
  26958. CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl;
  26959. };
  26960. #ifdef COBJMACROS
  26961. #define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \
  26962. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  26963. #define ID3D12GraphicsCommandList9_AddRef(This) \
  26964. ( (This)->lpVtbl -> AddRef(This) )
  26965. #define ID3D12GraphicsCommandList9_Release(This) \
  26966. ( (This)->lpVtbl -> Release(This) )
  26967. #define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \
  26968. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  26969. #define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \
  26970. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  26971. #define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \
  26972. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  26973. #define ID3D12GraphicsCommandList9_SetName(This,Name) \
  26974. ( (This)->lpVtbl -> SetName(This,Name) )
  26975. #define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \
  26976. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  26977. #define ID3D12GraphicsCommandList9_GetType(This) \
  26978. ( (This)->lpVtbl -> GetType(This) )
  26979. #define ID3D12GraphicsCommandList9_Close(This) \
  26980. ( (This)->lpVtbl -> Close(This) )
  26981. #define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \
  26982. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  26983. #define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \
  26984. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  26985. #define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  26986. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  26987. #define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  26988. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  26989. #define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  26990. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  26991. #define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  26992. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  26993. #define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  26994. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  26995. #define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \
  26996. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  26997. #define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  26998. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  26999. #define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  27000. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  27001. #define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \
  27002. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  27003. #define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \
  27004. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  27005. #define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \
  27006. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  27007. #define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \
  27008. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  27009. #define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \
  27010. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  27011. #define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \
  27012. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  27013. #define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \
  27014. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  27015. #define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \
  27016. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  27017. #define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  27018. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  27019. #define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \
  27020. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  27021. #define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \
  27022. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  27023. #define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  27024. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  27025. #define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  27026. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  27027. #define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  27028. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  27029. #define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  27030. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  27031. #define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  27032. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  27033. #define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  27034. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  27035. #define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  27036. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  27037. #define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  27038. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  27039. #define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  27040. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  27041. #define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  27042. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  27043. #define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  27044. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  27045. #define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  27046. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  27047. #define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \
  27048. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  27049. #define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  27050. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  27051. #define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \
  27052. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  27053. #define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  27054. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  27055. #define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  27056. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  27057. #define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  27058. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  27059. #define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  27060. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  27061. #define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  27062. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  27063. #define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \
  27064. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  27065. #define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \
  27066. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  27067. #define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \
  27068. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  27069. #define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  27070. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  27071. #define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  27072. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  27073. #define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \
  27074. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  27075. #define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \
  27076. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  27077. #define ID3D12GraphicsCommandList9_EndEvent(This) \
  27078. ( (This)->lpVtbl -> EndEvent(This) )
  27079. #define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  27080. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  27081. #define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  27082. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  27083. #define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  27084. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  27085. #define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \
  27086. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  27087. #define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  27088. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  27089. #define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  27090. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  27091. #define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \
  27092. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  27093. #define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \
  27094. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  27095. #define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \
  27096. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  27097. #define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  27098. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  27099. #define ID3D12GraphicsCommandList9_EndRenderPass(This) \
  27100. ( (This)->lpVtbl -> EndRenderPass(This) )
  27101. #define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  27102. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  27103. #define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  27104. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  27105. #define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  27106. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  27107. #define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  27108. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  27109. #define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  27110. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  27111. #define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \
  27112. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  27113. #define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \
  27114. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  27115. #define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \
  27116. ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
  27117. #define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \
  27118. ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
  27119. #define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  27120. ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  27121. #define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \
  27122. ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
  27123. #define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
  27124. ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
  27125. #define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
  27126. ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
  27127. #define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
  27128. ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
  27129. #endif /* COBJMACROS */
  27130. #endif /* C style interface */
  27131. #endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */
  27132. #ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
  27133. #define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
  27134. /* interface ID3D12GraphicsCommandList10 */
  27135. /* [unique][local][object][uuid] */
  27136. EXTERN_C const IID IID_ID3D12GraphicsCommandList10;
  27137. #if defined(__cplusplus) && !defined(CINTERFACE)
  27138. MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc")
  27139. ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9
  27140. {
  27141. public:
  27142. virtual void STDMETHODCALLTYPE SetProgram(
  27143. _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0;
  27144. virtual void STDMETHODCALLTYPE DispatchGraph(
  27145. _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0;
  27146. };
  27147. #else /* C style interface */
  27148. typedef struct ID3D12GraphicsCommandList10Vtbl
  27149. {
  27150. BEGIN_INTERFACE
  27151. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  27152. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  27153. ID3D12GraphicsCommandList10 * This,
  27154. REFIID riid,
  27155. _COM_Outptr_ void **ppvObject);
  27156. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  27157. ULONG ( STDMETHODCALLTYPE *AddRef )(
  27158. ID3D12GraphicsCommandList10 * This);
  27159. DECLSPEC_XFGVIRT(IUnknown, Release)
  27160. ULONG ( STDMETHODCALLTYPE *Release )(
  27161. ID3D12GraphicsCommandList10 * This);
  27162. DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
  27163. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  27164. ID3D12GraphicsCommandList10 * This,
  27165. _In_ REFGUID guid,
  27166. _Inout_ UINT *pDataSize,
  27167. _Out_writes_bytes_opt_( *pDataSize ) void *pData);
  27168. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
  27169. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  27170. ID3D12GraphicsCommandList10 * This,
  27171. _In_ REFGUID guid,
  27172. _In_ UINT DataSize,
  27173. _In_reads_bytes_opt_( DataSize ) const void *pData);
  27174. DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
  27175. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  27176. ID3D12GraphicsCommandList10 * This,
  27177. _In_ REFGUID guid,
  27178. _In_opt_ const IUnknown *pData);
  27179. DECLSPEC_XFGVIRT(ID3D12Object, SetName)
  27180. HRESULT ( STDMETHODCALLTYPE *SetName )(
  27181. ID3D12GraphicsCommandList10 * This,
  27182. _In_z_ LPCWSTR Name);
  27183. DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
  27184. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  27185. ID3D12GraphicsCommandList10 * This,
  27186. REFIID riid,
  27187. _COM_Outptr_opt_ void **ppvDevice);
  27188. DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
  27189. D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
  27190. ID3D12GraphicsCommandList10 * This);
  27191. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
  27192. HRESULT ( STDMETHODCALLTYPE *Close )(
  27193. ID3D12GraphicsCommandList10 * This);
  27194. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
  27195. HRESULT ( STDMETHODCALLTYPE *Reset )(
  27196. ID3D12GraphicsCommandList10 * This,
  27197. _In_ ID3D12CommandAllocator *pAllocator,
  27198. _In_opt_ ID3D12PipelineState *pInitialState);
  27199. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
  27200. void ( STDMETHODCALLTYPE *ClearState )(
  27201. ID3D12GraphicsCommandList10 * This,
  27202. _In_opt_ ID3D12PipelineState *pPipelineState);
  27203. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
  27204. void ( STDMETHODCALLTYPE *DrawInstanced )(
  27205. ID3D12GraphicsCommandList10 * This,
  27206. _In_ UINT VertexCountPerInstance,
  27207. _In_ UINT InstanceCount,
  27208. _In_ UINT StartVertexLocation,
  27209. _In_ UINT StartInstanceLocation);
  27210. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
  27211. void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
  27212. ID3D12GraphicsCommandList10 * This,
  27213. _In_ UINT IndexCountPerInstance,
  27214. _In_ UINT InstanceCount,
  27215. _In_ UINT StartIndexLocation,
  27216. _In_ INT BaseVertexLocation,
  27217. _In_ UINT StartInstanceLocation);
  27218. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
  27219. void ( STDMETHODCALLTYPE *Dispatch )(
  27220. ID3D12GraphicsCommandList10 * This,
  27221. _In_ UINT ThreadGroupCountX,
  27222. _In_ UINT ThreadGroupCountY,
  27223. _In_ UINT ThreadGroupCountZ);
  27224. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
  27225. void ( STDMETHODCALLTYPE *CopyBufferRegion )(
  27226. ID3D12GraphicsCommandList10 * This,
  27227. _In_ ID3D12Resource *pDstBuffer,
  27228. UINT64 DstOffset,
  27229. _In_ ID3D12Resource *pSrcBuffer,
  27230. UINT64 SrcOffset,
  27231. UINT64 NumBytes);
  27232. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
  27233. void ( STDMETHODCALLTYPE *CopyTextureRegion )(
  27234. ID3D12GraphicsCommandList10 * This,
  27235. _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
  27236. UINT DstX,
  27237. UINT DstY,
  27238. UINT DstZ,
  27239. _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
  27240. _In_opt_ const D3D12_BOX *pSrcBox);
  27241. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
  27242. void ( STDMETHODCALLTYPE *CopyResource )(
  27243. ID3D12GraphicsCommandList10 * This,
  27244. _In_ ID3D12Resource *pDstResource,
  27245. _In_ ID3D12Resource *pSrcResource);
  27246. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
  27247. void ( STDMETHODCALLTYPE *CopyTiles )(
  27248. ID3D12GraphicsCommandList10 * This,
  27249. _In_ ID3D12Resource *pTiledResource,
  27250. _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  27251. _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
  27252. _In_ ID3D12Resource *pBuffer,
  27253. UINT64 BufferStartOffsetInBytes,
  27254. D3D12_TILE_COPY_FLAGS Flags);
  27255. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
  27256. void ( STDMETHODCALLTYPE *ResolveSubresource )(
  27257. ID3D12GraphicsCommandList10 * This,
  27258. _In_ ID3D12Resource *pDstResource,
  27259. _In_ UINT DstSubresource,
  27260. _In_ ID3D12Resource *pSrcResource,
  27261. _In_ UINT SrcSubresource,
  27262. _In_ DXGI_FORMAT Format);
  27263. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
  27264. void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
  27265. ID3D12GraphicsCommandList10 * This,
  27266. _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
  27267. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
  27268. void ( STDMETHODCALLTYPE *RSSetViewports )(
  27269. ID3D12GraphicsCommandList10 * This,
  27270. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
  27271. _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
  27272. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
  27273. void ( STDMETHODCALLTYPE *RSSetScissorRects )(
  27274. ID3D12GraphicsCommandList10 * This,
  27275. _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
  27276. _In_reads_( NumRects) const D3D12_RECT *pRects);
  27277. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
  27278. void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
  27279. ID3D12GraphicsCommandList10 * This,
  27280. _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
  27281. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
  27282. void ( STDMETHODCALLTYPE *OMSetStencilRef )(
  27283. ID3D12GraphicsCommandList10 * This,
  27284. _In_ UINT StencilRef);
  27285. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
  27286. void ( STDMETHODCALLTYPE *SetPipelineState )(
  27287. ID3D12GraphicsCommandList10 * This,
  27288. _In_ ID3D12PipelineState *pPipelineState);
  27289. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
  27290. void ( STDMETHODCALLTYPE *ResourceBarrier )(
  27291. ID3D12GraphicsCommandList10 * This,
  27292. _In_ UINT NumBarriers,
  27293. _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
  27294. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
  27295. void ( STDMETHODCALLTYPE *ExecuteBundle )(
  27296. ID3D12GraphicsCommandList10 * This,
  27297. _In_ ID3D12GraphicsCommandList *pCommandList);
  27298. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
  27299. void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
  27300. ID3D12GraphicsCommandList10 * This,
  27301. _In_ UINT NumDescriptorHeaps,
  27302. _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
  27303. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
  27304. void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
  27305. ID3D12GraphicsCommandList10 * This,
  27306. _In_opt_ ID3D12RootSignature *pRootSignature);
  27307. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
  27308. void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
  27309. ID3D12GraphicsCommandList10 * This,
  27310. _In_opt_ ID3D12RootSignature *pRootSignature);
  27311. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
  27312. void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
  27313. ID3D12GraphicsCommandList10 * This,
  27314. _In_ UINT RootParameterIndex,
  27315. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  27316. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
  27317. void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
  27318. ID3D12GraphicsCommandList10 * This,
  27319. _In_ UINT RootParameterIndex,
  27320. _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
  27321. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
  27322. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
  27323. ID3D12GraphicsCommandList10 * This,
  27324. _In_ UINT RootParameterIndex,
  27325. _In_ UINT SrcData,
  27326. _In_ UINT DestOffsetIn32BitValues);
  27327. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
  27328. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
  27329. ID3D12GraphicsCommandList10 * This,
  27330. _In_ UINT RootParameterIndex,
  27331. _In_ UINT SrcData,
  27332. _In_ UINT DestOffsetIn32BitValues);
  27333. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
  27334. void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
  27335. ID3D12GraphicsCommandList10 * This,
  27336. _In_ UINT RootParameterIndex,
  27337. _In_ UINT Num32BitValuesToSet,
  27338. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  27339. _In_ UINT DestOffsetIn32BitValues);
  27340. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
  27341. void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
  27342. ID3D12GraphicsCommandList10 * This,
  27343. _In_ UINT RootParameterIndex,
  27344. _In_ UINT Num32BitValuesToSet,
  27345. _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
  27346. _In_ UINT DestOffsetIn32BitValues);
  27347. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
  27348. void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
  27349. ID3D12GraphicsCommandList10 * This,
  27350. _In_ UINT RootParameterIndex,
  27351. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  27352. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
  27353. void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
  27354. ID3D12GraphicsCommandList10 * This,
  27355. _In_ UINT RootParameterIndex,
  27356. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  27357. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
  27358. void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
  27359. ID3D12GraphicsCommandList10 * This,
  27360. _In_ UINT RootParameterIndex,
  27361. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  27362. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
  27363. void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
  27364. ID3D12GraphicsCommandList10 * This,
  27365. _In_ UINT RootParameterIndex,
  27366. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  27367. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
  27368. void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
  27369. ID3D12GraphicsCommandList10 * This,
  27370. _In_ UINT RootParameterIndex,
  27371. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  27372. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
  27373. void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
  27374. ID3D12GraphicsCommandList10 * This,
  27375. _In_ UINT RootParameterIndex,
  27376. _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
  27377. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
  27378. void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
  27379. ID3D12GraphicsCommandList10 * This,
  27380. _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
  27381. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
  27382. void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
  27383. ID3D12GraphicsCommandList10 * This,
  27384. _In_ UINT StartSlot,
  27385. _In_ UINT NumViews,
  27386. _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
  27387. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
  27388. void ( STDMETHODCALLTYPE *SOSetTargets )(
  27389. ID3D12GraphicsCommandList10 * This,
  27390. _In_ UINT StartSlot,
  27391. _In_ UINT NumViews,
  27392. _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
  27393. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
  27394. void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
  27395. ID3D12GraphicsCommandList10 * This,
  27396. _In_ UINT NumRenderTargetDescriptors,
  27397. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
  27398. _In_ BOOL RTsSingleHandleToDescriptorRange,
  27399. _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
  27400. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
  27401. void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
  27402. ID3D12GraphicsCommandList10 * This,
  27403. _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
  27404. _In_ D3D12_CLEAR_FLAGS ClearFlags,
  27405. _In_ FLOAT Depth,
  27406. _In_ UINT8 Stencil,
  27407. _In_ UINT NumRects,
  27408. _In_reads_(NumRects) const D3D12_RECT *pRects);
  27409. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
  27410. void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
  27411. ID3D12GraphicsCommandList10 * This,
  27412. _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
  27413. _In_ const FLOAT ColorRGBA[ 4 ],
  27414. _In_ UINT NumRects,
  27415. _In_reads_(NumRects) const D3D12_RECT *pRects);
  27416. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
  27417. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
  27418. ID3D12GraphicsCommandList10 * This,
  27419. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  27420. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  27421. _In_ ID3D12Resource *pResource,
  27422. _In_ const UINT Values[ 4 ],
  27423. _In_ UINT NumRects,
  27424. _In_reads_(NumRects) const D3D12_RECT *pRects);
  27425. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
  27426. void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
  27427. ID3D12GraphicsCommandList10 * This,
  27428. _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  27429. _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  27430. _In_ ID3D12Resource *pResource,
  27431. _In_ const FLOAT Values[ 4 ],
  27432. _In_ UINT NumRects,
  27433. _In_reads_(NumRects) const D3D12_RECT *pRects);
  27434. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
  27435. void ( STDMETHODCALLTYPE *DiscardResource )(
  27436. ID3D12GraphicsCommandList10 * This,
  27437. _In_ ID3D12Resource *pResource,
  27438. _In_opt_ const D3D12_DISCARD_REGION *pRegion);
  27439. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
  27440. void ( STDMETHODCALLTYPE *BeginQuery )(
  27441. ID3D12GraphicsCommandList10 * This,
  27442. _In_ ID3D12QueryHeap *pQueryHeap,
  27443. _In_ D3D12_QUERY_TYPE Type,
  27444. _In_ UINT Index);
  27445. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
  27446. void ( STDMETHODCALLTYPE *EndQuery )(
  27447. ID3D12GraphicsCommandList10 * This,
  27448. _In_ ID3D12QueryHeap *pQueryHeap,
  27449. _In_ D3D12_QUERY_TYPE Type,
  27450. _In_ UINT Index);
  27451. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
  27452. void ( STDMETHODCALLTYPE *ResolveQueryData )(
  27453. ID3D12GraphicsCommandList10 * This,
  27454. _In_ ID3D12QueryHeap *pQueryHeap,
  27455. _In_ D3D12_QUERY_TYPE Type,
  27456. _In_ UINT StartIndex,
  27457. _In_ UINT NumQueries,
  27458. _In_ ID3D12Resource *pDestinationBuffer,
  27459. _In_ UINT64 AlignedDestinationBufferOffset);
  27460. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
  27461. void ( STDMETHODCALLTYPE *SetPredication )(
  27462. ID3D12GraphicsCommandList10 * This,
  27463. _In_opt_ ID3D12Resource *pBuffer,
  27464. _In_ UINT64 AlignedBufferOffset,
  27465. _In_ D3D12_PREDICATION_OP Operation);
  27466. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
  27467. void ( STDMETHODCALLTYPE *SetMarker )(
  27468. ID3D12GraphicsCommandList10 * This,
  27469. UINT Metadata,
  27470. _In_reads_bytes_opt_(Size) const void *pData,
  27471. UINT Size);
  27472. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
  27473. void ( STDMETHODCALLTYPE *BeginEvent )(
  27474. ID3D12GraphicsCommandList10 * This,
  27475. UINT Metadata,
  27476. _In_reads_bytes_opt_(Size) const void *pData,
  27477. UINT Size);
  27478. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
  27479. void ( STDMETHODCALLTYPE *EndEvent )(
  27480. ID3D12GraphicsCommandList10 * This);
  27481. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
  27482. void ( STDMETHODCALLTYPE *ExecuteIndirect )(
  27483. ID3D12GraphicsCommandList10 * This,
  27484. _In_ ID3D12CommandSignature *pCommandSignature,
  27485. _In_ UINT MaxCommandCount,
  27486. _In_ ID3D12Resource *pArgumentBuffer,
  27487. _In_ UINT64 ArgumentBufferOffset,
  27488. _In_opt_ ID3D12Resource *pCountBuffer,
  27489. _In_ UINT64 CountBufferOffset);
  27490. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
  27491. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
  27492. ID3D12GraphicsCommandList10 * This,
  27493. _In_ ID3D12Resource *pDstBuffer,
  27494. UINT64 DstOffset,
  27495. _In_ ID3D12Resource *pSrcBuffer,
  27496. UINT64 SrcOffset,
  27497. UINT Dependencies,
  27498. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  27499. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  27500. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
  27501. void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
  27502. ID3D12GraphicsCommandList10 * This,
  27503. _In_ ID3D12Resource *pDstBuffer,
  27504. UINT64 DstOffset,
  27505. _In_ ID3D12Resource *pSrcBuffer,
  27506. UINT64 SrcOffset,
  27507. UINT Dependencies,
  27508. _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
  27509. _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
  27510. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
  27511. void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
  27512. ID3D12GraphicsCommandList10 * This,
  27513. _In_ FLOAT Min,
  27514. _In_ FLOAT Max);
  27515. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
  27516. void ( STDMETHODCALLTYPE *SetSamplePositions )(
  27517. ID3D12GraphicsCommandList10 * This,
  27518. _In_ UINT NumSamplesPerPixel,
  27519. _In_ UINT NumPixels,
  27520. _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
  27521. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
  27522. void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
  27523. ID3D12GraphicsCommandList10 * This,
  27524. _In_ ID3D12Resource *pDstResource,
  27525. _In_ UINT DstSubresource,
  27526. _In_ UINT DstX,
  27527. _In_ UINT DstY,
  27528. _In_ ID3D12Resource *pSrcResource,
  27529. _In_ UINT SrcSubresource,
  27530. _In_opt_ D3D12_RECT *pSrcRect,
  27531. _In_ DXGI_FORMAT Format,
  27532. _In_ D3D12_RESOLVE_MODE ResolveMode);
  27533. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
  27534. void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
  27535. ID3D12GraphicsCommandList10 * This,
  27536. _In_ UINT Mask);
  27537. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
  27538. void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
  27539. ID3D12GraphicsCommandList10 * This,
  27540. UINT Count,
  27541. _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
  27542. _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
  27543. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
  27544. void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
  27545. ID3D12GraphicsCommandList10 * This,
  27546. _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
  27547. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
  27548. void ( STDMETHODCALLTYPE *BeginRenderPass )(
  27549. ID3D12GraphicsCommandList10 * This,
  27550. _In_ UINT NumRenderTargets,
  27551. _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
  27552. _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
  27553. D3D12_RENDER_PASS_FLAGS Flags);
  27554. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
  27555. void ( STDMETHODCALLTYPE *EndRenderPass )(
  27556. ID3D12GraphicsCommandList10 * This);
  27557. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
  27558. void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
  27559. ID3D12GraphicsCommandList10 * This,
  27560. _In_ ID3D12MetaCommand *pMetaCommand,
  27561. _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
  27562. _In_ SIZE_T InitializationParametersDataSizeInBytes);
  27563. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
  27564. void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
  27565. ID3D12GraphicsCommandList10 * This,
  27566. _In_ ID3D12MetaCommand *pMetaCommand,
  27567. _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
  27568. _In_ SIZE_T ExecutionParametersDataSizeInBytes);
  27569. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
  27570. void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
  27571. ID3D12GraphicsCommandList10 * This,
  27572. _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
  27573. _In_ UINT NumPostbuildInfoDescs,
  27574. _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
  27575. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
  27576. void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
  27577. ID3D12GraphicsCommandList10 * This,
  27578. _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
  27579. _In_ UINT NumSourceAccelerationStructures,
  27580. _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
  27581. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
  27582. void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
  27583. ID3D12GraphicsCommandList10 * This,
  27584. _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
  27585. _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
  27586. _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
  27587. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
  27588. void ( STDMETHODCALLTYPE *SetPipelineState1 )(
  27589. ID3D12GraphicsCommandList10 * This,
  27590. _In_ ID3D12StateObject *pStateObject);
  27591. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
  27592. void ( STDMETHODCALLTYPE *DispatchRays )(
  27593. ID3D12GraphicsCommandList10 * This,
  27594. _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
  27595. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
  27596. void ( STDMETHODCALLTYPE *RSSetShadingRate )(
  27597. ID3D12GraphicsCommandList10 * This,
  27598. _In_ D3D12_SHADING_RATE baseShadingRate,
  27599. _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
  27600. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
  27601. void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
  27602. ID3D12GraphicsCommandList10 * This,
  27603. _In_opt_ ID3D12Resource *shadingRateImage);
  27604. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
  27605. void ( STDMETHODCALLTYPE *DispatchMesh )(
  27606. ID3D12GraphicsCommandList10 * This,
  27607. _In_ UINT ThreadGroupCountX,
  27608. _In_ UINT ThreadGroupCountY,
  27609. _In_ UINT ThreadGroupCountZ);
  27610. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
  27611. void ( STDMETHODCALLTYPE *Barrier )(
  27612. ID3D12GraphicsCommandList10 * This,
  27613. UINT32 NumBarrierGroups,
  27614. _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
  27615. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
  27616. void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
  27617. ID3D12GraphicsCommandList10 * This,
  27618. _In_ UINT FrontStencilRef,
  27619. _In_ UINT BackStencilRef);
  27620. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
  27621. void ( STDMETHODCALLTYPE *RSSetDepthBias )(
  27622. ID3D12GraphicsCommandList10 * This,
  27623. _In_ FLOAT DepthBias,
  27624. _In_ FLOAT DepthBiasClamp,
  27625. _In_ FLOAT SlopeScaledDepthBias);
  27626. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
  27627. void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
  27628. ID3D12GraphicsCommandList10 * This,
  27629. _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
  27630. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram)
  27631. void ( STDMETHODCALLTYPE *SetProgram )(
  27632. ID3D12GraphicsCommandList10 * This,
  27633. _In_ const D3D12_SET_PROGRAM_DESC *pDesc);
  27634. DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph)
  27635. void ( STDMETHODCALLTYPE *DispatchGraph )(
  27636. ID3D12GraphicsCommandList10 * This,
  27637. _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc);
  27638. END_INTERFACE
  27639. } ID3D12GraphicsCommandList10Vtbl;
  27640. interface ID3D12GraphicsCommandList10
  27641. {
  27642. CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl;
  27643. };
  27644. #ifdef COBJMACROS
  27645. #define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \
  27646. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  27647. #define ID3D12GraphicsCommandList10_AddRef(This) \
  27648. ( (This)->lpVtbl -> AddRef(This) )
  27649. #define ID3D12GraphicsCommandList10_Release(This) \
  27650. ( (This)->lpVtbl -> Release(This) )
  27651. #define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \
  27652. ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
  27653. #define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \
  27654. ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
  27655. #define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \
  27656. ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
  27657. #define ID3D12GraphicsCommandList10_SetName(This,Name) \
  27658. ( (This)->lpVtbl -> SetName(This,Name) )
  27659. #define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \
  27660. ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
  27661. #define ID3D12GraphicsCommandList10_GetType(This) \
  27662. ( (This)->lpVtbl -> GetType(This) )
  27663. #define ID3D12GraphicsCommandList10_Close(This) \
  27664. ( (This)->lpVtbl -> Close(This) )
  27665. #define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \
  27666. ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
  27667. #define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \
  27668. ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
  27669. #define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
  27670. ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
  27671. #define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
  27672. ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
  27673. #define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  27674. ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  27675. #define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
  27676. ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
  27677. #define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
  27678. ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
  27679. #define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \
  27680. ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
  27681. #define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
  27682. ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
  27683. #define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
  27684. ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
  27685. #define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \
  27686. ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
  27687. #define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \
  27688. ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
  27689. #define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \
  27690. ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
  27691. #define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \
  27692. ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
  27693. #define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \
  27694. ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
  27695. #define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \
  27696. ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
  27697. #define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \
  27698. ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
  27699. #define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \
  27700. ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
  27701. #define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
  27702. ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
  27703. #define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \
  27704. ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
  27705. #define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \
  27706. ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
  27707. #define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  27708. ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  27709. #define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
  27710. ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
  27711. #define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  27712. ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  27713. #define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
  27714. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
  27715. #define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  27716. ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  27717. #define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
  27718. ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
  27719. #define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  27720. ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  27721. #define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
  27722. ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
  27723. #define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  27724. ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  27725. #define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
  27726. ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
  27727. #define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  27728. ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  27729. #define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
  27730. ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
  27731. #define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \
  27732. ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
  27733. #define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
  27734. ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
  27735. #define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \
  27736. ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
  27737. #define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
  27738. ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
  27739. #define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
  27740. ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
  27741. #define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
  27742. ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
  27743. #define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  27744. ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  27745. #define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
  27746. ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
  27747. #define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \
  27748. ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
  27749. #define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \
  27750. ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
  27751. #define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \
  27752. ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
  27753. #define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
  27754. ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
  27755. #define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
  27756. ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
  27757. #define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \
  27758. ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
  27759. #define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \
  27760. ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
  27761. #define ID3D12GraphicsCommandList10_EndEvent(This) \
  27762. ( (This)->lpVtbl -> EndEvent(This) )
  27763. #define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
  27764. ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
  27765. #define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  27766. ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  27767. #define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
  27768. ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
  27769. #define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \
  27770. ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
  27771. #define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
  27772. ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
  27773. #define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
  27774. ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
  27775. #define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \
  27776. ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
  27777. #define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \
  27778. ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
  27779. #define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \
  27780. ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
  27781. #define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
  27782. ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
  27783. #define ID3D12GraphicsCommandList10_EndRenderPass(This) \
  27784. ( (This)->lpVtbl -> EndRenderPass(This) )
  27785. #define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
  27786. ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
  27787. #define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
  27788. ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
  27789. #define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
  27790. ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
  27791. #define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
  27792. ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
  27793. #define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
  27794. ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
  27795. #define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \
  27796. ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
  27797. #define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \
  27798. ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
  27799. #define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \
  27800. ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
  27801. #define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \
  27802. ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
  27803. #define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
  27804. ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
  27805. #define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \
  27806. ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
  27807. #define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
  27808. ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
  27809. #define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
  27810. ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
  27811. #define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
  27812. ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
  27813. #define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \
  27814. ( (This)->lpVtbl -> SetProgram(This,pDesc) )
  27815. #define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \
  27816. ( (This)->lpVtbl -> DispatchGraph(This,pDesc) )
  27817. #endif /* COBJMACROS */
  27818. #endif /* C style interface */
  27819. #endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */
  27820. #ifndef __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__
  27821. #define __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__
  27822. /* interface ID3D12DSRDeviceFactory */
  27823. /* [unique][local][object][uuid] */
  27824. EXTERN_C const IID IID_ID3D12DSRDeviceFactory;
  27825. #if defined(__cplusplus) && !defined(CINTERFACE)
  27826. MIDL_INTERFACE("f343d1a0-afe3-439f-b13d-cd87a43b70ca")
  27827. ID3D12DSRDeviceFactory : public IUnknown
  27828. {
  27829. public:
  27830. virtual HRESULT STDMETHODCALLTYPE CreateDSRDevice(
  27831. ID3D12Device *pD3D12Device,
  27832. UINT NodeMask,
  27833. REFIID riid,
  27834. _COM_Outptr_ void **ppvDSRDevice) = 0;
  27835. };
  27836. #else /* C style interface */
  27837. typedef struct ID3D12DSRDeviceFactoryVtbl
  27838. {
  27839. BEGIN_INTERFACE
  27840. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  27841. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  27842. ID3D12DSRDeviceFactory * This,
  27843. REFIID riid,
  27844. _COM_Outptr_ void **ppvObject);
  27845. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  27846. ULONG ( STDMETHODCALLTYPE *AddRef )(
  27847. ID3D12DSRDeviceFactory * This);
  27848. DECLSPEC_XFGVIRT(IUnknown, Release)
  27849. ULONG ( STDMETHODCALLTYPE *Release )(
  27850. ID3D12DSRDeviceFactory * This);
  27851. DECLSPEC_XFGVIRT(ID3D12DSRDeviceFactory, CreateDSRDevice)
  27852. HRESULT ( STDMETHODCALLTYPE *CreateDSRDevice )(
  27853. ID3D12DSRDeviceFactory * This,
  27854. ID3D12Device *pD3D12Device,
  27855. UINT NodeMask,
  27856. REFIID riid,
  27857. _COM_Outptr_ void **ppvDSRDevice);
  27858. END_INTERFACE
  27859. } ID3D12DSRDeviceFactoryVtbl;
  27860. interface ID3D12DSRDeviceFactory
  27861. {
  27862. CONST_VTBL struct ID3D12DSRDeviceFactoryVtbl *lpVtbl;
  27863. };
  27864. #ifdef COBJMACROS
  27865. #define ID3D12DSRDeviceFactory_QueryInterface(This,riid,ppvObject) \
  27866. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  27867. #define ID3D12DSRDeviceFactory_AddRef(This) \
  27868. ( (This)->lpVtbl -> AddRef(This) )
  27869. #define ID3D12DSRDeviceFactory_Release(This) \
  27870. ( (This)->lpVtbl -> Release(This) )
  27871. #define ID3D12DSRDeviceFactory_CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) \
  27872. ( (This)->lpVtbl -> CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) )
  27873. #endif /* COBJMACROS */
  27874. #endif /* C style interface */
  27875. #endif /* __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ */
  27876. #ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
  27877. #define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
  27878. /* interface ID3D12GBVDiagnostics */
  27879. /* [unique][local][object][uuid] */
  27880. EXTERN_C const IID IID_ID3D12GBVDiagnostics;
  27881. #if defined(__cplusplus) && !defined(CINTERFACE)
  27882. MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee")
  27883. ID3D12GBVDiagnostics : public IUnknown
  27884. {
  27885. public:
  27886. virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData(
  27887. _In_ ID3D12Resource *pResource,
  27888. _Out_writes_bytes_(DataSize) int *pData,
  27889. UINT DataSize) = 0;
  27890. virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState(
  27891. _In_ ID3D12Resource *pResource,
  27892. UINT Subresource,
  27893. _Out_ int *pData) = 0;
  27894. virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState(
  27895. _In_ ID3D12Resource *pResource,
  27896. _Out_ int *pData) = 0;
  27897. virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo(
  27898. _In_ ID3D12Resource *pResource,
  27899. _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
  27900. _In_opt_ UINT32 *pResourceHash,
  27901. _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0;
  27902. virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0;
  27903. virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0;
  27904. };
  27905. #else /* C style interface */
  27906. typedef struct ID3D12GBVDiagnosticsVtbl
  27907. {
  27908. BEGIN_INTERFACE
  27909. DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
  27910. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  27911. ID3D12GBVDiagnostics * This,
  27912. REFIID riid,
  27913. _COM_Outptr_ void **ppvObject);
  27914. DECLSPEC_XFGVIRT(IUnknown, AddRef)
  27915. ULONG ( STDMETHODCALLTYPE *AddRef )(
  27916. ID3D12GBVDiagnostics * This);
  27917. DECLSPEC_XFGVIRT(IUnknown, Release)
  27918. ULONG ( STDMETHODCALLTYPE *Release )(
  27919. ID3D12GBVDiagnostics * This);
  27920. DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData)
  27921. HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )(
  27922. ID3D12GBVDiagnostics * This,
  27923. _In_ ID3D12Resource *pResource,
  27924. _Out_writes_bytes_(DataSize) int *pData,
  27925. UINT DataSize);
  27926. DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState)
  27927. HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )(
  27928. ID3D12GBVDiagnostics * This,
  27929. _In_ ID3D12Resource *pResource,
  27930. UINT Subresource,
  27931. _Out_ int *pData);
  27932. DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState)
  27933. HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )(
  27934. ID3D12GBVDiagnostics * This,
  27935. _In_ ID3D12Resource *pResource,
  27936. _Out_ int *pData);
  27937. DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo)
  27938. HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )(
  27939. ID3D12GBVDiagnostics * This,
  27940. _In_ ID3D12Resource *pResource,
  27941. _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
  27942. _In_opt_ UINT32 *pResourceHash,
  27943. _In_opt_ UINT32 *pSubresourceStatesByteOffset);
  27944. DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0)
  27945. void ( STDMETHODCALLTYPE *GBVReserved0 )(
  27946. ID3D12GBVDiagnostics * This);
  27947. DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1)
  27948. void ( STDMETHODCALLTYPE *GBVReserved1 )(
  27949. ID3D12GBVDiagnostics * This);
  27950. END_INTERFACE
  27951. } ID3D12GBVDiagnosticsVtbl;
  27952. interface ID3D12GBVDiagnostics
  27953. {
  27954. CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl;
  27955. };
  27956. #ifdef COBJMACROS
  27957. #define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \
  27958. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  27959. #define ID3D12GBVDiagnostics_AddRef(This) \
  27960. ( (This)->lpVtbl -> AddRef(This) )
  27961. #define ID3D12GBVDiagnostics_Release(This) \
  27962. ( (This)->lpVtbl -> Release(This) )
  27963. #define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \
  27964. ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) )
  27965. #define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \
  27966. ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) )
  27967. #define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \
  27968. ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) )
  27969. #define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \
  27970. ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) )
  27971. #define ID3D12GBVDiagnostics_GBVReserved0(This) \
  27972. ( (This)->lpVtbl -> GBVReserved0(This) )
  27973. #define ID3D12GBVDiagnostics_GBVReserved1(This) \
  27974. ( (This)->lpVtbl -> GBVReserved1(This) )
  27975. #endif /* COBJMACROS */
  27976. #endif /* C style interface */
  27977. #endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */
  27978. /* interface __MIDL_itf_d3d12_0000_0085 */
  27979. /* [local] */
  27980. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
  27981. #pragma endregion
  27982. DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);
  27983. DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);
  27984. DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);
  27985. DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);
  27986. DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);
  27987. DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);
  27988. DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);
  27989. DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);
  27990. DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);
  27991. DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);
  27992. DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
  27993. DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);
  27994. DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb);
  27995. DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);
  27996. DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);
  27997. DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);
  27998. DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);
  27999. DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);
  28000. DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
  28001. DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);
  28002. DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);
  28003. DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9);
  28004. DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);
  28005. DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);
  28006. DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);
  28007. DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
  28008. DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);
  28009. DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);
  28010. DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);
  28011. DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);
  28012. DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);
  28013. DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);
  28014. DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
  28015. DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);
  28016. DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);
  28017. DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);
  28018. DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38);
  28019. DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84);
  28020. DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57);
  28021. DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);
  28022. DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);
  28023. DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);
  28024. DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea);
  28025. DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);
  28026. DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);
  28027. DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);
  28028. DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);
  28029. DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);
  28030. DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);
  28031. DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);
  28032. DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);
  28033. DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);
  28034. DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);
  28035. DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);
  28036. DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);
  28037. DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);
  28038. DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);
  28039. DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
  28040. DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31);
  28041. DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39);
  28042. DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5);
  28043. DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e);
  28044. DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23);
  28045. DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0);
  28046. DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76);
  28047. DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);
  28048. DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0);
  28049. DEFINE_GUID(IID_ID3D12Tools2,0x01d393c5,0xc9b0,0x42a1,0x95,0x8c,0xc2,0x6b,0x02,0xd4,0xd0,0x97);
  28050. DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d);
  28051. DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9);
  28052. DEFINE_GUID(IID_ID3D12DeviceTools1,0xe30e9fc7,0xe641,0x4d6e,0x8a,0x81,0x9d,0xd9,0x20,0x6e,0xc4,0x7a);
  28053. DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
  28054. DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f);
  28055. DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb);
  28056. DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad);
  28057. DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56);
  28058. DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb);
  28059. DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);
  28060. DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);
  28061. DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1);
  28062. DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51);
  28063. DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1);
  28064. DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc);
  28065. DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca);
  28066. DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);
  28067. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_c_ifspec;
  28068. extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_s_ifspec;
  28069. /* Additional Prototypes for ALL interfaces */
  28070. /* end of Additional Prototypes */
  28071. #ifdef __cplusplus
  28072. }
  28073. #endif
  28074. #endif