summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.h
diff options
context:
space:
mode:
authorBrad Linden <brad@lindenlab.com>2024-10-29 15:43:21 -0700
committerBrad Linden <brad@lindenlab.com>2024-10-29 15:43:21 -0700
commit74b0c86e48387e2154cb2acf03f626ca11229bce (patch)
tree0c74138a6d0c60eb5dffcc745464b58a6b315036 /indra/newview/pipeline.h
parent9598e2f4cedd3dc36d447086273e0ed97967bbf9 (diff)
parent1a7909517368206d54407e54b9332aed1e4c9863 (diff)
Merge brad/2549-downrez-controls into release/2024.09-ExtraFPS (#2864)
Diffstat (limited to 'indra/newview/pipeline.h')
-rw-r--r--indra/newview/pipeline.h29
1 files changed, 21 insertions, 8 deletions
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 024303d5f0..5c9b95ef4a 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -129,7 +129,7 @@ public:
//attempt to allocate screen buffers at resX, resY
//returns true if allocation successful, false otherwise
- bool allocateScreenBuffer(U32 resX, U32 resY, U32 samples);
+ bool allocateScreenBufferInternal(U32 resX, U32 resY);
bool allocateShadowBuffer(U32 resX, U32 resY);
// rebuild all LLVOVolume render batches
@@ -155,9 +155,13 @@ public:
void copyScreenSpaceReflections(LLRenderTarget* src, LLRenderTarget* dst);
void generateLuminance(LLRenderTarget* src, LLRenderTarget* dst);
void generateExposure(LLRenderTarget* src, LLRenderTarget* dst, bool use_history = true);
+ void tonemap(LLRenderTarget* src, LLRenderTarget* dst);
void gammaCorrect(LLRenderTarget* src, LLRenderTarget* dst);
void generateGlow(LLRenderTarget* src);
+ void applyCAS(LLRenderTarget* src, LLRenderTarget* dst);
void applyFXAA(LLRenderTarget* src, LLRenderTarget* dst);
+ void generateSMAABuffers(LLRenderTarget* src);
+ void applySMAA(LLRenderTarget* src, LLRenderTarget* dst);
void renderDoF(LLRenderTarget* src, LLRenderTarget* dst);
void copyRenderTarget(LLRenderTarget* src, LLRenderTarget* dst);
void combineGlow(LLRenderTarget* src, LLRenderTarget* dst);
@@ -341,7 +345,7 @@ public:
void renderHighlight(const LLViewerObject* obj, F32 fade);
- void renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera& camera, LLCullResult& result, bool depth_clamp);
+ void renderShadow(const glm::mat4& view, const glm::mat4& proj, LLCamera& camera, LLCullResult& result, bool depth_clamp);
void renderSelectedFaces(const LLColor4& color);
void renderHighlights();
void renderDebug();
@@ -725,6 +729,7 @@ public:
// FXAA helper target
LLRenderTarget mFXAAMap;
+ LLRenderTarget mSMAABlendBuffer;
// render ui to buffer target
LLRenderTarget mUIScreen;
@@ -732,6 +737,9 @@ public:
// downres scratch space for GPU downscaling of textures
LLRenderTarget mDownResMap;
+ // 2k bom scratch target
+ LLRenderTarget mBakeMap;
+
LLCullResult mSky;
LLCullResult mReflectedObjects;
LLCullResult mRefractedObjects;
@@ -755,10 +763,10 @@ public:
LLCamera mShadowCamera[8];
LLVector3 mShadowExtents[4][2];
// TODO : separate Sun Shadow and Spot Shadow matrices
- glh::matrix4f mSunShadowMatrix[6];
- glh::matrix4f mShadowModelview[6];
- glh::matrix4f mShadowProjection[6];
- glh::matrix4f mReflectionModelView;
+ glm::mat4 mSunShadowMatrix[6];
+ glm::mat4 mShadowModelview[6];
+ glm::mat4 mShadowProjection[6];
+ glm::mat4 mReflectionModelView;
LLPointer<LLDrawable> mShadowSpotLight[2];
F32 mSpotLightFade[2];
@@ -771,7 +779,7 @@ public:
//water distortion texture (refraction)
LLRenderTarget mWaterDis;
- static const U32 MAX_BAKE_WIDTH;
+ static const U32 MAX_PREVIEW_WIDTH;
//texture for making the glow
LLRenderTarget mGlow[3];
@@ -781,6 +789,11 @@ public:
U32 mTrueNoiseMap;
U32 mLightFunc;
+ //smaa
+ U32 mSMAAAreaMap = 0;
+ U32 mSMAASearchMap = 0;
+ U32 mSMAASampleMap = 0;
+
LLColor4 mSunDiffuse;
LLColor4 mMoonDiffuse;
LLVector4 mSunDir;
@@ -988,7 +1001,7 @@ public:
static bool WindLightUseAtmosShaders;
static bool RenderDeferred;
static F32 RenderDeferredSunWash;
- static U32 RenderFSAASamples;
+ static U32 RenderFSAAType;
static U32 RenderResolutionDivisor;
static bool RenderUIBuffer;
static S32 RenderShadowDetail;