Skip to content

Add shared blocks, atomic and barriers intrinsics #93

@SirLynix

Description

@SirLynix

Similar to external blocks, NZSL should support shared blocks:

shared <OptionalName>
{
    foo: i32,
    bar: f64
}

Shared blocks are shared memory inside a workgroup for compute shaders, their usage is heavily linked to atomics and barriers which are currently lacking in NZSL.

Bit reinterpretation should also be supported, as float are not directly supported by atomic operations it's common to reinterpret them as integers for min/max operations.

(SPIR-V has extensions to support atomic float min/max, how should that be exposed?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions