Skip to content

Commit abbec21

Browse files
committed
put extra column back for read-write only
1 parent 1557df7 commit abbec21

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

spec/index.bs

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4315,7 +4315,7 @@ The {{GPUTextureUsage}} flags determine how a {{GPUTexture}} may be used after i
43154315
- |descriptor|.{{GPUTextureDescriptor/dimension}} must be either {{GPUTextureDimension/"2d"}} or {{GPUTextureDimension/"3d"}}.
43164316
- If |descriptor|.{{GPUTextureDescriptor/usage}} includes the {{GPUTextureUsage/STORAGE_BINDING}} bit:
43174317
- |descriptor|.{{GPUTextureDescriptor/format}} must be listed in [[#plain-color-formats]] table
4318-
with {{GPUTextureUsage/STORAGE_BINDING}} capability.
4318+
with {{GPUTextureUsage/STORAGE_BINDING}} capability for the appropriate access mode.
43194319
- For each |viewFormat| in |descriptor|.{{GPUTextureDescriptor/viewFormats}},
43204320
|descriptor|.{{GPUTextureDescriptor/format}} and |viewFormat| must be
43214321
[=texture view format compatible=].
@@ -7193,8 +7193,10 @@ run the following steps:
71937193
1. Return `null` (which will cause the creation of the pipeline to fail).
71947194

71957195
1. If |resource| is a storage texture binding,
7196-
|entry|.|storageTexture|.{{GPUStorageTextureBindingLayout/access}} is {{GPUStorageTextureAccess/"read-write"}}, and
7197-
|previousEntry|.|storageTexture|.{{GPUStorageTextureBindingLayout/access}} is {{GPUStorageTextureAccess/"write-only"}}:
7196+
|entry|.|storageTexture|.{{GPUStorageTextureBindingLayout/access}} is {{GPUStorageTextureAccess/"read-write"}},
7197+
|previousEntry|.|storageTexture|.{{GPUStorageTextureBindingLayout/access}} is {{GPUStorageTextureAccess/"write-only"}}, and
7198+
|previousEntry|.|storageTexture|.{{GPUStorageTextureBindingLayout/format}} is compatible with
7199+
{{GPUTextureUsage/STORAGE_BINDING}} and {{GPUStorageTextureAccess/"read-write"}} according to the [[#plain-color-formats]] table:
71987200

71997201
1. Set |previousEntry|.|storageTexture|.{{GPUStorageTextureBindingLayout/access}} to {{GPUStorageTextureAccess/"read-write"}}.
72007202

@@ -15372,7 +15374,10 @@ The [=texel block memory cost=] of each of these formats is the same as its
1537215374
<th><span class=vertical>[=blendable=]</span>
1537315375
<th><span class=vertical>multisampling</span>
1537415376
<th><span class=vertical>resolve</span>
15375-
<th><span class=vertical>{{GPUTextureUsage/STORAGE_BINDING}}</span>
15377+
<th><span class=vertical>{{GPUStorageTextureAccess/"write-only"}} or {{GPUStorageTextureAccess/"read-only"}}<br>
15378+
{{GPUTextureUsage/STORAGE_BINDING}}</span>
15379+
<th><span class=vertical>{{GPUStorageTextureAccess/"read-write"}}<br>
15380+
{{GPUTextureUsage/STORAGE_BINDING}}</span>
1537615381
<th>[=Texel block copy footprint=] (Bytes)
1537715382
<th>[=Render target pixel byte cost=] (Bytes)
1537815383
</thead>
@@ -15385,6 +15390,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1538515390
<td>&checkmark;
1538615391
<td>&checkmark;
1538715392
<td>
15393+
<td>
1538815394
<td colspan=2>1
1538915395
<tr>
1539015396
<td>{{GPUTextureFormat/r8snorm}}
@@ -15394,6 +15400,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1539415400
<td><!-- no multisampling without RENDER_ATTACHMENT (gpuweb/gpuweb#2465) -->
1539515401
<td>
1539615402
<td><!-- Vulkan -->
15403+
<td><!-- Vulkan -->
1539715404
<td>1
1539815405
<td>&ndash; <!-- no render target -->
1539915406
<tr>
@@ -15404,6 +15411,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1540415411
<td>&checkmark;
1540515412
<td><!-- Metal -->
1540615413
<td>
15414+
<td>
1540715415
<td colspan=2>1
1540815416
<tr>
1540915417
<td>{{GPUTextureFormat/r8sint}}
@@ -15413,6 +15421,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1541315421
<td>&checkmark;
1541415422
<td><!-- Metal -->
1541515423
<td>
15424+
<td>
1541615425
<td colspan=2>1
1541715426
<tr>
1541815427
<td>{{GPUTextureFormat/rg8unorm}}
@@ -15422,6 +15431,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1542215431
<td>&checkmark;
1542315432
<td>&checkmark;
1542415433
<td><!-- Vulkan -->
15434+
<td><!-- Vulkan -->
1542515435
<td colspan=2>2
1542615436
<tr>
1542715437
<td>{{GPUTextureFormat/rg8snorm}}
@@ -15431,6 +15441,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1543115441
<td><!-- no multisampling without RENDER_ATTACHMENT (gpuweb/gpuweb#2465) -->
1543215442
<td>
1543315443
<td><!-- Vulkan -->
15444+
<td><!-- Vulkan -->
1543415445
<td>2
1543515446
<td>&ndash; <!-- no render target -->
1543615447
<tr>
@@ -15451,6 +15462,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1545115462
<td>&checkmark;
1545215463
<td><!-- Metal -->
1545315464
<td>
15465+
<td>
1545415466
<td colspan=2>2
1545515467
<tr>
1545615468
<td>{{GPUTextureFormat/rgba8unorm}}
@@ -15460,6 +15472,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1546015472
<td>&checkmark;
1546115473
<td>&checkmark;
1546215474
<td>&checkmark;
15475+
<td>
1546315476
<td>4
1546415477
<td>8
1546515478
<tr>
@@ -15470,6 +15483,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1547015483
<td>&checkmark;
1547115484
<td>&checkmark;
1547215485
<td>
15486+
<td>
1547315487
<td>4
1547415488
<td>8
1547515489
<tr>
@@ -15480,6 +15494,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1548015494
<td><!-- no multisampling without RENDER_ATTACHMENT (gpuweb/gpuweb#2465) -->
1548115495
<td>
1548215496
<td>&checkmark;
15497+
<td>
1548315498
<td>4
1548415499
<td>&ndash; <!-- no render target --> <!-- If we add render target support for this in the future, rgba8snorm has to be a special case where the render target pixel byte cost = 8 -->
1548515500
<tr>
@@ -15490,6 +15505,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1549015505
<td>&checkmark;
1549115506
<td><!-- Metal -->
1549215507
<td>&checkmark;
15508+
<td>
1549315509
<td colspan=2>4
1549415510
<tr>
1549515511
<td>{{GPUTextureFormat/rgba8sint}}
@@ -15499,6 +15515,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1549915515
<td>&checkmark;
1550015516
<td><!-- Metal -->
1550115517
<td>&checkmark;
15518+
<td>
1550215519
<td colspan=2>4
1550315520
<tr>
1550415521
<td>{{GPUTextureFormat/bgra8unorm}}
@@ -15508,6 +15525,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1550815525
<td>&checkmark;
1550915526
<td>&checkmark;
1551015527
<td>If {{GPUFeatureName/"bgra8unorm-storage"}} is enabled
15528+
<td>
1551115529
<td>4
1551215530
<td>8
1551315531
<tr>
@@ -15530,6 +15548,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1553015548
<td>&checkmark;
1553115549
<td><!-- Metal -->
1553215550
<td>
15551+
<td>
1553315552
<td colspan=2>2
1553415553
<tr>
1553515554
<td>{{GPUTextureFormat/r16sint}}
@@ -15539,6 +15558,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1553915558
<td>&checkmark;
1554015559
<td><!-- Metal -->
1554115560
<td>
15561+
<td>
1554215562
<td colspan=2>2
1554315563
<tr>
1554415564
<td>{{GPUTextureFormat/r16float}}
@@ -15548,6 +15568,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1554815568
<td>&checkmark;
1554915569
<td>&checkmark;
1555015570
<td>
15571+
<td>
1555115572
<td colspan=2>2
1555215573
<tr>
1555315574
<td>{{GPUTextureFormat/rg16uint}}
@@ -15557,6 +15578,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1555715578
<td>&checkmark;
1555815579
<td><!-- Metal -->
1555915580
<td>
15581+
<td>
1556015582
<td colspan=2>4
1556115583
<tr>
1556215584
<td>{{GPUTextureFormat/rg16sint}}
@@ -15576,6 +15598,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1557615598
<td>&checkmark;
1557715599
<td>&checkmark;
1557815600
<td><!-- Vulkan -->
15601+
<td><!-- Vulkan -->
1557915602
<td colspan=2>4
1558015603
<tr>
1558115604
<td>{{GPUTextureFormat/rgba16uint}}
@@ -15585,6 +15608,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1558515608
<td>&checkmark;
1558615609
<td><!-- Metal -->
1558715610
<td>&checkmark;
15611+
<td>
1558815612
<td colspan=2>8
1558915613
<tr>
1559015614
<td>{{GPUTextureFormat/rgba16sint}}
@@ -15594,6 +15618,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1559415618
<td>&checkmark;
1559515619
<td><!-- Metal -->
1559615620
<td>&checkmark;
15621+
<td>
1559715622
<td colspan=2>8
1559815623
<tr>
1559915624
<td>{{GPUTextureFormat/rgba16float}}
@@ -15603,6 +15628,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1560315628
<td>&checkmark;
1560415629
<td>&checkmark;
1560515630
<td>&checkmark;
15631+
<td>
1560615632
<td colspan=2>8
1560715633
<tr><th colspan=10>32 bits per component (4-byte [=render target component alignment=])
1560815634
<tr>
@@ -15613,6 +15639,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1561315639
<td><!-- Metal -->
1561415640
<td>
1561515641
<td>&checkmark;
15642+
<td>&checkmark;
1561615643
<td colspan=2>4
1561715644
<tr>
1561815645
<td>{{GPUTextureFormat/r32sint}}
@@ -15622,6 +15649,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1562215649
<td><!-- Metal -->
1562315650
<td>
1562415651
<td>&checkmark;
15652+
<td>&checkmark;
1562515653
<td colspan=2>4
1562615654
<tr>
1562715655
<td>{{GPUTextureFormat/r32float}}
@@ -15633,6 +15661,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1563315661
<td>&checkmark;
1563415662
<td><!-- Metal -->
1563515663
<td>&checkmark;
15664+
<td>&checkmark;
1563615665
<td colspan=2>4
1563715666
<tr>
1563815667
<td>{{GPUTextureFormat/rg32uint}}
@@ -15642,6 +15671,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1564215671
<td><!-- Metal -->
1564315672
<td>
1564415673
<td>&checkmark;
15674+
<td>
1564515675
<td colspan=2>8
1564615676
<tr>
1564715677
<td>{{GPUTextureFormat/rg32sint}}
@@ -15651,6 +15681,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1565115681
<td><!-- Metal -->
1565215682
<td>
1565315683
<td>&checkmark;
15684+
<td>
1565415685
<td colspan=2>8
1565515686
<tr>
1565615687
<td>{{GPUTextureFormat/rg32float}}
@@ -15662,6 +15693,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1566215693
<td><!-- Metal -->
1566315694
<td>
1566415695
<td>&checkmark;
15696+
<td>
1566515697
<td colspan=2>8
1566615698
<tr>
1566715699
<td>{{GPUTextureFormat/rgba32uint}}
@@ -15671,6 +15703,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1567115703
<td><!-- Metal -->
1567215704
<td>
1567315705
<td>&checkmark;
15706+
<td>
1567415707
<td colspan=2>16
1567515708
<tr>
1567615709
<td>{{GPUTextureFormat/rgba32sint}}
@@ -15680,6 +15713,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1568015713
<td><!-- Metal -->
1568115714
<td>
1568215715
<td>&checkmark;
15716+
<td>
1568315717
<td colspan=2>16
1568415718
<tr>
1568515719
<td>{{GPUTextureFormat/rgba32float}}
@@ -15691,6 +15725,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1569115725
<td><!-- Metal -->
1569215726
<td>
1569315727
<td>&checkmark;
15728+
<td>
1569415729
<td colspan=2>16
1569515730
<tr><th colspan=10>mixed component width, 32 bits per texel (4-byte [=render target component alignment=])
1569615731
<tr>
@@ -15701,6 +15736,7 @@ The [=texel block memory cost=] of each of these formats is the same as its
1570115736
<td>&checkmark;
1570215737
<td>
1570315738
<td>
15739+
<td>
1570415740
<td>4
1570515741
<td>8
1570615742
<tr>
@@ -15711,13 +15747,15 @@ The [=texel block memory cost=] of each of these formats is the same as its
1571115747
<td>&checkmark;
1571215748
<td>&checkmark;
1571315749
<td>
15750+
<td>
1571415751
<td>4
1571515752
<td>8
1571615753
<tr>
1571715754
<td>{{GPUTextureFormat/rg11b10ufloat}}
1571815755
<td>{{GPUTextureSampleType/"float"}},<br/>{{GPUTextureSampleType/"unfilterable-float"}}
1571915756
<td colspan=4>If {{GPUFeatureName/"rg11b10ufloat-renderable"}} is enabled
1572015757
<td><!-- Vulkan -->
15758+
<td><!-- Vulkan -->
1572115759
<td>4
1572215760
<td>8
1572315761
</table>

0 commit comments

Comments
 (0)