-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy patharhitecture_table.js
More file actions
1 lines (1 loc) · 16.8 KB
/
arhitecture_table.js
File metadata and controls
1 lines (1 loc) · 16.8 KB
1
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[506],{746(e,r,n){n.d(r,{A:()=>i});var t=n(601),a=n.n(t),o=n(314),c=n.n(o)()(a());c.push([e.id,'.ArchitectureTables {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n max-width: 2100px;\n margin: 0 auto;\n}\n\n.ArchitectureTable {\n font-family: "Roboto", sans-serif;\n}\n\n.NotesContainerOuter {\n max-width: 2100px;\n margin: 0 auto;\n}\n\n.NotesContainer {\n max-width: 1000px;\n padding: 0 7px;\n font-family: "Roboto", sans-serif;\n}\n\n.ArchitectureTableContainer {\n padding: 5px;\n flex-grow: 0.1\n}\n\n\ntd {\n white-space: pre-wrap;\n}\n\ntr:nth-of-type(odd) {\n background-color: #00000010;\n}\n\nth,\ntd {\n border-width: 1px;\n border-style: solid;\n border-color: #7f7f7f;\n}\n\ntd {\n text-align: center;\n padding: 2px 4px;\n min-width: 4.5em;\n}\n\ntable {\n border-collapse: collapse;\n}\n\n/* row of header with vendor name */\nthead>tr:first-of-type>th {\n /* first row sticks to the top of the screen */\n border-bottom: none;\n}\n\n/* row with legend */\nthead>tr:nth-of-type(2)>th {\n /* second row sticks right below first row */\n border-top: none;\n border-bottom-width: 2px;\n border-bottom-style: solid;\n padding-inline: 0.3em;\n /* separate legend a little */\n}\n\n.dark-mode {\n\n th,\n td {\n border-color: #8c8c8c;\n }\n\n table {\n border-color: #8c8c8c;\n background-color: #2d2d2d;\n }\n\n\n tr:nth-of-type(1) {\n background-color: #262626;\n }\n\n td {\n border-color: #FFFFFF33;\n }\n\n tr:nth-of-type(odd) {\n background-color: #00000020;\n }\n}',""]);const i=c},314(e){e.exports=function(e){var r=[];return r.toString=function(){return this.map((function(r){var n="",t=void 0!==r[5];return r[4]&&(n+="@supports (".concat(r[4],") {")),r[2]&&(n+="@media ".concat(r[2]," {")),t&&(n+="@layer".concat(r[5].length>0?" ".concat(r[5]):""," {")),n+=e(r),t&&(n+="}"),r[2]&&(n+="}"),r[4]&&(n+="}"),n})).join("")},r.i=function(e,n,t,a,o){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(t)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(c[s]=!0)}for(var d=0;d<e.length;d++){var l=[].concat(e[d]);t&&c[l[0]]||(void 0!==o&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=o),n&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=n):l[2]=n),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),r.push(l))}},r}},601(e){e.exports=function(e){return e[1]}},72(e){var r=[];function n(e){for(var n=-1,t=0;t<r.length;t++)if(r[t].identifier===e){n=t;break}return n}function t(e,t){for(var o={},c=[],i=0;i<e.length;i++){var s=e[i],d=t.base?s[0]+t.base:s[0],l=o[d]||0,p="".concat(d," ").concat(l);o[d]=l+1;var u=n(p),D={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==u)r[u].references++,r[u].updater(D);else{var A=a(D,t);t.byIndex=i,r.splice(i,0,{identifier:p,updater:A,references:1})}c.push(p)}return c}function a(e,r){var n=r.domAPI(r);return n.update(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap&&r.supports===e.supports&&r.layer===e.layer)return;n.update(e=r)}else n.remove()}}e.exports=function(e,a){var o=t(e=e||[],a=a||{});return function(e){e=e||[];for(var c=0;c<o.length;c++){var i=n(o[c]);r[i].references--}for(var s=t(e,a),d=0;d<o.length;d++){var l=n(o[d]);0===r[l].references&&(r[l].updater(),r.splice(l,1))}o=s}}},659(e){var r={};e.exports=function(e,n){var t=function(e){if(void 0===r[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}r[e]=n}return r[e]}(e);if(!t)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");t.appendChild(n)}},540(e){e.exports=function(e){var r=document.createElement("style");return e.setAttributes(r,e.attributes),e.insert(r,e.options),r}},56(e,r,n){e.exports=function(e){var r=n.nc;r&&e.setAttribute("nonce",r)}},825(e){e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var r=e.insertStyleElement(e);return{update:function(n){!function(e,r,n){var t="";n.supports&&(t+="@supports (".concat(n.supports,") {")),n.media&&(t+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(t+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),t+=n.css,a&&(t+="}"),n.media&&(t+="}"),n.supports&&(t+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(t+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),r.styleTagTransform(t,e,r.options)}(r,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(r)}}}},113(e){e.exports=function(e,r){if(r.styleSheet)r.styleSheet.cssText=e;else{for(;r.firstChild;)r.removeChild(r.firstChild);r.appendChild(document.createTextNode(e))}}},958(e,r,n){var t=n(72),a=n.n(t),o=n(825),c=n.n(o),i=n(659),s=n.n(i),d=n(56),l=n.n(d),p=n(540),u=n.n(p),D=n(113),A=n.n(D),I=n(746),h={};h.styleTagTransform=A(),h.setAttributes=l(),h.insert=s().bind(null,"head"),h.domAPI=c(),h.insertStyleElement=u(),a()(I.A,h),I.A&&I.A.locals&&I.A.locals;var T=n(619),G=n(878),f=n(568),m=n(480),N=n(141);function S(e,r,n){let t=document.createElement("th");t.append(n),r&&(t.className=r),e.appendChild(t)}function _(e,r,n){let t=document.createElement("td");t.append(n),r&&(t.className=r),e.appendChild(t)}function E(e){return e?Math.round(1e4*e)/100+"%":"~0%"}function R(e,r){return e?e+"\n"+r:r}function F(e,r,n){let t="",a=r.D3D12_FEATURE_DATA_SHADER_MODEL.HighestShaderModel;if(a!=n.SM){let e=G.RZ["D3D12_FEATURE_DATA_SHADER_MODEL.HighestShaderModel"][a]??"Unknown";a>n.SM?(t=R(t,"SM "+e),n.SM=a):t=R(t,"* SM "+e)}let o=1==r.D3D12_FEATURE_DATA_D3D12_OPTIONS4.Native16BitShaderOpsSupported;o!=n.Support16BitShaderOps&&(o?(t=R(t,"16-bit Shader Ops"),n.Support16BitShaderOps=o):t=R(t,"* no support for 16-bit Shader Ops"));let c=1==r.D3D12_FEATURE_DATA_D3D12_OPTIONS12.EnhancedBarriersSupported;c!=n.SupportEnhancedBarriers&&(c?(t=R(t,"Enhanced Barriers"),n.SupportEnhancedBarriers=c):t=R(t,"* no support for Enhanced Barriers"));let i=10==r.D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier;i!=n.SupportMeshShaders&&(i?(t=R(t,"Mesh Shaders"),n.SupportMeshShaders=i):t=R(t,"* no support for Mesh Shaders"));let s=r.D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier;if("Pascal"!=e&&"Turing 16"!=e||(s=0),s!=n.DXRTier){let e=G.RZ["D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"][s]??"Unknown";s>n.DXRTier?(t=R(t,"DXR "+e),n.DXRTier=s):t=R(t,"* DXR "+e)}let d=r.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier;if(d!=n.VRSTier){let e=G.RZ["D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier"][d]??"Unknown";d>n.VRSTier?(t=R(t,"VRS "+e),n.VRSTier=d):t=R(t,"* VRS "+e)}let l=r.D3D12_FEATURE_DATA_D3D12_OPTIONS7.SamplerFeedbackTier;if(l!=n.SamplerFeedbackTier){let e=G.RZ["D3D12_FEATURE_DATA_D3D12_OPTIONS7.SamplerFeedbackTier"][l]??"Unknown";l>n.SamplerFeedbackTier?(t=R(t,"Sampler Feedback "+e),n.SamplerFeedbackTier=l):t=R(t,"* Sampler Feedback "+e)}let p=!1;r.Formats&&(p=!!(16384&r.Formats[67].Support1)),p!=n.SupportR9G9B9E5RTVUAV&&(p?(t=R(t,"R9G9B9E5 RTV/UAV"),n.SupportR9G9B9E5RTVUAV=p):t=R(t,"* no support for R9G9B9E5 RTV/UAV"));let u=0;if(r.D3D12_FEATURE_DATA_D3D12_OPTIONS21&&(u=r.D3D12_FEATURE_DATA_D3D12_OPTIONS21.WorkGraphsTier),u!=n.WorkGraphsTier){let e=G.RZ["D3D12_FEATURE_DATA_D3D12_OPTIONS21.WorkGraphsTier"][u]??"Unknown";u>n.WorkGraphsTier?(t=R(t,"Work Graphs "+e),n.WorkGraphsTier=u):t=R(t,"* Work Graphs "+e)}let D=r.D3D12_FEATURE_DATA_D3D12_OPTIONS.ResourceHeapTier;if(D!=n.ResourceHeapTier){let e=G.RZ["D3D12_FEATURE_DATA_D3D12_OPTIONS.ResourceHeapTier"][D]??"Unknown";D>n.ResourceHeapTier?(t=R(t,"Resource Heap "+e),n.ResourceHeapTier=D):t=R(t,"* Resource Heap "+e)}let A=r.D3D12_FEATURE_DATA_D3D12_OPTIONS.TiledResourcesTier;if(A!=n.TiledResourcesTier){let e=G.RZ["D3D12_FEATURE_DATA_D3D12_OPTIONS.TiledResourcesTier"][A]??"Unknown";A>n.TiledResourcesTier?(t=R(t,"Tiled Resources "+e),n.TiledResourcesTier=A):t=R(t,"* Tiled Resources "+e)}return t}function V(e,r,n){let t=document.createElement("table");!function(e,r){let n=document.createElement("thead"),t=document.createElement("tr"),a=document.createElement("th");a.append(r),a.className=r,a.scope="colgroup",a.colSpan=4,t.appendChild(a),n.appendChild(t);let o=document.createElement("tr");S(o,r,"Architecture"),S(o,r,"Market Share"),S(o,r,"Cumulative Market Share"),S(o,r,"Added Features"),n.appendChild(o),e.appendChild(n)}(t,r),function(e,r){let n=document.createElement("tbody"),t=0,a={SM:0,Support16BitShaderOps:!1,SupportEnhancedBarriers:!1,SupportMeshShaders:!1,DXRTier:0,VRSTier:0,SamplerFeedbackTier:0,SupportR9G9B9E5RTVUAV:!1,WorkGraphsTier:0,ResourceHeapTier:1,TiledResourcesTier:0};for(let e of r){let r=document.createElement("tr"),o=T.A[e]??0;t+=o;let c=N.Es.get(e);_(r,null,e),_(r,null,E(o)),_(r,null,E(t)),_(r,null,F(e,c,a)),n.append(r)}e.appendChild(n)}(t,n),t.className="ArchitectureTable",e.appendChild(t)}window.addEventListener("DOMContentLoaded",(function(){const e=document.getElementById("ArchitectureTables"),r=document.createElement("div"),n=document.createTextNode("Loading. Please wait.");r.appendChild(n),e.appendChild(r),m.TK((e=>{let r=e;N.Q0(r),function(){const e=document.getElementById("ArchitectureTables");f.E(e);const r=[{name:"AMD",architectures:N.hp.AMD},{name:"Nvidia",architectures:N.hp.Nvidia},{name:"Intel",architectures:N.hp.Intel},{name:"Qualcomm",architectures:N.hp.Qualcomm}];for(let n of r){let r=document.createElement("div");V(r,n.name,n.architectures),r.className="ArchitectureTableContainer",e.appendChild(r)}}(),function(){const e=document.getElementById("NotesContainer");f.E(e),e.appendChild(document.createTextNode("Features marked with * appear out of order of increasing capabilities. After such entry, subsequent architectures return to higher capabilities without additional notes. For example Xe-LPG supports Resource Heap Tier 2.")),e.appendChild(document.createElement("br")),e.appendChild(document.createTextNode("Some Nvidia Pascal and Turing 16 GPUs have software emulated DXR Tier 1.0 Support. Since software emulation is too slow for most practical purposes, they are marked as if they have no DXR support in this table.")),e.appendChild(document.createElement("br")),e.appendChild(document.createTextNode("Market Share is calculated from the Steam Hardware Survey among DirectX 12 Systems. This is an underestimate and may not be very accurate in general.")),e.appendChild(document.createElement("br")),e.appendChild(document.createTextNode("Market Share will vary a lot between different games. Steam Hardware Survey may not be a good representation of your target audience.")),e.appendChild(document.createElement("br")),e.appendChild(document.createTextNode("Some features require new enough version of Agility SDK to be used by app to become available, even if GPU supports them."))}()}))}),!1)},141(e,r,n){n.d(r,{BP:()=>c,Es:()=>s,Q0:()=>u,f4:()=>i,hp:()=>o});var t=n(878),a=n(924);let o={Microsoft:new Set,AMD:new Set,Nvidia:new Set,Intel:new Set,Qualcomm:new Set},c=new Map,i=new Map,s=new Map,d=[];function l(e){return!!e.GetField("Header.Using preview Agility SDK")||"None"!=a.UN(e)||!!t.gT.has(e.GetField("CheckInterfaceSupport.UMDVersion"))||8==e.GetField("AGSDeviceInfo.asicFamily")&&1==e.GetField("AGSDeviceInfo.numWGPs")&&0==e.GetField("D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier")}function p(e){let r,n=e.GetOriginalReport(),t=a.IL("DXGI_ADAPTER_DESC3.VendorId",n.DXGI_ADAPTER_DESC3.VendorId);if("Microsoft Basic Render Driver"==n.DXGI_ADAPTER_DESC3.Description)r="WARP",o.Microsoft.add(r);else if(n.AGSDeviceInfo&&null!=n.AGSDeviceInfo.asicFamily){const e=["Unknown","PreGCN","GCN1","GCN2","GCN3","GCN4","Vega","RDNA","RDNA2","RDNA3","RDNA4"],t={30032:"RDNA4"};0!=n.AGSDeviceInfo.asicFamily?(r=e[n.AGSDeviceInfo.asicFamily],r||(r="Arch ID "+n.AGSDeviceInfo.asicFamily),o.AMD.add(r)):n.DXGI_ADAPTER_DESC3.DeviceId in t&&(r=t[n.DXGI_ADAPTER_DESC3.DeviceId],o.AMD.add(r))}else if(t.startsWith("Intel"))r={1024:"Gen7.5",2560:"Gen7.5",3328:"Gen7.5",3072:"Gen7.5",5632:"Gen8",2816:"Gen8",8704:"Gen8",6400:"Gen9",2304:"Gen9",22784:"Gen9.5",12544:"Gen9.5",15872:"Gen9.5",39680:"Gen9.5",23040:"Gen9.5",35328:"Gen11",39424:"Xe",17664:"Xe",19968:"Xe",19456:"Xe",17920:"Xe",18688:"Xe",42752:"Xe",22016:"Xe-HPG",2816:"Xe-HPC",32e3:"Xe-LPG",25600:"Xe2-HPG",57856:"Xe2-HPG"}[65280&n.DXGI_ADAPTER_DESC3.DeviceId],!r&&n["Intel GPUDetect::GPUData"]&&(r=n["Intel GPUDetect::GPUData"].GraphicsGeneration,"Unknown"==r&&"Unknown (37)"==n["Intel GPUDetect::GPUData"].GPUArchitecture&&"Intel(R) Iris(R) Xe Graphics"==n.DXGI_ADAPTER_DESC3.Description?r="Xe":"Xe High Performance Graphics"==r?r="Gen12.7 / Xe-HPG":"Xe High Performance Compute"==r?r="Xe-HPC":"Xe Low Power Graphics"==r?r="Gen12.7 / Xe-LPG":"Xe2 High Performance Graphics"==r&&(r="Gen13 / Xe2-HPG")),r&&o.Intel.add(r);else if(n.NvPhysicalGpuHandle&&n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]){if(r={192:"Fermi",208:"Fermi2",224:"Kepler",240:"Kepler1",256:"Kepler2",272:"Maxwell1",288:"Maxwell2",304:"Pascal",320:"Volta",336:"Volta1",352:"Turing",368:"Ampere",400:"Ada",432:"Blackwell"}[n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]],r||(r="Arch ID "+n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]),"Turing"===r){const e=n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::implementation_id"];r=7==e||8==e?"Turing 16":"Turing 20"}"Kepler2"==r||"Kepler1"==r?r="Kepler":"Fermi2"==r?r="Fermi":"Volta1"==r&&(r="Volta"),o.Nvidia.add(r)}else if(t.startsWith("NVIDIA")){switch(n.DXGI_ADAPTER_DESC3.Description){case"NVIDIA GeForce 615":case"NVIDIA GeForce GT 415M":case"NVIDIA GeForce GT 420":case"NVIDIA GeForce GT 420M":case"NVIDIA GeForce GT 425M":case"NVIDIA GeForce GT 430":case"NVIDIA GeForce GT 435M":case"NVIDIA GeForce GT 440":case"NVIDIA GeForce GT 445M":case"NVIDIA GeForce GT 525M":case"NVIDIA GeForce GT 530":case"NVIDIA GeForce GT 555M":case"NVIDIA GeForce GTS 450":case"NVIDIA GeForce GTX 460M":case"NVIDIA GeForce GTX 465":case"NVIDIA GeForce GTX 470":case"NVIDIA GeForce GTX 470M":case"NVIDIA GeForce GTX 480":case"NVIDIA GeForce GTX 480M":case"NVIDIA GeForce GTX 485M":case"NVIDIA NVS 5400M":case"NVIDIA Quadro 1000M":case"NVIDIA Quadro 2000":case"NVIDIA Quadro 2000M":case"NVIDIA Quadro 3000M":case"NVIDIA Quadro 4000":case"NVIDIA Quadro 4000M":case"NVIDIA Quadro 5000M":case"NVIDIA Quadro 600":case"NVIDIA Quadro 6000":r="Fermi";break;case"NVIDIA GeForce 410M":case"NVIDIA GeForce 510":case"NVIDIA GeForce 605":case"NVIDIA GeForce 705A":case"NVIDIA GeForce GT 520":case"NVIDIA GeForce GT 520MX":case"NVIDIA GeForce GT 545":case"NVIDIA GeForce GT 550M":case"NVIDIA GeForce GT 625":case"NVIDIA GeForce GT 705":case"NVIDIA GeForce GTX 550 Ti":case"NVIDIA GeForce GTX 555":case"NVIDIA GeForce GTX 560":case"NVIDIA GeForce GTX 560 SE":case"NVIDIA GeForce GTX 560 Ti":case"NVIDIA GeForce GTX 560M":case"NVIDIA GeForce GTX 570":case"NVIDIA GeForce GTX 570M":case"NVIDIA GeForce GTX 580":case"NVIDIA GeForce GTX 580M":case"NVIDIA GeForce GTX 590":case"NVIDIA GeForce GTX 670M":case"NVIDIA GeForce GTX 675M":case"NVIDIA NVS 315":case"NVIDIA NVS 4200M":case"NVIDIA Quadro 5010M":r="Fermi2"}r&&o.Nvidia.add(r)}else t.startsWith("Qualcomm")&&(/Snapdragon\(R\) X (Plus)|(Elite) - X1.*/.test(n.DXGI_ADAPTER_DESC3.Description)&&(r="X1"),/Qualcomm\(R\) Adreno\(TM\) X1.*/.test(n.DXGI_ADAPTER_DESC3.Description)?r="X1":n.DXGI_ADAPTER_DESC3.Description.includes("8cx")&&(r=n.DXGI_ADAPTER_DESC3.Description.slice(n.DXGI_ADAPTER_DESC3.Description.search(/8cx.*/)),r=r.replace("Gen ","")),r&&o.Qualcomm.add(r));r?(c.has(r)?c.get(r).push(n):c.set(r,[n]),i.has(r)?i.get(r).add(n.DXGI_ADAPTER_DESC3.Description):i.set(r,new Set([n.DXGI_ADAPTER_DESC3.Description]))):d.push(n)}function u(e){for(let r of e)l(r)||p(r);for(let[e,t]of c){let a=null;for(let e of t)r=e,(null==(n=a)||(r.CheckInterfaceSupport.UMDVersion!=n.CheckInterfaceSupport.UMDVersion?BigInt(r.CheckInterfaceSupport.UMDVersion)>BigInt(n.CheckInterfaceSupport.UMDVersion):r.Header.Version!=n.Header.Version?r.Header.Version>n.Header.Version:r.ID>n.ID))&&(a=e);s.set(e,a)}var r,n;function a(e,r){const n=[];for(const r of e)n.push(r);e.clear();for(const t of n.sort(r))e.add(t);return e}function i(e,r){let n=t.Vz[e]??9999,a=t.Vz[r]??9999;return n==a?e.localeCompare(r):n-a}a(o.AMD,i),a(o.Nvidia,i),a(o.Intel,i),a(o.Qualcomm,i)}},619(e,r,n){n.d(r,{A:()=>t});const t={RDNA3:.029500000000000002,Unknown:.059800000000000006,GCN1:.001,GCN4:.0217,GCN3:4e-4,GCN2:1e-4,RDNA:.0102,RDNA2:.03749999999999999,RDNA4:.0019,Vega:.007699999999999999,"Gen7.5":.0021,Gen9:.0034,Gen8:8e-4,"Gen9.5":.012300000000000002,Xe:.019100000000000002,Maxwell1:.004200000000000001,Kepler:.0017,Fermi:2e-4,Pascal:.0578,"Turing 16":.0649,Fermi2:3e-4,Maxwell2:.0059,"Turing 20":.0512,Ampere:.2101,Ada:.2182,Blackwell:.11369999999999998,X1:5e-4}}},e=>{e(e.s=958)}]);