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

Add webgpu support #92

Open
wants to merge 2 commits into
base: webgpu
Choose a base branch
from
Open

Add webgpu support #92

wants to merge 2 commits into from

Conversation

akioCL
Copy link
Contributor

@akioCL akioCL commented Nov 12, 2024

Add webgpu Platform Emitter using the namespace "wg". It's based on Vulkan, since the shader is translated from hlsl -> spirv -> wgsl.
Add [[unrolled]] attribute for detecting unrolled resource arrays. WGSL doesn't support array of textures, buffers or samplers yet. So the shader is unrolled into multiple resources. In order to keep the runtime the same, we treat these unrolled arrays as a normal array of resources when outputting the SRG information.
Add multiple attributes to capture metadata that is needed by the runtime for WebGPU:

  • [[image_format]] to capture the format of a storage texture
  • [[sample_type]] sample type of a texture
  • [[access]] specify write only access to a texture
  • [[binding_type]] binding type of a sampler

Add padding using multiple "uint" variables instead of a "uintX". This is because alignment rules are different on WGSL when using a "uintX". By using multiple "uint" the alignment rules are the same in all shader languages.

Signed-off-by: Akio Gaule <[email protected]>
@akioCL akioCL requested a review from moudgils November 12, 2024 14:53
Signed-off-by: Akio Gaule <[email protected]>
@akioCL akioCL marked this pull request as ready for review November 12, 2024 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant