GPUSupportedFeatures
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
å®å ¨ãªã³ã³ããã¹ãç¨: ãã®æ©è½ã¯ä¸é¨ã¾ãã¯ãã¹ã¦ã®å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã«ããã¦ãå®å ¨ãªã³ã³ããã¹ã (HTTPS) ã§ã®ã¿å©ç¨ã§ãã¾ãã
ã¡ã¢: ãã®æ©è½ã¯ã¦ã§ãã¯ã¼ã«ã¼å ã§å©ç¨å¯è½ã§ãã
WebGPU API ã® GPUSupportedFeatures ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãGPUAdapter ã対å¿ãã¦ããè¿½å æ©è½ã表ç¾ãã Set 風ãªãã¸ã§ã¯ãã§ãã
ç¾å¨ã®ã¢ããã¿ã¼ç¨ã® GPUSupportedFeatures ãªãã¸ã§ã¯ãã¯ãGPUAdapter.features çµç±ã§åç
§ã§ãã¾ãããã®ãã¼ã«ã使ç¨ãã¦ãç¾å¨ã®ç°å¢ãã©ã®æ©è½ã対å¿ãã¦ãããã確èªãã¦ãã ãããç¹å®ã®æ©è½ãæå¹ã«ãã GPUDevice ã使ããã«ã¯ãGPUAdapter.requestDevice() è¨è¿°åã® requiredFeatures é
åã§ãã®æ©è½ãæå®ããå¿
è¦ãããã¾ãã
ä¸å±¤ã®ãã¼ãã¦ã§ã¢ã§å¯¾å¿ãã¦ãã¦ãã対å¿ãããã¹ã¦ã®ãã©ã¦ã¶ã¼ã® WebGPU ã§ãã¹ã¦ã®æ©è½ãå©ç¨ã§ããããã§ã¯ãªããã¨ã«æ³¨æããã¹ãã§ããããã¯ããã¨ãã°ä»¥ä¸ã®å ´åãªã©ãä¸å±¤ã®ã·ã¹ãã ããã©ã¦ã¶ã¼ãã¢ããã¿ã¼ã®å¶éã«ãããã®ã§ããå¯è½æ§ãããã¾ãã
- ä¸å±¤ã®ã·ã¹ãã ãããããã©ã¦ã¶ã¼ã¨äºææ§ãããæ¹å¼ã§æ©è½ãå©ç¨å¯è½ã«ããä¿è¨¼ãã§ããªãããããã¾ããã
- ãã©ã¦ã¶ã¼ã®ãã³ãã¼ãããæ©è½ã¸ã®å¯¾å¿ãå®è£ ããã»ãã¥ã¢ãªæ¹æ³ãã¾ã è¦ã¤ãã¦ããªãããåã«ã¾ã å®è£ ã«æãåã£ã¦ããªãããããã¾ããã
WebGPU ã¢ããªã±ã¼ã·ã§ã³ã«ããã¦ç¹å®ã®è¿½å æ©è½ã®æ©æµãåãããå ´åã¯ãå¾¹åºçã«ãã¹ããè¡ããã¨ãæ¨å¥¨ãã¾ãã
å©ç¨å¯è½ãªæ©è½
WebGPU ã§ã¯ã以ä¸ã®è¿½å æ©è½ãå®ç¾©ããã¦ãã¾ããå©ç¨ã§ããæ©è½ã®å ·ä½çãªå 容ã¯ãå®è£ ãç©ç端æ«ã«ãã£ã¦ç°ãªããæéçµéã«ä¼´ãå¤åããããã¨ã«çæãã¦ãã ããã
| æ©è½å | 説æ |
|---|---|
bgra8unorm-storage |
æå¹ã«ããã¨ãbgra8unorm-format ã® STORAGE_BINDING usage ãæã¤ GPUTexture ã使ç¨ãããã¨ãã§ãã¾ãã |
clip-distances |
æå¹ã«ããã¨ãWGSL ã§ clip_distances ã使ç¨ãããã¨ãã§ãã¾ãã |
core-features-and-limits |
æå¹ã«ããã¨ãGPUAdapter / GPUDevice ã WebGPU ã®ãã¹ã¦ã®ãã³ã¢ãæ©è½ã¨å¶éã使ç¨ã§ãããã¨ã示ããããã«ããã¢ããªã±ã¼ã·ã§ã³ã¯ç¾è¡ã®ãã©ãããã©ã¼ã ã°ã©ãã£ã㯠API ã使ç¨ãã¦ç«¯æ«ã«å¯¾å¿ã§ããããã«ãªãã¾ããããã©ã«ãã§ããã¹ã¦ã®ã¢ããã¿ã¼ã§ core-features-and-limits æ©è½ãæå¹ã«ãªã£ã¦ããããããã£ã¦ã³ã¢ WebGPU ã«å¯¾å¿ãã¦ãã¾ãããäºæã¢ã¼ããã®ã¢ããã¿ã¼ã使ããã«ã¯ãGPU.requestAdapter() ã®å¼ã³åºãã§ featureLevel ã®å¤ã compatibility ã«æå®ãã¦ãã ãããäºæã¢ã¼ãã§ã¯ãããã©ã¼ãã³ã¹ãæ©è½ã»ãããç ç²ã«ãã代ããã«ãå¤ãã°ã©ãã£ã㯠APIï¼Direct3D 11 ã OpenGL ES 3.1ãªã©ï¼ã®ãµãã¼ããæä¾ããã¾ãããªããäºæã¢ã¼ãã®ã¢ããã¿ã¼ã¯ãã³ã¢ WebGPU ã«å¯¾å¿ãã¦ããªã端æ«ä¸ã§ã®ã¿ä½æãããç¹ã«æ³¨æãã¦ãã ãããã³ã¢ WebGPU ã対å¿ãã¦ãã端æ«ã§ã¯ãã¢ããã¿ã¼ã¯ã³ã¢ WebGPU ã対å¿ãï¼ core-features-and-limits ãæå¹ã«ãªãã¾ãï¼ãææ°ã®æ©è½ã使ç¨ãããã¨ãã§ãã¾ãï¼ä¾ã«ã¤ãã¦ã¯ãå¿
è¦ãªå ´åã«ã®ã¿äºæã¢ã¼ãã使ç¨ãããåç
§ãã¦ãã ããï¼ã |
depth-clip-control |
æå¹ã«ããã¨ã深度ã¯ãªããã³ã°ãç¡å¹ã«ãããã¨ãã§ãã¾ãã depth-clip-control ãæå¹ã«ãªã£ã¦ããå ´åãGPURenderPipeline ã使ããéã«ãcreateRenderPipeline() ã¾ã㯠createRenderPipelineAsync() è¨è¿°åã®ä¸é¨ã¨ãã¦å«ã¾ãã primitive ãªãã¸ã§ã¯ãã«å¯¾ãã¦ãunclippedDepth ããããã£ãå©ç¨å¯è½ã«ãªãã¾ããprimitive ã¯ããã¤ãã©ã¤ã³ãé ç¹å
¥åããããªããã£ããã©ã®ããã«æ§ç¯ããã©ã¹ã¿ã©ã¤ãºããããè¨è¿°ãã¾ããæ·±åº¦ã¯ãªããã³ã°ãç¡å¹ã«ããã«ã¯ãunclipped-depth ã true ã«è¨å®ãã¦ãã ããã |
depth32float-stencil8 |
æå¹ã«ããã¨ãdepth32float-stencil8 æ¸å¼ã®ãã¯ã¹ãã£ã使ãããã¨ãã§ããããã«ãªãã¾ããdepth32float-stencil8 ãæå¹ã«ãªã£ã¦ããå ´åãdepth32float-stencil8 ã®å¤ã使ç¨ãããã¨ãã§ãã¾ã createTexture() è¨è¿°åã® format ããããã£ã¨ãã¦ä½¿ç¨ã§ãã¾ãã |
dual-source-blending |
æå¹ã«ããã¨ãWGSL ã§ã® dual_source_blending ã®ä½¿ç¨ãå¯è½ã«ãªãã¾ããããã¯ããã¯ã»ã«ã·ã§ã¼ãã¼ã®åºåï¼@blend_src(0) ããã³ @blend_src(1)ï¼ã®ä¸¡æ¹ãã@location(0) ã«ããåä¸ã®ã«ã©ã¼ã¢ã¿ããã¡ã³ãã¨ã®æ··åæ¼ç®ã¸ã®å
¥åã¨ãã¦ä½¿ç¨ãã¾ããWebGPU ã§ã¯ãdual-source-blending ãæå¹ã«ããã¨ã以ä¸ã®æ··åä¿æ°æä½ããããã¨ãã§ããï¼ãããã¯ãcreateRenderPipeline() ããã³ createRenderPipelineAsync() ã® dstFactor ããã³ srcFactor ããããã£ã®è¨è¿°å src1, one-minus-src1, src1-alpha, one-minus-src1-alpha ã§æå®ãã¾ãï¼ã |
float32-blendable |
æå¹ã«ããã¨ãr32float-, rg32float-, rgba32float-format ã® GPUTexture ã®æ··åã許å¯ãã¾ãã |
float32-filterable |
æå¹ã«ããã¨ãr32float-, rg32float-, rgba32float-format ã® GPUTexture ã®ãã£ã«ã¿ãªã³ã°ã許å¯ãã¾ãã |
indirect-first-instance |
æå¹ã«ããã¨ãGPURenderPassEncoder ããã³ GPURenderBundleEncoder ã¤ã³ã¹ã¿ã³ã¹ã§å©ç¨ã§ãã drawIndirect() ããã³ drawIndexedIndirect() ã¡ã½ããã® indirectBuffer ããããã£ã«ããã¦ã0 以å¤ã® firstInstance å¤ã使ç¨ãããã¨ãã§ãã¾ãã |
primitive-index |
æå¹ã«ããã¨ãWGSL ã§ primitive_index çµã¿è¾¼ã¿å¤æ°ã使ç¨ãããã¨ãã§ããããã«ãªãã¾ãããã®çµã¿è¾¼ã¿å
¥åå¤ã¯ã対å¿ãã¦ãããã¼ãã¦ã§ã¢ä¸ã§ãæ¢åã® vertex_index ããã³ instance_index çµã¿è¾¼ã¿å¤æ°ã¨åæ§ã«ãããªããã£ããã¨ã®ã¤ã³ããã¯ã¹ããã©ã°ã¡ã³ãã·ã§ã¼ãã¼ã«æä¾ãã¾ããprimitive_index çµã¿è¾¼ã¿å¤æ°ã¯ãä»®æ³åå½¢ç¶ãªã©ã®é«åº¦ãªã°ã©ãã£ãã¯æè¡ã«æçã§ãã |
rg11b10ufloat-renderable |
æå¹ã«ããã¨ãRENDER_ATTACHMENTããããã¨ãã§ãã rg11b10ufloat-format ã® GPUTexture ã® RENDER_ATTACHMENT usage ããã³ãããã®æ··åã¨ãã«ããµã³ããªã³ã°ãæå¹ã«ãã¾ãã |
shader-f16 |
æå¹ã«ããã¨ãWGSL ã§å精度浮åå°æ°ç¹å f16 ã使ç¨ãããã¨ãã§ãã¾ãã |
subgroups |
æå¹ã«ããã¨ãWGSL ã§ ãµãã°ã«ã¼ã ã使ç¨ãããã¨ãã§ããããã«ãªãã¾ãããµãã°ã«ã¼ãã«ãã SIMD ã¬ãã«ã®ä¸¦åå¦çãå¯è½ã¨ãªããã¯ã¼ã¯ã°ã«ã¼ãå
ã®ã¹ã¬ããéã§éä¿¡ãè¡ããæ°å¤ã®åè¨è¨ç®ãªã©ã®éåçãªæ°å¦æ¼ç®ãå®è¡ã§ããããã«ãªãã¾ããã¾ããã¹ã¬ããéã®ãã¼ã¿å
±æãå¹ççã«è¡ãæ¹æ³ãæä¾ããã¾ãããªããsubgroupMinSize ããã³ subgroupMaxSize ããããã£ã¯ãä¾ãã°ç¹å®ã®ãµã¤ãºã®ãµãã°ã«ã¼ããè¦æ±ããããã¼ãã³ã¼ãã£ã³ã°ãããã¢ã«ã´ãªãºã ãããå ´åãªã©ã«ããã®è¦ä»¶ãæºããã¦ãããã調ã¹ãã®ã«ä½¿ç¨ã§ãã¾ããshader-f16 ããã³ subgroups ã®ä¸¡æ¹ã®æ©è½ãåãã GPUDevice ããªã¯ã¨ã¹ãããå ´åããµãã°ã«ã¼ãã§ f16 å¤ã使ç¨ãããã¨ãã§ãã¾ããsubgroups ãæå¹ã«ãªã£ã¦ããå ´åãWGSL è¨èªæ©è½ã§ãã subgroup_id ã使ç¨ã§ãã¾ãã |
texture-component-swizzle |
æå¹ã«ããã¨ãGPUTexture.createView() ãå¼ã³åºãéã« swizzle ããããã£ãè¨å®ã§ããããã«ãªãã¾ãããã®æ©è½ã«ãããã·ã§ã¼ãã¼ããã¢ã¯ã»ã¹ãããéã«ããã¯ã¹ãã£ãã¥ã¼å
ã®ãã¯ã¹ãã£ã®èµ¤ãç·ãéãããã³ã¢ã«ãã¡ãã£ã³ãã«ã®å¤ãåé
ç½®ãããç½®ãæããããããã¨ãå¯è½ã«ãªãã¾ãã |
texture-compression-bc |
æå¹ã«ããã¨ã2 次å
BC å§ç¸®ãã¯ã¹ãã£ã使ãããã¨ãã§ãã¾ããtexture-compression-bc ãæå¹ã«ãªã£ã¦ããå ´åãGPUTexture ã使ããéãcreateTexture() è¨è¿°åã® format ããããã£ã«ã¯ãbc1-rgba-unorm, bc1-rgba-unorm-srgb, bc2-rgba-unorm, bc2-rgba-unorm-srgb, bc3-rgba-unorm, bc3-rgba-unorm-srgb, bc4-r-unorm, bc4-r-snorm, bc5-rg-unorm, bc5-rg-snorm, bc6h-rgb-ufloat, bc6h-rgb-float, bc7-rgba-unorm, bc7-rgba-unorm-srgb ã®å¤ã使ç¨ãããã¨ãã§ãã¾ãã |
texture-compression-bc-sliced-3d |
æå¹ã«ããã¨ã䏿¬¡å
BC å§ç¸®ãã¯ã¹ãã£ã®ä½æããããã¨ãã§ãã¾ããtexture-compression-bc-sliced-3d ãæå¹ã«ããå ´åãæåã®äºæ¬¡å
ã§ BC ãã¯ã¹ãã£å½¢å¼ã使ç¨ã§ããããã«ããããï¼ä»¥ä¸ãtexture-compression-bc ãåç
§ï¼ãtexture-compression-bc ãåæã«æå¹ã«ããå¿
è¦ãããã¾ããtexture-compression-bc-sliced-3d ãæå¹ã«ããã¨ã䏿¬¡å
ç®ã§ãåããã¯ã¹ãã£ã使ç¨ã§ããããã«ãªãã¾ãã |
texture-compression-astc |
æå¹ã«ããã¨ãäºæ¬¡å
ASTC å§ç¸®ãã¯ã¹ãã£ã使ã§ãã¾ããtexture-compression-astc ãæå¹ã«ãªã£ã¦ããå ´åãGPUTextureã使ããéãcreateTexture() è¨è¿°åã® format ããããã£ã«ã¯ãastc-4x4-unormãastc-4x4-unorm-srgbãastc-5x4-unormãastc-5x4-unorm-srgbãastc-5x5-unormãastc-5x5-unorm-srgbãastc-6x5-unormãastc-6x5-unorm-srgbãastc-6x6-unormãastc-6x6-unorm-srgbãastc-8x5-unormãastc-8x5-unorm-srgbãastc-8x6-unormãastc-8x6-unorm-srgbãastc-8x8-unormã astc-8x8-unorm-srgbãastc-10x5-unormãastc-10x5-unorm-srgbãastc-10x6-unormãastc-10x6-unorm-srgbãastc-10x8-unormãastc-10x8-unorm-srgbã astc-10x10-unormãastc-10x10-unorm-srgbãastc-12x10-unormãastc-12x10-unorm-srgbãastc-12x12-unorm``astc-12x12-unorm-srgb ã®å¤ã使ç¨ã§ãã¾ãã |
texture-compression-astc-sliced-3d |
æå¹ã«ããã¨ã䏿¬¡å
ASTC å§ç¸®ãã¯ã¹ãã£ã使ãããã¨ãã§ãã¾ããtexture-compression-astc-sliced-3d ãæå¹ã«ããå ´åã¯ãæåã®äºæ¬¡å
ã§ ASTC ãã¯ã¹ãã£å½¢å¼ã使ç¨ã§ããããã«ããããï¼ä»¥ä¸ã® texture-compression-astc ãåç
§ï¼ãtexture-compression-astc ãåæã«æå¹ã«ããå¿
è¦ãããã¾ããtexture-compression-astc-sliced-3d ãæå¹ã«ããã¨ãåããã¯ã¹ãã£ã䏿¬¡å
ã§ã使ç¨ã§ããããã«ãªãã¾ãã |
texture-compression-etc2 |
æå¹ã«ããã¨ãäºæ¬¡å
ã® ETC2 å§ç¸®ãã¯ã¹ãã£ã使ãããã¨ãã§ãã¾ããtexture-compression-etc2 ãæå¹ã«ãªã£ã¦ããå ´åãGPUTextureã使ããéãcreateTexture() è¨è¿°åã® format ããããã£ã«ã¯ãetc2-rgb8unormãetc2-rgb8unorm-srgbãetc2-rgb8a1unormãetc2-rgb8a1unorm-srgbã etc2-rgba8unormãetc2-rgba8unorm-srgbãeac-r11unormãeac-r11snormãeac-rg11unormãeac-rg11snorm ã®å¤ã使ç¨ã§ãã¾ãã |
texture-formats-tier1 |
æå¹ã«ããã¨ãrg11b10ufloat-renderable æ©è½ãèªåçã«æå¹ã«ãããã¨ãã§ãããæ¸å¼åããã GPUTexture ã使ãããã¨ãã§ããï¼GPUDevice.createTexture() ã使ã£ã¦ï¼ã第 1 éå±¤ã§æå®ãããå½¢å¼ã§ GPUTexture ã使ã§ããããã«ãªãã¾ãã第 1 é層ã®ãã¯ã¹ãã£å½¢å¼ã»ããã¯ãéçºè
ãæ¢åã®ã³ã³ãã³ãã WebGPU ã®ä½æ©è½çã«åããã¦æ¸ãç´ããã¨ãªããã¦ã§ãã¸ç§»æ¤ãããã¨ãã§ããããã«è¨è¨ããã¦ãã¾ãã |
texture-formats-tier2 |
æå¹ã«ããã¨ãrg11b10ufloat-renderable ããã³ texture-formats-tier1 æ©è½ãèªåçã«æå¹ã«ãªããGPUTexture ã使ãããã¨ãã§ããï¼GPUDevice.createTexture() ã使ã£ã¦ï¼ãTier 2 ã§æå®ãããå½¢å¼ãæã¤ GPUTexture ã®ä½æãå¯è½ã«ãªãã¾ããTier 2 ã®ãã¯ã¹ãã£å½¢å¼ã»ããã¯ããã³ã¢ãWebGPU ã§ã¯å¯¾å¿ãã¦ããªãã¹ãã¬ã¼ã¸ãã¯ã¹ãã£å½¢å¼ã«å¯¾å¿ãã¦ãããé«åº¦ãªç¨éã§è¦æ±ããã¾ãã |
timestamp-query |
æå¹ã«ããã¨ãè¨ç®ãã¹ããã³ã¬ã³ããªã³ã°ãã¹ã®å®è¡æéãæ¸¬å®ããã¿ã¤ã ã¹ã¿ã³ãã¯ã¨ãªã¼ãå®è¡ãããã¨ãã§ãããtimestamp-query ãæå¹ã«ãªã£ã¦ããå ´åãã¿ã¤ã ã¹ã¿ã³ãã®å¤ãè¨å®ãããã¨ãã§ãããGPUQuerySet ã使ããéãcreateQuerySet() è¨è¿°åã® type ããããã£ã« timestamp å¤ãè¨å®ã§ãã¾ããããã«ãGPUQuerySet ã使ããéã¯ãtimestamp ããããã£ã GPUQuerySet ãÑкÑиãã¿ã«è¨å®ã§ãã¾ããã¾ããGPUComputePassEncoder ããã³ GPURenderPassEncoder ããããã使ããéã¯ãtimestampWrites ããããã£ã beginComputePass() ããã³ beginRenderPass() è¨è¿°åã«å¯¾ãã¦è¨å®ã§ãã¾ããGPUQuerySet ãªãã¸ã§ã¯ãã¯ãtimestampWrites ããããã£ã«å«ã¾ãããªãã¸ã§ã¯ãå
ã§åç
§ãããã¿ã¤ã ã¹ã¿ã³ãã®æ¸ãè¾¼ã¿å
ãæå®ããããã«ä½¿ç¨ããã¾ãã |
ã¤ã³ã¹ã¿ã³ã¹ããããã£
以ä¸ã®ããããã£ã¯ããã¹ã¦ã®èªã¿åãå°ç¨ã® Set 風ãªãã¸ã§ã¯ãã§ä½¿ç¨å¯è½ã§ãã(以ä¸ã®ãªã³ã¯ã¯ã°ãã¼ãã«ãªãã¸ã§ã¯ã Set ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ã§ã)
size-
éåã«å«ã¾ããå¤ã®æ°ãè¿ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
以ä¸ã®ã¡ã½ããã¯ããã¹ã¦ã®èªã¿åãå°ç¨ã® Set 風ãªãã¸ã§ã¯ãã§ä½¿ç¨å¯è½ã§ãã(以ä¸ã®ãªã³ã¯ã¯ã°ãã¼ãã«ãªãã¸ã§ã¯ã Set ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ã§ã)
has()-
æå®ã®å¤ã®è¦ç´ ãéåã«å«ã¾ãããå¦ãã表ãè«çå¤ãè¿ãã¾ãã
values()-
éåå ã®åè¦ç´ ã® å¤ ãæ¿å ¥ããé ã«åºåããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
keys()-
values()ã®å¥åã§ãã entries()-
éåå ã®åè¦ç´ ã«å¯¾å¿ãã é å
[value, value]ãæ¿å ¥ããé ã«å«ã¾ããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã forEach()-
éåå ã®åè¦ç´ ã«ã¤ãã¦æ¿å ¥ããé ã«æå®ã®ã³ã¼ã«ããã¯é¢æ°ã 1 度ãã¤å¼ã³åºãã¾ãã
ä¾
async function init() {
if (!navigator.gpu) {
throw Error("WebGPU ã«å¯¾å¿ãã¦ãã¾ããã");
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
throw Error("WebGPU ã®ã¢ããã¿ã¼ãè¦æ±ã§ãã¾ããã§ããã");
}
const adapterFeatures = adapter.features;
// éåã®ãµã¤ãºãè¿ã
console.log(adapterFeatures.size);
// ã¢ããã¿ã¼ãããæ©è½ã«å¯¾å¿ãã¦ãããã©ããããã§ãã¯ãã
console.log(adapterFeatures.has("texture-compression-astc"));
// values() ãç¨ãã¦éåã®ãã¹ã¦ã®å¤ãèµ°æ»ãã
const valueIterator = adapterFeatures.values();
for (const value of valueIterator) {
console.log(value);
}
// keys() ãç¨ãã¦éåã®ãã¹ã¦ã®å¤ãèµ°æ»ãã
const keyIterator = adapterFeatures.keys();
for (const value of keyIterator) {
console.log(value);
}
// entries() ãç¨ãã¦éåã®ãã¹ã¦ã®å¤ãèµ°æ»ãã
const entryIterator = adapterFeatures.entries();
for (const entry of entryIterator) {
console.log(entry[0]);
}
// forEach() ãç¨ãã¦éåã®ãã¹ã¦ã®å¤ãèµ°æ»ãã
adapterFeatures.forEach((value) => {
console.log(value);
});
// â¦
}
仿§æ¸
| 仿§æ¸ |
|---|
| WebGPU > # gpusupportedfeatures > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- WebGPU API
- 仿§æ¸ Feature Index