Skip to content

Commit f374cc5

Browse files
committed
Release v3.0.0
Major feature milestone release with 417 commits since v2.0.0: - WebGL/WebGL2 and WebGPU/WGSL target-only backends - DirectX target profile aliases (dx11, dx12, d3d11, d3d12) - MLX project porting integration with full-corpus validation - Metal struct-template materialization engine - Runtime host integration pipeline - Project-scale shader porting with readiness checks - 100+ backend bug fixes across all targets - Test suite grown to 13,485 tests
1 parent 0bec937 commit f374cc5

3 files changed

Lines changed: 61 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,71 @@
22

33
All notable changes to CrossTL are documented in this file.
44

5-
## [Unreleased]
5+
## [3.0.0] - 2026-06-23
66

77
### Added
88

9-
- Target-only WebGL/WebGL2 GLSL ES backend support.
10-
- Target-only WebGPU/WGSL backend support for vertex, fragment, and compute output.
11-
- DirectX target profile aliases for `dx11`, `dx12`, `d3d11`, and `d3d12`, all resolving to HLSL source output.
9+
- Target-only WebGL/WebGL2 GLSL ES backend with vertex and fragment stage output.
10+
- Target-only WebGPU/WGSL backend with vertex, fragment, and compute output.
11+
- DirectX target profile aliases (`dx11`, `dx12`, `d3d11`, `d3d12`) all resolving to HLSL source output.
12+
- MLX project porting integration with demos, CI workflow, and full-corpus validation.
13+
- Runtime host integration pipeline: loader scaffolds, adapter descriptors, manifest metadata, and execution adapters.
14+
- Project-scale shader porting pipeline with runtime readiness checks and blocked-unit tracking.
15+
- Metal struct-template materialization engine with instantiation, specialization, SFINAE-overloaded member lowering, and budget scaling.
16+
- Metal subgroup/SIMD intrinsic lowering to CrossGL Wave ops.
17+
- Metal atomic device lowering to CrossGL atomic intrinsics.
18+
- Metal threadgroup-local array hoisting to GLSL shared globals.
19+
- Runtime parity executors and verification harness for translated GPU artifacts.
20+
- WGSL resource binding, storage buffer, and texture sampler object model support.
21+
- Naga-based WGSL validation for generated project artifacts.
22+
- SPIR-V artifact assembly and validation pipeline.
23+
- Host runtime detection for WebGPU, OpenCL, D3D11, Rust wgpu, and game engine runtimes.
24+
- Open-source project porting demos with third-party notice coverage and failure summary reporting.
25+
- Runtime loader manifest generation and package inspection commands.
26+
- Host integration handoff bundles with blocked-step reporting.
27+
- Integer sampled texture lowering across backends.
28+
- GLSL specialization constant lowering for target backends.
29+
- Metal function constant lowering for SPIR-V output.
30+
- Backend-agnostic runtime manifest metadata for cross-target artifact planning.
1231

1332
### Improved
1433

