Commit Graph

274 Commits (2b255535efbce4634cdd2c671f597774e1783372)

Author SHA1 Message Date
Dave Parks 2b255535ef
2590 mac intel and radeon pro 5300m horrible fps 2 (#3030)
* 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
2024-11-12 15:26:38 -08:00
Jonathan "Geenz" Goodman ef11af28d4
#2637 Revert to the previous alpha analysis to maintain legacy content parity. (#3061) 2024-11-08 14:51:19 -05:00
Andrey Kleshchev 1924c44caf viewer#2741 Don't reallocate image conversion buffer all the time 2024-10-20 16:48:27 +03:00
Andrey Kleshchev 85b7210fb9 viewer#2741 Sligtly better logging for a crash 2024-10-05 10:08:27 +03:00
RunitaiLinden cde5d29faf Profile guided optimizations 2024-09-10 18:27:45 -05:00
Brad Linden ecf3002a46 Merge remote-tracking branch 'origin/release/2024.08-DeltaFPS' into develop 2024-08-29 13:32:34 -07:00
Dave Parks 8406d1052c
#2428 Fix for crash when applying PBR material (#2430)
Also attempt to fix some occasional bad texture memory tracking.
2024-08-27 09:53:54 -07:00
Rye Cogtail 436e986893 Fix mac crash on startup due to missing types from enum 2024-08-24 00:55:34 -04:00
Rye Mutt 28331b2385
Do deprecated texture swizzle on GPU using GL texture swizzling functions (#2389)
* Use GL texture swizzling instead of scratch buffer for deprecated formats when GL 3.3 is available
Fix crash when GL texture compression is enabled

* Fix UI font atlas being eligible for texture compression
2024-08-22 10:25:25 -05:00
Dave Parks 0e59ed204f
Fix crash on Intel GPUs (or anywhere OpenGL compatibility profile is used). (#2387) 2024-08-21 14:36:18 -05:00
Rye Mutt db84bf9567
Improve accuracy of texture memory tracking (#2371)
* Fix alloc_tex_image to account for more missing texture memory
Change alloc_tex_image calls to pass internal format to properly account for used image type

* Fix scaleDown passing primary format in place of internal format to glTexImage2D

* Make texture debug view and texture bias calculation consistent and remove double accounting for render target textures
2024-08-21 09:47:31 -05:00
Ansariel 9fdca96f8b Re-enable compiler warnings C4244 and C4396 except for lltracerecording.h and llunittype.h for now 2024-07-08 20:27:14 +02:00
Dave Parks 08b933a0c6
#1870 Tune up for better experience on integrated intel with low memory (#1872)
* More deterministic vsize calculation.   Add control for choosing downscale method.
* Quick hack to make GLTF preview work again
2024-07-03 17:42:24 -05:00
Dave Parks ab87978cbc
1836 dont store texture in system memory unless absolutely necessary (#1843)
* #1836 Texture memory usage overhaul.  Much decrufting
- don't keep a copy of textures in system memory
- use GPU to downrez textures instead of reloading from cache
- use GPU to generate brightness/darkness bumpmaps
2024-06-27 13:12:43 -05:00
Ansariel c0fad3028f Re-enable compiler warnings C4018, C4100, C4231 and C4506 2024-06-10 16:42:43 +02:00
Ansariel e2e37cced8 Fix line endlings 2024-05-22 22:40:26 +03:00
Ansariel 1b67dd855c Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/lllistener_fmodstudio.cpp
#	indra/llaudio/lllistener_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.cpp
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llimpanel.cpp
#	indra/newview/llimpanel.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
#	indra/test/test.cpp
2024-05-22 19:04:52 +02:00
Alexander Gavriliuk f9473e8afc secondlife/viewer#1333 BOOL to bool conversion leftovers: ternaries 2024-05-07 10:18:51 +02:00
Andrey Kleshchev a156998fa6 viewer#799 Account for reflection probes' memory 2024-05-07 08:25:13 +03:00
Andrey Lihatskiy 1b68f71348 #824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed 2024-04-29 07:56:09 +03:00
Andrey Lihatskiy 71ed19839e Merge branch 'main' into DRTVWR-600-maint-A
# Conflicts:
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterchangeitemthumbnail.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llselectmgr.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturectrl.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llvovolume.cpp
2024-03-27 00:45:06 +02:00
Andrey Kleshchev 78ce375dda SL-17896 Don't crash silently if files are missing or out of memory
Under debug LL_ERRS will show a message as well, but release won't show
anything and will quit silently so show a notification when applicable.
2024-03-05 00:29:35 +02:00
Ansariel b2c2713672 Convert BOOL to bool in llrender 2024-02-20 02:14:01 +02:00
Lars Næsbye Christensen f1c97f4057 misc: BOOL to bool 2024-02-18 22:04:44 +02:00
Lars Næsbye Christensen da967da9c7 Rename OS X to macOS, mostly in comments
We only support 10.13+ now, and it's been called macOS since 10.12. References in code to older versions are unchanged.
2024-01-11 19:11:33 +02:00
Alexander Gavriliuk 74c8b028d4 SL-20743 Use LLMutex in LLImageBase for internal data thread-safety 2023-12-21 19:12:52 +01:00
Rye Mutt a4c2eab969
Fix integer overflow when framebuffers are extremely high resolution resulting in INT_MAX texture bias (#393) 2023-09-28 15:05:37 -05:00
Brad Linden f975cfd736 Merge remote-tracking branch 'origin/main' into DRTVWR-559 2023-07-17 13:37:03 -07:00
cosmic-linden d6d634d29f
SL-19331: Move media updates off-thread on select hardware (#153)
* 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-04-05 11:55:33 -05:00
Cosmic Linden a218eed9a6 SL-19434: Fix texture issues with minimap, but keep performance from SL-19331 2023-03-21 14:28:56 -07:00
Cosmic Linden 7d97008eba Revert "SL-19434 Temporary fix for minimap breakage."
This reverts commit 084ef5173f.
2023-03-21 14:27:37 -07:00
Alexander Gavriliuk 275ad3fdab SL-19266 Potential Use-After-Free in LLImageGL::setImage 2023-03-21 17:04:48 +01:00
Dave Parks 084ef5173f SL-19434 Temporary fix for minimap breakage. 2023-03-21 09:29:44 -05:00
Cosmic Linden 4319ba5edc SL-19331: Improve performance of setSubImage (ex: media updates) 2023-03-13 16:47:11 -07:00
Cosmic Linden c734602592 SL-19389: Fix textures not being optimally queued after the fix in SL-19338
In the future, some uses of glTexSubImage2D should be better vetted, ex: media prims
2023-03-10 17:32:35 -08:00
Cosmic Linden f3eaf390fe SL-19338: Don't use glTexSubImage2D on compressed textures 2023-03-08 16:57:38 -08:00
Cosmic Linden 3773bac6b4 Revert "SL-19338: (WIP) Test disabling new use of glTexSubImage2D and see if the bug still repros"
This reverts commit 6c486e4853.
2023-03-08 14:21:44 -08:00
Cosmic Linden 6c486e4853 SL-19338: (WIP) Test disabling new use of glTexSubImage2D and see if the bug still repros 2023-03-08 12:40:45 -08:00
Jonathan "Geenz" Goodman 46b2c0660a Hammering on more mac optimizations.
SL-18563
2023-02-25 22:24:46 -08:00
Brad Linden d8cdfaa645 Fix for SL-19010 mac crash in LLManipTranslartge::restoreGL().
Attempt to simplify and avoid use of GL_UNSIGNED_INT_8_8_8_8_REV where not needed
2023-01-19 14:25:14 -08:00
Dave Parks 8b39e0e1a6 SL-18869 Followup -- leverage "small commands" and time slicing to get rid of frame stalls on main thread without the need for multithreaded GL 2023-01-19 11:33:11 -06:00
Nat Goodspeed fc424a0db9 SL-18809: Add WorkSchedule; remove timestamps from WorkQueue.
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-12-09 13:21:45 -05:00
Andrey Kleshchev 24fb2f8336 Merge branch 'master' (DRTVWR-548) into DRTVWR-559
# 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-10-21 18:19:27 +03:00
Dave Parks 09f3d6eaee Merge branch 'DRTVWR-559' of ssh://bitbucket.org/lindenlab/viewer into DRTVWR-559 2022-09-16 16:25:38 -05:00
Dave Parks 8dc59e5ef3 SL-18128 Clear out much OpenGL cruft and switch to core profile on AMD 2022-09-16 16:25:26 -05:00
Andrey Kleshchev 7649114588 Merge branch master (DRTVWR-571) into DRTVWR-559
# Conflicts:
#	indra/newview/llpanelface.cpp
#	indra/newview/llpanelface.h
2022-09-16 21:07:39 +03:00
Andrey Lihatskiy 329268c5f7 Merge branch 'master' into DRTVWR-548-maint-N
# Conflicts:
#	indra/newview/llmodelpreview.h
2022-09-15 20:44:04 +03:00
Howard Stearns 2082443220 SL-17967 - Git rid of ARB that is in core 2022-09-01 10:58:27 -07:00
Dave Parks 197ac7cc20 Merge remote-tracking branch 'remotes/origin/DRTVWR-563' into DRTVWR-559 2022-08-30 10:46:36 -05:00
Dave Parks 9bee2a92d2 SL-17997 Follow up from beta breakers results. 2022-08-26 10:51:42 -05:00