Age | Commit message (Collapse) | Author |
|
not into work folder, viewer isn't supposed to write there.
|
|
|
|
# Conflicts:
# indra/newview/llvoavatar.cpp
|
|
|
|
(#4398, #4408)
When trying to update the rigging info for a newly received mesh LOD,
a wrong usage of LLVolume::getNumFaces() is done to get the number of
volume faces, causing the code to iterate over the number of faces in
the underlying LLProfile instead. LLVolume::getNumVolumeFaces() must
be used here.
This fixes a crash bug seen with low LODs in some meshes (when the number
of mesh faces is smaller than the number of faces in the LLProfile), and
also properly updates the rigging info for all mesh faces, as it should,
when the mesh got more faces than the LLProfile.
|
|
|
|
to make root prim more deterministic instead of being random each try
|
|
|
|
for better comparison with collada output
|
|
# Conflicts:
# .github/workflows/qatest.yaml
# indra/llcommon/llsdutil.h
# indra/llui/llflatlistview.h
# indra/newview/llinventorybridge.cpp
# indra/newview/lloutfitgallery.cpp
# indra/newview/lloutfitgallery.h
|
|
|
|
|
|
Sometimes mesh thread crashes when allocating joints
|
|
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.
|
|
# Conflicts:
# indra/llcommon/lldate.h
# indra/newview/llappviewer.cpp
# indra/newview/llinventorybridge.cpp
# indra/newview/llmaterialeditor.cpp
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llvoavatar.cpp
|
|
|
|
# Conflicts:
# indra/llmath/v2math.cpp
# indra/llmath/v2math.h
# indra/llmath/v3math.h
# indra/llmath/v4math.h
# indra/llui/llfolderviewitem.cpp
# indra/llui/llfolderviewitem.h
# indra/llui/llfolderviewmodel.h
# indra/llui/llmodaldialog.cpp
# indra/llui/lltexteditor.cpp
# indra/llui/lltexteditor.h
# indra/llwindow/llwindowwin32.cpp
# indra/newview/llagent.cpp
# indra/newview/llagentcamera.h
# indra/newview/llavatarrenderinfoaccountant.cpp
# indra/newview/llconversationmodel.h
# indra/newview/llfloaterinventorysettings.cpp
# indra/newview/llfloaternamedesc.cpp
# indra/newview/llfloaternamedesc.h
# indra/newview/llfloaterobjectweights.cpp
# indra/newview/llfloaterobjectweights.h
# indra/newview/llfolderviewmodelinventory.h
# indra/newview/llinspecttexture.cpp
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventorygallery.h
# indra/newview/llinventorygallerymenu.cpp
# indra/newview/llinventorymodel.cpp
# indra/newview/llinventorypanel.cpp
# indra/newview/llinventorypanel.h
# indra/newview/llmaterialeditor.cpp
# indra/newview/lloutfitgallery.cpp
# indra/newview/lloutfitgallery.h
# indra/newview/lloutfitslist.cpp
# indra/newview/lloutfitslist.h
# indra/newview/llpanelgroupcreate.cpp
# indra/newview/llpanelgroupgeneral.cpp
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpaneloutfitsinventory.h
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelwearing.cpp
# indra/newview/llreflectionmap.cpp
# indra/newview/llselectmgr.cpp
# indra/newview/llsidepanelappearance.cpp
# indra/newview/llsidepaneliteminfo.cpp
# indra/newview/llteleporthistorystorage.cpp
# indra/newview/lltexturectrl.cpp
# indra/newview/lltexturectrl.h
# indra/newview/lltexturefetch.cpp
# indra/newview/lltexturefetch.h
# indra/newview/llviewerassetupload.cpp
# indra/newview/llviewercamera.cpp
# indra/newview/llviewercamera.h
# indra/newview/llviewermenufile.cpp
# indra/newview/llviewerobject.h
# indra/newview/llviewertexture.cpp
# indra/newview/llviewerwindow.cpp
# indra/newview/llvoavatar.cpp
# indra/newview/llvoavatar.h
# indra/newview/llvoavatarself.cpp
# indra/newview/llvovolume.cpp
# indra/newview/llvovolume.h
# indra/newview/tests/llviewerassetstats_test.cpp
|
|
Main thread has priority, it shouldn't be relocking on each loadMeshLOD
|
|
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
|
|
|
|
|
|
|
|
# Conflicts:
# indra/newview/llmeshrepository.cpp
# indra/newview/llmeshrepository.h
|
|
|
|
|
|
|
|
Skin info parsing is expensive, offload to thread pool
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
Request was sent and handle is valid, save it
|
|
|
|
LLMeshHeaderHandler preallocates file with empty data, there is no point
reading large empty sections so write presense flags at the start of the
file
|
|
preparation for further work
|
|
|
|
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
|
|
|
|
Account for queue size instead of just active request
Reduce mutex locking
Prioritize skininfo queue over lod queue to lessen issues with t-poses
|
|
|
|
when calculating priority
|
|
skins are needed to decloud avatars as much as lods
|
|
|
|
|
|
- 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
|
|
|
|
Multiple faces can share same mMaterial
|
|
|