| Age | Commit message (Collapse) | Author |
|
secondlife/geenz/texture-channel-cherrypick"
This reverts commit 7f110d9fb54d050e0b25ea65294a53d2595fc89b, reversing
changes made to 5f91a3faf3ef0b9d0a6c3424fff119992dc0822a.
|
|
This reverts commit 6b4e3f3288ec1e9917cecd862a7a52945e5b4db2, reversing
changes made to 99ab6316b4ae9058f22d9f57d21e795ca45797fd.
|
|
This reverts commit 3d465f6c966f0a2fcfd5d3c9effb6ce20c2754c8, reversing
changes made to f2c356fc7130ce5e38b994dcfa1e210609b458b9.
|
|
This reverts commit a937b237de3651e79cdb517f14381a5bdd4c844b.
|
|
* 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).
|
|
|
|
Also make sure that probes don't stamp - that creates thrashing when distant probes render. We're at a low enough resolution on those things that higher mips are likely to go unnoticed, and we bake them frequently enough that we can pick up lower mips when we actually need them.
|
|
|
|
some bias controls for the texel-to-pixel ratio based streaming.
|
|
|
|
Does a much better job of staying within the memory budget.
|
|
pressure, halve last-ditch floor inside bubble.
|
|
New "high res" bubble near the camera, minimum discard settings, and discard scaling.
|
|
|
|
the camera.
|
|
This is a big one:
- Reworks the discard signal almost entirely. Now has a normalized 0..1 discard signal: distance x size x channel exponent, floored by staleness and background app state. Shaped by VRAM pressure.
- Textures can now scale down to the smallest GPU mip (1×1), independent of the codec's encoded mip
count.
- Terrain texture LOD now works. Useful for 2K textures and PBR on terrain. Based upon camera distance to nearest terrain patch.
- New texture quality setting. Low/Medium/High/Ultra
- Caps texture resolution on Low to 1024, and otherwise shifts the discard signal around. Makes distance based texture LOD work a lot more predictably.
- We now track last bind state for textures, and discard accordingly. We progressively discard based upon last bind time.
- Avatar textures get a residency boost to stay loaded in VRAM longer under pressure.
|
|
* Add channel based streaming priority.
* Lessen the aggressiveness of the discards.
|
|
|
|
|
|
|
|
pointer
Signed-off-by: Hecklezz <tj8@live.com.au>
|
|
|
|
|
|
* updateImageDecodePriority - Avoid Long Face Loop
To avoid running a long loop on thousands of faces, some textures were being set to a BOOST level to avoid the updateImageDecodePriority function entirely but this was causing many of them to never be deleted over the course of a user's travels.
Instead of relying on BOOST, this commit changes the logic of the texture channel loop such that the face loop will only run if the number of faces is below the threshold.
To do this, we move the face_count incrementing outside of the face loop into the channel loop and increment it using the getNumFaces function instead.
We then check the face_count against the maximum number of faces we want to check and if it exceeds the number we set the number of faces for the face loop to check down to zero.
This avoids branch prediction misses and the long face loop issue.
Later, if the face_count is above the threshold, we assign the virtual size to the maximum.
I personally believe the max_faces_to_check should be lower than 1024, but I left that value in for continuity. I use 64 faces as my max on my compiled version of the viewer without any noticeable issues for memory use.
* updateImageDecodePriority - Face Loop Increment Swap
Looks like compilers like knowing the incrementing in the for loop information for optimizations and parallelization.
Sorry for the tiny commit.
* updateImageDecodePriority - Suggested Cleanup
Remove trailing white-space.
Co-authored-by: Andrey Lihatskiy <alihatskiy@productengine.com>
|
|
|
|
|
|
|
|
when bias fluctuates a bit.
Make bias' effect a bit more gradual.
|
|
|
|
|
|
# Conflicts:
# indra/newview/llmeshrepository.cpp
# indra/newview/llmeshrepository.h
|
|
|
|
* #3455 Add support for water exclusion surfaces
|
|
Terrain was arriving and processing too late resulting in issues like
"Lower terrain material incorrectly shown momentarily"
|
|
if bias stays unchanged at 4.f, there is no reason to keep refreshing
at high rate.
|
|
|
|
texture scaling (#3207)
|
|
|
|
* OpenGL 3.3 compatibility pass. Fix for FBO driven downscaling corrupting textures.
* Increase maximum texture bias, immediately scale down when textures are loaded higher resolution than desired
* #2590 Fix for some frame stalls on Intel Macs
|
|
|
|
|
|
- Use GL_NVX_gpu_memory_info when available
- Disable transparent water on Mid+ and lower
- Adjust GPU benchmark to better tell the truth
- Texture bias tune up
- viewer-private/#277 - Report foreground_time in viewer stats
|
|
|
|
|
|
- Hold onto unreferenced textures for 30 seconds.
- Don't downres unless memory is low
- Downres when viewer is backgrounded.
|
|
* #2315 WIP -- Clean up deletion rules in texture list. Incidental decruft.
* Touch up assertions.
* Move mLastReferencedTimer to LLViewerMediaTexture since it's no longer used by LLViewerTexture
|
|
In a previous PR, I noted:
Note this change moves the calcPixelArea() call to the top BEFORE we user getPixelArea(). Either that call is entirely redundant (i.e. if calc was called earlier in the frame) or we were using the stale pixelArea (one frame behind). If the former is true then it might be faster to just do an AABB frustum check.
It turns out that by moving the calcPixelArea to the "correct place", we break the rezzing of particles which are then being downsampled as a result. Moving this back to the "incorrect" location undoes the immediate effect but this whole scenario may need to be re-examined.
|
|
|
|
Crash at getTextureEntry which calls getTE(mTEOffset)
|
|
Textures were being set to Inactive even if still in scene, causing them to be deleted and re-decoded in a loop.
|