| CARVIEW |
Select Language
HTTP/2 200
date: Wed, 31 Dec 2025 16:45:07 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"eca77308b57b56f19c554f4db7031a18"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=aDKC6%2FdxL6PKeoNpTQxNlXPMC1FZME%2B1cPCBEDV7KxLBJY%2BiO0AODzfPvtXyRsTESzxtbV9v1wFZPDtfN8gbgDyCJwKU%2FRuxZaOXo0KQKcI%2BXw3R%2BqL6EQZQpnLOTBGT3gNbLNBH7p9EMfNBS69dB8TpXemo3p%2FiXmKENXvQ%2FX8X%2FA4DvBmF9O7G090JFsYtnZtHp8h1RYDzlE9PZ2gOKIh7ruV%2B4ItWcnIs2%2BhYtHlIBqilravWY%2FTPdjBxOG%2Bdm8sz8j0gfKi2uje9RMq2Rw%3D%3D--KqymyndhR2dACgSj--DQhJZLP3zu0kvR9%2BezRV1g%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1653493493.1767199506; Path=/; Domain=github.com; Expires=Thu, 31 Dec 2026 16:45:06 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 31 Dec 2026 16:45:06 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 916A:15F530:7126C9:7DC528:69555312
Table of Contents · gpuweb/gpuweb Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 356
Table of Contents
Dzmitry Malyshau edited this page Feb 21, 2021
·
15 revisions
This page aims to track the big picture of what sections the specification is missing.
A bullet is a section header (appears in the spec's table of contents).
A . is an item that should appear in the section body.
- Introduction
. basic description - Security Considerations
- CPU-Based Undefined Behavior
- GPU-Based Undefined Behavior
- Out-of-Bounds Access in Shaders
- Invalid Data
- Driver Bugs
- Timing Attacks
- Denial of Service
- Fingerprinting
- (anything missing?)
- Fundamentals
- Conventions
- Dot Syntax
- Internal Objects
- WebGPU Interfaces
- Object Descriptors
- Invalid Internal Objects & Contagious Invalidity
- Coordinate Systems
. (just an overview; details are throughout the spec) - Fixed-point data conversions (see Vulkan for example) - coordinate with WGSL
- Programming Model
- Timelines
. describes the kinds of timelines we have in the programming model - Memory Model
. describes the major types of memory WebGPU operates on under the hood and what guarantees we provide on their state - Multi-Threading
- Resource Usages
- Synchronization
- Timelines
- Core Internal Objects
- Adapters
. prose: adapter
. internal object definition: adapter - Devices
. prose: device
. internal object definition: device
- Adapters
- Optional Capabilities
- Limits
. describe limits mechanism, not actual limits - Features
. describe extension mechanism, not actual features
- Limits
- Conventions
- Initialization
. prose describing initialization
. high-level explanation of limits and extensions- Examples
- navigator.gpu
- GPU (interface)
- requestAdapter
- GPUAdapter
- requestDevice
- GPUDeviceDescriptor
- requestDevice
- GPUDevice
- GPUExtensionName
. (shouldn’t provide definitions for the extension names, those should be in the Extensions section at the bottom) - GPULimits
. list and describe limits
- Queues
. internal object definition: queue
. GPUQueue
. device.defaultQueue- Queue Operations
- submit()
- writeBuffer()
- writeTexture()
- copyImageBitmapToTexture()
. GPUImageBitmapCopyView - onSubmittedWorkDone()
- Queue Operations
- Resources
- Buffers
. prose: buffers
. internal object definition: buffer
. internal object definition: content-timeline buffer state tracker
. GPUBuffer- Creation
. createBuffer()
. GPUBufferDescriptor- Buffer Usage Flags
- Destruction
. destroy() - Mapping
. mapAsync()
. getMappedRange()
. unmap()
- Creation
- Textures
. prose: textures and their uses, with reference to texture views
. internal object definition: texture
. GPUTexture- Creation
. createTexture()
. GPUTextureDescriptor- Texture Usage Flags
- Destruction
. destroy()
- Creation
- Texture Views
. prose: describe texture views and their uses
. internal object definition: texture view
. GPUTextureView- Creation
. createView()
. GPUTextureViewDescriptor
- Creation
- Samplers
. internal object definition: sampler
. GPUSampler- Creation
. createSampler()
. GPUSamplerDescriptor et al
- Creation
- Resource Binding
- Bind Group Layouts
. internal object definition: bind group layout
. GPUBindGroupLayout- Creation
. createBindGroupLayout()
. GPUBindGroupLayoutDescriptor et al
- Creation
- Bind Groups
. internal object definition: bind group
. GPUBindGroup- Creation
. createBindGroup()
. GPUBindGroupDescriptor et al
- Creation
- Bind Group Layouts
- Buffers
- Pipelines & Programmability
- Pipelines
- Pipeline Layouts
. internal object definition: pipeline layout
. GPUPipelineLayout- Creation
. createPipelineLayout()
. GPUPipelineLayoutDescriptor
- Creation
- Pipeline Creation
. prose: common descriptors for render and compute- GPUPipelineDescriptorBase
- GPUProgrammableStageDescriptor
- Pipeline Layouts
- Compute Pipelines
. internal object definition: compute pipeline
. GPUComputePipeline- Creation
. createComputePipeline()
. GPUComputePipelineDescriptor - Compute Shaders
- Creation
- Render Pipelines
. internal object definition: render pipeline
. GPURenderPipeline- Creation
. createRenderPipeline()
. GPURenderPipelineDescriptor - Stages
- Vertex Fetch
. vertexState - Vertex Shader
. vertexStage - Primitive Assembly
. primitiveTopology - Rasterization
. rasterizationState - Fragment Shader
. fragmentStage - Stencil & Depth
. depthStencilState - Color State
. colorStates
- Vertex Fetch
- Creation
- Shaders
. prose: about WGSL- Security
. describe what we do in order to execute shaders securely - Shader Modules
. internal object definition: shader module
. GPUShaderModule- Creation
. createShaderModule()
. GPUShaderModuleDescriptor
- Creation
- Security
- Pipelines
- Command Buffers & Encoding
- Command Buffers
. prose: command buffers and how encoding works- Command Buffers
. internal object definition: command buffer
. GPUCommandBuffer
. finish()
. GPUCommandBufferDescriptor - Command Encoders
. (no internal)
. GPUCommandEncoder
. createCommandEncoder()
. GPUCommandEncoderDescriptor - Non-Pass Commands
. prose: see Non-Pass Commands - Programmable Passes
. prose: ...
. GPUProgrammablePassEncoder
- Command Buffers
- Compute Passes
. prose: compute pass encoding
. (no internal)
. GPUComputePassEncoder- Beginning Compute Passes
. beginComputePass()
. GPUComputePassDescriptor - Commands
. prose: see Compute Commands - Ending Compute Passes
. endPass()
- Beginning Compute Passes
- Render Passes
. prose: render pass encoding
. (no internal)
. GPURenderPassEncoder- Beginning Render Passes
. beginRenderPass()
. GPURenderPassDescriptor- Color Attachments
- Depth/Stencil Attachments
- Load & Store Operations
- Commands
. prose: see Render Pass Commands and Render Commands - Ending Render Passes
. endPass()
- Beginning Render Passes
- Render Bundles
. prose: render bundle encoding
. internal object definition: render bundle
. GPURenderBundle- Encoding Render Bundles
. createRenderBundleEncoder()
. GPURenderBundleEncoderDescriptor - Commands
. prose: see Render Commands
- Encoding Render Bundles
- Commands
- Non-Pass Commands: Copy
- GPUTextureDataLayout
- GPUBufferCopyView
- GPUTextureCopyView
- copyBufferToBuffer()
- copyBufferToTexture()
- copyTextureToBuffer()
- copyTextureToTexture()
- Non-Pass Commands: Debug
- pushDebugGroup()
- popDebugGroup()
- insertDebugMarker()
- Programmable Pass Commands
- pushDebugGroup()
- popDebugGroup()
- insertDebugMarker()
- setBindGroup()
- Compute Pass Commands
- setPipeline()
- dispatch()
- dispatchIndirect()
- Render Pass Commands
- setViewport()
- setScissorRect()
- setBlendColor()
- setStencilReference()
- executeBundles()
- Render Commands
. GPURenderEncoderBase- setPipeline()
- setIndexBuffer()
- setVertexBuffer()
- draw()
- drawIndexed()
- drawIndirect()
- drawIndexedIndirect()
- Non-Pass Commands: Copy
- Command Buffers
- Image operations (see Vulkan for example)
- Texel Input Operations - https://github.com/gpuweb/gpuweb/issues/1116
- Texel Output Operations
- Texel Coordinates
. (normalized/integer)
- Rasterization (see Vulkan)
- Rasterization Order
- Multisampling
- Barycentric Interpolation
- Line Segments
- Triangles
- Fragment Operations (see Vulkan)
- Framebuffer
- Blending
- Device-Generated Commands (see Vulkan)
- Canvas Rendering & Swap Chains
- Canvas Context
. GPUCanvasContext
. getSwapChainPreferredFormat()- Creation
. prose: canvas.getContext()
- Creation
- Swap Chains
. GPUSwapChain- Creation
. configureSwapChain()
. GPUSwapChainDescriptor
- Creation
- Canvas Context
- Errors & Debugging
- Fatal Errors
. GPUDevice.lost
. GPUDeviceLostInfo - Error Scopes
. GPUDevice.pushErrorScope()
. GPUErrorFilter
. GPUDevice.popErrorScope()
. GPUError/GPUOutOfMemoryError/GPUValidationError - Telemetry
. GPUDevice.onuncaptureerror
. GPUUncapturedErrorEvent
. GPUUncapturedErrorEventInit
- Fatal Errors
- Features
- Short section for each extension (most extension text should be inline)
. define GPUFeatureName enum member
. point to parts added to the rest of the spec
- Short section for each extension (most extension text should be inline)
- Type Definitions
. numeric types- Colors & Vectors
. GPUOrigin2D
. GPUOrigin3D
. GPUExtent3D
- Colors & Vectors
- Data Formats
- Vertex Formats
. bit layouts
. required extensions - Texture Formats
. bit layouts - Texture format capabilities
. required extensions for different capabilities
- Vertex Formats
Clone this wiki locally
You can’t perform that action at this time.