Add gaussian splat compute shader contracts
This commit is contained in:
@@ -37,6 +37,8 @@ constexpr const char* kBuiltinSelectionMaskShaderPath = "builtin://shaders/selec
|
||||
constexpr const char* kBuiltinSelectionOutlineShaderPath = "builtin://shaders/selection-outline";
|
||||
constexpr const char* kBuiltinSkyboxShaderPath = "builtin://shaders/skybox";
|
||||
constexpr const char* kBuiltinGaussianSplatShaderPath = "builtin://shaders/gaussian-splat";
|
||||
constexpr const char* kBuiltinGaussianSplatUtilitiesShaderPath =
|
||||
"builtin://shaders/gaussian-splat-utilities";
|
||||
constexpr const char* kBuiltinVolumetricShaderPath = "builtin://shaders/volumetric";
|
||||
constexpr const char* kBuiltinColorScalePostProcessShaderPath =
|
||||
"builtin://shaders/color-scale-post-process";
|
||||
@@ -71,6 +73,8 @@ constexpr const char* kBuiltinSkyboxShaderAssetRelativePath =
|
||||
"engine/assets/builtin/shaders/skybox.shader";
|
||||
constexpr const char* kBuiltinGaussianSplatShaderAssetRelativePath =
|
||||
"engine/assets/builtin/shaders/gaussian-splat.shader";
|
||||
constexpr const char* kBuiltinGaussianSplatUtilitiesShaderAssetRelativePath =
|
||||
"engine/assets/builtin/shaders/gaussian-splat-utilities.shader";
|
||||
constexpr const char* kBuiltinVolumetricShaderAssetRelativePath =
|
||||
"engine/assets/builtin/shaders/volumetric.shader";
|
||||
constexpr const char* kBuiltinColorScalePostProcessShaderAssetRelativePath =
|
||||
@@ -170,6 +174,9 @@ const char* GetBuiltinShaderAssetRelativePath(const Containers::String& builtinS
|
||||
if (builtinShaderPath == Containers::String(kBuiltinGaussianSplatShaderPath)) {
|
||||
return kBuiltinGaussianSplatShaderAssetRelativePath;
|
||||
}
|
||||
if (builtinShaderPath == Containers::String(kBuiltinGaussianSplatUtilitiesShaderPath)) {
|
||||
return kBuiltinGaussianSplatUtilitiesShaderAssetRelativePath;
|
||||
}
|
||||
if (builtinShaderPath == Containers::String(kBuiltinVolumetricShaderPath)) {
|
||||
return kBuiltinVolumetricShaderAssetRelativePath;
|
||||
}
|
||||
@@ -698,6 +705,9 @@ size_t CalculateBuiltinShaderMemorySize(const Shader& shader) {
|
||||
memorySize += variant.profile.Length();
|
||||
memorySize += variant.sourceCode.Length();
|
||||
memorySize += variant.compiledBinary.Size();
|
||||
for (const ShaderBackendCompiledBinary& record : variant.backendCompiledBinaries) {
|
||||
memorySize += record.payload.Size();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -866,6 +876,10 @@ bool TryGetBuiltinShaderPathByShaderName(
|
||||
outPath = GetBuiltinGaussianSplatShaderPath();
|
||||
return true;
|
||||
}
|
||||
if (shaderName == "Builtin Gaussian Splat Utilities") {
|
||||
outPath = GetBuiltinGaussianSplatUtilitiesShaderPath();
|
||||
return true;
|
||||
}
|
||||
if (shaderName == "Builtin Volumetric") {
|
||||
outPath = GetBuiltinVolumetricShaderPath();
|
||||
return true;
|
||||
@@ -957,6 +971,10 @@ Containers::String GetBuiltinGaussianSplatShaderPath() {
|
||||
return Containers::String(kBuiltinGaussianSplatShaderPath);
|
||||
}
|
||||
|
||||
Containers::String GetBuiltinGaussianSplatUtilitiesShaderPath() {
|
||||
return Containers::String(kBuiltinGaussianSplatUtilitiesShaderPath);
|
||||
}
|
||||
|
||||
Containers::String GetBuiltinVolumetricShaderPath() {
|
||||
return Containers::String(kBuiltinVolumetricShaderPath);
|
||||
}
|
||||
@@ -1077,6 +1095,8 @@ LoadResult CreateBuiltinShaderResource(const Containers::String& path) {
|
||||
shader = BuildBuiltinSkyboxShader(path);
|
||||
} else if (path == GetBuiltinGaussianSplatShaderPath()) {
|
||||
shader = BuildBuiltinGaussianSplatShader(path);
|
||||
} else if (path == GetBuiltinGaussianSplatUtilitiesShaderPath()) {
|
||||
shader = TryLoadBuiltinShaderFromAsset(path);
|
||||
} else if (path == GetBuiltinVolumetricShaderPath()) {
|
||||
shader = BuildBuiltinVolumetricShader(path);
|
||||
} else if (path == GetBuiltinColorScalePostProcessShaderPath()) {
|
||||
|
||||
Reference in New Issue
Block a user