Releases
v1.0.0
Compare
Sorry, something went wrong.
No results found
1.0.0 (2026-10-10)
⚠ BREAKING CHANGES
assetimport: fix dangling paths, correct asset routing, migrate codec writes to VFS (#632 )
Features
camera: redesign FlyCamera with InputManager integration (#583 ) (ed4da0b )
core: add IsInitialized() to Logger and ThreadPoolHelper (#574 ) (e4854ec )
ecs/editor: scene graph — local transforms, HierarchySystem, UE5-style outliner (#673 ) (c065b7e )
ecs: add 7 missing ECS component headers (#619 ) (e972a34 ), closes #609
ecs: ComponentReflectionRegistry (#662 ) (4cfb257 )
ecs: create .cpp files and register reflection metadata (#669 ) (7517a1f )
ecs: FieldType, FieldDescriptor, ComponentMeta reflection types (#659 ) (cb44a50 )
ecs: fix (#678 ) (c664122 )
ecs: implement hybrid Actor-ECS architecture with system scheduler docs (#586 ) (2488f12 )
ecs: implement WorldTick system scheduler (#587 ) (ad15bfd )
ecs: migrate InspectorViewUIComponent to generic reflection loop (#676 ) (d1b2788 )
ecs: Scene::AddComponentRaw + InspectorPanel Add Component popup (#757 ) (18d1512 )
ecs: wire ECS components into render scene and light pipeline (#656 ) (4bacf04 )
editor,importer: asset importer panel — permanent cook + lazy cook on save (#597 ) (8409159 )
editor,rendering: grid redesign, camera fixes, gizmo projection… (#596 ) (cae715b )
editor: add scene-owned sky configuration (#811 ) (d3b12c0 )
editor: application icon on window and macOS Dock (#610 ) (5c74a11 )
editor: harden and extend FlyCamera navigation (#795 ) (19f2677 )
editor: wire Outliner and Inspector to ECS ActorManager (#630 ) (305a4c1 )
engine: implement fixed-timestep game loop (#588 ) (62c7187 )
engine: MainThreadScheduler — lock-free MPSC post from background to main thread (#613 ) (3e0c753 )
engine: move VFS into EngineContext, pass MemoryManager to Engine::Initialize (#575 ) (748348d )
import: cook HDR and EXR environment maps (#825 ) (f414a19 )
importer: add import options tab bar UI and wire to importers (#660 ) (a896440 ), closes #599
importer: ufbx FBX importer + meshoptimizer + Bistro pipeline fixes (#668 ) (4d2be3e )
import: implement GLB/GLTF import pipeline via fastgltf (#589 ) (3d3d7ad )
input: introduce InputManager — poll-based input with action slots (#582 ) (60770cd )
logging: introduce channel-aware logging policy, ring buffer, and test suite (#578 ) (fa6e01e )
memory: bound and profile independent arena owners (#838 ) (9801679 )
memory: introduce GpuAllocator with VMA segregated pool foundation (#581 ) (5f66c48 )
memory: m_upload_slabs[MAX_WORKERS] in RRM + RegisterWorkerInit — closes #689 #688 (update) (#725 ) (1cfebdd )
memory: per-worker thread_local TLSFSlab in ThreadPool — closes #688 (#724 ) (edb5159 )
memory: Phase 1 upload pipeline — closes #690 #691 #692 #693 (#726 ) (54c8cb2 )
memory: Phase 2 — typed allocator for containers + AssetManagerSlab — closes #694 #695 (#727 ) (a806544 )
memory: slab-backed lambda closures + Bitmap buffer allocation (#729 ) (a568759 )
memory: TLSFSlab wrapper — closes #687 (#722 ) (8e68d92 )
profiling: add memory profiling, profiler buffer and CPU profiling macros (#573 ) (ba824cb )
rendering: add atmosphere LUT bake pipeline (#814 ) (2d5c741 )
rendering: add per-view atmosphere composition (#816 ) (1bfd646 )
rendering: add sky environment lifecycle (#812 ) (5492c57 )
rendering: add sky rendering foundations (#798 ) (2541555 )
rendering: add sky sphere background (#823 ) (bb9df3f )
rendering: bake HDRI environment lighting (#813 ) (8c7bc20 )
rendering: batch bindless descriptor writes, fix nonuniformEXT, add watermark (#768 ) (91382d0 )
rendering: compute pass infrastructure, IPipeline, GraphicPass/ComputePass split (#776 ) (192757e )
rendering: CPU frustum culling — sphere-frustum test per instance (#664 ) (c50f5bf ), closes #644
rendering: define atmosphere multiscattering contract (#819 ) (f2e332c )
rendering: expose atmosphere authoring controls (#820 ) (d00500f )
rendering: gate sky bakes by device capabilities (#826 ) (d502679 )
rendering: modernize render graph and PSO cache (9c37c5a ), closes #779
rendering: redesign texture pipeline around one canonical handle (#751 ) (6580f7d )
rendering: render graph redesign — typed indices, automatic barriers, per-frame RuntimeState (#641 ) (d01e849 )
rrm: RenderResourceManager, packed geometry buffers, and scene redesign (#590 ) (0e91f6e )
rrm: UploadBuffer, GetBuffer, typed EnqueueDeletion — complete RRM API (#593 ) (3093b5b )
scene: SceneSnapshot, ISceneSerializer, ComponentSerializerRegistry, YAMLSceneSerializer (f2560b1 )
scene: stable component schema registry (#837 ) (1761bb8 )
streaming: virtual geometry streaming — pool allocator, eviction, compaction, VRAM auto-detect (#769 ) (26e7257 )
vfs/editor: VFS backend hierarchy, engine assets via VFS, UE-style content browser (#594 ) (5da6804 )
vfs: add VFSFileWatcher with cross-platform backend (FSEvents, inotify, RDCW) (#580 ) (36b4752 )
vfs: implement .meta sidecar system for stable UUID persistence (Ticket 5) (#585 ) (c60483f )
zui: ZUI system — docking, text editing, scroll, Doxygen docs + cleanup (#679 ) (b5219d9 )
Bug Fixes
#600 : handle sources::URI in GltfImporter texture extraction (#636 ) (0af884d )
#603 : bind material texture handles to mesh submeshes at draw time (#634 ) (6e97835 )
#635 : structural memory budget cleanups (#637 ) (40740f7 )
assetimport: fix dangling paths, correct asset routing, migrate codec writes to VFS (#632 ) (0095a54 )
assets: keep asset UUID identity consistent across import, meta, and scan (#758 ) (74a92b1 ), closes #755
assets: load materials/textures when dragging a cooked mesh onto the viewport (#766 ) (a946796 )
assets: stabilize mesh/material UUIDs and enable hot-reload swap on re-ingest (#763 ) (2c9cc38 ), closes #762
build: include LoggingDefaults.cmake so ZENGINE_LOG_LEVEL_* are defined before ZEngine target uses them (722f4e3 )
crashhandler: copy SignalOrException into struct buffer instead of storing pointer (#624 ) (bdf00db )
crashhandler: guard signal handler + print log on test failure (#625 ) (9d3e022 )
deps: enable ASSIMP_BUILD_FBX_IMPORTER — FBX was compiled out (11bff11 )
deps: pin gtest to v1.17.0 to avoid operator<< deletion on newer Clang (e61bb29 )
deps: pin gtest to v1.17.0 to avoid operator<< deletion on newer Clang (df43791 )
deps: pin simdjson as explicit FetchContent dep before fastgltf (#655 ) (564cb5e )
ecs: WorldCommands staging buffers for parallel-wave systems (#628 ) (9a4da30 )
editor: Content Browser context menus, File menu, and drag-and-drop (#756 ) (f6f60d7 )
editor: resolve packaged assets and refresh imports (#840 ) (a593b5c )
editor: store zui_layout.ini in ZodiacEngine/Settings/ — closes #699 (#700 ) (6a8dc18 )
engine: align shutdown sequence with engine-lifecycle spec (#577 ) (7f9b627 )
format: apply clang-format to DeviceSwapchain.cpp (12b798b )
imgui: font atlas upload via owned-copy deferral through RRM (#592 ) (373d5a0 )
importer: fire on_progress callbacks in AssimpImporter::ImportFile (#658 ) (2901720 ), closes #601
importer: fix GLB texture extraction and optimize extraction loop (#633 ) (46540f8 )
importer: guard meshopt against out-of-range submesh indices — closes #684 (#734 ) (189827e )
importer: handle sources::Vector in GLB texture extraction (#631 ) (64c7737 )
importers: route ImportFile scratch allocations through each importer's own Arena (#761 ) (9cbb02e ), closes #760
linux: run asset file dialogs asynchronously (5da19bd )
logging: make k_min_level runtime-mutable; add SetMinLevel / SetMinLevelAllChannels for test override in Release builds (72f64ea )
logging: no-op Logger::Log when not initialized (#747 ) (7b0d94b ), closes #746
memory: 64-bit page-size arithmetic in ArenaAllocator on Windows (#731 ) (c16fd1c )
memory: bound editor and upload arena ownership (#836 ) (5b1bef6 )
memory: fix ArenaAllocator and PoolAllocator bugs — closes #680 #681 #682 #683 #697 (#720 ) (a1c455b )
memory: lazy VirtualAlloc commit on Windows + mmap overcommit on macOS/Linux (#728 ) (e94edde )
memory: remove remaining Buffer.data() in bitmap tests (eab71a2 )
rendering: composite editor grid after tone mapping (#818 ) (9a75dac )
rendering: four Bistro rendering blockers (#661 ) (cc1216d )
rendering: GBuffer pipeline, second-launch asset reload, HashMap rewrite (#638 ) (26be907 )
rendering: handle below-ground atmosphere views (#822 ) (#824 ) (35eb51f )
rendering: initialise render targets to swapchain size, closes #264 (#584 ) (dbf6650 )
rendering: isolate project PSO cache data (#787 ) (178f208 )
rendering: mesh not visible after VFSScanner pre-registers UUID in AssetRegistry (43be35f )
rendering: restore DeferFree in FramebufferVNext::Dispose (#617 ) (d034118 )
rendering: retire mesh geometry slot on actor delete (#640 ) (7340303 )
rendering: synchronize transient graph resources across frames (d016af1 )
rendering: wait before transient image transitions (#841 ) (4fcbee0 )
rrm: replace AppendToGlobalBuffer with RecordStagingCopy in UploadBuffer (closes #770 ) (#777 ) (231a4ce )
scene: make schema key validation portable (#848 ) (909ad3d )
show crash dialog on main thread to fix NSInternalInconsistencyException (#614 ) (5092294 )
swapchain: replace HasRecreationPending with RecreationState machine (#623 ) (0fed388 )
tests: remove OverflowTriggersAssertion — Cocoa dialog hangs CI on macOS release (ddfa929 )
tests: use ZENGINE_CORE_WARN in BackwardsCompatMacro test — CORE_INFO is compile-time silenced in Release (e930d78 )
tetragrama: replace UIDispatcher with MainThreadScheduler; fix NSOpenPanel deadlock (#645 ) (9167143 )
ui: clamp dock tree root rect in ZUIDockLayout — closes #732 (recurrence) (#737 ) (d5165f2 )
ui: clamp dock-split span to kMinPanelPx in LayoutNode — closes #732 (#733 ) (24a39d2 )
vfs: add VFSOpenFlags::Create and Truncate — closes #607 (#621 ) (6f41d02 )
vfs: double-checked locking in VFSZipFile (#744 ), path-traversal guard in VFSDiskBackend (#745 ) (#772 ) (e4b3c35 )
vulkan,rendering,editor,shader: Intel driver halt, vkQueueSubmit2, uint32 material maps (#773 ) (1f43d21 )
vulkan: eliminate all vkDestroyDevice validation errors on shutdown (#612 ) (7592abc )
vulkan: guard QueueSubmit's optional args, fix GetQueue transfer fallback (#754 ) (a75e4f5 )
vulkan: remove backward timeline clamp in swapchain recreation (#738 ) (a02a75b )
Refactors
bitmap: reshape API — enum class, factory functions, BitmapConvert, .cpp split (#730 ) (1bc8185 )
containers: make Array<T> move-only and fix all copy sites (#615 ) (e7465c2 )
rendering: drop GPUTypes.h — replace gpuvec3/gpuvec4 with Vec4f (#771 ) (ba17b88 )
rendering: migrate SkyboxPass/GridPass geometry into RRM global buffers (#611 ) (5f1cd07 )
rendering: remove legacy pre-rewrite rendering primitives (#653 ) (2654303 )
rendering: retire legacy skybox pass (#827 ) (b9eb954 )
threadpool: lock-free SPSC/MPSC queues, C-style tasks, zero-alloc hot path (#616 ) (83c3c55 )
Documentation
add MkDocs Material site with GitHub Pages deploy workflow (49035f9 )
align production roadmap with current engine state (#828 ) (6c4503d )
audit design docs for completion, move fully-shipped ones to completed/ (a6dda0e )
component-reflection: update status, fix §2 registry table, add BuiltInComponentReflection to layout, expand test checklist (#709 ) (133cced )
correct implementation status for input, engine-lifecycle, profiling, gpu-allocator (d23b69e )
deep re-verification pass, correct several false completion claims (8edbcac )
deploy to zodiac-engine-docs repo via peaceiris/actions-gh-pages (b7f25fe )
ecs: correct component-reflection.md against current codebase (#646 ) (37fb0a2 )
engine: reevaluate engine lifecycle doc against current implementation (#576 ) (8cdac13 )
fix 12 design docs based on codebase audit (#618 ) (9420d21 )
fly-camera: correct a wrong correctness note from the previous audit pass (d66ffb2 )
memory: add TLSF allocator integration design doc (#654 ) (4a353f2 )
memory: mark §10.2/10.3 as done (PR #729 ), note Bitmap reshape (#730 ) (99a049d )
memory: update tlsf-allocator-integration.md to reflect Phase 1 + Phase 2 implementation (5155086 )
presentations: add memory architecture and system heap analysis slides (#698 ) (e737159 )
readme: update supported platforms — remove 'under active revision' qualifier (ad02ff1 )
rendering: add rendering architecture future-plan docs (#579 ) (2ad66a9 )
rendering: harden sky rendering design (#797 ) (c5f74c4 )
rrm: correct render-resource-manager.md for the texture pipeline redesign (#752 ) (c30420a )
scene-serialization: document current state gap + fix status and dependencies (#710 ) (6fc5508 )
scene-serialization: fix 5 remaining compile errors from validation pass (#712 ) (e420bed )
scene-serialization: fix 9 API/namespace errors found in codebase review (#711 ) (bb8b13b )
ui-system: mark ZUI as done — merged via PR #679 (97cae5d )
update design docs to reflect current implementation state (#605 ) (6ea85bc )
update implementation status across all design documents (b16f00f )
CI/CD
add workflow_dispatch trigger to manually publish release assets (1e0973b )
add workflow_dispatch trigger to manually publish release assets (7ed4a84 )
build: drop macOS x64, cache LLVM and deps (#572 ) (ded7966 )
skip historical commit linting on stable promotion (#850 ) (354dedd )
target stable releases at main (d1c5a76 )
target stable releases at main (#852 ) (faeba3d )
You can’t perform that action at this time.