diff --git a/source/external/SteamHWSurveyGPUArchStats b/source/external/SteamHWSurveyGPUArchStats index 358c049..607396c 160000 --- a/source/external/SteamHWSurveyGPUArchStats +++ b/source/external/SteamHWSurveyGPUArchStats @@ -1 +1 @@ -Subproject commit 358c049b9059a797394fa4f51c43844628f6b15e +Subproject commit 607396c1a551293562091bc50c2c829e8bba661d diff --git a/source/frontend/assets/js/arch_stats.mjs b/source/frontend/assets/js/arch_stats.mjs index b6ceee9..e4d12ed 100644 --- a/source/frontend/assets/js/arch_stats.mjs +++ b/source/frontend/assets/js/arch_stats.mjs @@ -1,2 +1,2 @@ -const ArchStats = {"RDNA3": 0.029500000000000002, "Unknown": 0.059800000000000006, "GCN1": 0.001, "GCN4": 0.0217, "GCN3": 0.0004, "GCN2": 0.0001, "RDNA": 0.0102, "RDNA2": 0.03749999999999999, "RDNA4": 0.0019, "Vega": 0.007699999999999999, "Gen7.5": 0.0021, "Gen9": 0.0034, "Gen8": 0.0008, "Gen9.5": 0.012300000000000002, "Xe": 0.019100000000000002, "Maxwell1": 0.004200000000000001, "Kepler": 0.0017, "Fermi": 0.0002, "Pascal": 0.0578, "Turing 16": 0.0649, "Fermi2": 0.0003, "Maxwell2": 0.0059, "Turing 20": 0.0512, "Ampere": 0.2101, "Ada": 0.2182, "Blackwell": 0.11369999999999998, "X1": 0.0005} +const ArchStats = {"RDNA3": 0.0313999999999998, "RDNA 3.5": 0.0013, "Unknown": 0.0706, "GCN1": 0.0011, "GCN4": 0.0210999999999999, "GCN3": 0.0004, "RDNA": 0.0099999999999999, "RDNA2": 0.036299999999999895, "RDNA4": 0.0018, "Vega": 0.0081, "Gen7.5": 0.0022, "Gen9": 0.0037, "Gen8": 0.0009, "Gen9.5": 0.0132999999999999, "Xe": 0.0209999999999999, "Maxwell1": 0.004300000000000001, "Kepler": 0.0017, "Fermi": 0.0001, "Pascal": 0.055699999999999895, "Turing 16": 0.06349999999999989, "Fermi2": 0.0003, "Maxwell2": 0.005599999999999999, "Turing 20": 0.049, "Ampere": 0.20229999999999984, "Ada": 0.2032, "Blackwell": 0.1225999999999999, "X1": 0.0006} export default ArchStats \ No newline at end of file diff --git a/source/website/arhitecture_table.js b/source/website/arhitecture_table.js index 000abcb..ab2a7db 100644 --- a/source/website/arhitecture_table.js +++ b/source/website/arhitecture_table.js @@ -1 +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;i0?" ".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;t0?" ".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),T={};T.styleTagTransform=A(),T.setAttributes=l(),T.insert=s().bind(null,"head"),T.domAPI=c(),T.insertStyleElement=u(),a()(I.A,T),I.A&&I.A.locals&&I.A.locals;var h=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=h.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",45056:"Xe3-LPG"}[65280&n.DXGI_ADAPTER_DESC3.DeviceId],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";break;case"NVIDIA GeForce GT 740M":r="Kepler"}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)}]); \ No newline at end of file +"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;i0?" ".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;t0?" ".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),T={};T.styleTagTransform=A(),T.setAttributes=l(),T.insert=s().bind(null,"head"),T.domAPI=c(),T.insertStyleElement=u(),a()(I.A,T),I.A&&I.A.locals&&I.A.locals;var h=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=h.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",45056:"Xe3-LPG"}[65280&n.DXGI_ADAPTER_DESC3.DeviceId],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";break;case"NVIDIA GeForce GT 740M":r="Kepler"}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:.0313999999999998,"RDNA 3.5":.0013,Unknown:.0706,GCN1:.0011,GCN4:.0210999999999999,GCN3:4e-4,RDNA:.0099999999999999,RDNA2:.036299999999999895,RDNA4:.0018,Vega:.0081,"Gen7.5":.0022,Gen9:.0037,Gen8:9e-4,"Gen9.5":.0132999999999999,Xe:.0209999999999999,Maxwell1:.004300000000000001,Kepler:.0017,Fermi:1e-4,Pascal:.055699999999999895,"Turing 16":.06349999999999989,Fermi2:3e-4,Maxwell2:.005599999999999999,"Turing 20":.049,Ampere:.20229999999999984,Ada:.2032,Blackwell:.1225999999999999,X1:6e-4}}},e=>{e(e.s=958)}]); \ No newline at end of file diff --git a/source/website/can_i_use.js b/source/website/can_i_use.js index 1b25064..59aceef 100644 --- a/source/website/can_i_use.js +++ b/source/website/can_i_use.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[995],{954(e,t,n){n.d(t,{A:()=>i});var r=n(601),o=n.n(r),a=n(314),c=n.n(a)()(o());c.push([e.id,'.CanIUseSearchContainer, .CanIUseData {\n max-width: 2100px;\n margin: 0 auto;\n}\n\n.CanIUseFilterResult {\n margin-top: 12px;\n}\n\n.PropertyItem {\n font-size: 1.2em;\n width: calc(100% - 24px);\n text-align: left;\n margin: 8px 12px;\n padding: 3px;\n border: 2px solid;\n border-collapse: collapse;\n border-color: #a7a7a7;\n border-radius: 4px;\n}\n\n.PropertyItem:hover {\n color:#206999;\n border-color: #5489aa;\n cursor: pointer;\n}\n\n.CanIUseData {\n font-family: "Roboto", sans-serif;\n width: 100%;\n}\n\n.TableContainer {\n display:flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\ntable {\n margin-right: 10px;\n margin-bottom: 10px;\n}\n\ntd {\n white-space: pre-wrap;\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\ncolgroup {\n border-inline-end-width: 2px;\n border-inline-end-style: solid;\n border-inline-end-color: #7f7f7f;\n}\n\n/* row of headers with vendor names */\nthead>tr:first-of-type>th {\n border-bottom: none;\n}\n/* row of headers with architecture names */\nthead>tr:nth-of-type(2)>th {\n border-top: none;\n border-bottom-width: 2px;\n border-bottom-style: solid;\n padding-inline: 0.3em;\n /* separate arch names a little */\n}\n\n\n.dark-mode {\n .PropertyItem:hover {\n color:#a0dbff;\n }\n}\n',""]);const i=c},314(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(r)for(var i=0;i0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=a),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},601(e){e.exports=function(e){return e[1]}},72(e){var t=[];function n(e){for(var n=-1,r=0;r0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},740(e,t,n){var r=n(72),o=n.n(r),a=n(825),c=n.n(a),i=n(659),s=n.n(i),l=n(56),d=n.n(l),u=n(540),p=n.n(u),D=n(113),f=n.n(D),h=n(954),A={};A.styleTagTransform=f(),A.setAttributes=d(),A.insert=s().bind(null,"head"),A.domAPI=c(),A.insertStyleElement=p(),o()(h.A,A),h.A&&h.A.locals&&h.A.locals;var I=n(568),m=n(878),G=n(924),T=n(480),N=n(141),S=n(962),E=n(619),_=n(185);let g=[],v=[],C=null,F="";const P=["Support"],y=["Architecture","Market Share"];let V=[[250,180,180],[180,250,180]],w=[210,210,210],R=[[80,30,30],[30,80,30]],b=[40,40,40];function M(){return"dark"==S.n$()}function U(e,t){if("D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==F&&("Pascal"==t||"Turing 16"==t))return 0;if("D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier"==F&&"RDNA2"==t)return 10;if("D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported"==F)for(let e of N.BP.get(t))if(e.D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported)return 1;return g.find((t=>t.GetField("ID")==e.ID)).GetField(F)}function x(e){return E.A[e]??0}function X(e){if("WARP"===e)return"N/A";let t=x(e);return 0==t?"~0%":(100*t).toFixed(2)+"%"}function O(){switch(F){case"D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED.Supported":case"D3D12_FEATURE_DATA_D3D12_OPTIONS19.RasterizerDesc2Supported":case"D3D12_FEATURE_DATA_D3D12_OPTIONS18.RenderPassesValid":case"D3D12_FEATURE_DATA_ROOT_SIGNATURE.HighestVersion":case"D3D12_FEATURE_DATA_D3D12_OPTIONS1.ExpandedComputeResourceStates":return!1;default:return!0}}function k(e){C.value=e,_.A.PropertiesSearchString=e,F=m.jg.includes(_.A.PropertiesSearchString)?_.A.PropertiesSearchString:"";const t=new URL(window.location);""==_.A.PropertiesSearchString?t.searchParams.delete("q"):t.searchParams.set("q",_.A.PropertiesSearchString),window.history.replaceState({},"",t),j()}function H(){let e=new Set;for(let[t,n]of N.Es)e.add(U(n,t));let t=Array.from(e);return t.sort(((e,t)=>Number(e)-Number(t))),t}function L(e,t){for(let n of y){const r=document.createElement("td");switch(n){case"Architecture":r.textContent=t;break;case"Market Share":r.textContent=X(t)}e.appendChild(r)}}function B(e){for(let t of y){const t=document.createElement("td");e.appendChild(t)}}function Q(e,t,n){let r=function(e){let t=[];const n=M()?R:V,r=M()?b:w;if(e<0)return`rgb(${r.join(",")})`;for(let r=0;rMath.max(e,t.length)),0),c=[];for(let e=0;e0&&K(`${e.join(", ")} ${1==e.length?"has":"have"} feature support that is out of order of architecture release dates. Some newer GPUs may have less support than older ones. Or this may be a false positive warning caused by out of date reports.`,t)}e.appendChild(t)}(e)}}function j(){(function(){const e=document.getElementById("FeatureSearchResult");I.E(e),""==F&&(F="",m.jg.forEach((t=>{if(!function(e){let t=G.gt(e),n=_.A.PropertiesSearchString.toLocaleLowerCase();return""==n||m.Xm.has(e)||e.toString().toLowerCase().includes(n)||t.toString().toLowerCase().includes(n)}(t))return;let n=document.createElement("div");n.classList.add("PropertyItem"),n.textContent=t,n.addEventListener("click",(function(e){k(t)})),e.appendChild(n)})))})(),W()}window.addEventListener("DOMContentLoaded",(function(){window.addEventListener("keydown",(function(e){if(null==C||document.activeElement==C)return;let t=!1;t=t||"F3"===e.key,t=t||"F"===e.key.toUpperCase()&&e.ctrlKey,t&&(e.preventDefault(),C.focus())})),S.n(j);const e=document.getElementById("FeatureData"),t=document.createElement("div"),n=document.createTextNode("Loading. Please wait.");t.appendChild(n),e.appendChild(t),T.TK((e=>{g=e,N.Q0(g),v=function(){let e=[];for(let[t,n]of Object.entries(N.hp))0!=n.size&&e.push(t);return e}(),function(){const e=document.getElementById("FeatureSearchBar");C=document.createElement("input"),C.type="search",C.placeholder="Search Features",C.classList.add("searchBar"),C.addEventListener("input",(function(e){k(C.value)})),e.appendChild(C)}(),k(new URL(document.location).searchParams.get("q")??"")}))}),!1)},141(e,t,n){n.d(t,{BP:()=>c,Es:()=>s,Q0:()=>p,f4:()=>i,hp:()=>a});var r=n(878),o=n(924);let a={Microsoft:new Set,AMD:new Set,Nvidia:new Set,Intel:new Set,Qualcomm:new Set},c=new Map,i=new Map,s=new Map,l=[];function d(e){return!!e.GetField("Header.Using preview Agility SDK")||"None"!=o.UN(e)||!!r.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 u(e){let t,n=e.GetOriginalReport(),r=o.IL("DXGI_ADAPTER_DESC3.VendorId",n.DXGI_ADAPTER_DESC3.VendorId);if("Microsoft Basic Render Driver"==n.DXGI_ADAPTER_DESC3.Description)t="WARP",a.Microsoft.add(t);else if(n.AGSDeviceInfo&&null!=n.AGSDeviceInfo.asicFamily){const e=["Unknown","PreGCN","GCN1","GCN2","GCN3","GCN4","Vega","RDNA","RDNA2","RDNA3","RDNA4"],r={30032:"RDNA4"};0!=n.AGSDeviceInfo.asicFamily?(t=e[n.AGSDeviceInfo.asicFamily],t||(t="Arch ID "+n.AGSDeviceInfo.asicFamily),a.AMD.add(t)):n.DXGI_ADAPTER_DESC3.DeviceId in r&&(t=r[n.DXGI_ADAPTER_DESC3.DeviceId],a.AMD.add(t))}else if(r.startsWith("Intel"))t={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",45056:"Xe3-LPG"}[65280&n.DXGI_ADAPTER_DESC3.DeviceId],t&&a.Intel.add(t);else if(n.NvPhysicalGpuHandle&&n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]){if(t={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"]],t||(t="Arch ID "+n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]),"Turing"===t){const e=n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::implementation_id"];t=7==e||8==e?"Turing 16":"Turing 20"}"Kepler2"==t||"Kepler1"==t?t="Kepler":"Fermi2"==t?t="Fermi":"Volta1"==t&&(t="Volta"),a.Nvidia.add(t)}else if(r.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":t="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":t="Fermi2";break;case"NVIDIA GeForce GT 740M":t="Kepler"}t&&a.Nvidia.add(t)}else r.startsWith("Qualcomm")&&(/Snapdragon\(R\) X (Plus)|(Elite) - X1.*/.test(n.DXGI_ADAPTER_DESC3.Description)&&(t="X1"),/Qualcomm\(R\) Adreno\(TM\) X1.*/.test(n.DXGI_ADAPTER_DESC3.Description)?t="X1":n.DXGI_ADAPTER_DESC3.Description.includes("8cx")&&(t=n.DXGI_ADAPTER_DESC3.Description.slice(n.DXGI_ADAPTER_DESC3.Description.search(/8cx.*/)),t=t.replace("Gen ","")),t&&a.Qualcomm.add(t));t?(c.has(t)?c.get(t).push(n):c.set(t,[n]),i.has(t)?i.get(t).add(n.DXGI_ADAPTER_DESC3.Description):i.set(t,new Set([n.DXGI_ADAPTER_DESC3.Description]))):l.push(n)}function p(e){for(let t of e)d(t)||u(t);for(let[e,r]of c){let o=null;for(let e of r)t=e,(null==(n=o)||(t.CheckInterfaceSupport.UMDVersion!=n.CheckInterfaceSupport.UMDVersion?BigInt(t.CheckInterfaceSupport.UMDVersion)>BigInt(n.CheckInterfaceSupport.UMDVersion):t.Header.Version!=n.Header.Version?t.Header.Version>n.Header.Version:t.ID>n.ID))&&(o=e);s.set(e,o)}var t,n;function o(e,t){const n=[];for(const t of e)n.push(t);e.clear();for(const r of n.sort(t))e.add(r);return e}function i(e,t){let n=r.Vz[e]??9999,o=r.Vz[t]??9999;return n==o?e.localeCompare(t):n-o}o(a.AMD,i),o(a.Nvidia,i),o(a.Intel,i),o(a.Qualcomm,i)}},619(e,t,n){n.d(t,{A:()=>r});const r={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=740)}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[995],{954(e,t,n){n.d(t,{A:()=>i});var r=n(601),o=n.n(r),a=n(314),c=n.n(a)()(o());c.push([e.id,'.CanIUseSearchContainer, .CanIUseData {\n max-width: 2100px;\n margin: 0 auto;\n}\n\n.CanIUseFilterResult {\n margin-top: 12px;\n}\n\n.PropertyItem {\n font-size: 1.2em;\n width: calc(100% - 24px);\n text-align: left;\n margin: 8px 12px;\n padding: 3px;\n border: 2px solid;\n border-collapse: collapse;\n border-color: #a7a7a7;\n border-radius: 4px;\n}\n\n.PropertyItem:hover {\n color:#206999;\n border-color: #5489aa;\n cursor: pointer;\n}\n\n.CanIUseData {\n font-family: "Roboto", sans-serif;\n width: 100%;\n}\n\n.TableContainer {\n display:flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\ntable {\n margin-right: 10px;\n margin-bottom: 10px;\n}\n\ntd {\n white-space: pre-wrap;\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\ncolgroup {\n border-inline-end-width: 2px;\n border-inline-end-style: solid;\n border-inline-end-color: #7f7f7f;\n}\n\n/* row of headers with vendor names */\nthead>tr:first-of-type>th {\n border-bottom: none;\n}\n/* row of headers with architecture names */\nthead>tr:nth-of-type(2)>th {\n border-top: none;\n border-bottom-width: 2px;\n border-bottom-style: solid;\n padding-inline: 0.3em;\n /* separate arch names a little */\n}\n\n\n.dark-mode {\n .PropertyItem:hover {\n color:#a0dbff;\n }\n}\n',""]);const i=c},314(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(r)for(var i=0;i0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=a),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},601(e){e.exports=function(e){return e[1]}},72(e){var t=[];function n(e){for(var n=-1,r=0;r0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},740(e,t,n){var r=n(72),o=n.n(r),a=n(825),c=n.n(a),i=n(659),s=n.n(i),l=n(56),d=n.n(l),u=n(540),p=n.n(u),D=n(113),f=n.n(D),h=n(954),A={};A.styleTagTransform=f(),A.setAttributes=d(),A.insert=s().bind(null,"head"),A.domAPI=c(),A.insertStyleElement=p(),o()(h.A,A),h.A&&h.A.locals&&h.A.locals;var I=n(568),m=n(878),G=n(924),T=n(480),N=n(141),S=n(962),E=n(619),_=n(185);let g=[],v=[],C=null,F="";const P=["Support"],y=["Architecture","Market Share"];let V=[[250,180,180],[180,250,180]],w=[210,210,210],R=[[80,30,30],[30,80,30]],b=[40,40,40];function M(){return"dark"==S.n$()}function U(e,t){if("D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==F&&("Pascal"==t||"Turing 16"==t))return 0;if("D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier"==F&&"RDNA2"==t)return 10;if("D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported"==F)for(let e of N.BP.get(t))if(e.D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported)return 1;return g.find((t=>t.GetField("ID")==e.ID)).GetField(F)}function x(e){return E.A[e]??0}function X(e){if("WARP"===e)return"N/A";let t=x(e);return 0==t?"~0%":(100*t).toFixed(2)+"%"}function O(){switch(F){case"D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED.Supported":case"D3D12_FEATURE_DATA_D3D12_OPTIONS19.RasterizerDesc2Supported":case"D3D12_FEATURE_DATA_D3D12_OPTIONS18.RenderPassesValid":case"D3D12_FEATURE_DATA_ROOT_SIGNATURE.HighestVersion":case"D3D12_FEATURE_DATA_D3D12_OPTIONS1.ExpandedComputeResourceStates":return!1;default:return!0}}function k(e){C.value=e,_.A.PropertiesSearchString=e,F=m.jg.includes(_.A.PropertiesSearchString)?_.A.PropertiesSearchString:"";const t=new URL(window.location);""==_.A.PropertiesSearchString?t.searchParams.delete("q"):t.searchParams.set("q",_.A.PropertiesSearchString),window.history.replaceState({},"",t),j()}function H(){let e=new Set;for(let[t,n]of N.Es)e.add(U(n,t));let t=Array.from(e);return t.sort(((e,t)=>Number(e)-Number(t))),t}function L(e,t){for(let n of y){const r=document.createElement("td");switch(n){case"Architecture":r.textContent=t;break;case"Market Share":r.textContent=X(t)}e.appendChild(r)}}function B(e){for(let t of y){const t=document.createElement("td");e.appendChild(t)}}function Q(e,t,n){let r=function(e){let t=[];const n=M()?R:V,r=M()?b:w;if(e<0)return`rgb(${r.join(",")})`;for(let r=0;rMath.max(e,t.length)),0),c=[];for(let e=0;e0&&K(`${e.join(", ")} ${1==e.length?"has":"have"} feature support that is out of order of architecture release dates. Some newer GPUs may have less support than older ones. Or this may be a false positive warning caused by out of date reports.`,t)}e.appendChild(t)}(e)}}function j(){(function(){const e=document.getElementById("FeatureSearchResult");I.E(e),""==F&&(F="",m.jg.forEach((t=>{if(!function(e){let t=G.gt(e),n=_.A.PropertiesSearchString.toLocaleLowerCase();return""==n||m.Xm.has(e)||e.toString().toLowerCase().includes(n)||t.toString().toLowerCase().includes(n)}(t))return;let n=document.createElement("div");n.classList.add("PropertyItem"),n.textContent=t,n.addEventListener("click",(function(e){k(t)})),e.appendChild(n)})))})(),W()}window.addEventListener("DOMContentLoaded",(function(){window.addEventListener("keydown",(function(e){if(null==C||document.activeElement==C)return;let t=!1;t=t||"F3"===e.key,t=t||"F"===e.key.toUpperCase()&&e.ctrlKey,t&&(e.preventDefault(),C.focus())})),S.n(j);const e=document.getElementById("FeatureData"),t=document.createElement("div"),n=document.createTextNode("Loading. Please wait.");t.appendChild(n),e.appendChild(t),T.TK((e=>{g=e,N.Q0(g),v=function(){let e=[];for(let[t,n]of Object.entries(N.hp))0!=n.size&&e.push(t);return e}(),function(){const e=document.getElementById("FeatureSearchBar");C=document.createElement("input"),C.type="search",C.placeholder="Search Features",C.classList.add("searchBar"),C.addEventListener("input",(function(e){k(C.value)})),e.appendChild(C)}(),k(new URL(document.location).searchParams.get("q")??"")}))}),!1)},141(e,t,n){n.d(t,{BP:()=>c,Es:()=>s,Q0:()=>p,f4:()=>i,hp:()=>a});var r=n(878),o=n(924);let a={Microsoft:new Set,AMD:new Set,Nvidia:new Set,Intel:new Set,Qualcomm:new Set},c=new Map,i=new Map,s=new Map,l=[];function d(e){return!!e.GetField("Header.Using preview Agility SDK")||"None"!=o.UN(e)||!!r.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 u(e){let t,n=e.GetOriginalReport(),r=o.IL("DXGI_ADAPTER_DESC3.VendorId",n.DXGI_ADAPTER_DESC3.VendorId);if("Microsoft Basic Render Driver"==n.DXGI_ADAPTER_DESC3.Description)t="WARP",a.Microsoft.add(t);else if(n.AGSDeviceInfo&&null!=n.AGSDeviceInfo.asicFamily){const e=["Unknown","PreGCN","GCN1","GCN2","GCN3","GCN4","Vega","RDNA","RDNA2","RDNA3","RDNA4"],r={30032:"RDNA4"};0!=n.AGSDeviceInfo.asicFamily?(t=e[n.AGSDeviceInfo.asicFamily],t||(t="Arch ID "+n.AGSDeviceInfo.asicFamily),a.AMD.add(t)):n.DXGI_ADAPTER_DESC3.DeviceId in r&&(t=r[n.DXGI_ADAPTER_DESC3.DeviceId],a.AMD.add(t))}else if(r.startsWith("Intel"))t={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",45056:"Xe3-LPG"}[65280&n.DXGI_ADAPTER_DESC3.DeviceId],t&&a.Intel.add(t);else if(n.NvPhysicalGpuHandle&&n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]){if(t={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"]],t||(t="Arch ID "+n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]),"Turing"===t){const e=n.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::implementation_id"];t=7==e||8==e?"Turing 16":"Turing 20"}"Kepler2"==t||"Kepler1"==t?t="Kepler":"Fermi2"==t?t="Fermi":"Volta1"==t&&(t="Volta"),a.Nvidia.add(t)}else if(r.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":t="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":t="Fermi2";break;case"NVIDIA GeForce GT 740M":t="Kepler"}t&&a.Nvidia.add(t)}else r.startsWith("Qualcomm")&&(/Snapdragon\(R\) X (Plus)|(Elite) - X1.*/.test(n.DXGI_ADAPTER_DESC3.Description)&&(t="X1"),/Qualcomm\(R\) Adreno\(TM\) X1.*/.test(n.DXGI_ADAPTER_DESC3.Description)?t="X1":n.DXGI_ADAPTER_DESC3.Description.includes("8cx")&&(t=n.DXGI_ADAPTER_DESC3.Description.slice(n.DXGI_ADAPTER_DESC3.Description.search(/8cx.*/)),t=t.replace("Gen ","")),t&&a.Qualcomm.add(t));t?(c.has(t)?c.get(t).push(n):c.set(t,[n]),i.has(t)?i.get(t).add(n.DXGI_ADAPTER_DESC3.Description):i.set(t,new Set([n.DXGI_ADAPTER_DESC3.Description]))):l.push(n)}function p(e){for(let t of e)d(t)||u(t);for(let[e,r]of c){let o=null;for(let e of r)t=e,(null==(n=o)||(t.CheckInterfaceSupport.UMDVersion!=n.CheckInterfaceSupport.UMDVersion?BigInt(t.CheckInterfaceSupport.UMDVersion)>BigInt(n.CheckInterfaceSupport.UMDVersion):t.Header.Version!=n.Header.Version?t.Header.Version>n.Header.Version:t.ID>n.ID))&&(o=e);s.set(e,o)}var t,n;function o(e,t){const n=[];for(const t of e)n.push(t);e.clear();for(const r of n.sort(t))e.add(r);return e}function i(e,t){let n=r.Vz[e]??9999,o=r.Vz[t]??9999;return n==o?e.localeCompare(t):n-o}o(a.AMD,i),o(a.Nvidia,i),o(a.Intel,i),o(a.Qualcomm,i)}},619(e,t,n){n.d(t,{A:()=>r});const r={RDNA3:.0313999999999998,"RDNA 3.5":.0013,Unknown:.0706,GCN1:.0011,GCN4:.0210999999999999,GCN3:4e-4,RDNA:.0099999999999999,RDNA2:.036299999999999895,RDNA4:.0018,Vega:.0081,"Gen7.5":.0022,Gen9:.0037,Gen8:9e-4,"Gen9.5":.0132999999999999,Xe:.0209999999999999,Maxwell1:.004300000000000001,Kepler:.0017,Fermi:1e-4,Pascal:.055699999999999895,"Turing 16":.06349999999999989,Fermi2:3e-4,Maxwell2:.005599999999999999,"Turing 20":.049,Ampere:.20229999999999984,Ada:.2032,Blackwell:.1225999999999999,X1:6e-4}}},e=>{e(e.s=740)}]); \ No newline at end of file diff --git a/source/website/feature_table.js b/source/website/feature_table.js index 80a52fe..b8479fd 100644 --- a/source/website/feature_table.js +++ b/source/website/feature_table.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[934],{551(e,t,r){r.d(t,{A:()=>s});var n=r(601),a=r.n(n),i=r(314),o=r.n(i)()(a());o.push([e.id,'body {\n min-width:fit-content;\n}\n\n.FeatureTable {\n font-family: "Roboto", sans-serif;\n}\n\n.FeatureTable thead {\n position: sticky;\n top: 0;\n z-index: 2;\n}\n\n.FeatureTable thead tr {\n background-color: #00000000;\n}\n\n.FeatureTableFilterContainer {\n max-width: 2100px;\n margin: 0 auto;\n padding-bottom: 0.3em;\n}\n\ntd {\n white-space: pre-wrap;\n}\n\n.FeatureHeader {\n text-align: center;\n min-width: 14em;\n}\n\nth,\n.FeatureHeader {\n font-weight: 600;\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\ntr:nth-of-type(odd) {\n background-color: #00000010;\n}\n\ntd:nth-of-type(even) {\n background-color: #00000010;\n}\n\ntable {\n border-collapse: collapse;\n margin: auto;\n}\n\ncolgroup {\n border-inline-end-width: 2px;\n border-inline-end-style: solid;\n border-inline-end-color: #7f7f7f;\n}\n\n/* sticky table headers */\nth {\n position: sticky !important;\n}\n\n/* row of headers with vendor names */\nthead>tr:first-of-type>th {\n top: -1px;\n /* first row sticks to the top of the screen */\n border-bottom: none;\n}\n\n/* row of headers with architecture names */\nthead>tr:nth-of-type(2)>th {\n top: 1.3em;\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 arch names a little */\n}\n\n#FilterContainer {\n display: flex;\n}\n\n.tooltip {\n position: relative;\n}\n\n.tooltiptext {\n visibility: hidden;\n background-color: #FFFFFF;\n text-align: left;\n border-radius: 0.4em;\n border-color: #7f7f7f;\n border-style: solid;\n border-width: 0.1em;\n padding: 0.3em;\n position: absolute;\n z-index: 3;\n opacity: 0;\n transition: opacity 150ms ease-in, visibility 0ms ease-in 150ms;\n bottom: 100%;\n}\n\n.tooltip:hover .tooltiptext {\n visibility: visible;\n opacity: 1;\n transition-delay: 0ms;\n}\n\n.white_space_pre {\n white-space: pre;\n}\n\n.FeatureTableNotes {\n padding-bottom: 0.2em;\n font-family: "Roboto", sans-serif;\n}\n\n.dark-mode {\n\n th,\n td {\n border-color: #8c8c8c;\n }\n\n colgroup {\n border-inline-end-color: #8c8c8c;\n }\n\n table,\n fieldset {\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\n td:nth-of-type(even) {\n background-color: #00000020;\n }\n\n .tooltiptext {\n background-color: #000000;\n border-color: #8c8c8c;\n }\n\n}',""]);const s=o},314(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,a,i){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(n)for(var s=0;s0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=i),r&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=r):l[2]=r),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),t.push(l))}},t}},601(e){e.exports=function(e){return e[1]}},72(e){var t=[];function r(e){for(var r=-1,n=0;n0?" ".concat(r.layer):""," {")),n+=r.css,a&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},7(e,t,r){var n=r(72),a=r.n(n),i=r(825),o=r.n(i),s=r(659),D=r.n(s),d=r(56),l=r.n(d),c=r(540),p=r.n(c),A=r(113),_=r.n(A),T=r(551),u={};u.styleTagTransform=_(),u.setAttributes=l(),u.insert=D().bind(null,"head"),u.domAPI=o(),u.insertStyleElement=p(),a()(T.A,u),T.A&&T.A.locals&&T.A.locals;var S=r(619),E=r(878);const h={TableReleaseDate:"Release Date",TableMarketShare:"Market Share",TableNumReports:"Number of reports",TableReportUsed:"Report used for feature data",TableD3d12InfoVersion:"D3d12info version","D3D12_FEATURE_DATA_FEATURE_LEVELS.MaxSupportedFeatureLevel":"Feature level","D3D12_FEATURE_DATA_SHADER_MODEL.HighestShaderModel":"Shader model","D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier":"Raytracing","D3D12_FEATURE_DATA_D3D12_OPTIONS22.ShaderExecutionReorderingActuallyReorders":"Shader Execution Reordering Actually Reorders",Table_Advanced_Shader_Delivery_Supported:"Advanced Shader Delivery Supported","D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier":"Mesh shaders","D3D12_FEATURE_DATA_D3D12_OPTIONS21.WorkGraphsTier":"Work graphs","D3D12_FEATURE_DATA_D3D12_OPTIONS7.SamplerFeedbackTier":"Sampler feedback","D3D12_FEATURE_DATA_D3D12_OPTIONS21.ExecuteIndirectTier":"Execute indirect","D3D12_FEATURE_DATA_D3D12_OPTIONS.ConservativeRasterizationTier":"Conservative rasterization","D3D12_FEATURE_DATA_D3D12_OPTIONS22.Max1DDispatchSize":"Max 1D Dispatch Size","D3D12_FEATURE_DATA_D3D12_OPTIONS22.Max1DDispatchMeshSize":"Max 1D Mesh Dispatch Size","D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported":"GPU upload heaps","D3D12_FEATURE_DATA_D3D12_OPTIONS12.EnhancedBarriersSupported":"Enhanced barriers","D3D12_FEATURE_DATA_TIGHT_ALIGNMENT.SupportTier":"Tight alignment","D3D12_FEATURE_DATA_D3D12_OPTIONS22.CreateByteOffsetViewsSupported":"Create at byte offset supported","D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier":"Variable-rate shading","D3D12_FEATURE_DATA_D3D12_OPTIONS6.AdditionalShadingRatesSupported":"Additional shading rates","D3D12_FEATURE_DATA_D3D12_OPTIONS6.ShadingRateImageTileSize":"Shading-rate image tile size","D3D12_FEATURE_DATA_D3D12_OPTIONS6.PerPrimitiveShadingRateSupportedWithViewportIndexing":"Per-primitive shading rate with viewport indexing","D3D12_FEATURE_DATA_D3D12_OPTIONS10.VariableRateShadingSumCombinerSupported":"VRS sum combiner","D3D12_FEATURE_DATA_D3D12_OPTIONS10.MeshShaderPerPrimitiveShadingRateSupported":"Mesh shader per-primitive shading rate","D3D12_FEATURE_DATA_D3D12_OPTIONS3.BarycentricsSupported":"Barycentrics",Table_R9G9B9E5_RTV_UAV:"R9G9B9E5 RTV/UAV support",Table_R9G9B9E5_Display:"R9G9B9E5 Display support","D3D12_FEATURE_DATA_D3D12_OPTIONS9.WaveMMATier":"WaveMMA (wave_matrix)","D3D12_FEATURE_DATA_D3D12_OPTIONS1.WaveLaneCountMin":"Wave lane count min","D3D12_FEATURE_DATA_D3D12_OPTIONS1.WaveLaneCountMax":"Wave lane count max","D3D12_FEATURE_DATA_D3D12_OPTIONS14.WriteableMSAATexturesSupported":"Writeable MSAA textures","D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.MaxGPUVirtualAddressBitsPerResource":"Per-resource virtual addressing","D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.MaxGPUVirtualAddressBitsPerProcess":"Per-process virtual addressing","D3D12_FEATURE_DATA_D3D12_OPTIONS5.RenderPassesTier":"Render passes","D3D12_FEATURE_DATA_ARCHITECTURE1.TileBasedRenderer":"Tile-based renderer","D3D12_FEATURE_DATA_D3D12_OPTIONS.ResourceHeapTier":"Resource heap","D3D12_FEATURE_DATA_D3D12_OPTIONS.ResourceBindingTier":"Resource binding","D3D12_FEATURE_DATA_D3D12_OPTIONS.TiledResourcesTier":"Tiled resources","D3D12_FEATURE_DATA_D3D12_OPTIONS5.SRVOnlyTiledResourceTier3":"SRV-only tiled resource tier 3","D3D12_FEATURE_DATA_D3D12_OPTIONS.MinPrecisionSupport":"Min-precision support","D3D12_FEATURE_DATA_D3D12_OPTIONS4.Native16BitShaderOpsSupported":"Native 16-bit shader ops","D3D12_FEATURE_DATA_D3D12_OPTIONS.DoublePrecisionFloatShaderOps":"64-bit float shader ops","D3D12_FEATURE_DATA_D3D12_OPTIONS1.Int64ShaderOps":"64-bit int shader ops","D3D12_FEATURE_DATA_D3D12_OPTIONS9.AtomicInt64OnTypedResourceSupported":"64-bit int atomics on typed resource","D3D12_FEATURE_DATA_D3D12_OPTIONS9.AtomicInt64OnGroupSharedSupported":"64-bit int atomics on group shared","D3D12_FEATURE_DATA_D3D12_OPTIONS11.AtomicInt64OnDescriptorHeapResourceSupported":"64-bit int atomics on descriptor heap resources","D3D12_FEATURE_DATA_D3D12_OPTIONS9.DerivativesInMeshAndAmplificationShadersSupported":"Derivatives in mesh and amplification shaders","D3D12_FEATURE_DATA_D3D12_OPTIONS6.BackgroundProcessingSupported":"Background processing","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MaxSamplerDescriptorHeapSize":"Max sampler heap size","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MaxSamplerDescriptorHeapSizeWithStaticSamplers":"Max sampler heap size with static samplers","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MaxViewDescriptorHeapSize":"Max view descriptor heap size","D3D12_FEATURE_DATA_D3D12_OPTIONS8.UnalignedBlockTexturesSupported":"Unaligned block textures","D3D12_FEATURE_DATA_D3D12_OPTIONS12.MSPrimitivesPipelineStatisticIncludesCulledPrimitives":"MSPrimitives pipeline statistic includes culled primitives","D3D12_FEATURE_DATA_D3D12_OPTIONS12.RelaxedFormatCastingSupported":"Relaxed format casting","D3D12_FEATURE_DATA_D3D12_OPTIONS.PSSpecifiedStencilRefSupported":"PS-specified StencilRef","D3D12_FEATURE_DATA_D3D12_OPTIONS2.ProgrammableSamplePositionsTier":"Programmable sample positions","D3D12_FEATURE_DATA_D3D12_OPTIONS13.AlphaBlendFactorSupported":"Alpha blend factor","D3D12_FEATURE_DATA_D3D12_OPTIONS14.IndependentFrontAndBackStencilRefMaskSupported":"Independent front & back StencilRef mask","D3D12_FEATURE_DATA_D3D12_OPTIONS17.NonNormalizedCoordinateSamplersSupported":"Non-normalized coordinate samplers","D3D12_FEATURE_DATA_D3D12_OPTIONS3.ViewInstancingTier":"View instancing","D3D12_FEATURE_DATA_D3D12_OPTIONS19.SupportedSampleCountsWithNoOutputs":"MSAA sample counts with no outputs","D3D12_FEATURE_DATA_D3D12_OPTIONS21.SampleCmpGradientAndBiasSupported":"SampleCmp gradient and bias","D3D12_FEATURE_DATA_D3D12_OPTIONS21.ExtendedCommandInfoSupported":"Extended command info","D3D12_FEATURE_DATA_D3D12_OPTIONS.ROVsSupported":"Rasterizer-ordered views","D3D12_FEATURE_DATA_D3D12_OPTIONS2.DepthBoundsTestSupported":"Depth-bounds test","D3D12_FEATURE_DATA_D3D12_OPTIONS3.CopyQueueTimestampQueriesSupported":"Copy queue timestamp queries","D3D12_FEATURE_DATA_D3D12_OPTIONS3.WriteBufferImmediateSupportFlags":"WriteBufferImmediate command list support","D3D12_FEATURE_DATA_D3D12_OPTIONS9.MeshShaderSupportsFullRangeRenderTargetArrayIndex":"Mesh shader full range RT array index","D3D12_FEATURE_DATA_D3D12_OPTIONS13.UnrestrictedBufferTextureCopyPitchSupported":"Unrestricted buffer-texture copy pitch","D3D12_FEATURE_DATA_D3D12_OPTIONS13.UnrestrictedVertexElementAlignmentSupported":"Unrestricted vertex element alignment","D3D12_FEATURE_DATA_D3D12_OPTIONS13.InvertedViewportHeightFlipsYSupported":"Inverted viewport height flips Y","D3D12_FEATURE_DATA_D3D12_OPTIONS13.InvertedViewportDepthFlipsZSupported":"Inverted viewport depth flips Z","D3D12_FEATURE_DATA_D3D12_OPTIONS13.TextureCopyBetweenDimensionsSupported":"Texture copy between dimensions","D3D12_FEATURE_DATA_D3D12_OPTIONS14.AdvancedTextureOpsSupported":"Advanced texture ops","D3D12_FEATURE_DATA_D3D12_OPTIONS15.TriangleFanSupported":"Triangle fans","D3D12_FEATURE_DATA_D3D12_OPTIONS15.DynamicIndexBufferStripCutSupported":"Dynamic index buffer strip cut","D3D12_FEATURE_DATA_D3D12_OPTIONS16.DynamicDepthBiasSupported":"Dynamic depth bias","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MismatchingOutputDimensionsSupported":"Mismatching output dimensions","D3D12_FEATURE_DATA_D3D12_OPTIONS19.PointSamplingAddressesNeverRoundUp":"Point sampling addresses never round up","D3D12_FEATURE_DATA_D3D12_OPTIONS19.NarrowQuadrilateralLinesSupported":"Narrow quadrilateral lines","D3D12_FEATURE_DATA_D3D12_OPTIONS19.AnisoFilterWithPointMipSupported":"Aniso filter with point mip","D3D12_FEATURE_DATA_ARCHITECTURE1.IsolatedMMU":"Isolated MMU","D3D12_FEATURE_DATA_SERIALIZATION.HeapSerializationTier":"Heap serialization","D3D12_FEATURE_DATA_D3D12_OPTIONS.StandardSwizzle64KBSupported":"64KB standard swizzle textures","D3D12_FEATURE_DATA_D3D12_OPTIONS.CrossAdapterRowMajorTextureSupported":"Cross-adapter row-major textures","D3D12_FEATURE_DATA_CROSS_NODE.SharingTier":"Cross-node sharing","D3D12_FEATURE_DATA_CROSS_NODE.AtomicShaderInstructions":"Cross-node atomics","D3D12_FEATURE_DATA_D3D12_OPTIONS1.WaveOps":"Wave ops","D3D12_FEATURE_DATA_D3D12_OPTIONS.OutputMergerLogicOp":"Output merger logic ops","D3D12_FEATURE_DATA_D3D12_OPTIONS3.CastingFullyTypedFormatSupported":"Casting fully typed formats","D3D12_FEATURE_DATA_D3D12_OPTIONS.TypedUAVLoadAdditionalFormats":"Typed UAV loads for additional formats","D3D12_FEATURE_DATA_D3D12_OPTIONS.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation":"VP & RT array index without GS emulation","D3D12_FEATURE_DATA_D3D12_OPTIONS4.MSAA64KBAlignedTextureSupported":"64KB-aligned MSAA textures","D3D12_FEATURE_DATA_D3D12_OPTIONS4.SharedResourceCompatibilityTier":"Shared resources compatibility","D3D12_FEATURE_DATA_D3D12_OPTIONS9.MeshShaderPipelineStatsSupported":"Mesh shader pipeline stats","D3D12_FEATURE_DATA_EXISTING_HEAPS.Supported":"Heaps from existing memory","D3D12_FEATURE_DATA_D3D12_OPTIONS20.RecreateAtTier":"Recreate resource at pointer","D3D12_FEATURE_DATA_D3D12_OPTIONS20.ComputeOnlyWriteWatchSupported":"Compute-only write watch","D3D12_FEATURE_DATA_D3D12_OPTIONS19.ComputeOnlyCustomHeapSupported":"Compute-only custom heap","D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED.Supported":"Bytecode bypass hash","D3D12_FEATURE_DATA_D3D12_OPTIONS19.RasterizerDesc2Supported":"RASTERIZER_DESC2 supported","D3D12_FEATURE_DATA_D3D12_OPTIONS18.RenderPassesValid":"Render passes valid","D3D12_FEATURE_DATA_ROOT_SIGNATURE.HighestVersion":"Root signature version","D3D12_FEATURE_DATA_D3D12_OPTIONS1.ExpandedComputeResourceStates":"Expanded compute resource states"};var m=r(185),I=r(568),f=r(924),R=r(480),O=r(141);let F=[],N=null;const P={alignOutsideHorizontal:!1,alignOutsideVertical:!1,preferTowardsBottom:!1,tooltipAlignment:.5};function g(e,t,r){let n=Object.assign({},P);for(let[e,t]of Object.entries(n))r.hasOwnProperty(e)&&(n[e]=r[e]);e.classList.add("tooltip");const a=document.createElement("span");return a.className="tooltiptext white_space_pre tooltiptext",a.style=`left: ${100*n.tooltipAlignment}%;transform: translateX(-${100*n.tooltipAlignment}%);`,a.textContent=t,e.appendChild(a),a}function G(e){if(!m.A.VendorFilter[e])return!1;for(let t of O.hp[e]){let e=E.Vz[t]??9999;if(m.A.ArchAgeFilter<=e)return!0}return!1}function U(e){let t=0;for(let r of O.hp[e]){let e=E.Vz[r]??9999;m.A.ArchAgeFilter<=e&&t++}return t}function v(){let e=0;for(let[t,r]of Object.entries(O.hp))for(let t of r){let r=E.Vz[t]??9999;m.A.ArchAgeFilter<=r&&e++}return e}function y(e,t){let r=m.A.VendorFilter[e],n=E.Vz[t];return null==n&&(n="9999"),r&&m.A.ArchAgeFilter<=n}function b(e,t){const r=document.createElement("div");r.textContent=e,r.classList.add("FeatureTableNotes"),t.appendChild(r)}function V(e,t,r,n,a){let i=document.createElement("td");i.appendChild(function(e){let t=document.createElement("span");return t.textContent=e,"N/A"==e&&(t.style.fontStyle="italic",t.style.color="#888888"),t}(e)),a&&(i.scope="colgroup",i.colSpan=a),t.appendChild(i),r&&g(i,r,{alignOutsideVertical:!0,tooltipAlignment:n})}function C(e,t,r,n){if(function(e,t,r,n){if("TableReleaseDate"==r){let r,a=E.Vz[t];return null==a&&(a="Unknown"),"WARP"==t&&(a="N/A",r="WARP is a software rasterizer that continues to receive updates over time.\nComparing its initial release date (2015) to the release dates of hardware GPUs,\nwhich cannot gain new features after release, is not meaningful."),V(a,e,r,n),!0}if("TableNumReports"==r)return V(O.BP.get(t).length,e),!0;if("TableMarketShare"==r){document.createElement("td");let r,a=S.A[t];return"WARP"==t?(a="N/A",r="WARP is a software rasterizer, not a hardware GPU.\nIt doesn't have a market share and not in Steam Hardware Survey."):a=null==a?"~0%":Math.round(1e4*a)/100+"%",V(a,e,r,n),!0}if("TableReportUsed"==r){let r=O.Es.get(t),n=document.createElement("td"),a=document.createElement("a");return a.href=`ID.html?ID=${r.ID}`,a.append(r.ID),n.appendChild(a),e.appendChild(n),!0}if("Table_R9G9B9E5_RTV_UAV"==r){let r=O.Es.get(t);if(null==r.Formats)return V("❓",e),!0;let n=r.Formats[67];return null==n?(V("❓",e),!0):(V(16384&n.Support1?E.GG[1]:E.GG[0],e),!0)}if("Table_R9G9B9E5_Display"==r){let r=O.Es.get(t);if(null==r.Formats)return V("❓",e),!0;let n=r.Formats[67];return null==n?(V("❓",e),!0):(V(524288&n.Support1?E.GG[1]:E.GG[0],e),!0)}if("TableD3d12InfoVersion"==r)return V(O.Es.get(t).Header.Version,e),!0;if("Table_Advanced_Shader_Delivery_Supported"==r){let r=O.Es.get(t);return f.P7(r.Header.Version,"3.14.0")<0?(V("❓",e),!0):(r.D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT?V(E.GG[1],e):V(E.GG[0],e),!0)}return!1}(e,t,r,n))return;let a=O.Es.get(t),i=F.find((e=>e.GetField("ID")==a.ID)).GetField(r);(function(e,t,r,n,a,i,o){if("D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported"==r){if("WARP"==t)return V(E.GG[1],e),!0;for(let r of O.BP.get(t))if("WARP"!=t&&r.D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported)return V(E.GG[1]+"*",e,"GPU Upload Heap support depends on BIOS settings and Windows version.\nSame GPU may report different values depending on the system.",o),!0;return V(E.GG[0],e),!0}return"D3D12_FEATURE_DATA_D3D12_OPTIONS6.ShadingRateImageTileSize"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS6.AdditionalShadingRatesSupported"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS6.PerPrimitiveShadingRateSupportedWithViewportIndexing"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.VariableRateShadingSumCombinerSupported"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.MeshShaderPerPrimitiveShadingRateSupported"!=r||0!=a.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier?"D3D12_FEATURE_DATA_D3D12_OPTIONS6.ShadingRateImageTileSize"==r&&1==a.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier?(V("N/A",e,"VRS Tier 2 is required for shading rate image support.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS6.PerPrimitiveShadingRateSupportedWithViewportIndexing"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.VariableRateShadingSumCombinerSupported"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.MeshShaderPerPrimitiveShadingRateSupported"!=r||1!=a.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier?"D3D12_FEATURE_DATA_D3D12_OPTIONS5.SRVOnlyTiledResourceTier3"==r&&a.D3D12_FEATURE_DATA_D3D12_OPTIONS.TiledResourcesTier>=3?(V("N/A",e,"SRVOnlyTiledResourceTier3 is always true\nif TiledResourcesTier >= 3.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==r&&"Pascal"==t?(V("❌ *",e,"Pascal cards with >= 6GB of VRAM have software emulated Tier 1.0. Pascal cards with < 6GB of VRAM have no support at all.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==r&&"Turing 16"==t?(V("❌ *",e,"GTX 16xx series cards with >= 6GB of VRAM have software emulated Tier 1.0. GTX 16xx series cards with < 6GB of VRAM have no support at all.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==r&&"X1"==t?(V("❌ *",e,"X1 supports ray query in hardware,\nbut this capability is not exposed in D3D12,\nsince DXR Tier 1.0 requires callable shaders,\nwhich are unsupported on X1.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier"==r&&"RDNA2"==t?(V(E.GG[1]+"*",e,"RDNA2 iGPUs with 1 WGP don't have mesh shader support",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS12.MSPrimitivesPipelineStatisticIncludesCulledPrimitives"==r&&0==a.D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier&&(V("N/A",e,"It is only relevant if Mesh Shaders are supported.",o),!0):(V("N/A",e,"VRS Tier 2 is required for this capability.",o),!0):(V("N/A",e,"VRS capabilities are only relevant if VRS is supported.",o),!0)})(e,t,r,0,a,0,n)||V(f.iT(r,i),e)}function w(e,t,r,n){let a=document.createElement("tr"),i=t.toLowerCase(),o=r.toLowerCase(),s=m.A.PropertiesSearchString.toLowerCase();if(!(""==s||i.includes(s)||o.includes(s)||["TableReleaseDate","TableMarketShare"].includes(t)))return;let D=document.createElement("td");if(D.classList.add("FeatureHeader"),D.append(r),D.scope="row",t.startsWith("Table")?"TableMarketShare"==t?g(D,"Market share in the Steam Hardware Survey among DirectX 12 Systems.\nThis is an underestimate and may not be very accurate in general.",{alignOutsideVertical:!0,tooltipAlignment:0}):"Table_Advanced_Shader_Delivery_Supported"==t&&g(D,"You probably don't want to abbreviate this.",{alignOutsideVertical:!0,tooltipAlignment:0}):g(D,t,{alignOutsideVertical:!0,tooltipAlignment:0}),a.appendChild(D),function(e,t){return"D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED.Supported"==t?(V("Always supported *",e,"Starting with Agility SDK 1.615.0, it is always supported, independently of GPU or driver.",.5,v()),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS19.RasterizerDesc2Supported"==t||"D3D12_FEATURE_DATA_D3D12_OPTIONS18.RenderPassesValid"==t?(V("Always supported *",e,"Starting with Agility SDK 1.610.0, it is always supported, independently of GPU or driver.",.5,v()),!0):"D3D12_FEATURE_DATA_ROOT_SIGNATURE.HighestVersion"==t?(V("1.2 *",e,"Starting with Agility SDK 1.610.0, Root Signature 1.2 is always supported, independently of GPU or driver.",.5,v()),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS1.ExpandedComputeResourceStates"==t&&(V("Always supported *",e,"Starting with Windows 10 version 1607, it is always supported, independently of GPU or driver.\nAll currently supported Windows versions are newer than Windows 10 version 1607.",.5,v()),!0)}(a,t))e.appendChild(a);else for(let[r,i]of Object.entries(O.hp)){for(let e of i)y(r,e)&&C(a,e,t,n.get(e));e.appendChild(a)}}function M(){const e=document.getElementById("FeatureTable");I.E(e);let t=document.createElement("table");e.appendChild(t),I.E(t);let r=function(){let e=new Map,t=1;for(let[e,r]of Object.entries(O.hp))for(let n of r)y(e,n)&&++t;let r=0;for(let[n,a]of Object.entries(O.hp))for(let i of a)y(n,i)&&(++r,e.set(i,r/(t-1)));return e}();!function(e,t){let r=document.createElement("thead"),n=document.createElement("tr"),a=document.createElement("tr");n.appendChild(document.createElement("th")),a.appendChild(document.createElement("th"));let i=document.createElement("colgroup");e.appendChild(i);for(let[r,i]of Object.entries(O.hp)){if(0==i.size)continue;if(!G(r))continue;let o=document.createElement("th");o.append(r),o.className=r,o.scope="colgroup",o.colSpan=U(r),n.appendChild(o);let s=document.createElement("colgroup");s.span=o.colSpan,e.appendChild(s);for(let e of i){if(!y(r,e))continue;let n=document.createElement("th");n.append(e),n.className=r,n.scope="col",a.appendChild(n);let i="",o=Array.from(O.f4.get(e)).sort();for(let e of o)i+=e+"\n";g(n,i,{alignOutsideVertical:!0,preferTowardsBottom:!0,tooltipAlignment:t.get(e)})}}r.appendChild(n),r.appendChild(a),e.appendChild(r)}(t,r),function(e,t){let r=document.createElement("tbody");for(let[e,n]of Object.entries(h))w(r,e,n,t);e.appendChild(r)}(t,r)}window.addEventListener("DOMContentLoaded",(function(){window.addEventListener("keydown",(function(e){if(null==N||document.activeElement==N)return;let t=!1;t=t||"F3"===e.key,t=t||"F"===e.key.toUpperCase()&&e.ctrlKey,t&&(e.preventDefault(),N.focus())}));const e=document.getElementById("FeatureTable"),t=document.createElement("div"),r=document.createTextNode("Loading. Please wait.");t.appendChild(r),e.appendChild(t),R.TK((e=>{F=e,O.Q0(F),function(){const e=document.getElementById("FeatureTableFilter");I.E(e),function(e){let t=document.createElement("div");t.className="FilterPanel",e.appendChild(t),N=document.createElement("input"),N.type="search",N.placeholder="Search Properties",N.classList.add("searchBar"),m.A.PropertiesSearchString="",N.addEventListener("input",(function(e){m.A.PropertiesSearchString=e.target.value,M()})),e.appendChild(N);let r=document.createElement("div");r.classList.add("FieldSetContainer"),e.appendChild(r);let n=document.createElement("fieldset");n.classList.add("VendorFilter");let a=document.createElement("legend");a.textContent="Vendor Filter",n.appendChild(a);for(let e of Object.keys(O.hp)){m.A.VendorFilter[e]=!0;const t=document.createElement("label"),r=document.createElement("input");r.type="checkbox",r.checked=!0,r.addEventListener("change",(t=>{m.A.VendorFilter[e]=t.target.checked,M()})),t.appendChild(r),t.appendChild(document.createTextNode(e)),n.appendChild(t),n.appendChild(document.createElement("br"))}r.appendChild(n);let i=document.createElement("fieldset"),o=document.createElement("legend");o.textContent="Architecture Age Filter",i.appendChild(o);let s=document.createElement("input");s.type="range",s.min=2010,s.max=(new Date).getFullYear(),s.value=2016,s.step=1;let D=document.createElement("label");D.htmlFor="archAgeSlider",D.textContent=`Released in ${s.value} or after`,m.A.ArchAgeFilter=s.value,s.addEventListener("input",(function(e){D.textContent=`Released in ${e.target.value} or after`,m.A.ArchAgeFilter=e.target.value,M()})),i.appendChild(s),i.appendChild(document.createElement("br")),i.appendChild(D),r.appendChild(i)}(e),b("This table shows features as they are available in latest Agility SDK. If you use older Agility SDKs, some features may not be available.",e),b("This table is built using reports submitted by users. Some data may be outdated or incomplete, if latest report for respective architectures is not generated using latest driver or D3d12infoGUI.",e),b("Market share is derived from Steam Hardware Survey's DirectX 12 Systems chart. This data is an underestimate and may not be very accurate in general.",e)}(),M()}))}),!1)},141(e,t,r){r.d(t,{BP:()=>o,Es:()=>D,Q0:()=>p,f4:()=>s,hp:()=>i});var n=r(878),a=r(924);let i={Microsoft:new Set,AMD:new Set,Nvidia:new Set,Intel:new Set,Qualcomm:new Set},o=new Map,s=new Map,D=new Map,d=[];function l(e){return!!e.GetField("Header.Using preview Agility SDK")||"None"!=a.UN(e)||!!n.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 c(e){let t,r=e.GetOriginalReport(),n=a.IL("DXGI_ADAPTER_DESC3.VendorId",r.DXGI_ADAPTER_DESC3.VendorId);if("Microsoft Basic Render Driver"==r.DXGI_ADAPTER_DESC3.Description)t="WARP",i.Microsoft.add(t);else if(r.AGSDeviceInfo&&null!=r.AGSDeviceInfo.asicFamily){const e=["Unknown","PreGCN","GCN1","GCN2","GCN3","GCN4","Vega","RDNA","RDNA2","RDNA3","RDNA4"],n={30032:"RDNA4"};0!=r.AGSDeviceInfo.asicFamily?(t=e[r.AGSDeviceInfo.asicFamily],t||(t="Arch ID "+r.AGSDeviceInfo.asicFamily),i.AMD.add(t)):r.DXGI_ADAPTER_DESC3.DeviceId in n&&(t=n[r.DXGI_ADAPTER_DESC3.DeviceId],i.AMD.add(t))}else if(n.startsWith("Intel"))t={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",45056:"Xe3-LPG"}[65280&r.DXGI_ADAPTER_DESC3.DeviceId],t&&i.Intel.add(t);else if(r.NvPhysicalGpuHandle&&r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]){if(t={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"}[r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]],t||(t="Arch ID "+r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]),"Turing"===t){const e=r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::implementation_id"];t=7==e||8==e?"Turing 16":"Turing 20"}"Kepler2"==t||"Kepler1"==t?t="Kepler":"Fermi2"==t?t="Fermi":"Volta1"==t&&(t="Volta"),i.Nvidia.add(t)}else if(n.startsWith("NVIDIA")){switch(r.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":t="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":t="Fermi2";break;case"NVIDIA GeForce GT 740M":t="Kepler"}t&&i.Nvidia.add(t)}else n.startsWith("Qualcomm")&&(/Snapdragon\(R\) X (Plus)|(Elite) - X1.*/.test(r.DXGI_ADAPTER_DESC3.Description)&&(t="X1"),/Qualcomm\(R\) Adreno\(TM\) X1.*/.test(r.DXGI_ADAPTER_DESC3.Description)?t="X1":r.DXGI_ADAPTER_DESC3.Description.includes("8cx")&&(t=r.DXGI_ADAPTER_DESC3.Description.slice(r.DXGI_ADAPTER_DESC3.Description.search(/8cx.*/)),t=t.replace("Gen ","")),t&&i.Qualcomm.add(t));t?(o.has(t)?o.get(t).push(r):o.set(t,[r]),s.has(t)?s.get(t).add(r.DXGI_ADAPTER_DESC3.Description):s.set(t,new Set([r.DXGI_ADAPTER_DESC3.Description]))):d.push(r)}function p(e){for(let t of e)l(t)||c(t);for(let[e,n]of o){let a=null;for(let e of n)t=e,(null==(r=a)||(t.CheckInterfaceSupport.UMDVersion!=r.CheckInterfaceSupport.UMDVersion?BigInt(t.CheckInterfaceSupport.UMDVersion)>BigInt(r.CheckInterfaceSupport.UMDVersion):t.Header.Version!=r.Header.Version?t.Header.Version>r.Header.Version:t.ID>r.ID))&&(a=e);D.set(e,a)}var t,r;function a(e,t){const r=[];for(const t of e)r.push(t);e.clear();for(const n of r.sort(t))e.add(n);return e}function s(e,t){let r=n.Vz[e]??9999,a=n.Vz[t]??9999;return r==a?e.localeCompare(t):r-a}a(i.AMD,s),a(i.Nvidia,s),a(i.Intel,s),a(i.Qualcomm,s)}},619(e,t,r){r.d(t,{A:()=>n});const n={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=7)}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[934],{551(e,t,r){r.d(t,{A:()=>s});var n=r(601),a=r.n(n),i=r(314),o=r.n(i)()(a());o.push([e.id,'body {\n min-width:fit-content;\n}\n\n.FeatureTable {\n font-family: "Roboto", sans-serif;\n}\n\n.FeatureTable thead {\n position: sticky;\n top: 0;\n z-index: 2;\n}\n\n.FeatureTable thead tr {\n background-color: #00000000;\n}\n\n.FeatureTableFilterContainer {\n max-width: 2100px;\n margin: 0 auto;\n padding-bottom: 0.3em;\n}\n\ntd {\n white-space: pre-wrap;\n}\n\n.FeatureHeader {\n text-align: center;\n min-width: 14em;\n}\n\nth,\n.FeatureHeader {\n font-weight: 600;\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\ntr:nth-of-type(odd) {\n background-color: #00000010;\n}\n\ntd:nth-of-type(even) {\n background-color: #00000010;\n}\n\ntable {\n border-collapse: collapse;\n margin: auto;\n}\n\ncolgroup {\n border-inline-end-width: 2px;\n border-inline-end-style: solid;\n border-inline-end-color: #7f7f7f;\n}\n\n/* sticky table headers */\nth {\n position: sticky !important;\n}\n\n/* row of headers with vendor names */\nthead>tr:first-of-type>th {\n top: -1px;\n /* first row sticks to the top of the screen */\n border-bottom: none;\n}\n\n/* row of headers with architecture names */\nthead>tr:nth-of-type(2)>th {\n top: 1.3em;\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 arch names a little */\n}\n\n#FilterContainer {\n display: flex;\n}\n\n.tooltip {\n position: relative;\n}\n\n.tooltiptext {\n visibility: hidden;\n background-color: #FFFFFF;\n text-align: left;\n border-radius: 0.4em;\n border-color: #7f7f7f;\n border-style: solid;\n border-width: 0.1em;\n padding: 0.3em;\n position: absolute;\n z-index: 3;\n opacity: 0;\n transition: opacity 150ms ease-in, visibility 0ms ease-in 150ms;\n bottom: 100%;\n}\n\n.tooltip:hover .tooltiptext {\n visibility: visible;\n opacity: 1;\n transition-delay: 0ms;\n}\n\n.white_space_pre {\n white-space: pre;\n}\n\n.FeatureTableNotes {\n padding-bottom: 0.2em;\n font-family: "Roboto", sans-serif;\n}\n\n.dark-mode {\n\n th,\n td {\n border-color: #8c8c8c;\n }\n\n colgroup {\n border-inline-end-color: #8c8c8c;\n }\n\n table,\n fieldset {\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\n td:nth-of-type(even) {\n background-color: #00000020;\n }\n\n .tooltiptext {\n background-color: #000000;\n border-color: #8c8c8c;\n }\n\n}',""]);const s=o},314(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,a,i){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(n)for(var s=0;s0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=i),r&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=r):l[2]=r),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),t.push(l))}},t}},601(e){e.exports=function(e){return e[1]}},72(e){var t=[];function r(e){for(var r=-1,n=0;n0?" ".concat(r.layer):""," {")),n+=r.css,a&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},7(e,t,r){var n=r(72),a=r.n(n),i=r(825),o=r.n(i),s=r(659),D=r.n(s),d=r(56),l=r.n(d),c=r(540),p=r.n(c),A=r(113),_=r.n(A),T=r(551),u={};u.styleTagTransform=_(),u.setAttributes=l(),u.insert=D().bind(null,"head"),u.domAPI=o(),u.insertStyleElement=p(),a()(T.A,u),T.A&&T.A.locals&&T.A.locals;var S=r(619),E=r(878);const h={TableReleaseDate:"Release Date",TableMarketShare:"Market Share",TableNumReports:"Number of reports",TableReportUsed:"Report used for feature data",TableD3d12InfoVersion:"D3d12info version","D3D12_FEATURE_DATA_FEATURE_LEVELS.MaxSupportedFeatureLevel":"Feature level","D3D12_FEATURE_DATA_SHADER_MODEL.HighestShaderModel":"Shader model","D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier":"Raytracing","D3D12_FEATURE_DATA_D3D12_OPTIONS22.ShaderExecutionReorderingActuallyReorders":"Shader Execution Reordering Actually Reorders",Table_Advanced_Shader_Delivery_Supported:"Advanced Shader Delivery Supported","D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier":"Mesh shaders","D3D12_FEATURE_DATA_D3D12_OPTIONS21.WorkGraphsTier":"Work graphs","D3D12_FEATURE_DATA_D3D12_OPTIONS7.SamplerFeedbackTier":"Sampler feedback","D3D12_FEATURE_DATA_D3D12_OPTIONS21.ExecuteIndirectTier":"Execute indirect","D3D12_FEATURE_DATA_D3D12_OPTIONS.ConservativeRasterizationTier":"Conservative rasterization","D3D12_FEATURE_DATA_D3D12_OPTIONS22.Max1DDispatchSize":"Max 1D Dispatch Size","D3D12_FEATURE_DATA_D3D12_OPTIONS22.Max1DDispatchMeshSize":"Max 1D Mesh Dispatch Size","D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported":"GPU upload heaps","D3D12_FEATURE_DATA_D3D12_OPTIONS12.EnhancedBarriersSupported":"Enhanced barriers","D3D12_FEATURE_DATA_TIGHT_ALIGNMENT.SupportTier":"Tight alignment","D3D12_FEATURE_DATA_D3D12_OPTIONS22.CreateByteOffsetViewsSupported":"Create at byte offset supported","D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier":"Variable-rate shading","D3D12_FEATURE_DATA_D3D12_OPTIONS6.AdditionalShadingRatesSupported":"Additional shading rates","D3D12_FEATURE_DATA_D3D12_OPTIONS6.ShadingRateImageTileSize":"Shading-rate image tile size","D3D12_FEATURE_DATA_D3D12_OPTIONS6.PerPrimitiveShadingRateSupportedWithViewportIndexing":"Per-primitive shading rate with viewport indexing","D3D12_FEATURE_DATA_D3D12_OPTIONS10.VariableRateShadingSumCombinerSupported":"VRS sum combiner","D3D12_FEATURE_DATA_D3D12_OPTIONS10.MeshShaderPerPrimitiveShadingRateSupported":"Mesh shader per-primitive shading rate","D3D12_FEATURE_DATA_D3D12_OPTIONS3.BarycentricsSupported":"Barycentrics",Table_R9G9B9E5_RTV_UAV:"R9G9B9E5 RTV/UAV support",Table_R9G9B9E5_Display:"R9G9B9E5 Display support","D3D12_FEATURE_DATA_D3D12_OPTIONS9.WaveMMATier":"WaveMMA (wave_matrix)","D3D12_FEATURE_DATA_D3D12_OPTIONS1.WaveLaneCountMin":"Wave lane count min","D3D12_FEATURE_DATA_D3D12_OPTIONS1.WaveLaneCountMax":"Wave lane count max","D3D12_FEATURE_DATA_D3D12_OPTIONS14.WriteableMSAATexturesSupported":"Writeable MSAA textures","D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.MaxGPUVirtualAddressBitsPerResource":"Per-resource virtual addressing","D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.MaxGPUVirtualAddressBitsPerProcess":"Per-process virtual addressing","D3D12_FEATURE_DATA_D3D12_OPTIONS5.RenderPassesTier":"Render passes","D3D12_FEATURE_DATA_ARCHITECTURE1.TileBasedRenderer":"Tile-based renderer","D3D12_FEATURE_DATA_D3D12_OPTIONS.ResourceHeapTier":"Resource heap","D3D12_FEATURE_DATA_D3D12_OPTIONS.ResourceBindingTier":"Resource binding","D3D12_FEATURE_DATA_D3D12_OPTIONS.TiledResourcesTier":"Tiled resources","D3D12_FEATURE_DATA_D3D12_OPTIONS5.SRVOnlyTiledResourceTier3":"SRV-only tiled resource tier 3","D3D12_FEATURE_DATA_D3D12_OPTIONS.MinPrecisionSupport":"Min-precision support","D3D12_FEATURE_DATA_D3D12_OPTIONS4.Native16BitShaderOpsSupported":"Native 16-bit shader ops","D3D12_FEATURE_DATA_D3D12_OPTIONS.DoublePrecisionFloatShaderOps":"64-bit float shader ops","D3D12_FEATURE_DATA_D3D12_OPTIONS1.Int64ShaderOps":"64-bit int shader ops","D3D12_FEATURE_DATA_D3D12_OPTIONS9.AtomicInt64OnTypedResourceSupported":"64-bit int atomics on typed resource","D3D12_FEATURE_DATA_D3D12_OPTIONS9.AtomicInt64OnGroupSharedSupported":"64-bit int atomics on group shared","D3D12_FEATURE_DATA_D3D12_OPTIONS11.AtomicInt64OnDescriptorHeapResourceSupported":"64-bit int atomics on descriptor heap resources","D3D12_FEATURE_DATA_D3D12_OPTIONS9.DerivativesInMeshAndAmplificationShadersSupported":"Derivatives in mesh and amplification shaders","D3D12_FEATURE_DATA_D3D12_OPTIONS6.BackgroundProcessingSupported":"Background processing","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MaxSamplerDescriptorHeapSize":"Max sampler heap size","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MaxSamplerDescriptorHeapSizeWithStaticSamplers":"Max sampler heap size with static samplers","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MaxViewDescriptorHeapSize":"Max view descriptor heap size","D3D12_FEATURE_DATA_D3D12_OPTIONS8.UnalignedBlockTexturesSupported":"Unaligned block textures","D3D12_FEATURE_DATA_D3D12_OPTIONS12.MSPrimitivesPipelineStatisticIncludesCulledPrimitives":"MSPrimitives pipeline statistic includes culled primitives","D3D12_FEATURE_DATA_D3D12_OPTIONS12.RelaxedFormatCastingSupported":"Relaxed format casting","D3D12_FEATURE_DATA_D3D12_OPTIONS.PSSpecifiedStencilRefSupported":"PS-specified StencilRef","D3D12_FEATURE_DATA_D3D12_OPTIONS2.ProgrammableSamplePositionsTier":"Programmable sample positions","D3D12_FEATURE_DATA_D3D12_OPTIONS13.AlphaBlendFactorSupported":"Alpha blend factor","D3D12_FEATURE_DATA_D3D12_OPTIONS14.IndependentFrontAndBackStencilRefMaskSupported":"Independent front & back StencilRef mask","D3D12_FEATURE_DATA_D3D12_OPTIONS17.NonNormalizedCoordinateSamplersSupported":"Non-normalized coordinate samplers","D3D12_FEATURE_DATA_D3D12_OPTIONS3.ViewInstancingTier":"View instancing","D3D12_FEATURE_DATA_D3D12_OPTIONS19.SupportedSampleCountsWithNoOutputs":"MSAA sample counts with no outputs","D3D12_FEATURE_DATA_D3D12_OPTIONS21.SampleCmpGradientAndBiasSupported":"SampleCmp gradient and bias","D3D12_FEATURE_DATA_D3D12_OPTIONS21.ExtendedCommandInfoSupported":"Extended command info","D3D12_FEATURE_DATA_D3D12_OPTIONS.ROVsSupported":"Rasterizer-ordered views","D3D12_FEATURE_DATA_D3D12_OPTIONS2.DepthBoundsTestSupported":"Depth-bounds test","D3D12_FEATURE_DATA_D3D12_OPTIONS3.CopyQueueTimestampQueriesSupported":"Copy queue timestamp queries","D3D12_FEATURE_DATA_D3D12_OPTIONS3.WriteBufferImmediateSupportFlags":"WriteBufferImmediate command list support","D3D12_FEATURE_DATA_D3D12_OPTIONS9.MeshShaderSupportsFullRangeRenderTargetArrayIndex":"Mesh shader full range RT array index","D3D12_FEATURE_DATA_D3D12_OPTIONS13.UnrestrictedBufferTextureCopyPitchSupported":"Unrestricted buffer-texture copy pitch","D3D12_FEATURE_DATA_D3D12_OPTIONS13.UnrestrictedVertexElementAlignmentSupported":"Unrestricted vertex element alignment","D3D12_FEATURE_DATA_D3D12_OPTIONS13.InvertedViewportHeightFlipsYSupported":"Inverted viewport height flips Y","D3D12_FEATURE_DATA_D3D12_OPTIONS13.InvertedViewportDepthFlipsZSupported":"Inverted viewport depth flips Z","D3D12_FEATURE_DATA_D3D12_OPTIONS13.TextureCopyBetweenDimensionsSupported":"Texture copy between dimensions","D3D12_FEATURE_DATA_D3D12_OPTIONS14.AdvancedTextureOpsSupported":"Advanced texture ops","D3D12_FEATURE_DATA_D3D12_OPTIONS15.TriangleFanSupported":"Triangle fans","D3D12_FEATURE_DATA_D3D12_OPTIONS15.DynamicIndexBufferStripCutSupported":"Dynamic index buffer strip cut","D3D12_FEATURE_DATA_D3D12_OPTIONS16.DynamicDepthBiasSupported":"Dynamic depth bias","D3D12_FEATURE_DATA_D3D12_OPTIONS19.MismatchingOutputDimensionsSupported":"Mismatching output dimensions","D3D12_FEATURE_DATA_D3D12_OPTIONS19.PointSamplingAddressesNeverRoundUp":"Point sampling addresses never round up","D3D12_FEATURE_DATA_D3D12_OPTIONS19.NarrowQuadrilateralLinesSupported":"Narrow quadrilateral lines","D3D12_FEATURE_DATA_D3D12_OPTIONS19.AnisoFilterWithPointMipSupported":"Aniso filter with point mip","D3D12_FEATURE_DATA_ARCHITECTURE1.IsolatedMMU":"Isolated MMU","D3D12_FEATURE_DATA_SERIALIZATION.HeapSerializationTier":"Heap serialization","D3D12_FEATURE_DATA_D3D12_OPTIONS.StandardSwizzle64KBSupported":"64KB standard swizzle textures","D3D12_FEATURE_DATA_D3D12_OPTIONS.CrossAdapterRowMajorTextureSupported":"Cross-adapter row-major textures","D3D12_FEATURE_DATA_CROSS_NODE.SharingTier":"Cross-node sharing","D3D12_FEATURE_DATA_CROSS_NODE.AtomicShaderInstructions":"Cross-node atomics","D3D12_FEATURE_DATA_D3D12_OPTIONS1.WaveOps":"Wave ops","D3D12_FEATURE_DATA_D3D12_OPTIONS.OutputMergerLogicOp":"Output merger logic ops","D3D12_FEATURE_DATA_D3D12_OPTIONS3.CastingFullyTypedFormatSupported":"Casting fully typed formats","D3D12_FEATURE_DATA_D3D12_OPTIONS.TypedUAVLoadAdditionalFormats":"Typed UAV loads for additional formats","D3D12_FEATURE_DATA_D3D12_OPTIONS.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation":"VP & RT array index without GS emulation","D3D12_FEATURE_DATA_D3D12_OPTIONS4.MSAA64KBAlignedTextureSupported":"64KB-aligned MSAA textures","D3D12_FEATURE_DATA_D3D12_OPTIONS4.SharedResourceCompatibilityTier":"Shared resources compatibility","D3D12_FEATURE_DATA_D3D12_OPTIONS9.MeshShaderPipelineStatsSupported":"Mesh shader pipeline stats","D3D12_FEATURE_DATA_EXISTING_HEAPS.Supported":"Heaps from existing memory","D3D12_FEATURE_DATA_D3D12_OPTIONS20.RecreateAtTier":"Recreate resource at pointer","D3D12_FEATURE_DATA_D3D12_OPTIONS20.ComputeOnlyWriteWatchSupported":"Compute-only write watch","D3D12_FEATURE_DATA_D3D12_OPTIONS19.ComputeOnlyCustomHeapSupported":"Compute-only custom heap","D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED.Supported":"Bytecode bypass hash","D3D12_FEATURE_DATA_D3D12_OPTIONS19.RasterizerDesc2Supported":"RASTERIZER_DESC2 supported","D3D12_FEATURE_DATA_D3D12_OPTIONS18.RenderPassesValid":"Render passes valid","D3D12_FEATURE_DATA_ROOT_SIGNATURE.HighestVersion":"Root signature version","D3D12_FEATURE_DATA_D3D12_OPTIONS1.ExpandedComputeResourceStates":"Expanded compute resource states"};var m=r(185),I=r(568),f=r(924),R=r(480),O=r(141);let F=[],N=null;const P={alignOutsideHorizontal:!1,alignOutsideVertical:!1,preferTowardsBottom:!1,tooltipAlignment:.5};function g(e,t,r){let n=Object.assign({},P);for(let[e,t]of Object.entries(n))r.hasOwnProperty(e)&&(n[e]=r[e]);e.classList.add("tooltip");const a=document.createElement("span");return a.className="tooltiptext white_space_pre tooltiptext",a.style=`left: ${100*n.tooltipAlignment}%;transform: translateX(-${100*n.tooltipAlignment}%);`,a.textContent=t,e.appendChild(a),a}function G(e){if(!m.A.VendorFilter[e])return!1;for(let t of O.hp[e]){let e=E.Vz[t]??9999;if(m.A.ArchAgeFilter<=e)return!0}return!1}function U(e){let t=0;for(let r of O.hp[e]){let e=E.Vz[r]??9999;m.A.ArchAgeFilter<=e&&t++}return t}function v(){let e=0;for(let[t,r]of Object.entries(O.hp))for(let t of r){let r=E.Vz[t]??9999;m.A.ArchAgeFilter<=r&&e++}return e}function y(e,t){let r=m.A.VendorFilter[e],n=E.Vz[t];return null==n&&(n="9999"),r&&m.A.ArchAgeFilter<=n}function b(e,t){const r=document.createElement("div");r.textContent=e,r.classList.add("FeatureTableNotes"),t.appendChild(r)}function V(e,t,r,n,a){let i=document.createElement("td");i.appendChild(function(e){let t=document.createElement("span");return t.textContent=e,"N/A"==e&&(t.style.fontStyle="italic",t.style.color="#888888"),t}(e)),a&&(i.scope="colgroup",i.colSpan=a),t.appendChild(i),r&&g(i,r,{alignOutsideVertical:!0,tooltipAlignment:n})}function C(e,t,r,n){if(function(e,t,r,n){if("TableReleaseDate"==r){let r,a=E.Vz[t];return null==a&&(a="Unknown"),"WARP"==t&&(a="N/A",r="WARP is a software rasterizer that continues to receive updates over time.\nComparing its initial release date (2015) to the release dates of hardware GPUs,\nwhich cannot gain new features after release, is not meaningful."),V(a,e,r,n),!0}if("TableNumReports"==r)return V(O.BP.get(t).length,e),!0;if("TableMarketShare"==r){document.createElement("td");let r,a=S.A[t];return"WARP"==t?(a="N/A",r="WARP is a software rasterizer, not a hardware GPU.\nIt doesn't have a market share and not in Steam Hardware Survey."):a=null==a?"~0%":Math.round(1e4*a)/100+"%",V(a,e,r,n),!0}if("TableReportUsed"==r){let r=O.Es.get(t),n=document.createElement("td"),a=document.createElement("a");return a.href=`ID.html?ID=${r.ID}`,a.append(r.ID),n.appendChild(a),e.appendChild(n),!0}if("Table_R9G9B9E5_RTV_UAV"==r){let r=O.Es.get(t);if(null==r.Formats)return V("❓",e),!0;let n=r.Formats[67];return null==n?(V("❓",e),!0):(V(16384&n.Support1?E.GG[1]:E.GG[0],e),!0)}if("Table_R9G9B9E5_Display"==r){let r=O.Es.get(t);if(null==r.Formats)return V("❓",e),!0;let n=r.Formats[67];return null==n?(V("❓",e),!0):(V(524288&n.Support1?E.GG[1]:E.GG[0],e),!0)}if("TableD3d12InfoVersion"==r)return V(O.Es.get(t).Header.Version,e),!0;if("Table_Advanced_Shader_Delivery_Supported"==r){let r=O.Es.get(t);return f.P7(r.Header.Version,"3.14.0")<0?(V("❓",e),!0):(r.D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT?V(E.GG[1],e):V(E.GG[0],e),!0)}return!1}(e,t,r,n))return;let a=O.Es.get(t),i=F.find((e=>e.GetField("ID")==a.ID)).GetField(r);(function(e,t,r,n,a,i,o){if("D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported"==r){if("WARP"==t)return V(E.GG[1],e),!0;for(let r of O.BP.get(t))if("WARP"!=t&&r.D3D12_FEATURE_DATA_D3D12_OPTIONS16.GPUUploadHeapSupported)return V(E.GG[1]+"*",e,"GPU Upload Heap support depends on BIOS settings and Windows version.\nSame GPU may report different values depending on the system.",o),!0;return V(E.GG[0],e),!0}return"D3D12_FEATURE_DATA_D3D12_OPTIONS6.ShadingRateImageTileSize"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS6.AdditionalShadingRatesSupported"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS6.PerPrimitiveShadingRateSupportedWithViewportIndexing"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.VariableRateShadingSumCombinerSupported"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.MeshShaderPerPrimitiveShadingRateSupported"!=r||0!=a.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier?"D3D12_FEATURE_DATA_D3D12_OPTIONS6.ShadingRateImageTileSize"==r&&1==a.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier?(V("N/A",e,"VRS Tier 2 is required for shading rate image support.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS6.PerPrimitiveShadingRateSupportedWithViewportIndexing"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.VariableRateShadingSumCombinerSupported"!=r&&"D3D12_FEATURE_DATA_D3D12_OPTIONS10.MeshShaderPerPrimitiveShadingRateSupported"!=r||1!=a.D3D12_FEATURE_DATA_D3D12_OPTIONS6.VariableShadingRateTier?"D3D12_FEATURE_DATA_D3D12_OPTIONS5.SRVOnlyTiledResourceTier3"==r&&a.D3D12_FEATURE_DATA_D3D12_OPTIONS.TiledResourcesTier>=3?(V("N/A",e,"SRVOnlyTiledResourceTier3 is always true\nif TiledResourcesTier >= 3.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==r&&"Pascal"==t?(V("❌ *",e,"Pascal cards with >= 6GB of VRAM have software emulated Tier 1.0. Pascal cards with < 6GB of VRAM have no support at all.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==r&&"Turing 16"==t?(V("❌ *",e,"GTX 16xx series cards with >= 6GB of VRAM have software emulated Tier 1.0. GTX 16xx series cards with < 6GB of VRAM have no support at all.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS5.RaytracingTier"==r&&"X1"==t?(V("❌ *",e,"X1 supports ray query in hardware,\nbut this capability is not exposed in D3D12,\nsince DXR Tier 1.0 requires callable shaders,\nwhich are unsupported on X1.",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier"==r&&"RDNA2"==t?(V(E.GG[1]+"*",e,"RDNA2 iGPUs with 1 WGP don't have mesh shader support",o),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS12.MSPrimitivesPipelineStatisticIncludesCulledPrimitives"==r&&0==a.D3D12_FEATURE_DATA_D3D12_OPTIONS7.MeshShaderTier&&(V("N/A",e,"It is only relevant if Mesh Shaders are supported.",o),!0):(V("N/A",e,"VRS Tier 2 is required for this capability.",o),!0):(V("N/A",e,"VRS capabilities are only relevant if VRS is supported.",o),!0)})(e,t,r,0,a,0,n)||V(f.iT(r,i),e)}function w(e,t,r,n){let a=document.createElement("tr"),i=t.toLowerCase(),o=r.toLowerCase(),s=m.A.PropertiesSearchString.toLowerCase();if(!(""==s||i.includes(s)||o.includes(s)||["TableReleaseDate","TableMarketShare"].includes(t)))return;let D=document.createElement("td");if(D.classList.add("FeatureHeader"),D.append(r),D.scope="row",t.startsWith("Table")?"TableMarketShare"==t?g(D,"Market share in the Steam Hardware Survey among DirectX 12 Systems.\nThis is an underestimate and may not be very accurate in general.",{alignOutsideVertical:!0,tooltipAlignment:0}):"Table_Advanced_Shader_Delivery_Supported"==t&&g(D,"You probably don't want to abbreviate this.",{alignOutsideVertical:!0,tooltipAlignment:0}):g(D,t,{alignOutsideVertical:!0,tooltipAlignment:0}),a.appendChild(D),function(e,t){return"D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED.Supported"==t?(V("Always supported *",e,"Starting with Agility SDK 1.615.0, it is always supported, independently of GPU or driver.",.5,v()),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS19.RasterizerDesc2Supported"==t||"D3D12_FEATURE_DATA_D3D12_OPTIONS18.RenderPassesValid"==t?(V("Always supported *",e,"Starting with Agility SDK 1.610.0, it is always supported, independently of GPU or driver.",.5,v()),!0):"D3D12_FEATURE_DATA_ROOT_SIGNATURE.HighestVersion"==t?(V("1.2 *",e,"Starting with Agility SDK 1.610.0, Root Signature 1.2 is always supported, independently of GPU or driver.",.5,v()),!0):"D3D12_FEATURE_DATA_D3D12_OPTIONS1.ExpandedComputeResourceStates"==t&&(V("Always supported *",e,"Starting with Windows 10 version 1607, it is always supported, independently of GPU or driver.\nAll currently supported Windows versions are newer than Windows 10 version 1607.",.5,v()),!0)}(a,t))e.appendChild(a);else for(let[r,i]of Object.entries(O.hp)){for(let e of i)y(r,e)&&C(a,e,t,n.get(e));e.appendChild(a)}}function M(){const e=document.getElementById("FeatureTable");I.E(e);let t=document.createElement("table");e.appendChild(t),I.E(t);let r=function(){let e=new Map,t=1;for(let[e,r]of Object.entries(O.hp))for(let n of r)y(e,n)&&++t;let r=0;for(let[n,a]of Object.entries(O.hp))for(let i of a)y(n,i)&&(++r,e.set(i,r/(t-1)));return e}();!function(e,t){let r=document.createElement("thead"),n=document.createElement("tr"),a=document.createElement("tr");n.appendChild(document.createElement("th")),a.appendChild(document.createElement("th"));let i=document.createElement("colgroup");e.appendChild(i);for(let[r,i]of Object.entries(O.hp)){if(0==i.size)continue;if(!G(r))continue;let o=document.createElement("th");o.append(r),o.className=r,o.scope="colgroup",o.colSpan=U(r),n.appendChild(o);let s=document.createElement("colgroup");s.span=o.colSpan,e.appendChild(s);for(let e of i){if(!y(r,e))continue;let n=document.createElement("th");n.append(e),n.className=r,n.scope="col",a.appendChild(n);let i="",o=Array.from(O.f4.get(e)).sort();for(let e of o)i+=e+"\n";g(n,i,{alignOutsideVertical:!0,preferTowardsBottom:!0,tooltipAlignment:t.get(e)})}}r.appendChild(n),r.appendChild(a),e.appendChild(r)}(t,r),function(e,t){let r=document.createElement("tbody");for(let[e,n]of Object.entries(h))w(r,e,n,t);e.appendChild(r)}(t,r)}window.addEventListener("DOMContentLoaded",(function(){window.addEventListener("keydown",(function(e){if(null==N||document.activeElement==N)return;let t=!1;t=t||"F3"===e.key,t=t||"F"===e.key.toUpperCase()&&e.ctrlKey,t&&(e.preventDefault(),N.focus())}));const e=document.getElementById("FeatureTable"),t=document.createElement("div"),r=document.createTextNode("Loading. Please wait.");t.appendChild(r),e.appendChild(t),R.TK((e=>{F=e,O.Q0(F),function(){const e=document.getElementById("FeatureTableFilter");I.E(e),function(e){let t=document.createElement("div");t.className="FilterPanel",e.appendChild(t),N=document.createElement("input"),N.type="search",N.placeholder="Search Properties",N.classList.add("searchBar"),m.A.PropertiesSearchString="",N.addEventListener("input",(function(e){m.A.PropertiesSearchString=e.target.value,M()})),e.appendChild(N);let r=document.createElement("div");r.classList.add("FieldSetContainer"),e.appendChild(r);let n=document.createElement("fieldset");n.classList.add("VendorFilter");let a=document.createElement("legend");a.textContent="Vendor Filter",n.appendChild(a);for(let e of Object.keys(O.hp)){m.A.VendorFilter[e]=!0;const t=document.createElement("label"),r=document.createElement("input");r.type="checkbox",r.checked=!0,r.addEventListener("change",(t=>{m.A.VendorFilter[e]=t.target.checked,M()})),t.appendChild(r),t.appendChild(document.createTextNode(e)),n.appendChild(t),n.appendChild(document.createElement("br"))}r.appendChild(n);let i=document.createElement("fieldset"),o=document.createElement("legend");o.textContent="Architecture Age Filter",i.appendChild(o);let s=document.createElement("input");s.type="range",s.min=2010,s.max=(new Date).getFullYear(),s.value=2016,s.step=1;let D=document.createElement("label");D.htmlFor="archAgeSlider",D.textContent=`Released in ${s.value} or after`,m.A.ArchAgeFilter=s.value,s.addEventListener("input",(function(e){D.textContent=`Released in ${e.target.value} or after`,m.A.ArchAgeFilter=e.target.value,M()})),i.appendChild(s),i.appendChild(document.createElement("br")),i.appendChild(D),r.appendChild(i)}(e),b("This table shows features as they are available in latest Agility SDK. If you use older Agility SDKs, some features may not be available.",e),b("This table is built using reports submitted by users. Some data may be outdated or incomplete, if latest report for respective architectures is not generated using latest driver or D3d12infoGUI.",e),b("Market share is derived from Steam Hardware Survey's DirectX 12 Systems chart. This data is an underestimate and may not be very accurate in general.",e)}(),M()}))}),!1)},141(e,t,r){r.d(t,{BP:()=>o,Es:()=>D,Q0:()=>p,f4:()=>s,hp:()=>i});var n=r(878),a=r(924);let i={Microsoft:new Set,AMD:new Set,Nvidia:new Set,Intel:new Set,Qualcomm:new Set},o=new Map,s=new Map,D=new Map,d=[];function l(e){return!!e.GetField("Header.Using preview Agility SDK")||"None"!=a.UN(e)||!!n.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 c(e){let t,r=e.GetOriginalReport(),n=a.IL("DXGI_ADAPTER_DESC3.VendorId",r.DXGI_ADAPTER_DESC3.VendorId);if("Microsoft Basic Render Driver"==r.DXGI_ADAPTER_DESC3.Description)t="WARP",i.Microsoft.add(t);else if(r.AGSDeviceInfo&&null!=r.AGSDeviceInfo.asicFamily){const e=["Unknown","PreGCN","GCN1","GCN2","GCN3","GCN4","Vega","RDNA","RDNA2","RDNA3","RDNA4"],n={30032:"RDNA4"};0!=r.AGSDeviceInfo.asicFamily?(t=e[r.AGSDeviceInfo.asicFamily],t||(t="Arch ID "+r.AGSDeviceInfo.asicFamily),i.AMD.add(t)):r.DXGI_ADAPTER_DESC3.DeviceId in n&&(t=n[r.DXGI_ADAPTER_DESC3.DeviceId],i.AMD.add(t))}else if(n.startsWith("Intel"))t={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",45056:"Xe3-LPG"}[65280&r.DXGI_ADAPTER_DESC3.DeviceId],t&&i.Intel.add(t);else if(r.NvPhysicalGpuHandle&&r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]){if(t={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"}[r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]],t||(t="Arch ID "+r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::architecture_id"]),"Turing"===t){const e=r.NvPhysicalGpuHandle["NvAPI_GPU_GetArchInfo - NV_GPU_ARCH_INFO::implementation_id"];t=7==e||8==e?"Turing 16":"Turing 20"}"Kepler2"==t||"Kepler1"==t?t="Kepler":"Fermi2"==t?t="Fermi":"Volta1"==t&&(t="Volta"),i.Nvidia.add(t)}else if(n.startsWith("NVIDIA")){switch(r.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":t="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":t="Fermi2";break;case"NVIDIA GeForce GT 740M":t="Kepler"}t&&i.Nvidia.add(t)}else n.startsWith("Qualcomm")&&(/Snapdragon\(R\) X (Plus)|(Elite) - X1.*/.test(r.DXGI_ADAPTER_DESC3.Description)&&(t="X1"),/Qualcomm\(R\) Adreno\(TM\) X1.*/.test(r.DXGI_ADAPTER_DESC3.Description)?t="X1":r.DXGI_ADAPTER_DESC3.Description.includes("8cx")&&(t=r.DXGI_ADAPTER_DESC3.Description.slice(r.DXGI_ADAPTER_DESC3.Description.search(/8cx.*/)),t=t.replace("Gen ","")),t&&i.Qualcomm.add(t));t?(o.has(t)?o.get(t).push(r):o.set(t,[r]),s.has(t)?s.get(t).add(r.DXGI_ADAPTER_DESC3.Description):s.set(t,new Set([r.DXGI_ADAPTER_DESC3.Description]))):d.push(r)}function p(e){for(let t of e)l(t)||c(t);for(let[e,n]of o){let a=null;for(let e of n)t=e,(null==(r=a)||(t.CheckInterfaceSupport.UMDVersion!=r.CheckInterfaceSupport.UMDVersion?BigInt(t.CheckInterfaceSupport.UMDVersion)>BigInt(r.CheckInterfaceSupport.UMDVersion):t.Header.Version!=r.Header.Version?t.Header.Version>r.Header.Version:t.ID>r.ID))&&(a=e);D.set(e,a)}var t,r;function a(e,t){const r=[];for(const t of e)r.push(t);e.clear();for(const n of r.sort(t))e.add(n);return e}function s(e,t){let r=n.Vz[e]??9999,a=n.Vz[t]??9999;return r==a?e.localeCompare(t):r-a}a(i.AMD,s),a(i.Nvidia,s),a(i.Intel,s),a(i.Qualcomm,s)}},619(e,t,r){r.d(t,{A:()=>n});const n={RDNA3:.0313999999999998,"RDNA 3.5":.0013,Unknown:.0706,GCN1:.0011,GCN4:.0210999999999999,GCN3:4e-4,RDNA:.0099999999999999,RDNA2:.036299999999999895,RDNA4:.0018,Vega:.0081,"Gen7.5":.0022,Gen9:.0037,Gen8:9e-4,"Gen9.5":.0132999999999999,Xe:.0209999999999999,Maxwell1:.004300000000000001,Kepler:.0017,Fermi:1e-4,Pascal:.055699999999999895,"Turing 16":.06349999999999989,Fermi2:3e-4,Maxwell2:.005599999999999999,"Turing 20":.049,Ampere:.20229999999999984,Ada:.2032,Blackwell:.1225999999999999,X1:6e-4}}},e=>{e(e.s=7)}]); \ No newline at end of file