Fix for preview targets not rendering correctly

master
Beq 2024-12-28 18:16:40 +00:00
parent 9dc5c99c57
commit a2db442dea
4 changed files with 18 additions and 5 deletions

View File

@ -9767,7 +9767,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>1024</integer>
<integer>2048</integer>
</map>
<key>PreviewAmbientColor</key>
<map>

View File

@ -190,8 +190,10 @@ bool LLViewerDynamicTexture::updateAllInstances()
{
return true;
}
LLRenderTarget& preview_target = gPipeline.mAuxillaryRT.deferredScreen;
// <FS:Beq> Add dedicated preview target
// LLRenderTarget& preview_target = gPipeline.mAuxillaryRT.deferredScreen;
LLRenderTarget& preview_target = gPipeline.mPreviewScreen;
// </FS:Beq>
LLRenderTarget& bake_target = gPipeline.mBakeMap;
if (!preview_target.isComplete() || !bake_target.isComplete())
{
@ -199,7 +201,7 @@ bool LLViewerDynamicTexture::updateAllInstances()
return false;
}
llassert(preview_target.getWidth() >= LLPipeline::MAX_PREVIEW_WIDTH);
llassert(preview_target.getHeight() >= LLPipeline::MAX_PREVIEW_WIDTH);
llassert(preview_target.getHeight() >= LLPipeline::MAX_PREVIEW_HEIGHT); // <FS:Beq/> make this consistent with other render targets
llassert(bake_target.getWidth() >= (U32) LLAvatarAppearanceDefines::SCRATCH_TEX_WIDTH);
llassert(bake_target.getHeight() >= (U32) LLAvatarAppearanceDefines::SCRATCH_TEX_HEIGHT);

View File

@ -235,7 +235,9 @@ S32 LLPipeline::RenderHeroProbeUpdateRate;
S32 LLPipeline::RenderHeroProbeConservativeUpdateMultiplier;
LLTrace::EventStatHandle<S64> LLPipeline::sStatBatchSize("renderbatchsize");
const U32 LLPipeline::MAX_PREVIEW_WIDTH = 512;
// const U32 LLPipeline::MAX_PREVIEW_WIDTH = 512;
constexpr U32 LLPipeline::MAX_PREVIEW_WIDTH = 2048;
constexpr U32 LLPipeline::MAX_PREVIEW_HEIGHT = 2048;
const F32 BACKLIGHT_DAY_MAGNITUDE_OBJECT = 0.1f;
const F32 BACKLIGHT_NIGHT_MAGNITUDE_OBJECT = 0.08f;
@ -999,6 +1001,7 @@ bool LLPipeline::allocateScreenBufferInternal(U32 resX, U32 resY)
// See LLViwerTextureList::updateImagesCreateTextures and LLImageGL::scaleDown
mDownResMap.allocate(1024, 1024, GL_RGBA);
mPreviewScreen.allocate(MAX_PREVIEW_WIDTH, MAX_PREVIEW_HEIGHT, GL_RGBA); // <FS:Beq/> create an independent preview screen target
mBakeMap.allocate(LLAvatarAppearanceDefines::SCRATCH_TEX_WIDTH, LLAvatarAppearanceDefines::SCRATCH_TEX_HEIGHT, GL_RGBA);
}
//HACK make screenbuffer allocations start failing after 30 seconds
@ -1326,6 +1329,8 @@ void LLPipeline::releaseScreenBuffers()
mHeroProbeRT.screen.release();
mHeroProbeRT.deferredScreen.release();
mHeroProbeRT.deferredLight.release();
mPreviewScreen.release(); // <FS:Beq/> dedicated preview target
}
void LLPipeline::releaseSunShadowTarget(U32 index)

View File

@ -717,6 +717,11 @@ public:
// auxillary 512x512 render target pack
// used by reflection probes and dynamic texture bakes
RenderTargetPack mAuxillaryRT;
// <FS:Beq> Fix the build floater preview window
// dedicated 2048x2048 render target for preview
// used by preview window dynamic textures
LLRenderTarget mPreviewScreen;
// </FS:Beq>
// Auxillary render target pack scaled to the hero probe's per-face size.
RenderTargetPack mHeroProbeRT;
@ -793,6 +798,7 @@ public:
LLRenderTarget mWaterDis;
static const U32 MAX_PREVIEW_WIDTH;
static const U32 MAX_PREVIEW_HEIGHT; // <FS:Beq/> dedicated render target for previews
//texture for making the glow
LLRenderTarget mGlow[3];