summaryrefslogtreecommitdiff
path: root/indra/llrender/llimagegl.cpp
AgeCommit message (Collapse)Author
2023-04-05SL-19331: Move media updates off-thread on select hardware (#153)cosmic-linden
* SL-19331: Have media updates on the LLImageGL thread even when texture updates are on the main thread. Add config. Off-thread media updates seem work best performance-wise when using glTexImage2D, not sub_image_lines. Otherwise, there are lots of main thread stalls. * SL-19331: Bump featuretable * SL-19331: Cleanup, annotate comment
2023-03-21SL-19434: Fix texture issues with minimap, but keep performance from SL-19331Cosmic Linden
2023-03-21Revert "SL-19434 Temporary fix for minimap breakage."Cosmic Linden
This reverts commit 084ef5173fb79644ce2fd3e640c241a05529db70.
2023-03-21SL-19434 Temporary fix for minimap breakage.Dave Parks
2023-03-13SL-19331: Improve performance of setSubImage (ex: media updates)Cosmic Linden
2023-03-10SL-19389: Fix textures not being optimally queued after the fix in SL-19338Cosmic Linden
In the future, some uses of glTexSubImage2D should be better vetted, ex: media prims
2023-03-08SL-19338: Don't use glTexSubImage2D on compressed texturesCosmic Linden
2023-03-08Revert "SL-19338: (WIP) Test disabling new use of glTexSubImage2D and see if ↵Cosmic Linden
the bug still repros" This reverts commit 6c486e485372a6f79e632839a7217c5208a09d0c.
2023-03-08SL-19338: (WIP) Test disabling new use of glTexSubImage2D and see if the bug ↵Cosmic Linden
still repros
2023-02-25Hammering on more mac optimizations.Jonathan "Geenz" Goodman
SL-18563
2023-01-19Fix for SL-19010 mac crash in LLManipTranslartge::restoreGL().Brad Linden
Attempt to simplify and avoid use of GL_UNSIGNED_INT_8_8_8_8_REV where not needed
2023-01-19SL-18869 Followup -- leverage "small commands" and time slicing to get rid ↵Dave Parks
of frame stalls on main thread without the need for multithreaded GL
2022-12-09SL-18809: Add WorkSchedule; remove timestamps from WorkQueue.Nat Goodspeed
For work queues that don't need timestamped tasks, eliminate the overhead of a priority queue ordered by timestamp. Timestamped task support moves to WorkSchedule. WorkQueue is a simpler queue that just waits for work. Both WorkQueue and WorkSchedule can be accessed via new WorkQueueBase API. Of course the WorkQueueBase API doesn't deal with timestamps, but a WorkSchedule can be accessed directly to post timestamped tasks and then handled normally (e.g. by ThreadPool) to run them. Most ThreadPool functionality migrates to new ThreadPoolBase class, with template subclass ThreadPoolUsing<WorkQueue> or ThreadPoolUsing<WorkSchedule> depending on need. ThreadPool is now an alias for ThreadPoolUsing<WorkQueue>. Importantly, ThreadPoolUsing::getQueue() delivers a reference to the specific queue subclass type, so you can post timestamped tasks on a queue retrieved from ThreadPoolUsing<WorkSchedule>::getQueue(). Since ThreadPool is no longer a simple class but an alias for a particular template specialization, introduce threadpool_fwd.h to forward-declare it. Recast workqueue_test.cpp to exercise WorkSchedule, since some of the tests are time-based. A future todo would be to exercise each applicable test with both WorkQueue and WorkSchedule.
2022-10-21Merge branch 'master' (DRTVWR-548) into DRTVWR-559Andrey Kleshchev
# Conflicts: # indra/llrender/llgl.cpp # indra/llrender/llrendertarget.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/app_settings/shaders/class1/deferred/materialF.glsl # indra/newview/llfloaterpreference.cpp # indra/newview/llviewercontrol.cpp # indra/newview/llviewermenu.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/llvovolume.cpp
2022-09-16Merge branch 'DRTVWR-559' of ssh://bitbucket.org/lindenlab/viewer into ↵Dave Parks
DRTVWR-559
2022-09-16SL-18128 Clear out much OpenGL cruft and switch to core profile on AMDDave Parks
2022-09-16Merge branch master (DRTVWR-571) into DRTVWR-559Andrey Kleshchev
# Conflicts: # indra/newview/llpanelface.cpp # indra/newview/llpanelface.h
2022-09-15Merge branch 'master' into DRTVWR-548-maint-NAndrey Lihatskiy
# Conflicts: # indra/newview/llmodelpreview.h
2022-09-01SL-17967 - Git rid of ARB that is in coreHoward Stearns
2022-08-30Merge remote-tracking branch 'remotes/origin/DRTVWR-563' into DRTVWR-559Dave Parks
2022-08-26SL-17997 Follow up from beta breakers results.Dave Parks
2022-07-06SL-17732 std_bad_alloc at setManualImageAndrey Kleshchev
2022-06-09SL-17483: Merge branch 'track-threadpools' into sl-17483.Nat Goodspeed
This picks up ThreadPoolSizes override logic embedded in ThreadPool's constructor, plus the new static ThreadPool::getConfiguredWidth() and getWidth() methods.
2022-06-09SL-17483: Simplify ThreadPool instantiations.Nat Goodspeed
Now that LL::ThreadPool's constructor has subsumed the work of discovering a runtime override width, LLAppViewer::initGeneralThread() can simply pass the compile-time default width instead of redundantly checking ThreadPoolSizes. Also the default ThreadPool capacity has been bumped up to what "General" and "LLImageGL" were requesting, so they need not pass that explicitly or explain in comments why they're doing it. But until we start throwing work at the "General" ThreadPool, configure it down to 1 thread in settings.xml.
2022-06-01SL-17485 Add texture memory accounting for OS XDave Parks
2022-05-26SL-17473 Viewer not clearing all Vertex Buffers in some casesAndrey Kleshchev
Image thread doesn't need mBuffer and buffer isn't thread safe so no point allocating it in an image thread.
2022-05-20SL-17287 Instrument and optimize cubemap render. Fix for cubemap snapshots ↵Dave Parks
doing a full resolution render instead of a 512x512 render.
2022-05-16SL-17284 Reflection probe tuning and optimization take 1Dave Parks
2022-04-15SL-17219 WIP - Texture pipeline overhaulDave Parks
2022-03-29SL-17005 WIP - Use D3D/DXGI to query for available VRAM on WindowsDave Parks
2022-03-11SL-17005 WIP Simplify what feeds texture loading bias to only pay attention ↵Dave Parks
to available memory according to OS and GL driver, not (broken) internal accounting (breaks intel GPUs, compatibility pass incoming).
2022-03-04SL-16928 Fix for broken bumpmaps on Intel GPUsDave Parks
2022-02-23Fix for mac buildDave Parks
2022-02-23Fix for some GPUs thinking they have 0 available vram.Dave Parks
2022-02-23Fix for media textures failing to update (and eating lots of memory) on ↵Dave Parks
Mac/Intel
2022-02-23SL-16815 and SL-16906 Avoid redundant bumpmap generation, add some ↵Dave Parks
assertions around ref counting and (hack) fix crash on shutdown from dangling texture reference (reduced to 1 dangling texture from several hundred, can't find the remaining reference).
2022-02-22SL-16815 Cleanup -- disable multithreaded bumpmap generation while tracking ↵Dave Parks
down loading issues, fix sync issue in single threaded mode in media textures, restore LL_IMAGEGL_THREAD_CHECK functionality
2022-02-22SL-16815 Fix for broken media texture updates when multithreaded GL is disabled.Dave Parks
2022-02-17SL-16815 Remove frame stalls from occlusion queries, bumpmap updates, and ↵Dave Parks
querying for available video memory.
2022-02-14SL-16418 Media texture update stall fix. Make media texture updates use ↵Dave Parks
LLImageGL thread to update, fix AMD sync issue on ImageGL thread and install debug callbacks on LLImageGL thread when debug gl enabled.
2022-02-01Revert "Merged in euclid-16418 (pull request #846)"Dave Houlton
This reverts commit 40fe5277e1390c975d9a3184ff8fc46d69dfb450, reversing changes made to af830e5fc5840194be95140f644a27011b9b7e06.
2022-01-27SL-16418 rename media tex image per-update to avoid contention stallDave Houlton
2022-01-14SL-16606: Add profiler category TEXTUREPtolemy
2021-12-06SL-16282 FIXED Friend thumbnails are flickeringMnikolenko Productengine
2021-12-06SL-16202 Put Multi-threaded GL behind a feature flag and update featuretable ↵Dave Parks
(decruftify settings, compatibility pass).
2021-12-03SL-16436 and SL-16327 Fix for RenderDebugGL test failures and fix for grey ↵Dave Parks
textures
2021-11-24DRTVWR-546, SL-16220, SL-16094: Undo previous glthread branch revert.Nat Goodspeed
Reverting a merge is sticky: it tells git you never want to see that branch again. Merging the DRTVWR-546 branch, which contained the revert, into the glthread branch undid much of the development work on that branch. To restore it we must revert the revert. This reverts commit 029b41c0419e975bbb28454538b46dc69ce5d2ba.
2021-11-23SL-16094, SL-16400: Merge branch 'DRTVWR-546' into glthreadNat Goodspeed
2021-11-23SL-16400: Add ThreadPool::start() method, and call it.Nat Goodspeed
It's sometimes important to finish other initialization before launching the threads in the ThreadPool, so make that an explicit step. In particular, we were launching the LLImageGL texture thread before initializing the GL context, resulting in all gray textures.
2021-11-22SL-16400 Fix for grey textures (hack).Runitai Linden