Commit Graph

739 Commits (9d6c74a0510c5221374e96e1a6dd6fecdfc41729)

Author SHA1 Message Date
Ansariel 9d6c74a051 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-04-25 22:21:12 +02:00
Andrey Kleshchev af9254e3e3 #3870 Added joint initialization for LLVOAvatarSelf
Sometimes mesh thread crashes when allocating joints
2025-04-22 12:17:54 +02:00
Andrey Kleshchev 9b531e01eb #3488 Reduce locking
1. 'sActive' variables are atomic, no locks needed
2. Fix trylocks. There are internal locks inside loadMeshLOD so without
checking locks 3 and 4 viewer would be locked on each loadMeshLOD,
potentially making main thread wait for threads to unlock.
2025-04-22 12:06:49 +02:00
Ansariel 03f622d0d4 Merge branch 'release/2025.04' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/llinventorybridge.cpp
#	indra/newview/lloutfitslist.cpp
#	indra/newview/skins/default/xui/en/strings.xml
2025-04-13 17:47:57 +02:00
Andrey Kleshchev 1c90421b88 #3596 Faster mesh thread shutdown 2025-04-11 12:36:48 +03:00
Ansariel 62e5fffd8e Merge branch 'release/2025.03' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/lldrawpooltree.cpp
#	indra/newview/lllocalbitmaps.cpp
#	indra/newview/lltextureview.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/skins/default/colors.xml
2025-03-23 12:29:33 +01:00
Andrey Kleshchev b6bf32e00e #3488 Prelock mutexes
Main thread has priority, it shouldn't be relocking on each loadMeshLOD
2025-03-19 19:13:20 +02:00
Ansariel d19e6abc5e Merge branch 'release/2025.03' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/llappviewer.cpp
#	indra/newview/llgiveinventory.cpp
#	indra/newview/llstartup.cpp
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
#	indra/newview/skins/default/xui/it/floater_avatar_textures.xml
#	indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
#	indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
#	indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
2025-03-01 01:09:19 +01:00
Andrey Kleshchev 100861aec1 #3596 Fix use of dead references
1. Was posting a would-be-dead reference to a thread
2. loadMeshLODs was getting dead references. It's no longer relevant so
just restored logic to wotk like it was before loadMeshLODs
2025-02-23 11:38:18 +02:00
Andrey Kleshchev f75968a328 #3596 Convert some mesh repository functions to const 2025-02-22 11:03:17 +02:00
Andrey Kleshchev 1503e84602 #3596 Fix mMutex in mesh thread 2025-02-22 10:42:28 +02:00
Andrey Kleshchev 29b13af84b #3596 Ensure correct loading mesh gets checked and removed 2025-02-22 10:41:11 +02:00
Andrey Kleshchev 847fd636cd Merge branch release/2025.03
# Conflicts:
#	indra/newview/llmeshrepository.cpp
#	indra/newview/llmeshrepository.h
2025-02-19 17:29:48 +02:00
Andrey Kleshchev 483e85cbf3 #3488 Prioritization adjustments 2025-02-19 14:16:42 +02:00
Ansariel 5bf1f485f3 Merge branch 'release/2024.12-ForeverFPS' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcommon/llqueuedthread.cpp
2025-02-13 21:24:29 +01:00
Andrey Lihatskiy ddbe1ff981 Fix xcode16 build errors 2025-02-13 17:30:08 +02:00
Andrey Kleshchev 74d2ed918d #3488 Speed up nearby avatar loading after a tp 2025-02-05 18:50:31 +02:00
Andrey Kleshchev 9bfdb7cf6c #3488 #3488 Move skin info processing out of mesh thread
Skin info parsing is expensive, offload to thread pool
2025-02-04 19:29:05 +02:00
Andrey Kleshchev 8c4abf8feb #3488 Fix skin info not reading from cache 2025-02-04 19:29:05 +02:00
Andrey Kleshchev 912c99ae96 #3488 Fix cache using wrong offset 2025-02-04 19:29:05 +02:00
Andrey Kleshchev 587444bd27 #3488 mutex lock mSkinMap 2025-02-04 19:29:05 +02:00
Andrey Kleshchev f5f98e1c28 #3488 Fix mesh header condition 2025-02-04 02:45:55 +02:00
Andrey Kleshchev 7eb9dd3e0d #3488 Move lod processing out of mesh thread 2025-02-04 01:33:29 +02:00
Andrey Kleshchev 33303b9011 #3488 Split mesh thread mutexes
Tracy shows that thread waits a lot on mutexes.
Split in and out mutexes, so that new work can be scheduled by main
thread without blocking handling
2025-02-03 19:01:30 +02:00
Andrey Kleshchev 314ef5389c #3488 Fix last retry not saving handle
Request was sent and handle is valid, save it
2025-01-31 19:09:05 +02:00
Andrey Kleshchev e97976831d #3488 Minimize allocations 2025-01-31 03:41:04 +02:00
Andrey Kleshchev c405cd379a #3488 Avoid reading meshes from disk when not nessesary
LLMeshHeaderHandler preallocates file with empty data, there is no point
reading large empty sections so write presense flags at the start of the
file
2025-01-31 03:41:04 +02:00
Andrey Kleshchev 52fb53a4d6 #3488 Make mesh_header_map a bit simpler
preparation for further work
2025-01-31 03:41:04 +02:00
Andrey Kleshchev 8456572db0 #1186 Profiling 2025-01-31 03:38:20 +02:00
Andrey Kleshchev 1a3b221ea4 #1186 Speed up mesh header post processing
1. Don't do an extra skin request unless there is info about a skin
2. Proccess lods on the go if they were in initial packet
2025-01-31 03:35:58 +02:00
Andrey Kleshchev a428b7dfbd #1186 Improve handling of duplciate requests 2025-01-28 20:48:44 +02:00
Andrey Kleshchev e20f4c0e4f #1186 Fix mesh queues getting overfilled
Account for queue size instead of just active request
Reduce mutex locking
Prioritize skininfo queue over lod queue to lessen issues with t-poses
2025-01-28 20:48:17 +02:00
Andrey Kleshchev 8e17f0c094 #1186 Fix skin request not being counted for the total 2025-01-28 20:48:02 +02:00
Andrey Kleshchev 3271408650 #1186 Make mesh repository account for avatars
when calculating priority
2025-01-28 20:47:46 +02:00
Andrey Kleshchev 8f274bfdf9 #1186 Make lod and skin request share priorities
skins are needed to decloud avatars as much as lods
2025-01-28 20:46:52 +02:00
Ansariel 82e37d1dfc Merge branch 'release/2024.09-ExtraFPS' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/llmodelpreview.cpp
2024-10-07 10:34:08 +02:00
Rye Mutt 74fe406916 Fix thread-unsafe usage of LLPointer and LLMeshSkinInfo(#2755) (#2759) 2024-10-01 16:06:33 -07:00
Ansariel 3c6aab0812 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llrender/llrender2dutils.cpp
#	indra/llui/llfolderviewitem.cpp
2024-09-18 12:16:32 +02:00
Dave Parks fd843d514a
Mac pass (#2587) 2024-09-17 13:07:01 -05:00
Ansariel 44ccbea344 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/character/avatar_lad.xml
#	indra/newview/llappviewer.cpp
#	indra/newview/lldynamictexture.cpp
#	indra/newview/llface.cpp
#	indra/newview/llmeshrepository.cpp
#	indra/newview/llviewermessage.cpp
#	indra/newview/llvoavatar.cpp
2024-09-17 18:12:46 +02:00
Dave Parks 486613e79b
Profile guided optimization pass (#2582)
- Tune up LLJointRiggingInfoTab
- Visualize joint bounding boxes when visualizing joints
- Use LLJointRiggingInfo to caclulate desired resolution of a texture
- Throttle calls to calcPixelArea
- Fetch MeshSkinInfo immediately when header is received
2024-09-16 18:49:03 -05:00
Ansariel 571155c561 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llfilesystem/lldiskcache.cpp
#	indra/llfilesystem/lldiskcache.h
#	indra/llfilesystem/llfilesystem.cpp
#	indra/llui/llaccordionctrl.cpp
#	indra/llui/llaccordionctrl.h
#	indra/newview/llfloaterimnearbychathandler.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/llfloatersettingsdebug.cpp
#	indra/newview/llfloatersettingsdebug.h
#	indra/newview/llfloatertools.cpp
#	indra/newview/llfloatertools.h
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/llpanelmaininventory.h
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llpreviewnotecard.cpp
#	indra/newview/llpreviewnotecard.h
#	indra/newview/llpreviewscript.cpp
#	indra/newview/llpreviewtexture.cpp
#	indra/newview/llscreenchannel.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
2024-08-19 18:55:52 +02:00
Ansariel Hiller d6190bbf13
Refactor LLFileSystem for and fix an old issue in LLFile (#2332) 2024-08-19 09:39:35 +03:00
Ansariel ad60f1cbee Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/llfloaterworldmap.cpp
#	indra/newview/llfloaterworldmap.h
#	indra/newview/llworldmap.h
#	indra/newview/skins/default/xui/en/floater_world_map.xml
2024-08-03 00:47:13 +02:00
Andrey Kleshchev a37590b452 viewer#853 Fix upload losing face data.
Multiple faces can share same mMaterial
2024-08-02 15:41:52 +03:00
Ansariel 02680c6a8f Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Boost.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/llaudio/llaudiodecodemgr.cpp
#	indra/llxml/llxmltree.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterworldmap.cpp
#	indra/newview/llfloaterworldmap.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llinventorygallerymenu.cpp
#	indra/newview/llpanelgroup.cpp
#	indra/newview/llpanelgroup.h
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/viewer_manifest.py
2024-07-30 12:32:41 +02:00
Andrey Kleshchev c5d2e92089 viewer#2071 Soft quit on 'out of memory' for meshes #2 2024-07-29 21:20:38 +03:00
Andrey Kleshchev c4ff0b4889 viewer#2071 Properly handle 'out of memory' for meshes 2024-07-29 21:20:38 +03:00
Ansariel 450d02ad39 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	.github/ISSUE_TEMPLATE/10-bug.yaml
#	indra/llui/lldockcontrol.cpp
#	indra/llui/llscrolllistctrl.cpp
#	indra/llui/llviewereventrecorder.cpp
#	indra/newview/llfloaterland.cpp
#	indra/newview/llfloaterregioninfo.cpp
#	indra/newview/llfloaterworldmap.cpp
#	indra/newview/llmeshrepository.cpp
#	indra/newview/llpanelgroup.cpp
#	indra/newview/llpanelgrouproles.cpp
#	indra/newview/llpanelland.cpp
#	indra/newview/llphysicsmotion.cpp
#	indra/newview/lltexturectrl.h
#	indra/newview/lltoolpie.cpp
#	indra/newview/llviewermenu.cpp
2024-07-25 20:47:57 +02:00
Rye Mutt 4b543b618b Cache more frequently accessed settings 2024-07-24 15:05:08 -04:00