From 2ca11b4a949d93463435e47df74e265f5d5a1b0b Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Wed, 10 Dec 2025 14:17:00 +0000 Subject: [PATCH] remove all stage specifics and dynamic naming always running into issues with this as at times features are coming in with a different index and that affects how another stage is interacting with that shader. This produces alot more shaders, previous run with these was around 500 but without it is producing over 800 (this includes tso compiled output) This may be something that will only work for the shadernodes as users will be designing those. --- .../source/forest/hlsl/windDeformationHLSL.h | 2 -- .../hlsl/advancedLightingFeaturesHLSL.h | 2 -- .../hlsl/deferredShadingFeaturesHLSL.h | 6 ----- .../source/shaderGen/HLSL/accuFeatureHLSL.h | 10 -------- .../shaderGen/HLSL/debugVizFeatureHLSL.h | 2 -- .../source/shaderGen/HLSL/shaderFeatureHLSL.h | 10 -------- Engine/source/shaderGen/shaderGen.cpp | 25 ++++++++++--------- 7 files changed, 13 insertions(+), 44 deletions(-) diff --git a/Engine/source/forest/hlsl/windDeformationHLSL.h b/Engine/source/forest/hlsl/windDeformationHLSL.h index 08e2a19a6..99aa49fe0 100644 --- a/Engine/source/forest/hlsl/windDeformationHLSL.h +++ b/Engine/source/forest/hlsl/windDeformationHLSL.h @@ -46,8 +46,6 @@ public: void processVert( Vector &componentList, const MaterialFeatureData &fd ) override; - U32 getShaderStages() override { return GFXShaderStage::VERTEX_SHADER; } - String getName() override { return "Wind Effect"; diff --git a/Engine/source/lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h b/Engine/source/lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h index fd1560f16..17dd9b86d 100644 --- a/Engine/source/lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h +++ b/Engine/source/lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h @@ -138,8 +138,6 @@ public: void processPix( Vector &componentList, const MaterialFeatureData &fd ) override; - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Sub-Surface Approximation [Deferred]"; diff --git a/Engine/source/lighting/advanced/hlsl/deferredShadingFeaturesHLSL.h b/Engine/source/lighting/advanced/hlsl/deferredShadingFeaturesHLSL.h index 21abe52df..472f22115 100644 --- a/Engine/source/lighting/advanced/hlsl/deferredShadingFeaturesHLSL.h +++ b/Engine/source/lighting/advanced/hlsl/deferredShadingFeaturesHLSL.h @@ -57,8 +57,6 @@ public: const MaterialFeatureData &fd ) override; U32 getOutputTargets(const MaterialFeatureData& fd) const override; - - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } }; class ORMConfigVarsHLSL : public ShaderFeatureHLSL @@ -70,8 +68,6 @@ public: void processPix( Vector &componentList, const MaterialFeatureData &fd ) override; - - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } }; class GlowMapHLSL : public ShaderFeatureHLSL @@ -82,8 +78,6 @@ public: void processPix(Vector &componentList, const MaterialFeatureData &fd) override; - //U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - U32 getOutputTargets(const MaterialFeatureData& fd) const override; Resources getResources(const MaterialFeatureData& fd) override; diff --git a/Engine/source/shaderGen/HLSL/accuFeatureHLSL.h b/Engine/source/shaderGen/HLSL/accuFeatureHLSL.h index beef20dbc..b97045681 100644 --- a/Engine/source/shaderGen/HLSL/accuFeatureHLSL.h +++ b/Engine/source/shaderGen/HLSL/accuFeatureHLSL.h @@ -98,8 +98,6 @@ public: } } - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Accu Scale"; } }; @@ -120,8 +118,6 @@ public: } } - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Accu Direction"; } }; @@ -142,8 +138,6 @@ public: } } - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Accu Strength"; } }; @@ -164,8 +158,6 @@ public: } } - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Accu Coverage"; } }; @@ -187,8 +179,6 @@ public: } } - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Accu Specular"; } }; diff --git a/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.h b/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.h index b799d0eb2..53c0151e9 100644 --- a/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.h +++ b/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.h @@ -37,7 +37,5 @@ public: void processPix(Vector& componentList, const MaterialFeatureData& fd) override; - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Debug Viz"; } }; diff --git a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.h b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.h index aa2f59261..8acfb3991 100644 --- a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.h +++ b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.h @@ -307,8 +307,6 @@ public: void processPix( Vector &componentList, const MaterialFeatureData &fd ) override; - //U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - Material::BlendOp getBlendOp() override{ return Material::None; } U32 getOutputTargets(const MaterialFeatureData &fd) const override; @@ -561,8 +559,6 @@ public: void processPix( Vector &componentList, const MaterialFeatureData &fd ) override; - //U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - String getName() override { return "Glow Mask"; @@ -587,8 +583,6 @@ public: void processPix( Vector &componentList, const MaterialFeatureData &fd ) override; - U32 getShaderStages() override { return GFXShaderStage::PIXEL_SHADER; } - Material::BlendOp getBlendOp() override { return Material::None; } String getName() override { return "HDR Output"; } @@ -633,8 +627,6 @@ public: void processVert( Vector &componentList, const MaterialFeatureData &fd ) override; - U32 getShaderStages() override { return GFXShaderStage::VERTEX_SHADER; } - String getName() override { return "Particle Normal Generation Feature"; @@ -681,8 +673,6 @@ public: void processVert( Vector &componentList, const MaterialFeatureData &fd ) override; - U32 getShaderStages() override { return GFXShaderStage::VERTEX_SHADER; } - String getName() override { return "Hardware Skinning"; } }; diff --git a/Engine/source/shaderGen/shaderGen.cpp b/Engine/source/shaderGen/shaderGen.cpp index 23fa7a398..38272b3e7 100644 --- a/Engine/source/shaderGen/shaderGen.cpp +++ b/Engine/source/shaderGen/shaderGen.cpp @@ -229,20 +229,21 @@ void ShaderGen::generateShader( const MaterialFeatureData& featureData, const char* postfix = _getStagePostfix(curStage); String stageName; - if (curStage & GFXShaderStage::VERTEX_SHADER) - stageName += vertexFormat->getDescription(); + //if (curStage & GFXShaderStage::VERTEX_SHADER) + // stageName += vertexFormat->getDescription(); - // build our filename. - for (U32 i = 0; i < features.getCount(); i++) - { - const FeatureType& type = features.getAt(i); - if (stage & FEATUREMGR->getByType(type)->getShaderStages()) - { - stageName += type.getName(); - } - } + //// build our filename. + //for (U32 i = 0; i < features.getCount(); i++) + //{ + // const FeatureType& type = features.getAt(i); + // if (stage & FEATUREMGR->getByType(type)->getShaderStages()) + // { + // stageName += type.getName(); + // } + //} - stageName = Torque::getStringHash64(stageName); + //stageName = Torque::getStringHash64(stageName); + stageName = cacheName; stageName += postfix; FileCacheSet::iterator file = mFileCache.find(stageName);