Skip to content

Conversation

@CubeBerry
Copy link
Owner

  • Created python script to compile shaders automatically.
  • Added slangc binary and moved dxc, nuget into Tools directory with slangc.
  • Shader Model 6.9 (Work Graphs Mesh Nodes Shader) is not supported yet because mesh shader & work graphs shader compiled via mesh nodes preview dxc does not work.
  • Check README.md for how to run the script.

CubeBerry and others added 29 commits December 5, 2025 11:29
- Divided Sprite into DynamicSprite, StaticSprite. DynamicSprite is for sprite that can be allocated/deallocated dynamically. StaticSprite is for sprite that won't be allocated/deallocated for entire state (ex. terrain, building).
- Strictly separated descriptor heap partition.
- Changed SpriteManager to pointer variable in Engine.hpp.
- Still working on work graphs frustum culling.
- DynamicSprite and StaticSprite is now separated.
- StaticSprite needs unified buffer structure so that many of variables should be fixed.
- Going to start on dividing BufferWrapper into StaticBufferWrapper, DynamicBufferWrapper, MeshShaderBufferWrapper.
- Optimized BufferWrapper to support instance rendering and bindless rendering easily. Also to support dynamic, static purpose mesh.
- Still need to figure out a way to indicate SubMesh is DYNAMIC/STATIC when RenderManager's CreateMesh function is called.
- When CreateMesh3D is called, regardless of SpriteType(DYNAMIC, STATIC), it creates data and buffer of DynamicSprite3DMesh struct.
- SpriteManager handles StaticSprite. When RegisterStaticSprite() is called, it gathers whole data of DynamicSprite3DMesh (but created as StaticSprite) and initializes buffers.
- Need to figure out a way to utilize index for bindless buffers.
- Only debug environment of DXIL compile is supported due to preview functionality of mesh nodes.
- StaticSprite3D contains bindless uniform data.
- Pixel shader should be modified to support bindless rendering.
- Need to edit register key to enable mesh nodes functionality on Radeon RX 9070 XT GPU.
- Couldn't find a way to enable mesh nodes functionality on Radeon GPU.
- Need to initialize DXWorkGraphsStateObject using constructor for Mesh Nodes.
- Revert back DirectX 12 Agility SDK version to 1.615.0-preview.
- Need to figure out which render target format and depth format should be used for DXWorkGraphsStateObject.
- SetGraphics should be used instead of SetCompute because Work Graphs Mesh Nodes is considered as graphics pipeline.
- Can choose between stable and preview version of Agility SDK by turning ON/OFF of option(USE_PREVIEW_SDK "Enable DirectX 12 Agility SDK Preview Version (715)" OFF) in root directory CMakeLists.txt.
- Also, this can be toggled by adding command line -D USE_PREVIEW_SDK=ON
- Disabled the code because this is not supported yet.
- This code have been tested with Work Graphs Frustum Culling.
- Added simple python script that compiles shaders (Slang -> SPIR-V, HLSL and HLSL -> DXIL).
- Currently, Mesh Shader & Work Graphs Shader does not work when creating pipeline. Need to fix this issue.
- Originally, mesh nodes preview version of dxc (DirectX Shader Compiler) is required. However, this preview version does not work with mesh shader and work graphs shader.
- Use latest stable version of dxc for now.
- Fixed shader compiler script to print logs including warning, error.
- Created Tools directory and added slangc and dxc binary files.
- Updated README.md for shader compile method.
@CubeBerry CubeBerry requested a review from doyoung413 December 18, 2025 05:36
@CubeBerry CubeBerry self-assigned this Dec 18, 2025
@CubeBerry CubeBerry added the enhancement New feature or request label Dec 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants