Moved the shaders to slang to facilitate development - #189
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c314c1b324
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| case AtlasVertexShader::Terrain: | ||
| throw std::runtime_error("Legacy tessellated terrain shaders were removed"); |
There was a problem hiding this comment.
Restore the shaders still used by Terrain
When any Aurora terrain is initialized, aurora/terrain.cpp still requests AtlasVertexShader::Terrain before requesting the matching fragment and tessellation shaders. This new unconditional throw therefore makes both C++ terrain initialization and the exposed JS Terrain.fromGenerator/Terrain.fromHeightmap paths fail before a pipeline can be created; migrate these shaders or update the active Terrain implementation instead of treating them as unused.
Useful? React with 👍 / 👎.
| }; | ||
|
|
||
| [[vk::push_constant]] ConstantBuffer<PushConstants> parameters; | ||
| [[vk::binding(0, 3)]] StructuredBuffer<int> EffectBuffer; |
There was a problem hiding this comment.
Preserve the reflected effect-array names
When a render target has any post-processing effect, RenderTarget::render still writes Effects[i], while the implementations in include/atlas/effect.h write EffectFloatN[i]. The new direct structured buffers expose EffectBuffer and EffectFloatNBuffer instead, so those old names are absent from shader reflection and the setters cannot populate the data that this shader reads, leaving all configured effects unbound or using undefined values.
Useful? React with 👍 / 👎.
| this->shaderProgram = ShaderProgram::fromDefaultShaders( | ||
| AtlasVertexShader::Main, AtlasFragmentShader::Main); | ||
| AtlasVertexShader::Deferred, AtlasFragmentShader::Deferred); |
There was a problem hiding this comment.
Do not bind G-buffer shaders in the forward-rendering helper
When callers invoke disableDeferredRendering(), setting useDeferredRendering to false schedules the object in the forward pass, but this change installs the deferred program whose fragment stage emits gPosition, gNormal, gAlbedoSpec, and gMaterial rather than a lit scene color. Against the forward framebuffer this can either fail pipeline attachment compatibility or display position/normal data, so the public helper no longer produces forward rendering.
Useful? React with 👍 / 👎.
All the shaders except the Photon shaders due to limitations have now been moved to slang.