Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
9ab0554
Update dependencies and add Metal.NET to Zenith.NET.Metal
qian-o Feb 24, 2026
4a7871b
Add homepage property to main sections in toc.yml
qian-o Feb 24, 2026
9cc589c
Integrate Metal.NET backend and device capability checks
qian-o Feb 24, 2026
3b0cb8f
Update Metal.NET to 1.0.5 and remove null-forgiving ops
qian-o Feb 24, 2026
ccd7d4d
Update Metal.NET to version 1.1.0
qian-o Feb 25, 2026
309c5f7
Support Metal on macOS; update graphics context logic
qian-o Feb 26, 2026
7b6594d
Add Metal 4 backend: residency, queues, and sync primitives
qian-o Feb 26, 2026
52d0494
Refactor residency set management in MTLGraphicsContext
qian-o Feb 26, 2026
ffaf289
Add MTLHeap class and update Metal context fields
qian-o Feb 26, 2026
1b6d5bb
Implement Metal heap/resource allocation and format mapping
qian-o Feb 26, 2026
29b4d3d
Add MTLBuffer and MTLTexture abstractions for Metal
qian-o Feb 26, 2026
664ec9b
Implement buffer and texture creation in MTLGraphicsContext
qian-o Feb 26, 2026
598b5e5
Add Buffer.Metal() and Texture.Metal() extension methods
qian-o Feb 26, 2026
2bee513
Refactor MTLHeap descriptor property assignments
qian-o Feb 26, 2026
ba12942
Add Metal support for buffer and texture views
qian-o Feb 28, 2026
9e0b07e
Add Metal backend support for Shader and Sampler
qian-o Mar 2, 2026
8f8f633
Update Metal.NET package to version 1.2.0
qian-o Mar 3, 2026
6f278e8
Implement MTLShader constructor to create Metal library
qian-o Mar 3, 2026
a374a75
Update Metal.NET to version 1.3.1
qian-o Mar 5, 2026
be54c7f
Simplify DispatchData creation in MTLShader constructor
qian-o Mar 5, 2026
2c05d39
Add Metal framebuffer support via MTLFrameBuffer class
qian-o Mar 5, 2026
9114e32
Add Metal swap chain and frame buffer support
qian-o Mar 5, 2026
1358640
Implement Metal swap chain creation and extension method
qian-o Mar 5, 2026
7b6496a
Add MTLResourceLayout implementation for Metal backend
qian-o Mar 8, 2026
f6c48c5
Add Metal resource table backend and bindings
qian-o Mar 8, 2026
d3daf9b
Refactor MTLResourceTable binding initialization
qian-o Mar 8, 2026
cf8bbfe
Move ArgumentTable initialization before binding loops
qian-o Mar 8, 2026
aac0bb6
Update Slangc.NET to version 2026.4.0
qian-o Mar 9, 2026
27997eb
Update Microsoft.Maui.Controls to version 10.0.50
qian-o Mar 11, 2026
b8a50e3
Update shader argument order and profiles per backend
qian-o Mar 12, 2026
64136c7
Update shader args: use -capability for Metal/Vulkan
qian-o Mar 12, 2026
4cff1bb
Document GPU struct layout refactor requirements
qian-o Mar 12, 2026
fbb772a
Align GPU buffer structs to 16-byte boundaries with padding
qian-o Mar 12, 2026
8e89087
Fix GPU struct padding: align MeshShading tutorial buffers, use scala…
Copilot Mar 12, 2026
a1f1330
Remove STRUCT_LAYOUT_FIX.md struct layout guidelines
qian-o Mar 12, 2026
a4bda2e
Update Metal.NET package to version 1.4.0
qian-o Mar 12, 2026
363dc5e
Refactor resource binding structs into unified Binding
qian-o Mar 13, 2026
c39b5ba
Update Metal.NET & Slangc.NET; refactor MTLSwapChain
qian-o Mar 13, 2026
5dacc9c
Update Metal.NET to version 1.4.2
qian-o Mar 14, 2026
7ef38b0
Add guide for shader struct alignment and cross-API safety
qian-o Mar 14, 2026
66893b0
Clarify shader/C# struct alignment guide and scope
qian-o Mar 14, 2026
6b241d9
Revise shader struct alignment guide for clarity & accuracy
qian-o Mar 14, 2026
45c2704
Fix padding field numbering to start from 0 (#24)
Copilot Mar 14, 2026
7e1b66f
Remove shader struct alignment fix guide documentation
qian-o Mar 14, 2026
cddde4f
Implement MTLGraphicsPipeline and Metal() extension
qian-o Mar 16, 2026
c518ed6
Implement Metal graphics pipeline setup and shader function
qian-o Mar 16, 2026
62083e2
Refactor loop variable name for clarity
qian-o Mar 16, 2026
ece47ab
Update Metal.NET, WindowsAppSDK, and Slangc.NET versions
qian-o Mar 20, 2026
34ad488
Update Metal backend for Metal 4 API compatibility
qian-o Mar 20, 2026
6d4f3ab
Refactor DXFormats and update MTLFormats method visibility
qian-o Mar 20, 2026
b76202e
Implement Metal enum mappings in MTLFormats class
qian-o Mar 20, 2026
8bbcdc3
Add pipeline Bind method and Metal state mapping helpers
qian-o Mar 21, 2026
a4555d8
Rename 'encoder' to 'commandEncoder' in Bind method
qian-o Mar 21, 2026
a4403cd
Add Metal backend support for compute pipelines
qian-o Mar 21, 2026
1d3c3e1
Add Metal mesh shading pipeline support and refactor shaders
qian-o Mar 21, 2026
413bd3a
Add Metal() extension for MeshShadingPipeline
qian-o Mar 21, 2026
e438995
Rename ObjectThreadGroupSize to AmplificationThreadGroupSize
qian-o Mar 21, 2026
de57c52
Add Metal backend support for query heaps
qian-o Mar 23, 2026
d3efde6
Add MTLCommandBuffer and implement Metal command queue logic
qian-o Mar 23, 2026
5c17895
Add MTLCommandEncoder abstraction for Metal command encoding
qian-o Mar 23, 2026
b94b34f
Refactor encoder acquisition/release in MTLCommandEncoder
qian-o Mar 23, 2026
6df24ca
Implement Metal command buffer and encoder operations
qian-o Mar 23, 2026
db9dd0f
Implement and stub render pass methods in MTL classes
qian-o Mar 23, 2026
85b50c9
Refactor Metal command buffer and encoder management
qian-o Mar 23, 2026
fa847a1
Implement Metal pipeline/resource binding in command encoder
qian-o Mar 23, 2026
5b801d4
Implement basic draw/dispatch ops and dispose ArgumentTable
qian-o Mar 23, 2026
7e238cd
Improve Metal primitive type and topology handling
qian-o Mar 23, 2026
d94aa64
Add Metal indirect draw/dispatch and index buffer support
qian-o Mar 23, 2026
fd898e5
Refactor thread group size handling in Metal encoder
qian-o Mar 23, 2026
3c7eb55
Implement BeginQuery/EndQuery stubs in Metal command buffer
qian-o Mar 23, 2026
3d7efb2
Update EndQuery to accept QueryHeap in Metal backend
qian-o Mar 24, 2026
57f21d1
Refactor Metal argument table and query buffer handling
qian-o Mar 24, 2026
d954f58
Refactor indirect args size calculation in MTLCommandBuffer
qian-o Mar 24, 2026
56564c3
Add shader compilation for all backends before App.Run()
qian-o Mar 24, 2026
eacd6a5
Update ImGuiRenderer pixel shader bytecode (DXIL/SPIR-V)
qian-o Mar 24, 2026
11d667c
Split Metallib into separate shader blobs
qian-o Mar 24, 2026
aac10dd
Respect VertexBufferStartIndex for vertex layouts
qian-o Mar 24, 2026
19a4fb2
Add instancing support to DrawIndexedPrimitives call
qian-o Mar 24, 2026
2e072f7
Simplify Program.cs and update Metal shader binaries
qian-o Mar 25, 2026
82540f3
Remove SponzaScene project, assets, and shaders
qian-o Mar 25, 2026
ba78eaf
Remove SponzaScene reference from Next Steps section
qian-o Mar 25, 2026
777a64d
Add CornellBox experiment, font asset, and core handlers
qian-o Mar 25, 2026
a28c5b8
Add XML BOM to beginning of Zenith.NET.slnx file
qian-o Mar 25, 2026
c13e133
Update Slangc.NET to version 2026.5.1
qian-o Mar 25, 2026
b1c0978
Refactor window size access via Width/Height properties
qian-o Mar 25, 2026
1654ebc
Adjust ImGui rendering for framebuffer scaling support
qian-o Mar 25, 2026
8512479
Add DPI scaling support for ImGui rendering
qian-o Mar 25, 2026
47802fc
Adjust ImGui rendering for proper DPI scaling
qian-o Mar 25, 2026
620975f
Clarify window vs framebuffer size handling
qian-o Mar 25, 2026
fdac2a5
Refactor window size handling for DPI scaling
qian-o Mar 25, 2026
6ac77b2
Relax data length check in Texture.Upload method
qian-o Mar 26, 2026
975033c
Update texture row pitch logic for block-compressed formats
qian-o Mar 26, 2026
90c5b86
Standardize block variable naming in copy operations
qian-o Mar 26, 2026
d079c1d
Refactor texture upload logic for correct pitch alignment
qian-o Mar 26, 2026
6f9548f
Refactor Upload methods for safer, efficient data handling
qian-o Mar 26, 2026
152b7f5
Add BindingHelper for backend-specific resource binding
qian-o Mar 26, 2026
d02c6f4
Set MaxAnisotropy only for anisotropic filter types
qian-o Mar 26, 2026
292b2e7
Update Microsoft.Maui.Controls to version 10.0.51
qian-o Mar 26, 2026
e2188f3
Add launchSettings.json with default and WSL2 profiles
qian-o Mar 27, 2026
2333d4e
docs: redesign documentation theme and clean up API pages
qian-o Mar 27, 2026
693bc54
Refactor CSS/JS: improve formatting and code style
qian-o Mar 27, 2026
8b6cda6
Dual-mode Cornell Box: path tracing & rasterization switch
qian-o Mar 27, 2026
5e346c5
Refactor camera init; remove public SwapChain property
qian-o Mar 27, 2026
5d156ed
Refactor renderer switching logic and cleanup bindings
qian-o Mar 27, 2026
98e86d1
Improve resource cleanup, code clarity, and TLAS build flags
qian-o Mar 27, 2026
e0a6383
Add render pass after ImGui and update buffer sizing logic
qian-o Mar 27, 2026
b070184
Reduce ImGui buffer overallocation from 1.5x to 1.2x
qian-o Mar 27, 2026
7477fa9
Add Metal fence sync between render and compute encoders
qian-o Mar 27, 2026
cb17791
Refactor MTLCommandEncoder buffer and argument table fields
qian-o Mar 27, 2026
7f7ee84
Add Metal acceleration structure stubs and integration
qian-o Mar 27, 2026
f658f4a
Refactor framebuffer attachment method names for clarity
qian-o Mar 28, 2026
d4c254c
Add support for acceleration structures in MTLResourceTable
qian-o Mar 28, 2026
8b1af14
Update Avalonia to version 11.3.13
qian-o Mar 28, 2026
0e92af2
Complete Metal BLAS impl, update format mapping, bump pkg
qian-o Mar 29, 2026
46a1fc7
Fix buffer length calculation order for geometry descriptors
qian-o Mar 29, 2026
162d28e
Add barrier after BLAS build for proper synchronization
qian-o Mar 29, 2026
fc1a316
Implement Metal TLAS; fix scratch buffer sizing
qian-o Mar 29, 2026
735d6de
Add Metal flag mapping for ray tracing instance options
qian-o Mar 29, 2026
97896f4
Handle AccelerationStructure in bufferIndex assignment
qian-o Mar 29, 2026
772fdae
Update to use BarrierAfterEncoderStages for AS sync
qian-o Mar 29, 2026
200a7c0
Remove barriers after AS build/refit in MTL encoder
qian-o Mar 29, 2026
69a60b6
Add GPU memory barriers after copy and dispatch ops
qian-o Mar 29, 2026
fdfd605
Refactor ImGui texture/resource binding management
qian-o Mar 29, 2026
3b09e51
Swap removal order of texture and texture view bindings
qian-o Mar 29, 2026
4be502e
Refactor renderer system with new Renderer base class
qian-o Mar 29, 2026
22c22e5
Scale ImGui background for DPI, use 32-bit depth buffer
qian-o Mar 29, 2026
c9d1910
Refactor geometry/material structs for explicit layout
qian-o Mar 29, 2026
a63b1d7
Refactor VSInput for encapsulation and property access
qian-o Mar 29, 2026
bbed829
Refactor render loop; overhaul renderer/data conventions
qian-o Mar 29, 2026
bab1521
Update CONVENTIONS.md for new resource bindings & pipeline
qian-o Mar 29, 2026
26b0a37
Refactor RayTracingInstance properties for consistency; rename Instan…
qian-o Mar 30, 2026
0dd8fcb
Rename MaxInstanceId to MaxRayTracingInstanceID
qian-o Mar 30, 2026
654977b
Update shader var names for clarity; remove project Id in slnx
qian-o Mar 30, 2026
397efb4
Add PBR support: GGX BRDF, metallic/roughness materials
qian-o Mar 30, 2026
86f216c
Improve ambient lighting with hemispherical sky/ground model
qian-o Mar 30, 2026
c35e84f
Add ACES tonemapping and improve renderer robustness
qian-o Mar 30, 2026
a05706e
Update docs for PBR path tracer, ACES tonemap, new materials
qian-o Mar 30, 2026
3eefe91
Refactor: add NSAutoreleasePool.Run<T> and use for Metal objs
qian-o Mar 30, 2026
19a43bc
Refactor Metal object retention with NSAutorelease.Retain
qian-o Mar 30, 2026
4837ef1
Replace NSAutorelease.Retain with Own for clarity
qian-o Mar 30, 2026
e831151
Standardize float formatting in CornellBoxGeometry materials
qian-o Mar 31, 2026
db85952
Dispose Metal resources and improve context cleanup
qian-o Mar 31, 2026
a5d912c
Update Metal.NET to version 2.3.0
qian-o Mar 31, 2026
679564f
Remove Silk.NET.MoltenVK.Native package reference
qian-o Mar 31, 2026
90ae5e3
Set generateMipMaps default to true in LoadTextureFromStream
qian-o Mar 31, 2026
b4029d8
Standardize lambda expression syntax in VKGraphicsContext and Uploader
qian-o Mar 31, 2026
b5f1c19
Update Slangc.NET to version 2026.5.2
qian-o Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Zenith.NET.slnx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Solution>
<Folder Name="/Experiments/">
<File Path="sources/Experiments/Directory.Packages.props" />
<Project Path="sources/Experiments/CornellBox/CornellBox.csproj" />
<Project Path="sources/Experiments/MemoryPlayground/MemoryPlayground.csproj" />
<Project Path="sources/Experiments/PlatformDetection/PlatformDetection.csproj" />
<Project Path="sources/Experiments/SponzaScene/SponzaScene.csproj" />
</Folder>
<Folder Name="/Extensions/">
<Project Path="sources/Extensions/Zenith.NET.Extensions.ImageSharp/Zenith.NET.Extensions.ImageSharp.csproj" />
Expand Down
Binary file modified documents/images/Zenith.NET-Logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 29 additions & 17 deletions documents/images/Zenith.NET-Logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documents/images/Zenith.NET.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 33 additions & 9 deletions documents/images/Zenith.NET.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading