@@ -2345,7 +2345,7 @@ match one texel.
23452345enum GPUFilterMode {
23462346 "nearest",
23472347 "linear",
2348- "minimim ",
2348+ "minimum ",
23492349 "maximum",
23502350};
23512351</script>
@@ -2361,12 +2361,12 @@ enum GPUFilterMode {
23612361
23622362 : <dfn>"minimum"</dfn>
23632363 ::
2364- Select two texels in each dimension and return the minimum value between them.
2364+ Select two texels in each dimension and return the minimum values between them, component-wise .
23652365 Requires {{GPUFeatureName/"minmax-sampling"}} feature to be enabled.
23662366
23672367 : <dfn>"maximum"</dfn>
23682368 ::
2369- Select two texels in each dimension and return the maximum value between them.
2369+ Select two texels in each dimension and return the maximum values between them, component-wise .
23702370 Requires {{GPUFeatureName/"minmax-sampling"}} feature to be enabled.
23712371</dl>
23722372
@@ -2439,8 +2439,9 @@ enum GPUCompareFunction {
24392439 - |descriptor|.{{GPUSamplerDescriptor/magFilter}} and |descriptor.{{GPUSamplerDescriptor/mipmapFilter}}
24402440 are either {{GPUFilterMode/"nearest"}} or {{GPUFilterMode/"linear"}} , independently.
24412441 - if |descriptor|.{{GPUSamplerDescriptor/minFilter}} is {{GPUFilterMode/"minimum"}} or
2442- {{GPUFilterMode/"maximum"}} , then the |device|.{{device/[[features]]}}
2443- [=list/contain=] {{GPUFeatureName/"minmax-sampling"}} .
2442+ {{GPUFilterMode/"maximum"}} , then all of the following conditions are satisfied:
2443+ - |device|.{{device/[[features]]}} [=list/contains=] {{GPUFeatureName/"minmax-sampling"}} .
2444+ - |descriptor|.{{GPUSamplerDescriptor/compare}} is `null`.
24442445</div>
24452446
24462447<dl dfn-type=method dfn-for=GPUDevice>
@@ -7288,193 +7289,232 @@ Only formats with {{GPUTextureSampleType}} {{GPUTextureSampleType/"float"}} can
72887289The {{GPUTextureUsage/STORAGE|GPUTextureUsage.STORAGE}} column specifies the support for {{GPUTextureUsage/STORAGE}}
72897290usage in the core API, including both {{GPUStorageTextureAccess/"readonly"}} and {{GPUStorageTextureAccess/"writeonly"}} .
72907291
7292+ The "Min/Max sampling" column specifies the support for sampling a {{GPUTextureView}} of the format with a {{GPUSampler}}
7293+ that uses {{GPUFilterMode/"minimum"}} or {{GPUFilterMode/"maximum"}} .
7294+
72917295<table class='data'>
72927296 <thead class=stickyheader>
72937297 <tr>
72947298 <th> Format
72957299 <th> {{GPUTextureSampleType}}
72967300 <th> {{GPUTextureUsage/RENDER_ATTACHMENT}}
72977301 <th> {{GPUTextureUsage/STORAGE}}
7302+ <th> Min/Max sampling
72987303 </thead>
72997304 <tr><th class=stickyheader> 8-bit per component<th><th><th><th>
73007305 <tr>
73017306 <td> {{GPUTextureFormat/r8unorm}}
73027307 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73037308 <td> ✓
73047309 <td>
7310+ <td> ✓
73057311 <tr>
73067312 <td> {{GPUTextureFormat/r8snorm}}
73077313 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73087314 <td>
73097315 <td>
7316+ <td> ✓
73107317 <tr>
73117318 <td> {{GPUTextureFormat/r8uint}}
73127319 <td> {{GPUTextureSampleType/"uint"}}
73137320 <td> ✓
73147321 <td>
7322+ <td>
73157323 <tr>
73167324 <td> {{GPUTextureFormat/r8sint}}
73177325 <td> {{GPUTextureSampleType/"sint"}}
73187326 <td> ✓
73197327 <td>
7328+ <td>
73207329 <tr>
73217330 <td> {{GPUTextureFormat/rg8unorm}}
73227331 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73237332 <td> ✓
73247333 <td>
7334+ <td>
73257335 <tr>
73267336 <td> {{GPUTextureFormat/rg8snorm}}
73277337 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73287338 <td>
73297339 <td>
7340+ <td>
73307341 <tr>
73317342 <td> {{GPUTextureFormat/rg8uint}}
73327343 <td> {{GPUTextureSampleType/"uint"}}
73337344 <td> ✓
73347345 <td>
7346+ <td>
73357347 <tr>
73367348 <td> {{GPUTextureFormat/rg8sint}}
73377349 <td> {{GPUTextureSampleType/"sint"}}
73387350 <td> ✓
73397351 <td>
7352+ <td>
73407353 <tr>
73417354 <td> {{GPUTextureFormat/rgba8unorm}}
73427355 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73437356 <td> ✓
73447357 <td> ✓
7358+ <td>
73457359 <tr>
73467360 <td> {{GPUTextureFormat/rgba8unorm-srgb}}
73477361 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73487362 <td> ✓
73497363 <td>
7364+ <td>
73507365 <tr>
73517366 <td> {{GPUTextureFormat/rgba8snorm}}
73527367 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73537368 <td>
73547369 <td> ✓
7370+ <td>
73557371 <tr>
73567372 <td> {{GPUTextureFormat/rgba8uint}}
73577373 <td> {{GPUTextureSampleType/"uint"}}
73587374 <td> ✓
73597375 <td> ✓
7376+ <td>
73607377 <tr>
73617378 <td> {{GPUTextureFormat/rgba8sint}}
73627379 <td> {{GPUTextureSampleType/"sint"}}
73637380 <td> ✓
73647381 <td> ✓
7382+ <td>
73657383 <tr>
73667384 <td> {{GPUTextureFormat/bgra8unorm}}
73677385 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73687386 <td> ✓
73697387 <td>
7388+ <td>
73707389 <tr>
73717390 <td> {{GPUTextureFormat/bgra8unorm-srgb}}
73727391 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73737392 <td> ✓
73747393 <td>
7394+ <td>
73757395 <tr><th class=stickyheader> 16-bit per component<th><th><th><th>
73767396 <tr>
73777397 <td> {{GPUTextureFormat/r16uint}}
73787398 <td> {{GPUTextureSampleType/"uint"}}
73797399 <td> ✓
73807400 <td>
7401+ <td>
73817402 <tr>
73827403 <td> {{GPUTextureFormat/r16sint}}
73837404 <td> {{GPUTextureSampleType/"sint"}}
73847405 <td> ✓
73857406 <td>
7407+ <td>
73867408 <tr>
73877409 <td> {{GPUTextureFormat/r16float}}
73887410 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
73897411 <td> ✓
73907412 <td>
7413+ <td>
73917414 <tr>
73927415 <td> {{GPUTextureFormat/rg16uint}}
73937416 <td> {{GPUTextureSampleType/"uint"}}
73947417 <td> ✓
73957418 <td>
7419+ <td>
73967420 <tr>
73977421 <td> {{GPUTextureFormat/rg16sint}}
73987422 <td> {{GPUTextureSampleType/"sint"}}
73997423 <td> ✓
74007424 <td>
7425+ <td>
74017426 <tr>
74027427 <td> {{GPUTextureFormat/rg16float}}
74037428 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
74047429 <td> ✓
74057430 <td> <!-- Vulkan -->
7431+ <td>
74067432 <tr>
74077433 <td> {{GPUTextureFormat/rgba16uint}}
74087434 <td> {{GPUTextureSampleType/"uint"}}
74097435 <td> ✓
74107436 <td> ✓
7437+ <td>
74117438 <tr>
74127439 <td> {{GPUTextureFormat/rgba16sint}}
74137440 <td> {{GPUTextureSampleType/"sint"}}
74147441 <td> ✓
74157442 <td> ✓
7443+ <td>
74167444 <tr>
74177445 <td> {{GPUTextureFormat/rgba16float}}
74187446 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
74197447 <td> ✓
74207448 <td> ✓
7449+ <td>
74217450 <tr><th class=stickyheader> 32-bit per component<th><th><th><th>
74227451 <tr>
74237452 <td> {{GPUTextureFormat/r32uint}}
74247453 <td> {{GPUTextureSampleType/"uint"}}
74257454 <td> ✓
74267455 <td> ✓
7456+ <td>
74277457 <tr>
74287458 <td> {{GPUTextureFormat/r32sint}}
74297459 <td> {{GPUTextureSampleType/"sint"}}
74307460 <td> ✓
74317461 <td> ✓
7462+ <td>
74327463 <tr>
74337464 <td> {{GPUTextureFormat/r32float}}
74347465 <td> {{GPUTextureSampleType/"unfilterable-float"}} <!-- Metal -->
74357466 <td> ✓
74367467 <td> ✓
7468+ <td> ✓
74377469 <tr>
74387470 <td> {{GPUTextureFormat/rg32uint}}
74397471 <td> {{GPUTextureSampleType/"uint"}}
74407472 <td> ✓
74417473 <td> ✓
7474+ <td>
74427475 <tr>
74437476 <td> {{GPUTextureFormat/rg32sint}}
74447477 <td> {{GPUTextureSampleType/"sint"}}
74457478 <td> ✓
74467479 <td> ✓
7480+ <td>
74477481 <tr>
74487482 <td> {{GPUTextureFormat/rg32float}}
74497483 <td> {{GPUTextureSampleType/"unfilterable-float"}}
74507484 <td> ✓
74517485 <td> ✓
7486+ <td>
74527487 <tr>
74537488 <td> {{GPUTextureFormat/rgba32uint}}
74547489 <td> {{GPUTextureSampleType/"uint"}}
74557490 <td> ✓
74567491 <td> ✓
7492+ <td>
74577493 <tr>
74587494 <td> {{GPUTextureFormat/rgba32sint}}
74597495 <td> {{GPUTextureSampleType/"sint"}}
74607496 <td> ✓
74617497 <td> ✓
7498+ <td>
74627499 <tr>
74637500 <td> {{GPUTextureFormat/rgba32float}}
74647501 <td> {{GPUTextureSampleType/"unfilterable-float"}}
74657502 <td> ✓
74667503 <td> ✓
7504+ <td>
74677505 <tr><th class=stickyheader> mixed component width<th><th><th><th>
74687506 <tr>
74697507 <td> {{GPUTextureFormat/rgb10a2unorm}}
74707508 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
74717509 <td> ✓
74727510 <td>
7511+ <td>
74737512 <tr>
74747513 <td> {{GPUTextureFormat/rg11b10ufloat}}
74757514 <td> {{GPUTextureSampleType/"float"}} ,<br/> {{GPUTextureSampleType/"unfilterable-float"}}
74767515 <td> <!-- Vulkan -->
74777516 <td>
7517+ <td>
74787518
74797519</table>
74807520
@@ -7484,6 +7524,9 @@ All depth formats support {{GPUTextureUsage/COPY_SRC}}, {{GPUTextureUsage/COPY_D
74847524
74857525None of the depth formats can be filtered.
74867526
7527+ The {{GPUTextureAspect/"depth-only"} aspect of all of the depth formats can be sampled
7528+ with {{GPUFilterMode/"minimum"}} or {{GPUFilterMode/"maximum"}} modes.
7529+
74877530<table class='data'>
74887531 <thead>
74897532 <tr>
0 commit comments