Commit Graph

3441 Commits (455364e3e9d71ca4107c0d1dbb52e9d754dbf317)

Author SHA1 Message Date
Rye d63cb2052f Rework new convex decomp into a physicsextensions stub package and fix havok and havok_tpv builds for darwin universal to utilize new vhacd stub (#4858) 2025-11-19 11:05:41 +10:00
Rye b6ba43bed5 Initial VHACD based llconvexdecomposition 2025-11-19 10:47:34 +10:00
Hecklezz 63be19b0e4 Update dullahan package for Linux and other platforms for consistency 2025-11-18 04:34:18 +10:00
Hecklezz 0e59ef1112 Updated APR library and removed hotfix patch in APR cmake 2025-10-22 19:20:04 +10:00
Hecklezz 6184be4e84 Updated autobuild.xml for missing MacOS universal libraries 2025-10-17 15:26:26 +10:00
Hecklezz 27fe962a3a Merge remote-tracking branch 'upstream/release/2025.07' 2025-10-17 15:20:58 +10:00
Ansariel 06e8393846 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-16 22:48:43 +02:00
Beq 125f42cbe7 Use RyeMutt fixed WebRTC in lieu of LL until upstream is re-aligned
Linux support is broken in LL's upstream repo. Using Rye's fixes across all three platforms for consistency
2025-10-15 14:30:32 +01:00
Roxanne Skelly d070b996bd [WebRTC] Rework device handling sequence so that we can handle unplugging/re-plugging devices (#4593)
* [WebRTC] Rework device handling sequence so that we can handle unplugging/re-plugging devices

The device handling was not processing device updates in the proper sequence as
things like AEC use both input and output devices.  Devices like headsets are both
so unplugging them resulted in various mute conditions and sometimes even a crash.

Now, we update both capture and render devices at once in the proper sequence.

Test Guidance:
* Bring two users in the same place in webrtc regions.
* The 'listening' one should have a headset or something set oas 'Default'
* Press 'talk' on one, and verify the other can hear.
* Unplug the headset from the listening one.
* Validate that audio changes from the headset to the speakers.
* Plug the headset back in.
* Validate that audio changes from speakers to headset.
* Do the same type of test with the headset viewer talking.
* The microphone used should switch from the headset to the computer (it should have one)

Do other various device tests, such as setting devices explicitly, messing with the device selector, etc.

* Fix race condition when multiple change device requests might come in at once

* Update to m137

The primary feature of this commit is to update libwebrtc from m114
to m137.  This is needed to make webrtc buildable, as m114 is not buildable
by the current toolset.

m137 had some changes to the API, which required renaming or changing namespace
of some of the calls.

Additionally, this PR moves from a callback mechanism for gathering the energy
levels for tuning to a wrapper AudioDeviceModule, which gives us more control
over the audio stream.

Finally, the new m137-based webrtc has been updated to allow for 192khz audio
streams.

* Properly pass the observer setting into the inner audio device module

* Update to m137 and get rid of some noise

    This change updates to m137 from m114, which required a few API changes.

    Additionally, this fixes the hiss that happens shortly after someone unmutes: https://github.com/secondlife/server/issues/2094

    There was also an issue with a slight amount of repeated after unmuting if there was audio right before unmuting.  This is because
    the audio processing and buffering still had audio from the previous speaking session.  Now, we inject nearly a half second of
    silence into the audio buffers/processor after unmuting to flush things.

* Install nsis on windows

* Use the newer digital AGC pipeline

m137 improved the AGC pipeline and the existing analog style is going away
so move to the new digital pipeline.

Also, some tweaking for audio levels so that we don't see inworld bars when tuning,
so one's own bars seem a reasonable size, etc.

* Install NSIS during windows sisgning and package build step

* Try pinning the packaging to windows 2022 to deal with missing nsis

* Adjust gain calculation and audio level calculations for tuning and peer connections

* Update with mac universal webrtc build

* Tuning of voice indicators for both tuning mode and inworld for self.

* Redo device deployment to handle cases where multiple deploy requests pile up

Also, mute when leaving webrtc-enabled regions or parcels,
and unmute when voice comes back.

* pre commit issue
2025-10-12 16:32:18 +10:00
Callum Linden 95337dfc36
Fix for viewer-private/issues/489 - HTTP Basic Auth dialog should not be present (#4799) 2025-10-08 15:39:23 -04:00
Brad Linden b314a0bb64 new llphysicsextensions_source package that sets OSX_ARCHITECTURES properly
and should hopefully package llphysicsextensions_tpv successfully
2025-10-02 13:35:54 -07:00
Brad Linden 589498fece Reenable havok llphysicsextensions on Darwin x86_64 with llphysicsextensions_stub used for aarch64 2025-10-01 18:01:19 -07:00
Ansariel 4cef6a28e7 Update this too... 2025-10-01 01:19:54 +02:00
Ansariel 57a18377b5 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-01 01:19:09 +02:00
Beq a61a802c34 Universal-arch KDU for Mac 2025-10-01 00:10:10 +01:00
Beq 9e11b02b81 KDU 8.6 2025-09-30 17:59:38 +01:00
Ansariel 5fdef7863e Merge branch 'release/2025.07' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/skins/default/xui/en/menu_inventory.xml
2025-09-16 18:33:02 +02:00
Roxanne Skelly a6d4c1d394
[WebRTC] Rework device handling sequence so that we can handle unplugging/re-plugging devices (#4593)
* [WebRTC] Rework device handling sequence so that we can handle unplugging/re-plugging devices

The device handling was not processing device updates in the proper sequence as
things like AEC use both input and output devices.  Devices like headsets are both
so unplugging them resulted in various mute conditions and sometimes even a crash.

Now, we update both capture and render devices at once in the proper sequence.

Test Guidance:
* Bring two users in the same place in webrtc regions.
* The 'listening' one should have a headset or something set oas 'Default'
* Press 'talk' on one, and verify the other can hear.
* Unplug the headset from the listening one.
* Validate that audio changes from the headset to the speakers.
* Plug the headset back in.
* Validate that audio changes from speakers to headset.
* Do the same type of test with the headset viewer talking.
* The microphone used should switch from the headset to the computer (it should have one)

Do other various device tests, such as setting devices explicitly, messing with the device selector, etc.

* Fix race condition when multiple change device requests might come in at once

* Update to m137

The primary feature of this commit is to update libwebrtc from m114
to m137.  This is needed to make webrtc buildable, as m114 is not buildable
by the current toolset.

m137 had some changes to the API, which required renaming or changing namespace
of some of the calls.

Additionally, this PR moves from a callback mechanism for gathering the energy
levels for tuning to a wrapper AudioDeviceModule, which gives us more control
over the audio stream.

Finally, the new m137-based webrtc has been updated to allow for 192khz audio
streams.

* Properly pass the observer setting into the inner audio device module

* Update to m137 and get rid of some noise

    This change updates to m137 from m114, which required a few API changes.

    Additionally, this fixes the hiss that happens shortly after someone unmutes: https://github.com/secondlife/server/issues/2094

    There was also an issue with a slight amount of repeated after unmuting if there was audio right before unmuting.  This is because
    the audio processing and buffering still had audio from the previous speaking session.  Now, we inject nearly a half second of
    silence into the audio buffers/processor after unmuting to flush things.

* Install nsis on windows

* Use the newer digital AGC pipeline

m137 improved the AGC pipeline and the existing analog style is going away
so move to the new digital pipeline.

Also, some tweaking for audio levels so that we don't see inworld bars when tuning,
so one's own bars seem a reasonable size, etc.

* Install NSIS during windows sisgning and package build step

* Try pinning the packaging to windows 2022 to deal with missing nsis

* Adjust gain calculation and audio level calculations for tuning and peer connections

* Update with mac universal webrtc build

* Tuning of voice indicators for both tuning mode and inworld for self.

* Redo device deployment to handle cases where multiple deploy requests pile up

Also, mute when leaving webrtc-enabled regions or parcels,
and unmute when voice comes back.

* pre commit issue
2025-09-12 20:07:51 -04:00
Ansariel a7fe0c1d78 Merge branch 'release/2025.07' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llwindow/llopenglview-objc.mm
2025-09-12 12:42:49 +02:00
Rye 452c8e0ea4
Follow up fixes for Apple Silicon (#4662)
* Remove GLM sse flag from cmake that was moved to llpreprocessor.h

* Further reduce performance loss of HDR and Sharpening on bandwith-constrained gpu by combining gamma correction into tonemap/sharpening shader passes

* Update SSE2NEON to 1.8.0 to fix random render nans

* Fix occasional startup crash from LLCachedControl being declared in global scope
2025-09-11 20:54:32 -04:00
Ansariel 255b5c6381 Merge branch 'project/mac_universal' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/CMakeLists.txt
#	indra/cmake/LLKDU.cmake
#	indra/newview/CMakeLists.txt
2025-09-06 12:03:58 +02:00
Callum Prentice 789a64b0de Incorporate the latest buld of KDU 8.4.1 with the universal macos libs 2025-09-05 13:45:47 -07:00
Ansariel b99cf9fb86 Merge branch 'project/mac_universal' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/00-Common.cmake
#	indra/cmake/APR.cmake
#	indra/cmake/Audio.cmake
#	indra/cmake/Boost.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/LLKDU.cmake
#	indra/cmake/LLPrimitive.cmake
#	indra/cmake/Meshoptimizer.cmake
#	indra/cmake/NGHTTP2.cmake
#	indra/cmake/OPENAL.cmake
#	indra/llaudio/llvorbisencode.cpp
#	indra/llcommon/linden_common.h
#	indra/llcommon/llcommon.cpp
#	indra/llcommon/llfasttimer.cpp
#	indra/llcommon/llfasttimer.h
#	indra/llcommon/llfile.cpp
#	indra/llcommon/llmemory.h
#	indra/llcommon/llprofiler.h
#	indra/llcommon/llthreadsafequeue.h
#	indra/llfilesystem/lldir_win32.cpp
#	indra/llkdu/llimagej2ckdu.cpp
#	indra/llkdu/llimagej2ckdu.h
#	indra/llkdu/llkdumem.h
#	indra/llplugin/slplugin/CMakeLists.txt
#	indra/llrender/llfontfreetype.cpp
#	indra/llrender/llfontfreetype.h
#	indra/llwindow/CMakeLists.txt
#	indra/llwindow/llopenglview-objc.mm
#	indra/llwindow/llwindowmacosx-objc.h
#	indra/llwindow/llwindowwin32.cpp
#	indra/media_plugins/cef/CMakeLists.txt
#	indra/newview/CMakeLists.txt
#	indra/newview/llappviewer.cpp
#	indra/newview/llface.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/viewer_manifest.py
2025-09-05 14:55:37 +02:00
Rye f1014eda27 Bump openjpeg to 2.5.3-r1 2025-08-28 06:19:15 -04:00
Rye 77d71dec86 Fix up universal build 2025-08-28 00:43:38 -04:00
Rye 34ae3db498 Merge branch 'callum/viewer-cef-2025-08' into rye/infinitemac 2025-08-27 23:07:22 -04:00
Callum Prentice 87ec630053 PUll in Dullahan 1.21 that contains additional updates for the macOS version which should help with the slow media startup issue 2025-08-27 15:30:32 -07:00
Callum Prentice e935a8aebc Merge branch 'develop' into callum/viewer-cef-2025-08 2025-08-22 17:12:03 -07:00
Callum Prentice bebd1b208e Bring in Dullahan 1.20.0 and by that, CEF 139.0.28. Update the CEF media plugin accordingly to take account of Dullahan cache changes 2025-08-22 17:10:29 -07:00
Rye ba30737d8f Merge branch 'develop' of github.com:secondlife/viewer into rye/infinitemac 2025-08-20 18:04:55 -04:00
Ansariel 9c73af6e2a Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/CMakeLists.txt
2025-08-14 20:30:27 +02:00
Brad Linden 4c65a43e17
CMake 4.10 compatibility fixes (#4548) 2025-08-14 09:47:22 -07:00
Callum Prentice 1bbad3fd00 This commit introduces CEF 139 which works now that each media instance has its own cache/cookies folder (previous commit). It also changes the Test Bookmarks page to a heavily updated one with new links and a filter/search mechanism 2025-08-11 18:45:15 -07:00
Ansariel 539959a7f8 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm-develop
# Conflicts:
#	.github/workflows/qatest.yaml
#	indra/newview/llfloatermodelpreview.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llwearableitemslist.cpp
2025-08-06 18:47:44 +02:00
Ansariel b4e83bc346 Merge branch 'develop' of https://github.com/secondlife/viewer 2025-08-06 18:27:08 +02:00
Andrey Kleshchev ce9d66cdd1 Merge branch develop into 2025.06
# Conflicts:
#	indra/newview/llvoavatar.cpp
2025-08-06 16:05:19 +03:00
Andrey Kleshchev 819817f5c9 #4470 Temporarily disable Discord SDK 2025-08-06 14:39:11 +03:00
Ansariel 2034100049 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/Discord.cmake
#	indra/newview/CMakeLists.txt
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/viewer_manifest.py
2025-08-05 17:50:50 +02:00
Andrey Kleshchev 61d53a8731 #4470 Plug in Discord SDK package 2025-08-05 18:26:29 +03:00
Ansariel 6cb5a7425f Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
# Conflicts:
#	indra/newview/llskinningutil.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/skins/default/xui/ja/strings.xml
2025-05-23 12:22:21 +02:00
Beq b140b9451d Update FMOD Studio to 2.03.07 for Linux and MacOS 2025-04-22 19:09:00 +01:00
Ansariel 096e32ff03 Update FMOD Studio to 2.03.07 on Windows 2025-04-22 13:53:58 +02:00
Ansariel 4c355879cc Merge branch 'release/2025.05' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/llui/llfolderviewitem.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltexteditor.h
#	indra/newview/app_settings/settings.xml
#	indra/newview/llagent.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloatermodelpreview.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryfilter.cpp
#	indra/newview/llinventoryfilter.h
#	indra/newview/llmaterialeditor.cpp
#	indra/newview/lloutfitslist.cpp
#	indra/newview/lloutfitslist.h
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/llpaneloutfitedit.cpp
#	indra/newview/llpaneloutfitsinventory.cpp
#	indra/newview/llpaneloutfitsinventory.h
#	indra/newview/llpanelpermissions.cpp
#	indra/newview/llpanelpermissions.h
#	indra/newview/llpanelwearing.cpp
#	indra/newview/llpanelwearing.h
#	indra/newview/llselectmgr.h
#	indra/newview/llskinningutil.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturefetch.cpp
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llviewerattachmenu.cpp
#	indra/newview/llviewerinventory.cpp
#	indra/newview/llviewerinventory.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llwearableitemslist.cpp
#	indra/newview/skins/default/textures/textures.xml
#	indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
#	indra/newview/skins/default/xui/en/floater_object_weights.xml
#	indra/newview/skins/default/xui/en/menu_gallery_outfit_tab.xml
#	indra/newview/skins/default/xui/en/menu_inventory.xml
#	indra/newview/skins/default/xui/en/menu_outfit_tab.xml
#	indra/newview/skins/default/xui/en/menu_wearing_tab.xml
#	indra/newview/skins/default/xui/en/notifications.xml
#	indra/newview/skins/default/xui/en/panel_main_inventory.xml
#	indra/newview/skins/default/xui/en/panel_outfit_gallery.xml
#	indra/newview/skins/default/xui/en/panel_outfits_list.xml
#	indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
#	indra/newview/skins/default/xui/en/panel_places.xml
#	indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
#	indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml
#	indra/newview/skins/default/xui/en/sidepanel_appearance.xml
#	indra/newview/skins/default/xui/en/strings.xml
#	indra/newview/skins/default/xui/ja/panel_settings_sky_sunmoon.xml
#	indra/newview/skins/default/xui/pl/panel_settings_sky_sunmoon.xml
2025-04-16 17:49:47 +02:00
Andrey Lihatskiy ae93198735 Merge branch 'main' into marchcat/maint-c-restore
# 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
2025-04-15 19:31:20 +03:00
Andrey Lihatskiy 5d7a5001b4 Merge commit '9e24b30' into marchcat/maint-c/restore
# 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
2025-04-10 06:01:50 +03:00
Ansariel 01831e462e Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-04-03 23:07:22 +02:00
Beq 005483536b Update KDU to 8.5 for all platforms. 2025-04-02 13:49:27 +01:00
Jonathan "Geenz" Goodman 97085ed300 Merge branch 'release/2025.03' into rye/forevermac 2025-03-13 05:28:36 -04:00
Ansariel 750099db68 Merge branch 'release/2025.03' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llmessage/llproxy.cpp
#	indra/llui/llfolderviewitem.cpp
#	indra/newview/CMakeLists.txt
#	indra/newview/llappviewer.cpp
#	indra/newview/llfilepicker.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/lloutfitslist.cpp
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/llviewerprecompiledheaders.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/skins/default/xui/en/floater_world_map.xml
#	indra/newview/skins/default/xui/en/menu_viewer.xml
#	indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
#	indra/newview/viewer_manifest.py
2025-03-12 19:31:51 +01:00
Rye d915cf17df Try to parallelize xcode builds further and add more headers to PCH to reduce build time 2025-03-12 18:37:27 +02:00