Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
8f274bf
#1186 Make lod and skin request share priorities
akleshchev Nov 11, 2024
3271408
#1186 Make mesh repository account for avatars
akleshchev Nov 11, 2024
8e17f0c
#1186 Fix skin request not being counted for the total
akleshchev Nov 18, 2024
e20f4c0
#1186 Fix mesh queues getting overfilled
akleshchev Nov 19, 2024
a428b7d
#1186 Improve handling of duplciate requests
akleshchev Dec 4, 2024
142cf21
viewer#3037 hasPendingAttachedMeshes wasn't checking some objects
akleshchev Nov 7, 2024
1a3b221
#1186 Speed up mesh header post processing
akleshchev Jan 28, 2025
8456572
#1186 Profiling
akleshchev Jan 28, 2025
52fb53a
#3488 Make mesh_header_map a bit simpler
akleshchev Jan 29, 2025
c405cd3
#3488 Avoid reading meshes from disk when not nessesary
akleshchev Jan 29, 2025
e979768
#3488 Minimize allocations
akleshchev Jan 30, 2025
314ef53
#3488 Fix last retry not saving handle
akleshchev Jan 31, 2025
33303b9
#3488 Split mesh thread mutexes
akleshchev Jan 31, 2025
7eb9dd3
#3488 Move lod processing out of mesh thread
akleshchev Feb 3, 2025
f5f98e1
#3488 Fix mesh header condition
akleshchev Feb 4, 2025
587444b
#3488 mutex lock mSkinMap
akleshchev Feb 4, 2025
912c99a
#3488 Fix cache using wrong offset
akleshchev Feb 4, 2025
8c4abf8
#3488 Fix skin info not reading from cache
akleshchev Feb 4, 2025
9bfdb7c
#3488 #3488 Move skin info processing out of mesh thread
akleshchev Feb 4, 2025
b84f3ff
viewer#2780 Speed up terrain loading on teleport
akleshchev Nov 10, 2024
74d2ed9
#3488 Speed up nearby avatar loading after a tp
akleshchev Feb 4, 2025
6012168
#3520 Name name cache based on grid
akleshchev Feb 18, 2025
fd0227c
#3551 Crash at findItemByID
akleshchev Feb 18, 2025
6d0b0a7
drain UDP socket to avoid dropped packets (#3565)
AndrewMeadows Feb 18, 2025
8c1f00e
Merge Forever Fps into 2025.03
akleshchev Feb 19, 2025
483e85c
#3488 Prioritization adjustments
akleshchev Feb 7, 2025
847fd63
Merge branch release/2025.03
akleshchev Feb 19, 2025
0af0770
Increment Viewer Version for 2025.03 (#3588)
brad-linden Feb 19, 2025
5db82e4
#3572 fix for More/Less previews are being disabled in Shape editor
maxim-productengine Feb 21, 2025
1754aea
#3547 Store and restore position when rebulding picks
akleshchev Feb 20, 2025
29b13af
#3596 Ensure correct loading mesh gets checked and removed
akleshchev Feb 22, 2025
1503e84
#3596 Fix mMutex in mesh thread
akleshchev Feb 22, 2025
f75968a
#3596 Convert some mesh repository functions to const
akleshchev Feb 22, 2025
100861a
#3596 Fix use of dead references
akleshchev Feb 22, 2025
42e219f
Merge branch 'release/2024.12-ForeverFPS' into release/2025.03
Geenz Feb 25, 2025
056dc00
#3591 More test coverage for crashes
akleshchev Feb 24, 2025
454d5b4
#3591 Reprot SEH directly to bugsplat
akleshchev Feb 26, 2025
39610cb
#3591 Remove now pointless rethrow
akleshchev Feb 26, 2025
f40c5b2
#3597 Fix crash when RenderDebugGLSession is True
marchcat Feb 26, 2025
ecac92c
#3627 Warn user about low memory on bad_alloc
akleshchev Feb 27, 2025
b52842e
theoretical earlier start to asset downloads during startup (#3589)
AndrewMeadows Feb 26, 2025
2f362aa
Merge pull request #3583 'faster avatar loading' into release/2025.03
akleshchev Feb 27, 2025
d81f3dc
#3267 Fix parts of avatar's texture floater not being clickable
akleshchev Dec 12, 2024
4214ab8
#3280 Fix crashes at gFloaterTools
akleshchev Dec 12, 2024
a1ccb44
#3512 Add UX for marking water exclusion surfaces
maxim-productengine Mar 3, 2025
ed394cd
#3591 rethrow should be mac specific
akleshchev Mar 3, 2025
c98002d
#3643 Use bugsplat attributes on MacOS
akleshchev Mar 3, 2025
3efe5b4
#3644 Fix new logging of packet drops hitting performance
akleshchev Mar 4, 2025
6ca6bdd
#3630 fix for incorrectly pointed particle beam after dropping HUD at…
maxim-productengine Mar 4, 2025
2f61475
#3029 restore tooltip delay const variable
maxim-productengine Nov 6, 2024
5c2a331
#3644 Fix new logging of packet drops hitting performance #2
akleshchev Mar 5, 2025
8520ca9
#3052 remove pointless logging when group notice is received
maxim-productengine Nov 8, 2024
2ea170c
#3051 fix for Group notices get logged into wrong file
maxim-productengine Nov 11, 2024
559ce54
#3072 don't update UI on cancel event from texture picker
maxim-productengine Nov 14, 2024
ef915c4
#3314 update labels to match Render Quality setting
maxim-productengine Dec 20, 2024
1a4af23
#3256 force undampened movement for attached animated linkset in mous…
maxim-productengine Dec 18, 2024
f93493c
#2711 Remove ALM text from About SL
maxim-productengine Sep 27, 2024
2dfa996
#2626 fix for incoming IM calls not being rejected when DND mode is a…
maxim-productengine Sep 23, 2024
85c77ee
#3611 Decrease TextureScaleMinAreaFactor
akleshchev Mar 5, 2025
f5a25a9
Add RenderTextureVRAMDivisor (#3648)
Geenz Mar 6, 2025
51f2504
AMD NaN and inf propagation mitigation - #3663 (#3664)
Geenz Mar 6, 2025
59495b8
Hide shoreline fade behind a shader variant. (#3665)
Geenz Mar 6, 2025
aa060ae
Quick fix for water exclusion. (#3666)
Geenz Mar 6, 2025
6165479
#3654 Searchable disabled settings not readable when highlighted
akleshchev Mar 5, 2025
2f031e0
Merge pull request #3657 from secondlife/maxim/2025.03-develop-fixes
Geenz Mar 6, 2025
9d1d869
#3673 Crash at updateImageDecodePriority
akleshchev Mar 6, 2025
b8eda5b
#3673 Crash at updateImageDecodePriority
akleshchev Mar 6, 2025
9ce9f6c
Fix openal leak causing crash during shutdown
Feb 2, 2025
b0bc838
Fix crash from socket creation failure in media plugin system
Nov 4, 2024
3cc7264
Fix preferences search not finding text defined in text boxes (#3653)
RyeMutt Mar 6, 2025
d8fbfb4
#3569 Update OpenAL-Soft to 1.24.2
akleshchev Mar 6, 2025
86774bb
Merge pull request #3682 from VectorMutt/rye/fixprefsearch
Geenz Mar 6, 2025
573ca63
Merge pull request #3684 from secondlife/andreyk/viewer_3569
Geenz Mar 6, 2025
2648d5c
Merge branch 'main' into release/2025.03
maxim-productengine Mar 10, 2025
065eddb
secondlife/viewer-issues#75: Remove "HTTP Textures" setting in Develo…
cosmic-linden Mar 6, 2024
0e26d77
viewer#945 Some worn items are missing from Avatar floater's Outfits tab
akleshchev Mar 13, 2024
84345d7
viewer#970 Fixed param validation warnings
akleshchev Mar 14, 2024
83ded06
viewer-private#216 Viewer fails to rename vivox logs
akleshchev Mar 25, 2024
9ed1e92
viewer-private#217 Rotate cef log file
akleshchev Mar 25, 2024
e6f904f
viewer#1016 Incorrect behavior of Physics Shapes rendering
akleshchev Mar 26, 2024
41db7cb
viewer#1061 Altitudes are invisible in region's environment
akleshchev Mar 27, 2024
483b4fa
BUG-134040: Fix broken SOCKS5 proxy
Mar 29, 2024
f2042fe
triage#150 on OSX any file can be chosen for model upload
akleshchev Apr 1, 2024
d8f3c24
viewer#1104 Crash at populateFoldersList
akleshchev Apr 1, 2024
ea7b63f
viewer#1114 Expose max impostors setting in basic graphics preferences
akleshchev Apr 2, 2024
c864e6a
Build fix
marchcat Mar 11, 2025
a925b17
triage#163 'Create folder from selected' misbehaves in marketplace
akleshchev Apr 8, 2024
f7e7903
Fix ASAN errors from LLVector4a::memcpyNonAliased16
Nicky-D Apr 10, 2024
a5c8d4f
viewer-private#217 Fix cef log name
akleshchev Apr 18, 2024
88f503e
viewer-private#217 Cef log was deleted too often
akleshchev Apr 26, 2024
5eb2105
secondlife/jira-archive-internal#70713 Combine recently and frequentl…
LLGuru May 15, 2024
4de07d7
fix bad indentation and modernise (#1503)
beqjanus May 17, 2024
4f67df3
viewer#1577 Attachments cannot be detached in performance floater
akleshchev May 29, 2024
6fd4f13
Add support for RequestTaskInventory capability
SaladDais May 30, 2024
e6d7f6a
viewer-private#217 Build fix
marchcat Mar 11, 2025
95a395d
#1080 BugSplat Crash: LLAppViewer::initStrings() - show crash reason
LLGuru Jun 17, 2024
4132a13
Merge branch 'marchcat/maint-b-cherrypicks' into marchcat/2025.03-mai…
marchcat Mar 11, 2025
f02a400
Fix indentations to make pre-commit happy
marchcat Mar 11, 2025
5ce0c58
#3409 Make maximum probe count adjustable. (#3709)
Geenz Mar 11, 2025
d5b72eb
#3697 Crash on LLAvatarPropertiesProcessor::notifyObservers
akleshchev Mar 7, 2025
44fa0c4
#3696 LLFontFreetype crash when adding glyph
akleshchev Mar 7, 2025
8d00744
#3699 Crash at finishRenamingItem
akleshchev Mar 7, 2025
716e09c
Merge pull request #3707 from secondlife/maxim/2025.03
maxim-productengine Mar 11, 2025
179f46c
#3702 Crash at doTeleportViaLandmark
maxim-productengine Mar 11, 2025
8bb35ac
Merge pull request #3711 from secondlife/maxim/2025.03-3702
maxim-productengine Mar 11, 2025
8297b92
Merge branch 'release/2025.03' into marchcat/2025.03-maint-b
marchcat Mar 11, 2025
89a87fb
#3717 LLPluginClassMedia::sendMessage
akleshchev Mar 11, 2025
851039c
Add timestamp to snapshot file names
Apr 27, 2024
e70694e
Small cleanup
akleshchev Mar 11, 2025
b50ad90
Merge pull request #3708 from secondlife/marchcat/2025.03-maint-b
marchcat Mar 12, 2025
7e9e5bf
#3591 Restructure SE to not catch LLContinueError
akleshchev Mar 12, 2025
d8fa590
Set correct rpath for OpenAL
marchcat Mar 12, 2025
5aedf53
Enable precompiled headers for all platforms
Oct 15, 2024
d915cf1
Try to parallelize xcode builds further and add more headers to PCH t…
Oct 15, 2024
bb5e05e
#3685 Add two new slapps to support wearing contents of folders - Add…
maxim-productengine Mar 12, 2025
0ad55a3
#3189 Pasted PBR materials disappearing
akleshchev Mar 12, 2025
418aec4
Quick fix for a friend status race condition on login.
Geenz Mar 13, 2025
864b5a7
Move callback registration for the avatar tracker to STATE_AGENT_SEND.
Geenz Mar 13, 2025
693e05a
Merge pull request #3740 from secondlife/geenz/friends-list-race-cond…
Geenz Mar 13, 2025
506b0d0
#2711 Remove ALM text from About SL for JP and CN
maxim-productengine Mar 13, 2025
d6fb10d
#3685 clean up
maxim-productengine Mar 13, 2025
d7e9f15
Merge pull request #3732 from secondlife/maxim/2025.03-3685
maxim-productengine Mar 13, 2025
14dc1a1
#3741 fix for mac crash on exit
maxim-productengine Mar 13, 2025
17fbbef
#3745 fix for showing system notification on login
maxim-productengine Mar 14, 2025
895a673
#3750 Crash at isSaveTextureEnabled
akleshchev Mar 14, 2025
4e5dce7
#3736 LLExperienceCache shutdown crash
akleshchev Mar 18, 2025
d3d0728
#3547 Further reduce ParcelInfoRequest calls
akleshchev Mar 18, 2025
c99e316
#3644 Adjust throttle based of how busy buffer is
akleshchev Mar 13, 2025
f049926
#3685 add test floater for new slapps
maxim-productengine Mar 18, 2025
e92e790
Remove invalid text color parameter from panel_login_first.xml
nexariusol Apr 22, 2024
d8f0faf
viewer-private#131 landmark panel closes after a rename
akleshchev Mar 26, 2024
a5f1cca
#1644 On-water property lines persist at water level
LLGuru Jun 18, 2024
b39e281
Merge pull request #3769 from secondlife/marchcat/maint-b-cp-2
marchcat Mar 19, 2025
b6bf32e
#3488 Prelock mutexes
akleshchev Mar 19, 2025
dee3257
#1964 fix for reflection probe doesn't update position when the links…
maxim-productengine Mar 20, 2025
c695ae2
#3779 reset texture repeats when unchecking the Hide Water option
maxim-productengine Mar 20, 2025
bb914ab
#1644 Correct render type for on-water property lines
marchcat Mar 20, 2025
d2dd881
#3778 #3654 Split text and background selection colors
akleshchev Mar 20, 2025
18e0677
#3364 Fix a case of excessive texture updates
akleshchev Mar 12, 2025
3c96bd2
Switch to smaller runners (#3722)
Geenz Mar 21, 2025
32c7d30
Dynamic Probe Allocation (#3787)
Geenz Mar 21, 2025
0ec9bfa
#3713 Crash at updateGLTFMaterials
akleshchev Mar 21, 2025
6b88a2b
#3780 disable water exclusion if user applies PBR or Media
maxim-productengine Mar 24, 2025
7fc9c0b
#3796 Crash at assetRequestCoro
akleshchev Mar 24, 2025
5e5d466
Readd probe count setting (#3793)
Geenz Mar 24, 2025
e1d6b57
#3798 Crash at getAvatar()
akleshchev Mar 24, 2025
d484fff
#3596 Don't supress exceptions in WorkQueue
akleshchev Mar 25, 2025
8705c16
#3643 Make sure attribute names match between OSs
akleshchev Mar 25, 2025
8eff224
#3795 Fix macos shutdown crash
akleshchev Mar 25, 2025
74254c9
Disable shoreline fade. (#3811)
Geenz Mar 26, 2025
b976d26
#3803 Crash at LLTabContainer::setTab
maxim-productengine Mar 26, 2025
4e80ec7
#3814 Out of range exception in TextCmdRemove::execute
akleshchev Mar 26, 2025
6952475
Mitigate some of the frame stuttering we're seeing by setting the VRA…
Geenz Mar 26, 2025
134807e
Merge pull request #3819 from secondlife/geenz/vram-divisor-1
Geenz Mar 26, 2025
7d5a5e9
#3820 crash at LLNotificationTemplate
maxim-productengine Mar 27, 2025
d67859e
Use LLCachedControl in llviewerwindow and llappviewer
akleshchev Mar 26, 2025
2b44a97
Avoid recalculating pixel area when possible
akleshchev Mar 26, 2025
6ac1d4f
#3829 WebRTC crash OnDataReceivedImpl
akleshchev Mar 27, 2025
193cab1
#3836 Fix crash at LLNotificationForm::getNumElements()/LLSD::size()
marchcat Mar 29, 2025
e671cb5
#3795 Crash at getVolatileAPRPool()
akleshchev Mar 29, 2025
4ddd9d1
#3814 More bad_alloc handling
akleshchev Mar 31, 2025
27fd726
#3846 Crash at updateGLTFMaterials
akleshchev Apr 1, 2025
b62aae7
#3849 Crash at LLSelectMgr::updatePointAt
akleshchev Apr 1, 2025
8f6bc55
#3868 Crash in updateHoveredState
akleshchev Apr 3, 2025
3d7de1b
#3870 Crash at LLVOAvatarSelf::getJoint()
akleshchev Apr 3, 2025
40acaaf
#3878 Crash at LLPipeline::unlinkDrawable
akleshchev Apr 4, 2025
a7a8d6c
#3627 std::bad_alloc when loading a model
akleshchev Apr 6, 2025
1df890d
#3627 std::bad_alloc in EventPoll
akleshchev Apr 7, 2025
75bf857
#3884 Crash in kdu_core::kdu_params::get
akleshchev Apr 7, 2025
417e0c6
#3745 fix for showing system notification on login #2
maxim-productengine Apr 8, 2025
9f12c98
Bump feature table version.
Geenz Apr 8, 2025
df1c018
Merge pull request #3891 from secondlife/geenz/25.03-feature-table-bump
Geenz Apr 8, 2025
632a864
#3892 Crash at fillCompositionLogfont
akleshchev Apr 8, 2025
cf2b4db
Merge pull request #3706 from secondlife/release/2025.03
Geenz Apr 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ jobs:
needs: setup
strategy:
matrix:
runner: [windows-large, macos-15-xlarge]
configuration: ${{ fromJSON(needs.setup.outputs.configurations) }}
runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge"]' || '["windows-latest","macos-15"]') }}
configuration: ${{ fromJson(needs.setup.outputs.configurations) }}
runs-on: ${{ matrix.runner }}
outputs:
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
Expand Down
56 changes: 30 additions & 26 deletions autobuild.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2039,11 +2039,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
<string>191e4ef07a35f7147708415465191ce7622e3012</string>
<string>a3cc405d48a48a474d05b3de3d28da2005d80037</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-8668009/openal-1.23.1-darwin64-8979520327.tar.zst</string>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.2-r1/openal-1.24.2-r1-darwin64-13245988487.tar.zst</string>
</map>
<key>name</key>
<string>darwin64</string>
Expand All @@ -2053,11 +2053,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
<string>3bd8c9028ef42bdb43c7422e7d324e213fdb081e</string>
<string>a2b63f0f85ca156c59ee1d34ef96c8e50b89153c</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-8668009/openal-1.23.1-linux64-8979520327.tar.zst</string>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.2-r1/openal-1.24.2-r1-linux64-13245988487.tar.zst</string>
</map>
<key>name</key>
<string>linux64</string>
Expand All @@ -2067,11 +2067,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
<string>4b849609abec790e89be5fad8ddee3717ee301c4</string>
<string>8ad24fba1191c9cb0d2ab36e64b04b4648a99f43</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-8668009/openal-1.23.1-windows64-8979520327.tar.zst</string>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.2-r1/openal-1.24.2-r1-windows64-13245988487.tar.zst</string>
</map>
<key>name</key>
<string>windows64</string>
Expand Down Expand Up @@ -3014,14 +3014,15 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>build</key>
<map>
<key>command</key>
<string>xcodebuild</string>
<string>cmake</string>
<key>options</key>
<array>
<string>-configuration</string>
<string>--build</string>
<string>.</string>
<string>--config</string>
<string>RelWithDebInfo</string>
<string>-project</string>
<string>SecondLife.xcodeproj</string>
<string>-parallelizeTargets</string>
<string>--parallel</string>
<string>$AUTOBUILD_CPU_COUNT</string>
</array>
</map>
<key>default</key>
Expand All @@ -3042,14 +3043,15 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>build</key>
<map>
<key>command</key>
<string>xcodebuild</string>
<string>cmake</string>
<key>options</key>
<array>
<string>-configuration</string>
<string>--build</string>
<string>.</string>
<string>--config</string>
<string>RelWithDebInfo</string>
<string>-project</string>
<string>SecondLife.xcodeproj</string>
<string>-parallelizeTargets</string>
<string>--parallel</string>
<string>$AUTOBUILD_CPU_COUNT</string>
</array>
</map>
<key>name</key>
Expand All @@ -3072,14 +3074,15 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>build</key>
<map>
<key>command</key>
<string>xcodebuild</string>
<string>cmake</string>
<key>options</key>
<array>
<string>-configuration</string>
<string>--build</string>
<string>.</string>
<string>--config</string>
<string>Release</string>
<string>-project</string>
<string>SecondLife.xcodeproj</string>
<string>-parallelizeTargets</string>
<string>--parallel</string>
<string>$AUTOBUILD_CPU_COUNT</string>
</array>
</map>
<key>name</key>
Expand All @@ -3098,14 +3101,15 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>build</key>
<map>
<key>command</key>
<string>xcodebuild</string>
<string>cmake</string>
<key>options</key>
<array>
<string>-configuration</string>
<string>--build</string>
<string>.</string>
<string>--config</string>
<string>Release</string>
<string>-project</string>
<string>SecondLife.xcodeproj</string>
<string>-parallelizeTargets</string>
<string>--parallel</string>
<string>$AUTOBUILD_CPU_COUNT</string>
</array>
</map>
<key>name</key>
Expand Down
9 changes: 7 additions & 2 deletions indra/cmake/00-Common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ add_compile_definitions(BOOST_BIND_GLOBAL_PLACEHOLDERS)

# Force enable SSE2 instructions in GLM per the manual
# https://github.com/g-truc/glm/blob/master/manual.md#section2_10
add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_FORCE_SSE2=1)
add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_FORCE_SSE2=1 GLM_ENABLE_EXPERIMENTAL=1)

# Configure crash reporting
set(RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in release builds")
Expand All @@ -48,6 +48,11 @@ if(NON_RELEASE_CRASH_REPORTING)
add_compile_definitions( LL_SEND_CRASH_REPORTS=1)
endif()

set(USE_LTO OFF CACHE BOOL "Enable Link Time Optimization")
if(USE_LTO)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
endif()

# Don't bother with a MinSizeRel or Debug builds.
set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Release" CACHE STRING "Supported build types." FORCE)

Expand Down Expand Up @@ -101,7 +106,7 @@ if (WINDOWS)

#ND: When using something like buildcache (https://github.com/mbitsnbites/buildcache)
# to make those wrappers work /Zi must be changed to /Z7, as /Zi due to it's nature is not compatible with caching
if( ${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES ".*cache.*")
if(${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES ".*cache.*")
add_compile_options( /Z7 )
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
Expand Down
1 change: 0 additions & 1 deletion indra/llappearance/llavatarappearance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,6 @@ void LLAvatarAppearance::buildCharacter()
bool status = loadAvatar();
stop_glerror();

// gPrintMessagesThisFrame = true;
LL_DEBUGS() << "Avatar load took " << timer.getElapsedTimeF32() << " seconds." << LL_ENDL;

if (!status)
Expand Down
2 changes: 1 addition & 1 deletion indra/llappearance/llpolymesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -981,7 +981,7 @@ void LLPolyMesh::initializeForMorph()
LLVector4a::memcpyNonAliased16((F32*) mScaledNormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
LLVector4a::memcpyNonAliased16((F32*) mBinormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
LLVector4a::memcpyNonAliased16((F32*) mScaledBinormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
LLVector4a::memcpyNonAliased16((F32*) mTexCoords, (F32*) mSharedData->mTexCoords, sizeof(LLVector2) * (mSharedData->mNumVertices + mSharedData->mNumVertices%2));
memcpy((F32*) mTexCoords, (F32*) mSharedData->mTexCoords, sizeof(LLVector2) * (mSharedData->mNumVertices)); // allocated in LLPolyMeshSharedData::allocateVertexData

for (S32 i = 0; i < mSharedData->mNumVertices; ++i)
{
Expand Down
13 changes: 7 additions & 6 deletions indra/llappearance/llwearable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -645,9 +645,10 @@ void LLWearable::addVisualParam(LLVisualParam *param)

void LLWearable::setVisualParamWeight(S32 param_index, F32 value)
{
if( is_in_map(mVisualParamIndexMap, param_index ) )
visual_param_index_map_t::iterator found = mVisualParamIndexMap.find(param_index);
if(found != mVisualParamIndexMap.end())
{
LLVisualParam *wearable_param = mVisualParamIndexMap[param_index];
LLVisualParam *wearable_param = found->second;
wearable_param->setWeight(value);
}
else
Expand All @@ -658,10 +659,10 @@ void LLWearable::setVisualParamWeight(S32 param_index, F32 value)

F32 LLWearable::getVisualParamWeight(S32 param_index) const
{
if( is_in_map(mVisualParamIndexMap, param_index ) )
visual_param_index_map_t::const_iterator found = mVisualParamIndexMap.find(param_index);
if(found != mVisualParamIndexMap.end())
{
const LLVisualParam *wearable_param = mVisualParamIndexMap.find(param_index)->second;
return wearable_param->getWeight();
return found->second->getWeight();
}
else
{
Expand Down Expand Up @@ -726,7 +727,7 @@ void LLWearable::writeToAvatar(LLAvatarAppearance* avatarp)
if (!avatarp) return;

// Pull params
for( LLVisualParam* param = avatarp->getFirstVisualParam(); param; param = avatarp->getNextVisualParam() )
for( const LLVisualParam* param = avatarp->getFirstVisualParam(); param; param = avatarp->getNextVisualParam() )
{
// cross-wearable parameters are not authoritative, as they are driven by a different wearable. So don't copy the values to the
// avatar object if cross wearable. Cross wearable params get their values from the avatar, they shouldn't write the other way.
Expand Down
4 changes: 3 additions & 1 deletion indra/llaudio/llaudioengine_openal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ bool LLAudioEngine_OpenAL::init(void* userdata, const std::string &app_title)
ALCdevice *device = alcGetContextsDevice(alcGetCurrentContext());

alcGetIntegerv(device, ALC_MAJOR_VERSION, 1, &major);
alcGetIntegerv(device, ALC_MAJOR_VERSION, 1, &minor);
alcGetIntegerv(device, ALC_MINOR_VERSION, 1, &minor);
LL_INFOS() << "ALC version: " << major << "." << minor << LL_ENDL;

LL_INFOS() << "ALC default device: "
Expand Down Expand Up @@ -190,6 +190,8 @@ LLAudioChannelOpenAL::~LLAudioChannelOpenAL()
void LLAudioChannelOpenAL::cleanup()
{
alSourceStop(mALSource);
alSourcei(mALSource, AL_BUFFER, AL_NONE);

mCurrentBufferp = NULL;
}

Expand Down
2 changes: 1 addition & 1 deletion indra/llcommon/llapp.h
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ class LL_COMMON_API LLApp
LLRunner& getRunner() { return mRunner; }

#ifdef LL_WINDOWS
virtual void reportCrashToBugsplat(void* pExcepInfo /*EXCEPTION_POINTERS*/) { }
virtual bool reportCrashToBugsplat(void* pExcepInfo /*EXCEPTION_POINTERS*/) { return false; }
#endif

public:
Expand Down
57 changes: 41 additions & 16 deletions indra/llcommon/llcoros.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,26 +310,55 @@ namespace

static const U32 STATUS_MSC_EXCEPTION = 0xE06D7363; // compiler specific

U32 exception_filter(U32 code, struct _EXCEPTION_POINTERS *exception_infop)
U32 exception_filter(U32 code, struct _EXCEPTION_POINTERS* exception_infop)
{
if (code == STATUS_MSC_EXCEPTION)
if (LLApp::instance()->reportCrashToBugsplat((void*)exception_infop))
{
// Handled
return EXCEPTION_CONTINUE_SEARCH;
}
else if (code == STATUS_MSC_EXCEPTION)
{
// C++ exception, go on
return EXCEPTION_CONTINUE_SEARCH;
}
else
{
// handle it
// handle it, convert to std::exception
return EXCEPTION_EXECUTE_HANDLER;
}

return EXCEPTION_CONTINUE_SEARCH;
}

void sehandle(const LLCoros::callable_t& callable)
void cpphandle(const LLCoros::callable_t& callable, const std::string& name)
{
__try
// SE and C++ can not coexists, thus two handlers
try
{
callable();
}
catch (const LLCoros::Stop& exc)
{
LL_INFOS("LLCoros") << "coroutine " << name << " terminating because "
<< exc.what() << LL_ENDL;
}
catch (const LLContinueError&)
{
// Any uncaught exception derived from LLContinueError will be caught
// here and logged. This coroutine will terminate but the rest of the
// viewer will carry on.
LOG_UNHANDLED_EXCEPTION(STRINGIZE("coroutine " << name));
}
}

void sehandle(const LLCoros::callable_t& callable, const std::string& name)
{
__try
{
// handle stop and continue exceptions first
cpphandle(callable, name);
}
__except (exception_filter(GetExceptionCode(), GetExceptionInformation()))
{
// convert to C++ styled exception
Expand All @@ -340,16 +369,7 @@ void sehandle(const LLCoros::callable_t& callable)
throw std::exception(integer_string);
}
}

#else // ! LL_WINDOWS

inline void sehandle(const LLCoros::callable_t& callable)
{
callable();
}

#endif // ! LL_WINDOWS

#endif // LL_WINDOWS
} // anonymous namespace

// Top-level wrapper around caller's coroutine callable.
Expand All @@ -362,10 +382,14 @@ void LLCoros::toplevel(std::string name, callable_t callable)
// set it as current
mCurrent.reset(&corodata);

#ifdef LL_WINDOWS
// can not use __try directly, toplevel requires unwinding, thus use of a wrapper
sehandle(callable, name);
#else // LL_WINDOWS
// run the code the caller actually wants in the coroutine
try
{
sehandle(callable);
callable();
}
catch (const Stop& exc)
{
Expand All @@ -387,6 +411,7 @@ void LLCoros::toplevel(std::string name, callable_t callable)
<< name << LL_ENDL;
LLCoros::instance().saveException(name, std::current_exception());
}
#endif // else LL_WINDOWS
}

//static
Expand Down
9 changes: 9 additions & 0 deletions indra/llcommon/lldate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,15 @@ std::string LLDate::asRFC1123() const
return toHTTPDateString (std::string ("%A, %d %b %Y %H:%M:%S GMT"));
}

std::string LLDate::toLocalDateString (std::string fmt) const
{
LL_PROFILE_ZONE_SCOPED;

time_t locSeconds = (time_t) mSecondsSinceEpoch;
struct tm * lt = localtime (&locSeconds);
return toHTTPDateString(lt, fmt);
}

std::string LLDate::toHTTPDateString (std::string fmt) const
{
LL_PROFILE_ZONE_SCOPED;
Expand Down
1 change: 1 addition & 0 deletions indra/llcommon/lldate.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ class LL_COMMON_API LLDate
std::string asRFC1123() const;
void toStream(std::ostream&) const;
bool split(S32 *year, S32 *month = NULL, S32 *day = NULL, S32 *hour = NULL, S32 *min = NULL, S32 *sec = NULL) const;
std::string toLocalDateString(std::string fmt) const;
std::string toHTTPDateString (std::string fmt) const;
static std::string toHTTPDateString (tm * gmt, std::string fmt);
/**
Expand Down
Loading
Loading