Vixen
02b45cc4
csharp
public sealed class IrSharedVariable

Storage one workgroup shares, declared with groupshared.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Deliberately not an IrBinding, and for the same reason IrStream is not: there is no descriptor, no (set, binding) and nothing the host writes. It is not a local either — a local is one copy per invocation and this is one per workgroup, which is the entire difference and the entire point.

The variable it carries is a module-scope global, which is what both targets model this as: a SPIR-V OpVariable in the Workgroup storage class and a GLSL shared declaration are both module scope. So a read lowers to an ordinary load and a write to an ordinary store, and the storage class is the backend's to spell.

Fields and properties (3)

Methods (2)

  • public IrSharedVariable(IrVariable variable)

    Storage one workgroup shares, declared with groupshared.

  • public override string ToString()

Used by (10)

  • GlslEmitterVixen.Raven
  • GroupSharedTestsVixen.Raven.Tests
  • IrCapabilitiesVixen.Raven
  • IrEntryPointVixen.Raven
  • IrPrinterVixen.Raven
  • IrShaderVixen.Raven
  • LibraryBuilderVixen.Raven
  • LibraryTreeTestsVixen.Raven.Tests
  • LowererVixen.Raven
  • SpirvEmitterVixen.Raven