end point adjsutments
Some checks failed
CI / React UI Build (push) Successful in 11s
CI / Windows Release Package (push) Has been cancelled
CI / Native Windows Build And Tests (push) Has been cancelled

This commit is contained in:
Aiden
2026-05-12 13:50:32 +10:00
parent b44504500a
commit 430cf0733d
11 changed files with 773 additions and 57 deletions

View File

@@ -3,10 +3,10 @@
#include "ShaderCompiler.h"
#include "ShaderPackageRegistry.h"
#include "ShaderTypes.h"
#include "SupportedShaderCatalog.h"
#include <chrono>
#include <filesystem>
#include <iostream>
namespace
{
@@ -28,43 +28,6 @@ std::filesystem::path FindRepoRoot()
}
}
bool IsStatelessSinglePassPackage(const ShaderPackage& shaderPackage, std::string& error)
{
if (shaderPackage.passes.size() != 1)
{
error = "RenderCadenceCompositor currently supports only single-pass runtime shaders.";
return false;
}
if (shaderPackage.temporal.enabled)
{
error = "RenderCadenceCompositor currently supports only stateless shaders; temporal history is not enabled in this app.";
return false;
}
if (shaderPackage.feedback.enabled)
{
error = "RenderCadenceCompositor currently supports only stateless shaders; feedback storage is not enabled in this app.";
return false;
}
if (!shaderPackage.textureAssets.empty())
{
error = "RenderCadenceCompositor does not load shader texture assets on the render thread; texture-backed shaders need a CPU-prepared asset handoff first.";
return false;
}
if (!shaderPackage.fontAssets.empty())
{
error = "RenderCadenceCompositor does not load shader font assets on the render thread; text shaders need a CPU-prepared asset handoff first.";
return false;
}
for (const ShaderParameterDefinition& parameter : shaderPackage.parameters)
{
if (parameter.type == ShaderParameterType::Text)
{
error = "RenderCadenceCompositor currently skips text parameters because they require per-shader text texture storage.";
return false;
}
}
return true;
}
}
RuntimeSlangShaderCompiler::~RuntimeSlangShaderCompiler()
@@ -140,10 +103,12 @@ RuntimeSlangShaderBuild RuntimeSlangShaderCompiler::BuildShader(const std::strin
build.message = error.empty() ? "Shader manifest parse failed." : error;
return build;
}
if (!IsStatelessSinglePassPackage(shaderPackage, error))
const RenderCadenceCompositor::ShaderSupportResult support =
RenderCadenceCompositor::CheckStatelessSinglePassShaderSupport(shaderPackage);
if (!support.supported)
{
build.succeeded = false;
build.message = error;
build.message = support.reason;
return build;
}