Skip to content

Releases: gfx-rs/naga

v0.14.0

25 Oct 17:27
92e41b4
Compare
Choose a tag to compare

This is the last naga release where naga is part of its own repo. Future releases will be renumbered and hosted as part of the wgpu repo. Please see gfx-rs/wgpu#4231 for more information!

GENERAL

API

  • Split UnaryOperator::Not into UnaryOperator::LogicalNot & UnaryOperator::BitwiseNot. (#2554) @teoxoy
  • Remove IsFinite & IsNormal relational functions. (#2532) @teoxoy
  • Derive PartialEq on Expression. (#2417) @robtfm
  • Use FastIndexMap for SpecialTypes::predeclared_types. (#2495) @jimblandy

CLI

VALIDATOR

  • Require Capabilities::FLOAT64 for 64-bit floating-point literals. (#2567) @jimblandy
  • Add Capabilities::CUBE_ARRAY_TEXTURES. (#2530) @teoxoy
  • Disallow passing pointers to variables in the workgroup address space to functions. (#2507) @teoxoy
  • Avoid OOM with large sparse resource bindings. (#2561) @teoxoy
  • Require that Function and Private variables be CONSTRUCTIBLE. (#2545) @jimblandy
  • Disallow floating-point NaNs and infinities. (#2508) @teoxoy
  • Temporarily disable uniformity analysis for the fragment stage. (#2515) @teoxoy
  • Validate that textureSampleBias is only used in the fragment stage. (#2515) @teoxoy
  • Validate variable initializer for address spaces. (#2513) @teoxoy
  • Prevent using multiple push constant variables in one entry point. (#2484) @andriyDev
  • Validate binding_array variable address space. (#2422) @teoxoy
  • Validate storage buffer access. (#2415) @teoxoy

WGSL-IN

SPV-IN

  • Disable Modf & Frexp and translate ModfStruct & FrexpStruct to their IR equivalents. (#2527) @teoxoy
  • Don't advertise support for Capability::ImageMSArray & Capability::InterpolationFunction. (#2529) @teoxoy
  • Fix OpImageQueries to allow Uints. (#2404) @evahop

GLSL-IN

SPV-OUT

  • Require ClipDistance & CullDistance capabilities if necessary. (#2528) @teoxoy
  • Change naga::back::spv::DebugInfo::file_name to a &Path. (#2501) @jimblandy
  • Always give structs with runtime arrays a Block decoration. (#2455) @TheoDulka
  • Decorate the result of the OpLoad with NonUniform (not the access chain) when loading images/samplers (resources in the Handle address space). (#2422) @teoxoy
  • Cache OpConstantNull. (#2414) @evahop

MSL-OUT

  • Add and fix minimum Metal version checks for optional functionality. (#2486) @teoxoy
  • Make varyings' struct members unique. (#2521) @evahop

GLSL-OUT

WGSL-OUT

v0.13.0

21 Jul 02:25
Compare
Choose a tag to compare

GENERAL

API

DOCS

  • Document which expressions are in scope for a break_if expression. (#2326) @jimblandy

VALIDATOR

WGSL-IN

SPV-IN

GLSL-IN

SPV-OUT

  • Add debug info. (#2379) @wicast
  • Use IndexSet instead of HashSet for iterated sets (capabilities/extensions). (#2389) @eddyb
  • Support array bindings of buffers. (#2282) @kvark

MSL-OUT

HLSL-OUT

GLSL-OUT

WGSL-OUT

  • Output @interpolate(flat) attribute for integer locations. (#2318) @expenses

v0.12.0

21 Jul 02:25
Compare
Choose a tag to compare

GENERAL

VALIDATOR

WGSL-IN

SPV-IN

  • Don't apply interpolation to fragment shaders outputs. (#2239) @JCapucho

GLSL-IN

SPV-OUT

MSL-OUT

HLSL-OUT

GLSL-OUT

  • Skip invariant for gl_FragCoord on WebGL2. (#2254) @grovesNL
  • Inject default gl_PointSize = 1.0 in vertex shaders if FORCE_POINT_SIZE option was set. (#2223) @REASY

v0.11.0

26 Jan 00:50
f0edae8
Compare
Choose a tag to compare

API

DOCS

VALIDATOR

ALL (FRONTENDS/BACKENDS)

ALL BACKENDS

  • Add support for zero-initializing workgroup memory (#2111) @teoxoy

WGSL-IN

SPV-IN

GLSL-IN

SPV-OUT

MSL-OUT

HLSL-OUT

GLSL-OUT

WGSL-OUT

v0.10.0

05 Oct 21:22
c52d910
Compare
Choose a tag to compare

API

DOCS

VALIDATOR

  • Add emit_to_{stderr,string} helpers to validation error by @nolanderc in #2012
  • Check regular functions don't have bindings by @JCapucho in #2050

WGSL-IN

GLSL-IN

SPV-OUT

HLSL-OUT

DOT-OUT

v0.9.0

30 Jun 20:02
06ae905
Compare
Choose a tag to compare

API

CLI

DOCS

VALIDATOR

WGSL-IN

Main breaking changes

  • Commas to separate struct members (comma after last member is optional)
    • struct S { a: f32; b: i32; } -> struct S { a: f32, b: i32 }
  • Attribute syntax
    • [[binding(0), group(0)]] -> @binding(0) @group(0)
  • Entry point stage attributes
    • @stage(vertex) -> @vertex
    • @stage(fragment) -> @fragment
    • @stage(compute) -> @compute
  • Function renames
    • smoothStep -> smoothstep
    • findLsb -> firstTrailingBit
    • findMsb -> firstLeadingBit

Specification Changes (relavant changes have also been applied to the WGSL backend)

Improvements

SPV-IN

GLSL-IN

Read more