Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from gpuweb:main #1

Open
wants to merge 285 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
285 commits
Select commit Hold shift + click to select a range
1bfa459
Better define anisotropic filtering (#4583)
toji Apr 24, 2024
c0e00d9
Add logo to the spec and favicon (#4601)
toji Apr 24, 2024
3d50bea
Rephrase resolveTarget extent validation (#4604)
toji Apr 25, 2024
1d34645
Descriptions for remaining descriptor members (#4605)
toji Apr 25, 2024
a790ee5
Attachment resolveTargets must also be pairwise disjoint (#4592)
toji Apr 27, 2024
422c5d5
Better Specialize Syntax, Fix Typos, and Improve Grammar Validation S…
mehmetoguzderin Apr 30, 2024
e950fe1
[editorial] Clarify ldexp overloads (#4563)
alan-baker Apr 30, 2024
e880715
[editorial] Reorder attribute tables to put descriptions first (#4614)
dneto0 Apr 30, 2024
fff2d71
Add early evaluation errors for smoothstep (#4616)
alan-baker May 1, 2024
e2ebf5f
Use 'create a new WebGPU Object' for all objects (#4615)
toji May 1, 2024
9f4216e
Remove [[internal]] concept (#4617)
toji May 2, 2024
14e75d3
Extract privacy and security considerations into a separate bikeshed …
toji May 2, 2024
af33e3e
wgsl: Reduce shader limits (#4578)
jrprice May 7, 2024
1d11de7
Indicate timeline for majority of algorithms (#4620)
toji May 7, 2024
371dd4b
[non-normative] Drawing buffer can be lazily cleared (#4626)
kainino0x May 8, 2024
983817c
Fix 2d-array texture view as a renderable texture view (#4631)
haoxli May 14, 2024
3f40bd1
Allow bitcast to flush to zero (#4640)
alan-baker May 14, 2024
91efc67
Invalidate all command buffers passed to submit, whether the submit i…
toji May 15, 2024
05dd7e8
Clarify that pipeline-overrides don't have to be statically used to b…
dneto0 May 16, 2024
930f335
Compatibility: one aspect per texture view. (#4647)
SenorBlanco May 17, 2024
cca194c
Add missing limits to the correspondence doc (#4628)
toji May 17, 2024
494eb33
Add coordinate system diagrams and fix NDC to framebuffer equation (#…
toji May 17, 2024
4229efd
Compat: sample_mask and sample_index shader module error (#4638)
greggman May 18, 2024
6dd59b0
Compat: disallow @interpolate(flat, first) (#4637)
greggman May 18, 2024
04a0021
Compat: rgXXX formats generate error at shader module creation (#4636)
greggman May 18, 2024
195fdd2
Compat: linear and sample error at shader module creation (#4635)
greggman May 18, 2024
bda661a
Compat: depth textureLoad error at shader module creation (#4634)
greggman May 18, 2024
0ff9ac5
Add a better definition for 'texture' (#4645)
toji May 18, 2024
a2a6d82
Describe how comparison samplers interact with filtering (#4646)
toji May 21, 2024
f0f50cc
`indirectBuffer` should be added as `input` to the `usage scope` (#4654)
teoxoy May 21, 2024
3eec234
Deduped most image/buffer copy validation (#4629)
toji May 21, 2024
6bea403
Issue templates: template for 'api' label, new Dawn URLs (#4655)
kainino0x May 21, 2024
1b425c1
Making valid, invalid, and expired regular properties (#4625)
toji May 21, 2024
266238c
add first and either to interpolate (#4639)
greggman May 22, 2024
4fa953b
Minor grammatical fix (#4664)
toji May 23, 2024
af50e8f
Remove createShaderModule and createCommandEncoder issues (#4667)
toji May 24, 2024
6560751
Clarify the consumer of a GPUProgrammableStage (#4663)
toji May 24, 2024
ee2250d
Better definition for 'images' (#4661)
toji May 24, 2024
93b7e83
Clarify list of context compatible formats (#4665)
toji May 24, 2024
9a9fcc9
Point to TC39 draft of source map spec instead of sourcemaps.info (#4…
kainino0x May 24, 2024
ac2dda6
Fix outdated [[internals]].[[state]] in diagrams (#4673)
kainino0x May 24, 2024
e8430a9
Fixes for invoke-mermaid.sh and invoke-bikeshed.sh (#4671)
kainino0x May 25, 2024
0bfb5ca
Consider subgroup_size used in compute stage uniform (#4652)
jiangzhaoming May 27, 2024
6f92ce2
Spec orientation of each cube face, using a diagram (#4675)
kainino0x May 28, 2024
19516f6
Replace asynchronous .requestAdapterInfo() with synchronous .info (#4…
kainino0x May 28, 2024
33fba80
Allow compressed formats for 3D textures (#4677)
mehmetoguzderin May 28, 2024
158e0cf
make sure the device is valid when creating a texture view (#4678)
teoxoy May 28, 2024
72a4cb6
add missing `multisample.count` validation (#4681)
teoxoy May 28, 2024
93faa4b
Detail binding size check at draw/dispatch (#4682)
toji May 28, 2024
adb07b1
Add optional feature `clip-distances` (#4588)
Jiawei-Shao May 29, 2024
7f84265
Complete algorithm for copyTextureToTexture (#4672)
toji May 30, 2024
b09fbac
[editorial] Fix var and value table footnote (#4684)
alan-baker May 30, 2024
7f3c1a3
Restrict compressed 3D to BCn (#4685)
mehmetoguzderin May 31, 2024
064562f
Complete remaining texture copy algorithms (#4686)
toji May 31, 2024
4512a31
Rename image->texel image, block row->texel block row (#4689)
toji Jun 4, 2024
b468f37
Make `unmap()` device timeline validation explicit (#4679)
teoxoy Jun 4, 2024
61a383a
Adjusts subgroups built-in to atomics operations (#4627)
munrocket Jun 4, 2024
6b2e301
Add a definition for 64-bit unsigned ints (#4666)
toji Jun 6, 2024
4e03db2
Fixed baseVertex type for drawIndexedIndirect (#4691)
toji Jun 7, 2024
7b63ba7
Clarify that using the standard sample patterns is mandatory (#4693)
toji Jun 7, 2024
3e6b8e9
More rigorously define the relationship between device/GPUDevice (#4699)
toji Jun 8, 2024
174f42c
Remove outdated inline issue (#4703)
toji Jun 10, 2024
a99e48e
Add queue steps for copyExternalImageToTexture (#4698)
toji Jun 11, 2024
0e9ee00
Improve render bundle steps (#4702)
toji Jun 11, 2024
538a4c7
Algorithm steps for attachment load/store (#4706)
toji Jun 13, 2024
6eeebff
Add optional feature dual_source_blending (#4621)
Jiawei-Shao Jun 18, 2024
bd5cc72
Add missing `dual-source-blending` in `GPUFeatureName` (#4710)
Jiawei-Shao Jun 20, 2024
214629e
[Editorial] Fix a missing parenthesis (#4712)
jiangzhaoming Jun 21, 2024
daaf4ed
Fix \ escaping in Python strings (#4716)
dneto0 Jun 24, 2024
b1cc2ac
Guarantee that OOB writes to storage textures will be ignored (#4194)
teoxoy Jun 25, 2024
29e048a
[subgroups proposal] correct that the `id` must be a const-expression…
teoxoy Jun 25, 2024
384140f
Rename `subgroups-f16` to `subgroups_f16` for WGSL (#4718)
jrprice Jun 25, 2024
3cb784d
Extensions editorial: linking and syncing (#4720)
mehmetoguzderin Jun 26, 2024
c0844c0
Add compute algorithm to detailed operations (#4719)
toji Jun 26, 2024
0a0e553
Remove or resolve some editorial notes (#4717)
toji Jun 26, 2024
1f4aec4
Add extended range (#4500)
ccameron-chromium Jun 26, 2024
22dc18a
Clarify workgroupSize calculation (#4722)
toji Jun 26, 2024
9224846
Add algorithm for linear interpolation (#4725)
toji Jun 27, 2024
074f5e8
Define level of detail (#4694)
toji Jul 1, 2024
bbe58b8
Move vulkan reference into a non-normative note
toji Jul 1, 2024
40a69c8
Update viewport depth range validation (#4730)
toji Jul 3, 2024
1c712f7
Add description of sample footprint (#4683)
toji Jul 3, 2024
c05bc10
wgsl: Fix range of atan: starts at -pi/2, not pi/2 (#4732)
dneto0 Jul 4, 2024
a19b7bc
Clarify scope of pipeline creation (#4724)
alan-baker Jul 4, 2024
222b01f
Fix GPUBlendFactor indentation (#4736)
beaufortfrancois Jul 8, 2024
d90162b
Resolve read-only depth/stencil inline issue (#4737)
toji Jul 8, 2024
cbe4636
Define canvas image contents when unconfigured (#4738)
toji Jul 9, 2024
68ba017
Clarify blend factors must be validated against optional features (#4…
Jiawei-Shao Jul 10, 2024
14ec257
Update VideoFrames to use display size (#4740)
toji Jul 12, 2024
526db06
Point and line primitives ignore depth bias (#4743)
toji Jul 12, 2024
97f7abe
Push constant proposal (#4612)
shaoboyan Jul 13, 2024
fea695f
Add alt text to CSS "content" (#4751)
kainino0x Jul 16, 2024
9822384
Resolve line rasterization editorial note (#4754)
toji Jul 17, 2024
5fd0233
fix formatting in push-constants.md
kainino0x Jul 17, 2024
dab35d2
bgra8unorm-storage only enables write-only (#4741)
toji Jul 18, 2024
fc2515f
add missing "valid to use with" checks to `GPURenderPassDescriptor` V…
teoxoy Jul 18, 2024
bd8cf6c
Suppress error generation in create*PipelineAsync, clarify async step…
kainino0x Jul 18, 2024
d751530
Fix some language which ignores that limits get clamped to defaults (…
kainino0x Jul 18, 2024
f46b3f0
Resolve editorial note for rasterization points (#4753)
toji Jul 18, 2024
22799a4
require `module` to be "valid to use with" `device` (#4762)
teoxoy Jul 18, 2024
acccc1d
Clarify counting of case values for their maximum limit. (#4758)
kdashg Jul 22, 2024
3ccb934
Note that leading zeros are forbidden because no octals. (#4773)
kdashg Jul 23, 2024
0734fe5
Move overflow rules for concrete integers (#4767)
alan-baker Jul 23, 2024
c9ee7b6
Clarify inherited-from allows flushing (#4766)
alan-baker Jul 23, 2024
7b71747
Mention any-order function definition in #functions, and note lack of…
kdashg Jul 23, 2024
6406001
Clarify stage restrictions for IO attributes (#4765)
alan-baker Jul 23, 2024
ed8839b
Remove statement that uniformity is linear in number of tokens (#4769)
alan-baker Jul 23, 2024
66cb176
Add inverse channel transfer function (#4768)
alan-baker Jul 24, 2024
7662b4a
If any vertex is OOB, the whole draw call may behave as OOB (#4790)
kainino0x Jul 25, 2024
177c640
Add `texture-compression-bc-sliced-3d` (#4763)
mehmetoguzderin Jul 25, 2024
db8f3eb
Reject requestDevice() if the adapter has already been used (#4789)
kainino0x Jul 26, 2024
ea7d6f2
Remove mentions of multithreaded API (#4794)
kainino0x Jul 26, 2024
cf7648d
Change mapAsync to reject with AbortError on device loss (#4785)
kainino0x Jul 26, 2024
82e8506
Link to [=implementation-defined=] (#4793)
kainino0x Jul 26, 2024
5107401
[editorial] Make usage scope validation algorithmic (#4797)
kainino0x Jul 26, 2024
c9ad307
[editorial] Improve more language relating to limit defaults (#4780)
kainino0x Jul 27, 2024
65f155f
Simplify attachment usage validation (#4799)
kainino0x Jul 29, 2024
b75de33
Clarify const-expression eval and type checking (#4801)
alan-baker Jul 30, 2024
ceffd16
Clarify textureSampleBias bias param (#4771)
alan-baker Jul 30, 2024
7751328
Clarify array layer OOB for texture sampling (#4792)
alan-baker Jul 30, 2024
a189442
Explain the endianness of pack4xI8* and pack4xU8* builtins (#4425)
dneto0 Jul 31, 2024
7980a4b
Add shader module creation validation for features (#4802)
alan-baker Aug 5, 2024
9bb3748
Fixed two "it's" -> "its" typos. (#4813)
Tomycj Aug 13, 2024
26e66b0
Add note that enabling features can have performance impact (#4778)
kainino0x Aug 13, 2024
fb97a57
Add timelines to all attributes/slots, assorted editing (#4796)
kainino0x Aug 13, 2024
0f098a9
wgsl: define 'extended real' numbers (#4819)
dneto0 Aug 19, 2024
c1990f4
Add extra example for operations involving abstract numerics (#4795)
matthew-wong1 Aug 20, 2024
9465f41
Fix rules about dual source blending in `validating GPUFragmentState`…
Jiawei-Shao Aug 21, 2024
8759aa7
wsgl: remove TODO about acos, asin accuracy for f16 (#4823)
dneto0 Aug 21, 2024
fb06f3a
wsgl: clarify fp edge cases (#4825)
dneto0 Aug 27, 2024
0e120c6
Clarify validation of storage texture texel-format and access modes (…
dneto0 Aug 27, 2024
7fa78f6
Better explain that you can't assign to a multi-letter swizzle (#4835)
dneto0 Aug 28, 2024
60b2926
subgroups: subgroupBroadcast 'id' parameter is const-expression (#4820)
dneto0 Aug 28, 2024
aa904e4
Add inclusive scan add and mul operations (#4822)
alan-baker Aug 28, 2024
93fc5df
interstage-interpolation checks generate pipeline-creation errors, no…
dneto0 Aug 28, 2024
b205c45
Allow unknown limits to be requested with value `undefined` (#4781)
kainino0x Aug 28, 2024
bda63a8
Remove maxInterStageShaderComponents (#4783)
kainino0x Aug 28, 2024
ed7dd07
Generate a validation error on mapAsync early-reject (#4786)
kainino0x Aug 28, 2024
f1b76ce
Remove GPUShaderModuleDescriptor.sourceMap (#4840)
kainino0x Aug 29, 2024
edfffd9
Change mapAsync to also early-reject if already mapped (#4787)
kainino0x Aug 29, 2024
078959e
Additional cases for non-exact texel copies (#4842)
toji Aug 30, 2024
4117c56
add dynamic offset to "Validate encoder bind groups" validation funct…
teoxoy Aug 30, 2024
a5cc30a
Disable async operations after device destruction starts (#4788)
kainino0x Aug 30, 2024
68b60b3
Fix typo expresion -> expres**s**ion (#4846)
sagudev Sep 3, 2024
0ebebbe
wgsl: dynamically infinite loops are dynamic errors (#4847)
dneto0 Sep 4, 2024
36d1c09
Add missing validation rule about |maxFragmentShaderInputVariables| (…
Jiawei-Shao Sep 5, 2024
b39d86d
Add usage to GPUTextureViewDescriptor (#4746)
toji Sep 5, 2024
7084b31
Uncapturederror and preventDefault (#4708)
greggman Sep 6, 2024
13fdb96
Describing depth/stencil processing in Detailed Operations (#4849)
toji Sep 6, 2024
eddc196
Filling out the output merging section (#4855)
toji Sep 9, 2024
7ef8208
AbstractInt is two's complement, also improve the integer types text …
mehmetoguzderin Sep 9, 2024
61b9608
[editorial] Fix fencepost error in maxBindGroupsPlusVertexBuffers val…
kainino0x Sep 10, 2024
1eab553
[editorial] Use `.[=list/size=]` instead of `.length` (#4861)
kainino0x Sep 10, 2024
abd6f67
[editorial] Make a definition for vertex format sizes (#4863)
kainino0x Sep 10, 2024
093d24f
[editorial] remove assertion from "dot" syntax (#4866)
kainino0x Sep 10, 2024
6373bce
[editorial] Use the word "return" instead of "stop" (#4862)
kainino0x Sep 10, 2024
9ca9ba2
[editorial] Default GPUProgrammableStage.constants to {} (#4865)
kainino0x Sep 11, 2024
f2561ff
[editorial] Restore validation error accidentally removed in #4860 (#…
kainino0x Sep 11, 2024
4028098
Add API surface for feature levels (#4868)
kainino0x Sep 11, 2024
6847a16
Add `texture-compression-astc-sliced-3d` (#4873)
mehmetoguzderin Sep 12, 2024
8999299
Add note to warn on unusable viewFormats (#4872)
toji Sep 12, 2024
ad099c0
Fill out the Sample Frequency Shading section (#4871)
toji Sep 12, 2024
612b422
[WGSL] Remove normative self-reference (#4877)
alan-baker Sep 16, 2024
5a1b575
Clarify that atomic `and` and `or` are bitwise operations, slightly r…
mehmetoguzderin Sep 16, 2024
17287e5
Add column `Extension` in `Built-in input and output values` (#4875)
Jiawei-Shao Sep 16, 2024
260df20
[push-constants] remove per-stage immediates open question (#4779)
teoxoy Sep 17, 2024
5db832c
[editorial] Grammatical fix for some comments (#4883)
alan-baker Sep 18, 2024
a62353b
wgsl: Tweak wording of array constructor limit (#4881)
jrprice Sep 18, 2024
513c9ad
wgsl: reserve 'noncoherent' and 'non_coherent' (#4886)
dneto0 Sep 19, 2024
a9b1fa0
Add derivatives to accuracy table (#4884)
alan-baker Sep 19, 2024
5384329
wgsl: vertex position.w = 0 is a dynamic error (#4887)
dneto0 Sep 19, 2024
dc53262
wgsl: clarify inherited-from accuracy applies after fp rules and shor…
dneto0 Sep 19, 2024
e0129f0
subgroups: fix quadSwap* issues (#4889)
dneto0 Sep 19, 2024
189d431
Loosen Alpha-to-coverage guarantees (#4890)
toji Sep 20, 2024
acd9127
Specify that writing to storage skips early z (#4885)
toji Sep 20, 2024
f62c4c1
replace incorrect use of semicolon in struct declaration (#4893)
k2d222 Sep 24, 2024
a79f791
Update WGSL to reference WebGPU spec for sampled area in textureGathe…
mehmetoguzderin Sep 25, 2024
db2f243
Allow only strings in featureLevel (#4874)
kainino0x Sep 25, 2024
513ed5f
Add GPUCanvasContext getConfiguration() method
beaufortfrancois Sep 26, 2024
1f32757
Revert "Add GPUCanvasContext getConfiguration() method"
beaufortfrancois Sep 26, 2024
7cffc10
Add GPUCanvasContext getConfiguration() method (#4899)
beaufortfrancois Sep 27, 2024
2505300
Add [[lastPresentedImage]] as fallback for canvas image (#4902)
kainino0x Sep 30, 2024
bbfbc77
Update toneMapping mode in configure
beaufortfrancois Oct 2, 2024
9ce4c1e
Revert "Update toneMapping mode in configure"
beaufortfrancois Oct 2, 2024
4e1cd56
Update Tree-sitter version (#4827)
mehmetoguzderin Oct 7, 2024
566f047
Make image reads and writes non-private (#4913)
alan-baker Oct 7, 2024
204f038
Fix typo "vec3(e4,e4,e6)" -> "vec3(e4,e5,e6)" (#4915)
seven332 Oct 9, 2024
245abe2
Check for supported context formats in `configure()` on content timel…
sagudev Oct 9, 2024
3846d78
Add "float32-blendable" feature (#4896)
kainino0x Oct 9, 2024
e7427e4
Fix WGSL grammar flow for Python virtual environments (#4928)
dneto0 Oct 17, 2024
39dbefd
avoid excessive rebuild and install of treesitter WGSL grammar (#4929)
dneto0 Oct 17, 2024
91f0912
Move specs to CG-DRAFT status (#4931)
kainino0x Oct 18, 2024
0b4fc95
wgsl: Define 'finite range' (#4930)
dneto0 Oct 18, 2024
1e1f0e0
Similarity of variable and value declarations is a non-normative note…
mehmetoguzderin Oct 18, 2024
a7b9e9d
Require delta in up/down shuffle to be dynamically uniform (#4917)
alan-baker Oct 18, 2024
6e41932
Add an appendix for CTS status (#4923)
alan-baker Oct 18, 2024
86c3257
wgsl: Remove [INF] macro and its uses (#4933)
dneto0 Oct 18, 2024
23671a8
wgsl: rebuild grammar module only if grammar contents has changed (#4…
dneto0 Oct 18, 2024
485366e
Fix typo x4 (#4936)
fyellin Oct 25, 2024
fc8eddf
wgsl: cleanup uses of "infinity" in "differences from IEEE" and fp co…
dneto0 Oct 28, 2024
bd5b126
Allow out-of-memory errors in createTexture/createQuerySet (#4941)
kainino0x Oct 28, 2024
bb78f45
Remove superfluous exposed on GPUDevice onuncapturederror (#4947)
beaufortfrancois Oct 31, 2024
cfb4914
Clarify: texture+sampling validation applies to pairs used together i…
dneto0 Oct 31, 2024
d03b256
Fix default pipeline layout determination of sampling type for f32 te…
dneto0 Nov 1, 2024
7a2472b
Compatibility Mode: add vertex storage buffer and texture limits (#4…
SenorBlanco Nov 1, 2024
3f48a1d
Rename image copies -> texel copies (#4838)
kainino0x Nov 1, 2024
eea67b5
Allow empty bindGroupLayouts in GPUPipelineLayoutDescriptor (#4946)
beaufortfrancois Nov 1, 2024
b6a7642
Add 1-component vertex formats and unorm8x4-bgra (#4951)
Kangz Nov 1, 2024
075be5e
Clarify that filtering sampler_comparison is allowed with depth textu…
kainino0x Nov 4, 2024
63b719d
Allow `featureLevel: "compatibility"`, which does nothing (#4897)
kainino0x Nov 4, 2024
e2e26ec
Remove the [[destroy started]] state, go straight to 'lost' (#4903)
kainino0x Nov 4, 2024
8e44e1b
Proposal: expose GPUAdapterInfo from GPUDevice (#4809)
jiangzhaoming Nov 5, 2024
66b439e
Move specs from webgpu (community group) to gpuwg (working group) (#4…
kainino0x Nov 6, 2024
83e3cbb
Check bindGroupLayout entries are empty (#4958)
beaufortfrancois Nov 7, 2024
a1d5e04
wgsl: allow OffsetOfMember to be 0 (#4960)
dneto0 Nov 7, 2024
5419dbf
wgsl: fix typo (#4964)
dneto0 Nov 8, 2024
8d5f8b8
Update subgroups proposal (#4975)
alan-baker Nov 15, 2024
59a90eb
Add note about toneMapping mode in configure (#4922)
beaufortfrancois Nov 18, 2024
7d89f43
Add xrCompatible adapter flag (#4942)
toji Nov 18, 2024
a851e93
wgsl: bool has size and alignment of 4 bytes (#4974)
dneto0 Nov 19, 2024
9a0e419
wgsl: smoothstep is well defined for edge0 > edge1 (#4981)
dneto0 Nov 20, 2024
6738a8a
Clarify uniqueness of nearest enclosing diagnostic (#4980)
dneto0 Nov 20, 2024
1df9c5b
Adding clearer notes and examples for dynamic offset ordering (#4982)
toji Nov 20, 2024
70d7c5e
Texel buffer proposal (#4912)
jrprice Nov 20, 2024
bd061d4
wgsl: @align(n) must divide required-align-of, for all structs (#4978)
dneto0 Nov 21, 2024
de8f070
Compat: Disallow using a depth texture with a non-comparison sampler …
greggman Nov 22, 2024
21ad1ef
Fix host-shareable types note (#4992)
alan-baker Nov 22, 2024
0609d94
Fix styling of adapter immutable properties (#4991)
beaufortfrancois Nov 22, 2024
e567f2e
Fix attribute validation (#4998)
kainino0x Nov 26, 2024
42bd9a1
Change GLSL loop examples to WGSL examples. (#4997)
greggman Nov 27, 2024
bfd7d1d
Compat: Limit the number of texture+sampler combinations (#4989)
greggman Nov 27, 2024
97a3ead
Update CTS status for subgroups feature (#5002)
alan-baker Dec 2, 2024
d248f85
Compat mode: make f16 and f32 rendering optional. (#4983)
SenorBlanco Dec 4, 2024
b36b7cb
Add new fragment storage buffer, texture limits. (#5010)
SenorBlanco Dec 6, 2024
73a75f5
Fix typos in refs to adapter capability guarantees section (#5015)
tidoust Dec 10, 2024
327948d
Update CTS status (#5019)
alan-baker Dec 12, 2024
a87657b
Add attributes and settings for consistent line endings (#5021)
mehmetoguzderin Dec 14, 2024
c7fc9bb
Explainer: Update Adapter Selection and Device Init section (#5011)
beaufortfrancois Dec 17, 2024
254de56
Compatibility Mode: update to use featureLevel. (#5012)
SenorBlanco Dec 19, 2024
0bf3070
Fix maxTextureDimension limits refs (#5027)
beaufortfrancois Dec 19, 2024
7f4ea7d
Update subgroups CTS status (#5026)
alan-baker Dec 20, 2024
c29a5d8
texel buffer proposal: Update from review (#4985)
dneto0 Dec 20, 2024
21cae9b
Call out `texture_mulitsampled_2d` parameterization (#5030)
greggman Dec 20, 2024
0a2cda4
Add placeholder Deadlines to specs as a workaround for Bikeshed probl…
kainino0x Jan 8, 2025
94f0dde
Move Correspondence Reference from LD to UD, to fix CSS (#5038)
kainino0x Jan 8, 2025
ee18f9f
Document maxFragmentCombinedOutputResources (#5039)
kainino0x Jan 8, 2025
6f0dd66
Adjust metadata and workflow to resume publication to /TR (#5041)
tidoust Jan 10, 2025
bb105af
Add subgroups feature (#4963)
alan-baker Jan 16, 2025
3dc5313
Fix tags that cause build errors in the WGSL spec (#5046)
mehmetoguzderin Jan 21, 2025
d53c4c1
[editorial] API spec: Fix incorrect end tags (#5047)
kainino0x Jan 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/1-browser.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Browser/implementation bug
about: 'For bugs in a WebGPU implementation, please file against the relevant browser/implementation instead'
title: ''
labels: 'invalid'
assignees: ''

---

**Please do not file browser/implementation bugs on this GitHub repository.**
Instead, file a bug against the relevant browser.

Chrome (or Dawn/Tint):
Known issues:
https://issues.chromium.org/savedsearches/6760928
To file a new issue:
https://issues.chromium.org/issues/new?noWizard=true&component=1456980

WebKit:
https://bugs.webkit.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=WebGPU

Firefox:
https://bugzilla.mozilla.org/buglist.cgi?product=Core&component=Graphics%3A%20WebGPU

See also:
[Implementation Status](https://github.com/gpuweb/gpuweb/wiki/Implementation-Status) wiki page
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/2-question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: Question about WebGPU
about: 'Question? Please open a GitHub "Discussion" instead'
title: ''
labels: 'invalid'
assignees: ''

---

If you have a Q&A style question about using WebGPU, please use a GitHub "Discussion":
https://github.com/gpuweb/gpuweb/discussions
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/3-webgpu.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: WebGPU API spec issue (not WGSL)
about: 'API standardization/specification issue'
title: ''
labels: 'api'
assignees: ''

---
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/4-wgsl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: WGSL spec issue
about: 'WebGPU Shading Language standardization/specification issue'
title: ''
labels: 'wgsl'
assignees: ''

---
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/5-other.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: Misc, reference docs, wiki, etc.
about: 'Something other than WebGPU/WGSL spec - reference docs, wiki, GitHub infra, etc.'
title: ''
labels: ''
assignees: ''

---
23 changes: 0 additions & 23 deletions .github/ISSUE_TEMPLATE/browser.md

This file was deleted.

2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# "webgpu.md" is the catch-all template, we don't need a "blank issue" button
blank_issues_enabled: false
10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/issue.md

This file was deleted.

11 changes: 0 additions & 11 deletions .github/ISSUE_TEMPLATE/question.md

This file was deleted.

8 changes: 0 additions & 8 deletions .github/ISSUE_TEMPLATE/wgsl.md

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/build-push-custom-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ jobs:
- name: Build and push Docker image
uses: docker/[email protected]
with:
context: tools/custom-action
context: .
file: tools/custom-action/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-validate-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ name: build-validate-publish
on:
pull_request:
paths-ignore: [ "tools/custom-action/Dockerfile" ]

push:
branches: [main]
paths-ignore:
- "tools/custom-action/Dockerfile"
- "tools/custom-action/entrypoint.sh"

# Allows admins to trigger the workflow manually from GitHub's UI.
workflow_dispatch:

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/preview-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
uses: ./tools/custom-action/
with:
check-repo-clean: 'OFF'

# Adjusts Bikeshed specs
- name: Adjust Bikeshed
if: ${{ github.event.workflow_run.event == 'pull_request' && env.PR }}
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/publish-TR-webgpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,4 @@ jobs:
W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_WEBGPU }}
W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-gpu/2021Apr/0004.html
W3C_BUILD_OVERRIDE: |
group: gpuwg
status: WD
status: CRD
3 changes: 1 addition & 2 deletions .github/workflows/publish-TR-wgsl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,4 @@ jobs:
W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_WGSL }}
W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-gpu/2021Apr/0004.html
W3C_BUILD_OVERRIDE: |
group: gpuwg
status: WD
status: CRD
24 changes: 23 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,29 @@ out/
spec/index.html
spec/index.pre.html
spec/webgpu.idl
wgsl/grammar/
wgsl/grammar/**
!wgsl/grammar/bindings
!wgsl/grammar/bindings/c
!wgsl/grammar/bindings/c/tree-sitter-wgsl.pc.in
!wgsl/grammar/bindings/go
!wgsl/grammar/bindings/go/binding.go
!wgsl/grammar/bindings/python
!wgsl/grammar/bindings/python/tree_sitter_wgsl
!wgsl/grammar/bindings/python/tree_sitter_wgsl/__init__.py
!wgsl/grammar/bindings/rust
!wgsl/grammar/bindings/rust/build.rs
!wgsl/grammar/src
!wgsl/grammar/src/scanner.c
!wgsl/grammar/.gitignore
!wgsl/grammar/binding.gyp
!wgsl/grammar/Cargo.toml
!wgsl/grammar/go.mod
!wgsl/grammar/Makefile
!wgsl/grammar/package.json
!wgsl/grammar/Package.swift
!wgsl/grammar/pyproject.toml
!wgsl/grammar/README.md
!wgsl/grammar/setup.py
wgsl/index.html
wgsl/index.pre.html
wgsl/index.bs.pre
Expand Down
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
"files.associations": {
"*.bs.include": "bikeshed",
},
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"[bikeshed]": {
"editor.detectIndentation": false,
"editor.indentSize": 4,
Expand Down
1 change: 1 addition & 0 deletions correspondence/img/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

58 changes: 44 additions & 14 deletions correspondence/index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Title: WebGPU Correspondence Reference
Shortname: webgpu-correspondence
Level: None
Status: LD
Status: UD
Group: webgpu
URL: https://gpuweb.github.io/gpuweb/correspondence/
!Participate: <a href="https://github.com/gpuweb/gpuweb/issues/new">File an issue</a> (<a href="https://github.com/gpuweb/gpuweb/issues">open issues</a>)
Expand Down Expand Up @@ -151,6 +151,17 @@ User agents are not required to use these formulas and may expose whatever they
<td>When not using argument buffers, `maxStorageBuffersPerShaderStage`

Issue: When using argument buffers: ?
<tr>
<th>`maxBindGroupsPlusVertexBuffers`
<td>[#2749](https://github.com/gpuweb/gpuweb/issues/2749)
<td>No limit. Choose e.g. `max(default, maxBindGroups + maxVertexBuffers)`.
<td>*Strategy-dependent.* When using argument buffers, `Maximum number of _____ you can access, per stage, from an argument buffer`
<td>No limit. Choose e.g. `max(default, maxBindGroups + maxVertexBuffers)`.
<tr>
<th>`maxBindingsPerBindGroup`
<td>[#3279](https://github.com/gpuweb/gpuweb/issues/3279),
[#3864](https://github.com/gpuweb/gpuweb/issues/3864)
<td colspan=3>Limit is arbitrary to allow implementations to treat binding space as an array.
<tr>
<th>`maxSamplersPerShaderStage`
<td>[#409](https://github.com/gpuweb/gpuweb/issues/409)
Expand All @@ -166,12 +177,14 @@ User agents are not required to use these formulas and may expose whatever they
<tr>
<th>`maxStorageTexturesPerShaderStage`
<td>[#409](https://github.com/gpuweb/gpuweb/issues/409)
<td>`maxPerStageDescriptorStorageImages`
<td>*Strategy-dependent.* Choose a value &le; `maxPerStageDescriptorStorageImages`
while adhering to [[#vulkan-maxFragmentCombinedOutputResources]].
<td rowspan=2>*Strategy-dependent.* Allocate `Maximum number of Unordered Access Views in all descriptor tables across all stages` (guaranteed to be 64) across stages across these two limits. For example, 32 for each shader stage, split as 16 textures and 16 buffers per shader stage.
<tr>
<th>`maxStorageBuffersPerShaderStage`
<td>[#409](https://github.com/gpuweb/gpuweb/issues/409)
<td>`maxPerStageDescriptorStorageBuffers`
<td>*Strategy-dependent.* Choose a value &le; `maxPerStageDescriptorStorageBuffers`
while adhering to [[#vulkan-maxFragmentCombinedOutputResources]].
<td rowspan=3>*Strategy-dependent.* Allocate `Maximum number of entries in the buffer argument table, per graphics or kernel function` across these three limits.
<tr>
<th>`maxUniformBuffersPerShaderStage`
Expand Down Expand Up @@ -218,25 +231,29 @@ User agents are not required to use these formulas and may expose whatever they
<td>`maxVertexInputBindingStride`
<td>*No documented limit?*
<td>2048 B = `D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES`
<tr>
<th>`maxInterStageShaderComponents`
<td>[#1962](https://github.com/gpuweb/gpuweb/issues/1962)
<td>`min(maxVertexOutputComponents, maxFragmentInputComponents)`
<td>`Maximum number of input components to a fragment function, declared with the stage_in qualifier`, subtract 4 for non-Apple GPUs
<td>120 = `maxInterStageShaderVariables * 4`
<tr>
<th>`maxInterStageShaderVariables`
<td>[#1962](https://github.com/gpuweb/gpuweb/issues/1962)
<td>[#1962](https://github.com/gpuweb/gpuweb/issues/1962#issuecomment-1136316791)
<td>`min(maxVertexOutputComponents // 4, maxFragmentInputComponents // 4)`
<td>`Maximum number of inputs (scalars or vectors) to a fragment function, declared with the stage_in qualifier`, subtract 2 for non-Apple GPUs
<td>Min of:

- `Maximum scalar or vector inputs to a fragment function`, subtract 2 for non-Apple GPUs
- `(Maximum number of input components to a fragment function) / 4`, subtract 1 for non-Apple GPUs
<td>30 = `min(D3D12_VS_OUTPUT_REGISTER_COUNT - 1, D3D12_PS_INPUT_REGISTER_COUNT - 2)`
<tr>
<th>`maxColorAttachments`
<td>[#2820](https://github.com/gpuweb/gpuweb/issues/2820)
<td>`min(maxColorAttachments, maxFragmentOutputAttachments, maxFragmentCombinedOutputResources)`
<td>`Maximum number of color render targets per render
pass descriptor`
<td>*Strategy-dependent.* Choose a value &le; `min(maxColorAttachments, maxFragmentOutputAttachments)`
while adhering to [[#vulkan-maxFragmentCombinedOutputResources]].
<td>`Maximum number of color render targets per render pass descriptor`
<td>8 = `D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT`
<tr>
<th>`maxColorAttachmentBytesPerSample`
<td>[#2965](https://github.com/gpuweb/gpuweb/issues/2965)
<td><p class=issue>*No documented limit?*
<td>Mostly `Maximum total render target size, per pixel, when using multiple color render targets`,
but it's [a bit more complicated than that](https://github.com/gpuweb/gpuweb/issues/2965#issuecomment-1223792432)
<td><p class=issue>*No documented limit?*
<tr>
<th>`maxComputeWorkgroupStorageSize`
<td>[#1863](https://github.com/gpuweb/gpuweb/issues/1863)
Expand Down Expand Up @@ -271,3 +288,16 @@ User agents are not required to use these formulas and may expose whatever they
<td><p class=issue>*No documented limit?*
<td>65535 = `D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION`
</table>

## Vulkan `maxFragmentCombinedOutputResources` ## {#vulkan-maxFragmentCombinedOutputResources}

Choose `maxStorageBuffersPerShaderStage`, `maxStorageTexturesPerShaderStage`, and `maxColorAttachments`
such that their sum is &le; Vulkan's `maxFragmentCombinedOutputResources`.

<p class=advisement>
Warning:
`maxFragmentCombinedOutputResources` is incorrectly reported on many
[Intel, AMD, NVIDIA](https://github.com/gpuweb/gpuweb/issues/4018#issuecomment-1499725189), and
[Imagination](https://github.com/gpuweb/gpuweb/issues/3631#issuecomment-1498747606) drivers.
On these drivers, the combined limit may need to be ignored.
</p>
Loading