You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add more controls for texture loading budgets. Should yield much faster loading within a given FPS target - should generally self regulate depending on your framerate.
* Harden texture pipeline against stalls and OOM. Generally makes texture loading faster, at the expense of some budgeting (which we weren't doing a great job at anyways).
Copy file name to clipboardExpand all lines: indra/llrender/llgl.h
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -159,6 +159,7 @@ void log_glerror();
159
159
voidassert_glerror();
160
160
161
161
voidclear_glerror();
162
+
voiddrain_glerror(); // pops ALL pending GL error flags (bounded so a lost/reset context that returns errors forever cannot hang the caller); use before an attributable glGetError check.
Copy file name to clipboardExpand all lines: indra/newview/app_settings/settings.xml
+35-2Lines changed: 35 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -11992,16 +11992,49 @@
11992
11992
<key>Value</key>
11993
11993
<integer>1</integer>
11994
11994
</map>
11995
-
<key>TextureFetchVisibilityFrames</key>
11995
+
<key>TextureLoadTargetFPS</key>
11996
11996
<map>
11997
11997
<key>Comment</key>
11998
-
<string>Only fetch a texture if it was drawn within this many rendered frames; out-of-view content isn't fetched. Minimum 1 (0 is clamped up). Boosted/UI textures, avatar bakes, and callback textures are exempt.</string>
11998
+
<string>Frame rate the viewer is willing to drop to while loading textures. The texture pipeline's per-frame budget is the headroom between this and the actual frame cost, so fast machines load aggressively and slow ones hold their frame rate.</string>
11999
+
<key>Persist</key>
12000
+
<integer>1</integer>
12001
+
<key>Type</key>
12002
+
<string>F32</string>
12003
+
<key>Value</key>
12004
+
<real>30.0</real>
12005
+
</map>
12006
+
<key>TextureLoadBudgetMaxMS</key>
12007
+
<map>
12008
+
<key>Comment</key>
12009
+
<string>Hard cap, in milliseconds per frame, on the adaptive texture-pipeline budget.</string>
12010
+
<key>Persist</key>
12011
+
<integer>1</integer>
12012
+
<key>Type</key>
12013
+
<string>F32</string>
12014
+
<key>Value</key>
12015
+
<real>10.0</real>
12016
+
</map>
12017
+
<key>TextureFetchStepMips</key>
12018
+
<map>
12019
+
<key>Comment</key>
12020
+
<string>Fetch refinement step, in mip levels: a texture whose resident data is coarser than desired by more than this fetches in steps of this size instead of jumping straight to the final resolution, so it sharpens progressively instead of sitting blurry then popping. 0 = jump directly. Boosted/pinned textures always jump.</string>
11999
12021
<key>Persist</key>
12000
12022
<integer>1</integer>
12001
12023
<key>Type</key>
12002
12024
<string>U32</string>
12003
12025
<key>Value</key>
12026
+
<integer>2</integer>
12027
+
</map>
12028
+
<key>TextureFrustumAllowance</key>
12029
+
<map>
12030
+
<key>Comment</key>
12031
+
<string>Falloff width for out-of-frustum texture resolution, as a fraction of screen size. Content grazing the screen edge keeps full resolution; content this far past the edge reaches the deepest mip, lerped between. Keeps barely-out-of-view textures resident so panning back doesn't refetch them.</string>
0 commit comments