summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerdisplay.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2026-07-23 08:19:10 -0400
committerGitHub <noreply@github.com>2026-07-23 08:19:10 -0400
commitbcfda3b68a95bbbfb8b53f6313929fc5aeaa591c (patch)
tree5982185abc453619dddf6f234e1bc6802e1d69b8 /indra/newview/llviewerdisplay.cpp
parent8f2d07b717db2997c5701977ef3d65a56c811771 (diff)
parentf364b5c882da959284e8fc1b3bc80810a7374969 (diff)
Merge pull request #6029 from secondlife/geenz/26.3-texture-streaming-revert
Remove texture streaming changes from 26.3
Diffstat (limited to 'indra/newview/llviewerdisplay.cpp')
-rw-r--r--indra/newview/llviewerdisplay.cpp31
1 files changed, 4 insertions, 27 deletions
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index be83fd0279..0d50ba6fe2 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -140,27 +140,6 @@ void render_disconnected_background();
void getProfileStatsContext(boost::json::object& stats);
std::string getProfileStatsFilename();
-// Adaptive texture-pipeline budget: spend the frame-time headroom between the
-// frame we're rendering and TextureLoadTargetFPS, clamped [2ms, max]. Headroom
-// is measured (smoothed frame interval minus the pipeline's own last spend),
-// so fast machines get big budgets and machines already at target hold the
-// floor. Only consumed while queues have work - drain loops exit when empty.
-static F32 sTexturePipelineSpent = 0.f;
-static F32 texture_pipeline_budget()
-{
- static LLCachedControl<F32> target_fps(gSavedSettings, "TextureLoadTargetFPS", 60.f);
- static LLCachedControl<F32> max_ms(gSavedSettings, "TextureLoadBudgetMaxMS", 10.f);
- static F32 smoothed_other = 0.008f;
- F32 other = llmax(gFrameIntervalSeconds.value() - sTexturePipelineSpent, 0.f);
- // A single multi-second hitch must not crater the budget for the following
- // frames, so cap the sample before it enters the EMA.
- other = llmin(other, 0.1f);
- smoothed_other = smoothed_other * 0.9f + other * 0.1f;
- F32 target_interval = 1.f / llclamp((F32)target_fps, 15.f, 240.f);
- F32 headroom = target_interval - smoothed_other;
- return llclamp(headroom, 0.002f, llclamp((F32)max_ms, 2.f, 50.f) * 0.001f);
-}
-
void display_startup()
{
if ( !gViewerWindow
@@ -521,10 +500,9 @@ void display(bool rebuild, F32 zoom_factor, int subfield, bool for_snapshot)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("List");
- F32 max_image_decode_time = texture_pipeline_budget();
- LLTimer tex_timer;
+ F32 max_image_decode_time = 0.050f * gFrameIntervalSeconds.value(); // 50 ms/second decode time
+ max_image_decode_time = llclamp(max_image_decode_time, 0.002f, 0.005f); // min 2ms/frame, max 5ms/frame)
gTextureList.updateImages(max_image_decode_time);
- sTexturePipelineSpent = tex_timer.getElapsedTimeF32();
}
{
@@ -884,10 +862,9 @@ void display(bool rebuild, F32 zoom_factor, int subfield, bool for_snapshot)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("List");
- F32 max_image_decode_time = texture_pipeline_budget();
- LLTimer tex_timer;
+ F32 max_image_decode_time = 0.050f*gFrameIntervalSeconds.value(); // 50 ms/second decode time
+ max_image_decode_time = llclamp(max_image_decode_time, 0.002f, 0.005f ); // min 2ms/frame, max 5ms/frame)
gTextureList.updateImages(max_image_decode_time);
- sTexturePipelineSpent = tex_timer.getElapsedTimeF32();
}
{