public sealed class IrMatrixTypeA matrix of Rows rows by Columns columns.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Rows-first only in how the type is named — Raven's mat2x3 is 2 rows by 3 columns, where GLSL spells the same shape mat3x2, columns first. Nothing about the name says anything about storage.
Storage is column-major, and that is not a backend detail: a matrix in a uniform block is decorated ColMajor in SPIR-V and laid out the same way by GLSL, which makes the matrix the shader sees the transpose of the row-major one the host wrote — for free, since it is the same bytes read differently. That is what makes m * v here equal the host's mul(v, M). See docs/plan/07 § E.
Fields and properties (7)
public IrScalarType Componentpublic int Rowspublic int Columnspublic override IrTypeKind Kindpublic override string Namepublic IrVectorType RowTypeThe vector type of one row: as many lanes as there are columns.
public IrVectorType ColumnTypeThe vector type of one column: as many lanes as there are rows. This is what m[i] yields, because both targets index a matrix by column.
Methods (4)
public IrMatrixType(IrScalarType component, int rows, int columns)public bool Equals(IrMatrixType? other)public override bool Equals(object? obj)public override int GetHashCode()
Used by (14)
- GlslBackendTestsVixen.Raven.Tests
- GlslTypesVixen.Raven
- IrCapabilitiesVixen.Raven
- IrIndexAccessVixen.Raven
- IrTypeVixen.Raven
- LibraryIrDecoderVixen.Raven
- LibraryIrEncoderVixen.Raven
- LowererVixen.Raven
- ReflectionBuilderVixen.Raven
- ShaderDataTypeVixen.Raven
- ShaderLayoutVixen.Raven
- ShaderLayoutTestsVixen.Raven.Tests
- SpirvEmitterVixen.Raven
- SpirvTypesVixen.Raven