34+
- Metal preprocessor: full-source comment masking, functor lowering, template budget scaling, deterministic member lowering, and constexpr array extent recognition.
35+
- HLSL compute codegen: value-builtin lowering, subgroup-to-wave translation, semantic validation, and program-scope constant output.
36+
- GLSL codegen: subgroup builtins, specialization constants, vertex layout location mapping, storage image lowering, and fragment invocation density modeling.
37+
- SPIR-V codegen: storage buffer overload resolution, 64-bit layout validation, bool compute interfaces, access-chain typing, and gather offset vector operands.
38+
- DirectX codegen: groupshared hoisting, resource binding allocation, fragment varying semantics, typed buffer indexed writes, and loader profile metadata.
39+
- OpenGL codegen: Metal template specialization, buffer parameter lowering, stage input struct mapping, uniform block member disambiguation, and GLSL 330 resource bindings.
40+
- OpenCL reduce target artifact generation, diagnostics, and helper contract reporting.
41+
- Rust-GPU: vertex input lowering, compute construct lowering, storage buffer declarations, and Option value pre-lowering.
42+
- Mojo: GPU kernel extraction, vector overload resolution, compute builtin parameterization, and sampled texture binding lowering.
43+
- Slang: resource name collision avoidance, default parameter preservation, texture size query casting, and compute entry lowering.
44+
- WGSL: structured storage buffers, constant buffer block lowering, derivative intrinsic mapping, image2D storage textures, and reserved identifier escaping.
45+
- Project translation: unresolved-construct guardrails, source provenance tracking, macro variant classification, include resolution, and feature root scanning.
46+
- Support matrix tooling: target alias metadata, target-only source rejection documentation, and backend conformance edge coverage.
1547
- Split target backend registration from native source frontend availability in the backend registry and support matrix.
16-
- Added target alias and target profile metadata to backend support inventory.
17-
- Documented target-only source rejection for WebGL and WGSL outputs.
18-
- Hardened WGSL output with explicit IO attribute preservation, direct compute builtin injection, compute barrier lowering, and deterministic diagnostics for CrossGL resource and texture calls that do not have safe WebGPU lowering yet.
19-
- Improved WebGL target generation to emit supported vertex/fragment stages from mixed graphics and compute shaders while preserving deterministic pure-compute diagnostics.
48+
- Test suite grown to 13,485 collected tests (from ~8,000 at v2.0.0).
49+
50+
### Fixed
51+
52+
- Over 100 targeted backend bug fixes across CUDA, HIP, Metal, GLSL, HLSL, SPIR-V, WGSL, OpenCL, Rust-GPU, Mojo, and Slang.
53+
- Metal residual-template false positives from struct member templates.
54+
- SPIR-V storage buffer pointer overload inference and access-chain index typing.
55+
- WGSL vector narrowing, entry struct varying locations, reserved identifier escaping, and uniform scalar array layout.
56+
- DirectX vertex input semantics, scalar fragment targets, binding allocation, and groupshared hoist aliases.
57+
- HLSL compute value-builtin leakage, scalar splat swizzle lowering, and array semantic allocation.
58+
- OpenGL bfloat16 asuint lowering, GLSL 110 interface qualifiers, and gl_FragColor reserved local conflicts.
59+
- Vulkan matmul builtin vector stores, complex helper call argument types, and private scalar initializer types.
60+
- HIP scalar kernel params, bit-extract kernel loop preservation, and host main artifact generation.
61+
- CUDA vector-add DirectX lowering and OpenGL uniform name stabilization.
62+
- Metal-to-DirectX compute resource output and constant buffer member SPIR-V access.
63+
- Mojo GPU builtin lowering contract and vector-add Metal/SPIR-V artifacts.
64+
- Slang compute entry lowering to OpenGL and struct resource name collisions.
65+
- WebGL dynamic sampler array helper calls and unsupported sampler resource rejection.
66+
- GLSL usampler texelFetch SPIR-V lowering and fragment output name handling.
67+
- Python 3.8 collection type compatibility in the project pipeline.
68+
69+
---
2070

2171
## [2.0.0] - 2026-06-01
2272

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ authors:
99
- family-names: "Shrivastava"
1010
given-names: "Vaatsalya"
1111
affiliation: "CrossGL"
12-
version: "1.0.0"
13-
date-released: "2025-07-07"
12+
version: "3.0.0"
13+
date-released: "2026-06-23"
1414
doi: "10.5281/zenodo.15826974"
1515
url: "https://github.com/CrossGL/crosstl"
1616
repository-code: "https://github.com/CrossGL/crosstl"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
setup(
44
name="crosstl",
55
packages=find_namespace_packages(include=["crosstl*"]),
6-
version="2.0.1",
6+
version="3.0.0",
77
author="CrossGL team",
88
author_email="nripesh@crossgl.net",
99
description="CrossGL shader and compute translator",

0 commit comments

Comments
 (0)