-
Notifications
You must be signed in to change notification settings - Fork 84
Fix a thread safety issue in the GL image worker. #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
LLViewerTexture::mNeedsCreateTexture needs to be an attomic bool since it is written both in the main thread and in the GL image worker thread. We can now enable threaded bump maps creation as a result of this fix. I have read the CLA Document and I hereby sign the CLA
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
recheck |
OK, not quite sure what the hiccup with the CLA bot was, but I've manually re-run the job and it seems to have passed. I'll take a closer look monday. Thanks for the submission, @sldevel. |
I've cherry-picked 9c5043d into the contribute branch so that it is picked up in the appropriate maint. |
* DRTVWR-575: In a new build tree, first make the parent directory before trying to create symlink. * SL-19987 Landmark is shifting to the left of the pointed position There is still a chance user will try to move multiple landmarks one after another, but if it didn't update in the time user moves landmarks it's going to end up out of order either way * SL-19982 Adjustable font size in LSL editor * SL-19528 Remove PERMISSION_DEBIT warning from experience that is Grid and Privileged * SL-19982 Update font for menu items; show object's name in lsl editor * SL-19982 update default help topic * SL-19887 Water cuts avatar's name bubble * SL-18049 Part 1; Allow voice to be enabled in second instance * SL-18049 Part 2; Added a button to preferences to enable sound when possible * SL-18049 Part 3; Better indication when voice is muted * SL-20078 Remove Google Translation UI (just fix error processing) * SL-19982 make sure 'item' is not null * SL-18049 Part 4; Adjustments and fixes * SL-18049 Part 5; Tweak new icon visibility * SL-20086 esсape the message text before sending * SL-20090 BugSplat Crash: LLViewerFetchedTexture::updateFetch(2099) * SL-19807 BugSplat Crash: LLDispatchSetEstateExperience::getIDs() * SL-18049 use instance_offset appropriately * SL-18170 FIXED Quitting the viewer is aborted if a script error appears * SL-19744 Small cleanup * SL-18721 Viewer shutdown order changes Same thing as commit cf692c4 which was removed due to shutdown freezes. Error thread is no longer there so doesn't cause any race sonditions, was not able to repro any issues so will ask QA to test shutdown * SL-20144 remove the code related to non-existent button; remove inappropriate param * SL-19528 Remove PERMISSION_DEBIT warning (revert recent change) * SL-20146 Statistic bar collapsed/expanded accordions not saving * SL-20139 pressing the Tab key should paste tooltip only when hovering functions in LSL editor * SL-20158 FIXED Ctrl+H shortcut acts erratically when Nearby Chat floater is undocked * SL-20140 Optimization LLDictionary::addEntry() - avoid of double search * SL-20140 Fix formatting file llpaneleditwearable.cpp * SL-20140 Setting shape hand size to 36 won't save * SL-20173 show warning notification when trying to add invalid files as local texture * SL-20182 dirtyFilter crash while accessing parent * SL-20189 Crash at LLViewerMediaTexture::addFace * SL-19299 Viewer crashes after change 'Pick a physics model:' dropdown * SL-19299 Code formatting in modified files * SL-18620 Statistics->Advanced->Memory Usage no longer updating * SL-20171 use nametag position to draw voice indication dot * SL-20222 update information page link * SL-20226 Object Profile Floater Stays As Inactive Transparency When Active * MacOS build fix * SL-19664 Crash in LLAppViewer::initStrings - make the error message more informative * SL-20243 Make viewer notice 403 from release-notes URL and handle it * SL-19664 Crash in LLAppViewer::initStrings(2985) - log extended info * SL-20236 BugSplat Crash in LLVertexBuffer::validateRange(708) * DRTWVR-588 xcode buildfix * Fix spelling error in source files * DRTWVR-588 xcode buildfix (for TC) * SL-20205 Clipping of label "Water" * SL-18399 'DisableCameraConstraints' debug setting is not working on RC * SL-19887 Water cuts avatar's name bubble (update) * SL-20173 show notification when file is empty * SL-20272 Animesh characters animate at 1 frame per second without clear reason Animesh already subtracts complexity cost from the region. It's fine to slow it down when it's far away, on low fps or when there is a bunch of non-impostored avatars around. But slowing part of the region's experience down point blank and permanently is just not pretty. * SL-20279 BugSplat Crash #1327171: gl_debug_callback(111) * SL-17135 Apr process creation crash looks like pool regularly gets corrupted, try using separate pool * SL-20299 Fix username overlap with the date of the toast * SL-20280 BugSplat Crash in LLVertexBuffer::setBuffer() * SL-20287 The 'search_history.txt' file in the user profile is always empty * SL-20319 Crash at removeMutedAVsLights Merge conflict? This was fixed in SL-17752 but somehow reverted without a commit * SL-20335 Disable ERROR # diffuseColor4fv : ASSERT (shader != NULL) * SL-20345 Avoid of ASSERT (\!mRootVolp) in LLControlAvatar::~LLControlAvatar() * SL-20346 Avoid of ASSERT (pos.isFinite()) in drawBoxOutline() * SL-20361 Avoid of ASSERT (false) in check_rigged_group() * SL-20366 Crash at setTETextureCore * SL-20031: Update viewer-manager to v3.0-83fb46a. (secondlife#331) Co-authored-by: Andrey Lihatskiy <[email protected]> * SL-20244 On-screen animesh characters that start pelvis offset animations disappear when root goes off-screen * SL-20348 Focus should be in the chat bar when the Conversations floater is opened * SL-19311 Grey textures after teleport * SL-20420 Emoji - Increase nearby chat history buffer size * SL-20288 Lags in Appearance floater * Revert "SL-18721 Viewer shutdown order changes" This reverts commit edf0874. Reverted since it causes a significant uptick in shutdown freezes. Can't repro those freezes, will seek an alternate solution. * DRTVWR-588 Update viewer-manager to 3.0-f48e635 * SL-20288 Lags in Appearance floater (code format in LLAccordionCtrl) * SL-20432 Filtering My Outfits with big number of items freezes UI * SL-20432 Buildfix * SL-20432 Minor polishing in LLWearableItemsList::updateChangedItems * SL-20370 Change PDT to SLT on menu bar * SL-20378 Add menu bar entry and keyboard shortcut to open Notifications floater * SL-20419 Receiving new objects or items, etc causes inventory to switch from recent to my inventory tab * SL-20422 Clicking the 'Bring it back' link on Aditi displays a teleport alert * SL-20422 Unit-tests fix * SL-20422 Mac build fix * SL-20473 Add GenericStreamingMessage and dummy handler to suppress packet loss and log spam noise when visiting GLTF enabled regions. * SL-20422 Unit test fix * SL-20546: Add viewer channel and full version to GitHub release page. * DRTVWR-588: Try to make threadsafequeue timing more robust. The test was coded to push (what's intended to be) the third entry with timestamp (now + 200ms), then (what's intended to be) the second entry with timestamp (now + 100ms). The trouble is that it was re-querying "now" each time. On a slow CI host, the clock might have advanced by more than 100ms between the first push and the second -- meaning that the second push would actually have a _later_ timestamp, and thus, even with the queue sorting properly, fail the test's order validation. Capture the timestamp once, then add both time deltas to the same time point to get the relative order right regardless of elapsed real time. * DRTVWR-588: Enlarge default coroutine stack size. On a Windows CI host, we got the dreaded rc 3221225725 aka c00000fd aka stack overflow. * SL-20546: Append generated release notes body to our explicit body. For a tag build that generates a release page, try to deduce the git branch to which the tag we're building corresponds and add that to release notes. * SL-20546: Try harder to infer the branch corresponding to build tag. * SL-20546: Add PyGithub to installed Python packages. * DRTVWR-588: Try to fix sporadic llrand test failures. With GitHub viewer builds, every few weeks we've seen test failures when ll_frand() returns exactly 1.0. This is a problem for a function that's supposed to return [0.0 .. 1.0). Monty suggests that the problem is likely to be conversion of F32 to F64 to pass to fmod(), and then truncation of fmod()'s F64 result back to F32. Moved the clamping code to each size-specific ll_internal_random specialization. Monty also noted that a stateful static random number engine isn't thread-safe. Added a mutex lock. * SL-20546: Make dependency on build job explicit, not indirect. The release job has been dependent on sign-and-package-windows and sign-and-package-mac, each of which depends on build. But that indirect dependency doesn't convey access to ${{ needs.build.outputs.xxx }}. Add the build job to direct dependencies so release can access its outputs. * SL-20546: Allow running build.sh even without GITHUB_OUTPUT set. Default it to /dev/null, so output to $GITHUB_OUTPUT is permitted but discarded. * SL-20546: build-variables viewer branch no longer exists. * SL-20546: Rely on CTAD for 'narrow' class. Now that we're building with C++17, we can use Class Template Argument Deduction to infer the type passed to the constructor of the 'narrow' class. We no longer require a narrow_holder class with a narrow() factory function. * SL-20546: Use narrow() explicit conversion from F64 to F32. * SL-20546: Even with C++17 CTAD, makeClassicCallback() still useful. * SL-20546: Avoid promoting F32 to double just to compare bounds. * SL-20546: Defend llrand's random generator against concurrent access by making it thread_local. * SL-20550 Infinite loop test crashes intantly on MacOS. * SL-20610 Crash when unticking animesh on an attachment * SL-18875 Crash at LLModel::writeModel Looks like a crash iterating over weight_list& weights = model[idx]->getJointInfluences(pos); * Suggestions for fixing problems in xui/en XML files (secondlife#534) Co-authored-by: Yuzuru Kato <[email protected]> Co-authored-by: Andrey Lihatskiy <[email protected]> * SL-20649 Revert "SL-20140 Setting shape hand size to 36 won't save" This reverts commit b07a9cf to fix SL-20649 "Seeing tiny hands on other avatars" * SL-20679 fix for "Sort conversations by recent activity" option * DRTVWR-587 Update llca to version 202312051404.0 * SL-20679 fix for "Sort conversations by recent activity" option # Conflicts: # indra/newview/llfloaterimcontainer.cpp * DRTVWR-587 Update llca to version 202312051404.0 * Fix formatting in autobuild.xml (indents in close tags) * SL-20140 Setting shape hand size to 36 won't save * SL-20714 Crash accessing mControlAVBridge Looks like control avatar was recreated after cleanup then object was deleted * Fix nonnull error in gcc version 13 on Linux. * SL-20713 Crash at isAvatar Likely object was NULL * SL-20712 Crash at null cache buffer * SL-20279 BugSplat Crash #1327171: gl_debug_callback(111) * Fix EOF in VIEWER_VERSION.txt * SL-20737 Crash clearing texture callbacks shutdown crash * DRTVWR-601: Make autobuild set vcs_url, vcs_branch, vcs_revision in viewer's autobuild-package.xml. Ensure that AUTOBUILD_VCS_BRANCH is set before the build. (cherry picked from commit b782ab7) * DRTVWR-601: Use viewer-build-util/which-branch to determine branch. (cherry picked from commit 2c5066f) * SL-20546: Use branch for autobuild package as well as release page. which_branch.py has moved to viewer-build-util as a reusable action. * SL-20546: PyGithub was only needed for local which_branch.py. Now that which_branch.py has moved to viewer-build-util, so has the PyGithub dependency. * SL-20546: Test new viewer-build-util branch pr-branch. * SL-20546: Kick the build. * Fix broken fonts partial revert of 06c2c87 * SL-20546: Use viewer-build-util@v1 instead of PR branch. The fix we wanted was on the pr-branch branch of the viewer-build-util repo. Now that it's been published as v1.1.2, the updated v1 tag references the fix, so revert mention to @v1. * NSException test * SL-18721 Shutdown fixes 1. After window closes viewer still takes some time to shut down, so added splash screen to not confuse users (and to see if something gets stuck) 2. Having two identical mWindowHandle caused confusion for me, so I split them. It looks like there might have been issues with thread being stuck because thread's handle wasn't cleaned up. 3. Made region clean mCacheMap immediately instead of spending time making copies on shutdown * SL-18721 Shutdown fixes #2 Set DONE if decode thread is down instead of waiting for an update. Decodes can't be canceled, so fix potential situation where we get two responses * Fix profile's pick hiding wrong panel And cleanup after a contribution * SL-18721 Shutdown fixes #3 Fix dialog box being blank in task bar * SL-18721 Shutdown fixes #4 * Build fix for Visual Studio patch * secondlife#746 BugSplat Crash: LLAccordionCtrlTab::showAndFocusHeader(873) * Engage new viewer-build-util/which-branch with relnotes output. Put whatever release notes we retrieve into the generated release page. * SL-20469 Crash at dead mRootVolp in getAttachedAvatar() * Viewer#863 Crash reading xml * viewer#875 Crash at uri normalization Note that crash happened when setting LLProgressView::setMessage * Try to generate release notes for this specific branch. Also try to cross-reference release page and build page. * Try basing the GH release on github.ref_name instead of github.ref. Using github.ref as action-gh-release's target_commitish produces:⚠️ GitHub release failed with status: 422 [{"resource":"Release","code":"invalid","field":"target_commitish"}] * Try basing release notes on github.sha rather than github.ref_name. * Leverage action-gh-release's new previous_tag input. This should (!) allow us to generate full release notes relative to the previous viewer release, instead of letting action-gh-release guess incorrectly. Also try again to add to the release page a back-link to the specific build. * Base generated release notes on new floating tag 'release' instead of on the current tag 7.1.2-release. * Issue#894 Crash at load3 in cacheOptimize * Issue#900 Crash at LLInventoryAddItemByAssetObserver * SL-18721 Shutdown fixes #5 * Reference updated action-gh-release@v1 instead of the branch that got pulled. * SL-18721 Shutdown fixes #6 * Update emoji_categories in Polish translation to slightly more correct erms... * Revert "Update emoji_categories in Polish translation to slightly more correct erms..." This reverts commit 60debe8. * SL-18721 Restore release behavior Closing window correctly caused a significant amount of logout freezes with no known reproes. Temporarily returning to old behavior were thread was killes without closing window and will reenable in later maints to hopefully get a scenario or at least more data of what is causing the freeze. * Revert "SL-20416 Fix Crash Report 1409376 (update)" This reverts commit cc43f42. * viewer#1033 Crash at syncFloaterTabOrder * Increment viewer version to 7.1.6 following promotion of secondlife/viewer secondlife#690 --------- Co-authored-by: Nat Goodspeed <[email protected]> Co-authored-by: Andrey Kleshchev <[email protected]> Co-authored-by: Mnikolenko Productengine <[email protected]> Co-authored-by: Alexander Gavriliuk <[email protected]> Co-authored-by: Maxim Nikolenko <[email protected]> Co-authored-by: Andrey Lihatskiy <[email protected]> Co-authored-by: PanteraPolnocy <[email protected]> Co-authored-by: RunitaiLinden <[email protected]> Co-authored-by: Yuzuru Jewell <[email protected]> Co-authored-by: Yuzuru Kato <[email protected]>
LLViewerTexture::mNeedsCreateTexture needs to be an atomic bool since it is written both in the main thread and in the GL image worker thread.
We can now enable threaded bump maps creation as a result of this fix.
I have read the CLA Document and I hereby sign the CLA