From 2b96b06669df6ba4be88b8645127b7b9d09632ed Mon Sep 17 00:00:00 2001 From: Alexander Gavriliuk Date: Fri, 15 Sep 2023 01:37:56 +0200 Subject: SL-20279 BugSplat Crash #1327171: gl_debug_callback(111) --- indra/llrender/llgl.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index cfc9ce735d..44f7667d2c 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -93,6 +93,17 @@ void APIENTRY gl_debug_callback(GLenum source, return; } + if (gGLManager.mIsDisabled && + severity == GL_DEBUG_SEVERITY_HIGH_ARB && + source == GL_DEBUG_SOURCE_API_ARB && + type == GL_DEBUG_TYPE_ERROR_ARB && + id == GL_INVALID_VALUE) + { + // Suppress messages about deleting already deleted objects called from LLViewerWindow::stopGL() + // "GL_INVALID_VALUE error generated. Handle does not refer to an object generated by OpenGL." + return; + } + if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) { LL_WARNS() << "----- GL ERROR --------" << LL_ENDL; @@ -106,7 +117,8 @@ void APIENTRY gl_debug_callback(GLenum source, LL_WARNS() << "Severity: " << std::hex << severity << LL_ENDL; LL_WARNS() << "Message: " << message << LL_ENDL; LL_WARNS() << "-----------------------" << LL_ENDL; - if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) + // No needs to halt when is called from LLViewerWindow::stopGL() + if (severity == GL_DEBUG_SEVERITY_HIGH_ARB && !gGLManager.mIsDisabled) { LL_ERRS() << "Halting on GL Error" << LL_ENDL; } -- cgit v1.3 From e3096da94bd0a9223d6936c5f2ba011b1922298d Mon Sep 17 00:00:00 2001 From: Alexander Gavriliuk Date: Wed, 20 Sep 2023 00:08:31 +0200 Subject: SL-20280 BugSplat Crash in LLVertexBuffer::setBuffer() --- indra/llrender/llvertexbuffer.cpp | 59 --------------------------------------- 1 file changed, 59 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index be3e6ddff0..937b8c74ff 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -2181,65 +2181,6 @@ void LLVertexBuffer::setBuffer(U32 data_mask) //set up pointers if the data mask is different ... bool setup = (sLastMask != data_mask); - if (gDebugGL && data_mask != 0) - { //make sure data requirements are fulfilled - LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; - if (shader) - { - U32 required_mask = 0; - for (U32 i = 0; i < LLVertexBuffer::TYPE_TEXTURE_INDEX; ++i) - { - if (shader->getAttribLocation(i) > -1) - { - U32 required = 1 << i; - if ((data_mask & required) == 0) - { - LL_WARNS() << "Missing attribute: " << LLShaderMgr::instance()->mReservedAttribs[i] << LL_ENDL; - } - - required_mask |= required; - } - } - - if ((data_mask & required_mask) != required_mask) - { - - U32 unsatisfied_mask = (required_mask & ~data_mask); - - for (U32 i = 0; i < TYPE_MAX; i++) - { - U32 unsatisfied_flag = unsatisfied_mask & (1 << i); - switch (unsatisfied_flag) - { - case 0: break; - case MAP_VERTEX: LL_INFOS() << "Missing vert pos" << LL_ENDL; break; - case MAP_NORMAL: LL_INFOS() << "Missing normals" << LL_ENDL; break; - case MAP_TEXCOORD0: LL_INFOS() << "Missing TC 0" << LL_ENDL; break; - case MAP_TEXCOORD1: LL_INFOS() << "Missing TC 1" << LL_ENDL; break; - case MAP_TEXCOORD2: LL_INFOS() << "Missing TC 2" << LL_ENDL; break; - case MAP_TEXCOORD3: LL_INFOS() << "Missing TC 3" << LL_ENDL; break; - case MAP_COLOR: LL_INFOS() << "Missing vert color" << LL_ENDL; break; - case MAP_EMISSIVE: LL_INFOS() << "Missing emissive" << LL_ENDL; break; - case MAP_TANGENT: LL_INFOS() << "Missing tangent" << LL_ENDL; break; - case MAP_WEIGHT: LL_INFOS() << "Missing weight" << LL_ENDL; break; - case MAP_WEIGHT4: LL_INFOS() << "Missing weightx4" << LL_ENDL; break; - case MAP_CLOTHWEIGHT: LL_INFOS() << "Missing clothweight" << LL_ENDL; break; - case MAP_TEXTURE_INDEX: LL_INFOS() << "Missing tex index" << LL_ENDL; break; - default: LL_INFOS() << "Missing who effin knows: " << unsatisfied_flag << LL_ENDL; - } - } - - // TYPE_INDEX is beyond TYPE_MAX, so check for it individually - if (unsatisfied_mask & (1 << TYPE_INDEX)) - { - LL_INFOS() << "Missing indices" << LL_ENDL; - } - - LL_ERRS() << "Shader consumption mismatches data provision." << LL_ENDL; - } - } - } - if (useVBOs()) { if (mGLArray) -- cgit v1.3 From 0db9bcf21fd4b7172e8a35cdb2805ccdc736e273 Mon Sep 17 00:00:00 2001 From: Alexander Gavriliuk Date: Wed, 13 Dec 2023 20:20:01 +0100 Subject: SL-20279 BugSplat Crash #1327171: gl_debug_callback(111) --- indra/llrender/llgl.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 4c7c8e6f5c..f7fb46e310 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -94,6 +94,17 @@ void APIENTRY gl_debug_callback(GLenum source, return; }*/ + if (gGLManager.mIsDisabled && + severity == GL_DEBUG_SEVERITY_HIGH_ARB && + source == GL_DEBUG_SOURCE_API_ARB && + type == GL_DEBUG_TYPE_ERROR_ARB && + id == GL_INVALID_VALUE) + { + // Suppress messages about deleting already deleted objects called from LLViewerWindow::stopGL() + // "GL_INVALID_VALUE error generated. Handle does not refer to an object generated by OpenGL." + return; + } + // list of messages to suppress const char* suppress[] = { @@ -148,8 +159,9 @@ void APIENTRY gl_debug_callback(GLenum source, glGetBufferParameteriv(GL_UNIFORM_BUFFER, GL_BUFFER_SIZE, &ubo_size); glGetBufferParameteriv(GL_UNIFORM_BUFFER, GL_BUFFER_IMMUTABLE_STORAGE, &ubo_immutable); } - - if (severity == GL_DEBUG_SEVERITY_HIGH) + + // No needs to halt when is called from LLViewerWindow::stopGL() + if (severity == GL_DEBUG_SEVERITY_HIGH && !gGLManager.mIsDisabled) { LL_ERRS() << "Halting on GL Error" << LL_ENDL; } -- cgit v1.3 From fab4cfbab26948fbec9015bd2ba1e8b05c3cd9e3 Mon Sep 17 00:00:00 2001 From: RunitaiLinden Date: Wed, 10 Jan 2024 13:50:15 -0600 Subject: SL-20704 Fix for pathfinding debug display not working. --- autobuild.xml | 1542 ++++++++++++++++++------------------ indra/llrender/llrendernavprim.cpp | 10 +- 2 files changed, 783 insertions(+), 769 deletions(-) (limited to 'indra/llrender') diff --git a/autobuild.xml b/autobuild.xml index 0e5a5a2a25..6098b4ffdf 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1,14 +1,20 @@ - version - 1.3 - type - autobuild installables SDL + copyright + Copyright (C) 1997-2012 Sam Lantinga + description + Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. + license + lgpl + license_file + LICENSES/SDL.txt + name + SDL platforms linux64 @@ -24,21 +30,21 @@ linux64 - license - lgpl - license_file - LICENSES/SDL.txt - copyright - Copyright (C) 1997-2012 Sam Lantinga version 1.2.15 - name - SDL - description - Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. apr_suite + copyright + Copyright © 2012 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. + description + Apache portable runtime project + license + apache + license_file + LICENSES/apr_suite.txt + name + apr_suite platforms darwin64 @@ -82,21 +88,21 @@ windows64 - license - apache - license_file - LICENSES/apr_suite.txt - copyright - Copyright © 2012 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. version 1.7.2-e935465 - name - apr_suite - description - Apache portable runtime project boost + copyright + (see individual source files) + description + Boost C++ Libraries + license + boost 1.0 + license_file + LICENSES/boost.txt + name + boost platforms darwin64 @@ -140,21 +146,21 @@ windows64 - license - boost 1.0 - license_file - LICENSES/boost.txt - copyright - (see individual source files) version 1.81 - name - boost - description - Boost C++ Libraries bugsplat + copyright + Copyright 2003-2017, BugSplat + description + Bugsplat crash reporting package + license + Proprietary + license_file + LICENSES/BUGSPLAT_LICENSE.txt + name + bugsplat platforms darwin64 @@ -186,21 +192,19 @@ windows64 - license - Proprietary - license_file - LICENSES/BUGSPLAT_LICENSE.txt - copyright - Copyright 2003-2017, BugSplat version 4.0.3.0-527603a - name - bugsplat - description - Bugsplat crash reporting package colladadom + copyright + Copyright 2006 Sony Computer Entertainment Inc. + license + SCEA + license_file + LICENSES/collada.txt + name + colladadom platforms darwin64 @@ -244,19 +248,19 @@ windows64 - license - SCEA - license_file - LICENSES/collada.txt - copyright - Copyright 2006 Sony Computer Entertainment Inc. version 2.3.d1ef72a - name - colladadom cubemaptoequirectangular + copyright + Copyright (c) 2017 Jaume Sanchez Elias, http://www.clicktorelease.com + license + MIT + license_file + LICENSES/CUBEMAPTOEQUIRECTANGULAR_LICENSE.txt + name + cubemaptoequirectangular platforms darwin64 @@ -300,19 +304,21 @@ windows64 - license - MIT - license_file - LICENSES/CUBEMAPTOEQUIRECTANGULAR_LICENSE.txt - copyright - Copyright (c) 2017 Jaume Sanchez Elias, http://www.clicktorelease.com version 1.1.0 - name - cubemaptoequirectangular curl + copyright + Copyright (c) 1996 - 2014, Daniel Stenberg, (daniel@haxx.se). + description + Library for transferring data specified with URL syntax + license + curl + license_file + LICENSES/curl.txt + name + curl platforms darwin64 @@ -356,21 +362,21 @@ windows64 - license - curl - license_file - LICENSES/curl.txt - copyright - Copyright (c) 1996 - 2014, Daniel Stenberg, (daniel@haxx.se). version 7.54.1-5a4a82d - name - curl - description - Library for transferring data specified with URL syntax dbus_glib + copyright + Copyright (C) Red Hat Inc. + description + D-Bus bindings for glib + license + Academic Free License v. 2.1 + license_file + LICENSES/dbus-glib.txt + name + dbus_glib platforms linux64 @@ -386,21 +392,21 @@ linux64 - license - Academic Free License v. 2.1 - license_file - LICENSES/dbus-glib.txt - copyright - Copyright (C) Red Hat Inc. version 0.76 - name - dbus_glib - description - D-Bus bindings for glib dictionaries + copyright + Copyright 2014 Apache OpenOffice software + description + Spell checking dictionaries to bundled into the viewer + license + various open source + license_file + LICENSES/dictionaries.txt + name + dictionaries platforms common @@ -418,21 +424,21 @@ common - license - various open source - license_file - LICENSES/dictionaries.txt - copyright - Copyright 2014 Apache OpenOffice software version None - name - dictionaries - description - Spell checking dictionaries to bundled into the viewer dullahan + copyright + Copyright (c) 2017, Linden Research, Inc. + description + A headless browser SDK that uses the Chromium Embedded Framework (CEF). It is designed to make it easier to write applications that render modern web content directly to a memory buffer, inject synthesized mouse and keyboard events as well as interact with web based features like JavaScript or cookies. + license + MPL + license_file + LICENSES/LICENSE.txt + name + dullahan platforms darwin64 @@ -464,21 +470,21 @@ windows64 - license - MPL - license_file - LICENSES/LICENSE.txt - copyright - Copyright (c) 2017, Linden Research, Inc. version 1.14.0.202310131404_118.4.1_g3dd6078_chromium-118.0.5993.54 - name - dullahan - description - A headless browser SDK that uses the Chromium Embedded Framework (CEF). It is designed to make it easier to write applications that render modern web content directly to a memory buffer, inject synthesized mouse and keyboard events as well as interact with web based features like JavaScript or cookies. expat + copyright + Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper - Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. + description + Expat is an XML parser library written in C + license + expat + license_file + LICENSES/expat.txt + name + expat platforms darwin64 @@ -524,21 +530,21 @@ windows64 - license - expat - license_file - LICENSES/expat.txt - copyright - Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper - Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. version 2.1.1.1f36d02 - name - expat - description - Expat is an XML parser library written in C fmodstudio + copyright + FMOD Studio by Firelight Technologies Pty Ltd. + description + FMOD Studio API + license + fmod + license_file + LICENSES/fmodstudio.txt + name + fmodstudio platforms darwin64 @@ -590,21 +596,21 @@ windows64 - license - fmod - license_file - LICENSES/fmodstudio.txt - copyright - FMOD Studio by Firelight Technologies Pty Ltd. version 2.02.13.578928 - name - fmodstudio - description - FMOD Studio API fontconfig + copyright + Copyright (C) 2000,2001,2002,2003,2004,2006,2007 Keith Packard, 2005 Patrick Lam, 2009 Roozbeh Pournader, 2008,2009 Red Hat, Inc., 2008 Danilo Šegan, 2012 Google, Inc. + description + Fontconfig is a library for configuring and customizing font access. + license + bsd + license_file + LICENSES/fontconfig.txt + name + fontconfig platforms linux64 @@ -620,21 +626,21 @@ linux64 - license - bsd - license_file - LICENSES/fontconfig.txt - copyright - Copyright (C) 2000,2001,2002,2003,2004,2006,2007 Keith Packard, 2005 Patrick Lam, 2009 Roozbeh Pournader, 2008,2009 Red Hat, Inc., 2008 Danilo Šegan, 2012 Google, Inc. version 2.11.0 - name - fontconfig - description - Fontconfig is a library for configuring and customizing font access. freetype + copyright + Copyright 2006, 2007, 2008, 2009, 2010 by David Turner, Robert Wilhelm, and Werner Lemberg. + description + Font rendering library + license + FreeType + license_file + LICENSES/freetype.txt + name + freetype platforms darwin64 @@ -680,21 +686,21 @@ windows64 - license - FreeType - license_file - LICENSES/freetype.txt - copyright - Copyright 2006, 2007, 2008, 2009, 2010 by David Turner, Robert Wilhelm, and Werner Lemberg. version 2.4.4.4f739fa - name - freetype - description - Font rendering library glext + copyright + Copyright (c) 2007-2010 The Khronos Group Inc. + description + glext headers define function prototypes and constants for OpenGL extensions + license + Copyright (c) 2007-2010 The Khronos Group Inc. + license_file + LICENSES/glext.txt + name + glext platforms common @@ -712,21 +718,21 @@ common - license - Copyright (c) 2007-2010 The Khronos Group Inc. - license_file - LICENSES/glext.txt - copyright - Copyright (c) 2007-2010 The Khronos Group Inc. version 68 - name - glext - description - glext headers define function prototypes and constants for OpenGL extensions glh_linear + copyright + Copyright (c) 2000 Cass Everitt + description + glh - is a platform-indepenedent C++ OpenGL helper library + license + BSD + license_file + LICENSES/glh-linear.txt + name + glh_linear platforms common @@ -744,21 +750,21 @@ common - license - BSD - license_file - LICENSES/glh-linear.txt - copyright - Copyright (c) 2000 Cass Everitt version None - name - glh_linear - description - glh - is a platform-indepenedent C++ OpenGL helper library googlemock + copyright + Copyright 2008, Google Inc. + description + a library for writing and using C++ mock classes + license + BSD + license_file + LICENSES/gmock.txt + name + googlemock platforms darwin64 @@ -802,21 +808,19 @@ windows64 - license - BSD - license_file - LICENSES/gmock.txt - copyright - Copyright 2008, Google Inc. version 1.7.0.77bba00 - name - googlemock - description - a library for writing and using C++ mock classes gstreamer + copyright + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + license + LGPL + license_file + LICENSES/gstreamer.txt + name + gstreamer platforms linux64 @@ -832,19 +836,19 @@ linux64 - license - LGPL - license_file - LICENSES/gstreamer.txt - copyright - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> version 0.10.6.314267 - name - gstreamer gtk-atk-pango-glib + copyright + Copyright (various, see sources) + license + lgpl + license_file + LICENSES/gtk-atk-pango-glib.txt + name + gtk-atk-pango-glib platforms linux64 @@ -860,19 +864,21 @@ linux64 - license - lgpl - license_file - LICENSES/gtk-atk-pango-glib.txt - copyright - Copyright (various, see sources) version 0.1 - name - gtk-atk-pango-glib havok-source + copyright + Uses Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (and its Licensors). All Rights Reserved. See www.havok.com for details. + description + Havok source code for libs and demos + license + havok + license_file + LICENSES/havok.txt + name + havok-source platforms darwin64 @@ -920,21 +926,19 @@ windows64 - license - havok - license_file - LICENSES/havok.txt - copyright - Uses Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (and its Licensors). All Rights Reserved. See www.havok.com for details. version 2012.1-2 - name - havok-source - description - Havok source code for libs and demos jpegencoderbasic + copyright + Andreas Ritter, www.bytestrom.eu, 11/2009 + license + NONE + license_file + LICENSES/JPEG_ENCODER_BASIC_LICENSE.txt + name + jpegencoderbasic platforms darwin64 @@ -978,19 +982,21 @@ windows64 - license - NONE - license_file - LICENSES/JPEG_ENCODER_BASIC_LICENSE.txt - copyright - Andreas Ritter, www.bytestrom.eu, 11/2009 version 1.0 - name - jpegencoderbasic jpeglib + copyright + Copyright (C) 1991-2011, Thomas G. Lane, Guido Vollbeding. + description + JPEG encoding, decoding library + license + jpeglib + license_file + LICENSES/jpeglib.txt + name + jpeglib platforms darwin64 @@ -1036,21 +1042,21 @@ windows64 - license - jpeglib - license_file - LICENSES/jpeglib.txt - copyright - Copyright (C) 1991-2011, Thomas G. Lane, Guido Vollbeding. version 8c.7846234 - name - jpeglib - description - JPEG encoding, decoding library jsoncpp + copyright + Copyright (c) 2007-2010 Baptiste Lepilleur + description + jsoncpp is an implementation of a JSON (http://json.org) reader and writer in C++. + license + public domain + license_file + LICENSES/jsoncpp.txt + name + jsoncpp platforms darwin64 @@ -1096,21 +1102,21 @@ windows64 - license - public domain - license_file - LICENSES/jsoncpp.txt - copyright - Copyright (c) 2007-2010 Baptiste Lepilleur version 0.5.0.bc46e62 - name - jsoncpp - description - jsoncpp is an implementation of a JSON (http://json.org) reader and writer in C++. kdu + copyright + Kakadu software + description + JPEG2000 library by Kakadu + license + Kakadu + license_file + LICENSES/kdu.txt + name + kdu platforms darwin64 @@ -1162,21 +1168,21 @@ windows64 - license - Kakadu - license_file - LICENSES/kdu.txt - copyright - Kakadu software version 7.10.4.539108 - name - kdu - description - JPEG2000 library by Kakadu libhunspell + copyright + See hunspell.txt + description + Spell checking library + license + LGPL + license_file + LICENSES/hunspell.txt + name + libhunspell platforms darwin64 @@ -1222,21 +1228,21 @@ windows64 - license - LGPL - license_file - LICENSES/hunspell.txt - copyright - See hunspell.txt version 1.3.2.650fb94 - name - libhunspell - description - Spell checking library libndofdev + copyright + Copyright (c) 2007, 3Dconnexion, Inc. - All rights reserved. + description + 3DConnexion SDK + license + BSD + license_file + LICENSES/libndofdev.txt + name + libndofdev platforms darwin64 @@ -1268,29 +1274,29 @@ windows64 - license - BSD - license_file - LICENSES/libndofdev.txt - copyright - Copyright (c) 2007, 3Dconnexion, Inc. - All rights reserved. version 0.1.8e9edc7 - name - libndofdev - description - 3DConnexion SDK libpng - platforms - - darwin64 - - archive - - hash - fea8f0684a4ed0a73343651948b13049a135a92a + copyright + Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson + description + PNG Reference library + license + libpng + license_file + LICENSES/libpng.txt + name + libpng + platforms + + darwin64 + + archive + + hash + fea8f0684a4ed0a73343651948b13049a135a92a hash_algorithm sha1 url @@ -1326,21 +1332,21 @@ windows64 - license - libpng - license_file - LICENSES/libpng.txt - copyright - Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson version 1.6.38-ca06e99 - name - libpng - description - PNG Reference library libuuid + copyright + Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/> + description + OSSP uuid is a ISO-C:1999 application programming interface (API) and corresponding command line interface (CLI) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant Universally Unique Identifier (UUID). + license + UUID + license_file + LICENSES/uuid.txt + name + libuuid platforms linux64 @@ -1356,21 +1362,21 @@ linux64 - license - UUID - license_file - LICENSES/uuid.txt - copyright - Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/> version 1.6.2 - name - libuuid - description - OSSP uuid is a ISO-C:1999 application programming interface (API) and corresponding command line interface (CLI) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant Universally Unique Identifier (UUID). libxml2 + copyright + Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. + description + Libxml2 is the XML C parser and toolkit developed for the Gnome project. + license + mit + license_file + LICENSES/libxml2.txt + name + libxml2 platforms darwin64 @@ -1416,21 +1422,21 @@ windows64 - license - mit - license_file - LICENSES/libxml2.txt - copyright - Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. version 2.9.4.7476681 - name - libxml2 - description - Libxml2 is the XML C parser and toolkit developed for the Gnome project. llappearance_utility + copyright + Copyright (c) 2000-2012, Linden Research, Inc. + description + Linden Lab appearance utility for server-side avatar baking services. + license + Proprietary + license_file + LICENSES/llappearanceutility.txt + name + llappearance_utility platforms linux @@ -1446,21 +1452,20 @@ linux - license - Proprietary - license_file - LICENSES/llappearanceutility.txt - copyright - Copyright (c) 2000-2012, Linden Research, Inc. version 0.0.1 - name - llappearance_utility - description - Linden Lab appearance utility for server-side avatar baking services. llca + copyright + Copyright (c) 2016, Linden Research, Inc.; data provided by the Mozilla NSS Project. + + license + mit + license_file + LICENSES/ca-license.txt + name + llca platforms common @@ -1478,20 +1483,19 @@ common - license - mit - license_file - LICENSES/ca-license.txt - copyright - Copyright (c) 2016, Linden Research, Inc.; data provided by the Mozilla NSS Project. - version 202310121530.0 - name - llca llphysicsextensions_source + copyright + Copyright (c) 2010, Linden Research, Inc. + license + internal + license_file + LICENSES/llphysicsextensions.txt + name + llphysicsextensions_source platforms darwin64 @@ -1501,11 +1505,11 @@ creds github hash - 48bca5d0233d1e724a59f649a2c6c7ac5f40ec3c + b037cc0b29ea70ee834cfae6dda5b7a25cd57174 hash_algorithm sha1 url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/117009335 + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851460 name darwin64 @@ -1517,15 +1521,31 @@ creds github hash - 39f52d0350e130f41c5c758f7cb94e87b962c223 + bdea1fd5c4da9da5afde088d16188b45d0853e04 hash_algorithm sha1 url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/117009336 + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851461 name linux64 + windows + + archive + + creds + github + hash + 2e6a66da6071253ae888839cfab59d3f5c1b8b4c + hash_algorithm + sha1 + url + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851462 + + name + windows + windows64 archive @@ -1533,29 +1553,29 @@ creds github hash - 7b5e645fb7eb399abbea63bd21e8063bbb32a911 + f652ce0d6aef864689f0ed44255da4d9cd65a43f hash_algorithm sha1 url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/117009339 + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/144851463 name windows64 + version + 1.0.479d20a + + llphysicsextensions_stub + + copyright + Copyright (c) 2010, Linden Research, Inc. license internal license_file LICENSES/llphysicsextensions.txt - copyright - Copyright (c) 2010, Linden Research, Inc. - version - 1.0.565768 name - llphysicsextensions_source - - llphysicsextensions_stub - + llphysicsextensions_stub platforms darwin64 @@ -1595,19 +1615,19 @@ windows - license - internal - license_file - LICENSES/llphysicsextensions.txt - copyright - Copyright (c) 2010, Linden Research, Inc. version 1.0.542456 - name - llphysicsextensions_stub llphysicsextensions_tpv + copyright + Copyright (c) 2010, Linden Research, Inc. + license + internal + license_file + LICENSES/HavokSublicense.pdf + name + llphysicsextensions_tpv platforms darwin64 @@ -1647,19 +1667,17 @@ windows - license - internal - license_file - LICENSES/HavokSublicense.pdf - copyright - Copyright (c) 2010, Linden Research, Inc. version 1.0.561752 - name - llphysicsextensions_tpv mesa + license + mesa + license_file + LICENSES/mesa.txt + name + mesa platforms linux @@ -1675,17 +1693,23 @@ linux - license - mesa - license_file - LICENSES/mesa.txt version 7.11.1.297294 - name - mesa meshoptimizer + canonical_repo + https://bitbucket.org/lindenlab/3p-meshoptimizer + copyright + Copyright (c) 2016-2021 Arseny Kapoulkine + description + Meshoptimizer. Mesh optimization library. + license + meshoptimizer + license_file + LICENSES/meshoptimizer.txt + name + meshoptimizer platforms darwin64 @@ -1717,20 +1741,8 @@ windows64 - license - meshoptimizer - license_file - LICENSES/meshoptimizer.txt - copyright - Copyright (c) 2016-2021 Arseny Kapoulkine version 160 - name - meshoptimizer - canonical_repo - https://bitbucket.org/lindenlab/3p-meshoptimizer - description - Meshoptimizer. Mesh optimization library. mikktspace @@ -1790,6 +1802,18 @@ minizip-ng + canonical_repo + https://bitbucket.org/lindenlab/3p-minizip-ng + copyright + This project uses the zlib license. Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler + description + minizip-ng is a zip manipulation library. Based on work of Gilles Vollant. + license + minizip-ng + license_file + LICENSES/minizip-ng.txt + name + minizip-ng platforms darwin64 @@ -1835,23 +1859,22 @@ windows64 - license - minizip-ng - license_file - LICENSES/minizip-ng.txt - copyright - This project uses the zlib license. Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler version 3.0.2.3e9876e - name - minizip-ng - canonical_repo - https://bitbucket.org/lindenlab/3p-minizip-ng - description - minizip-ng is a zip manipulation library. Based on work of Gilles Vollant. nghttp2 + copyright + Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa +Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors + description + Library providing HTTP 2 support for libcurl + license + MIT + license_file + LICENSES/nghttp2.txt + name + nghttp2 platforms darwin64 @@ -1897,28 +1920,27 @@ windows64 - license - MIT - license_file - LICENSES/nghttp2.txt - copyright - Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa -Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors - version - 1.40.0.b1526c6 - name - nghttp2 - description - Library providing HTTP 2 support for libcurl source_type hg + version + 1.40.0.b1526c6 nvapi - platforms - - windows64 - + copyright + Copyright © 2012 NVIDIA Corporation. All rights reserved. + description + NVAPI provides an interface to NVIDIA devices. + license + NVIDIA Corporation Software License Agreement – NVAPI SDK + license_file + LICENSES/NVAPI_SDK_License_Agreement.pdf + name + nvapi + platforms + + windows64 + archive hash @@ -1932,21 +1954,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - NVIDIA Corporation Software License Agreement – NVAPI SDK - license_file - LICENSES/NVAPI_SDK_License_Agreement.pdf - copyright - Copyright © 2012 NVIDIA Corporation. All rights reserved. version 352.aac0e19 - name - nvapi - description - NVAPI provides an interface to NVIDIA devices. ogg_vorbis + copyright + Copyright (c) 2002, Xiph.org Foundation + description + Audio encoding library + license + ogg-vorbis + license_file + LICENSES/ogg-vorbis.txt + name + ogg_vorbis platforms darwin64 @@ -1990,96 +2012,96 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - ogg-vorbis - license_file - LICENSES/ogg-vorbis.txt - copyright - Copyright (c) 2002, Xiph.org Foundation version 1.3.3-1.3.6.e4101b6 - name - ogg_vorbis - description - Audio encoding library open-libndofdev + copyright + Copyright (c) 2008, Jan Ciger (jan.ciger (at) gmail.com) + description + Open Source replacement for 3DConnection SDK license BSD license_file LICENSES/libndofdev.txt - copyright - Copyright (c) 2008, Jan Ciger (jan.ciger (at) gmail.com) - version - 0.3 name open-libndofdev - description - Open Source replacement for 3DConnection SDK + version + 0.3 openal + copyright + Copyright (C) 1999-2007 by authors. + description + OpenAL Soft is a software implementation of the OpenAL 3D audio API. + license + LGPL2 + license_file + LICENSES/openal-soft.txt + name + openal platforms - linux64 + darwin64 archive hash - e0fbc4874acc4167a6e2b6489fbb8258d98fd665 + 4edaef5f03a1122eae8467c4a04d9caccaaaf847 hash_algorithm sha1 url - https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-linux64-18e315c.tar.zst + https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-darwin64-18e315c.tar.zst name - linux64 + darwin64 - windows64 + linux64 archive hash - 6ae3b5310eb1988741bc55416681ca9d64f76f85 + e0fbc4874acc4167a6e2b6489fbb8258d98fd665 hash_algorithm sha1 url - https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-windows64-18e315c.tar.zst + https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-linux64-18e315c.tar.zst name - windows64 + linux64 - darwin64 + windows64 archive hash - 4edaef5f03a1122eae8467c4a04d9caccaaaf847 + 6ae3b5310eb1988741bc55416681ca9d64f76f85 hash_algorithm sha1 url - https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-darwin64-18e315c.tar.zst + https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-windows64-18e315c.tar.zst name - darwin64 + windows64 - license - LGPL2 - license_file - LICENSES/openal-soft.txt - copyright - Copyright (C) 1999-2007 by authors. version 1.23.1 - name - openal - description - OpenAL Soft is a software implementation of the OpenAL 3D audio API. openjpeg + copyright + Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium; Copyright (c) 2002-2007, Professor Benoit Macq; Copyright (c) 2001-2003, David Janssens; Copyright (c) 2002-2003, Yannick Verschueren; Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe; Copyright (c) 2005, Herve Drolon, FreeImage Team; Copyright (c) 2006-2007, Parvatha Elangovan; Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>; Copyright (c) 2010-2011, Kaori Hagihara; Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France; Copyright (c) 2012, CS Systemes d'Information, France; + description + The OpenJPEG library is an open-source JPEG 2000 codec written in C language. + license + BSD + license_file + LICENSES/openjpeg.txt + name + openjpeg platforms darwin64 @@ -2125,21 +2147,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - BSD - license_file - LICENSES/openjpeg.txt - copyright - Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium; Copyright (c) 2002-2007, Professor Benoit Macq; Copyright (c) 2001-2003, David Janssens; Copyright (c) 2002-2003, Yannick Verschueren; Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe; Copyright (c) 2005, Herve Drolon, FreeImage Team; Copyright (c) 2006-2007, Parvatha Elangovan; Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>; Copyright (c) 2010-2011, Kaori Hagihara; Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France; Copyright (c) 2012, CS Systemes d'Information, France; version 2.5.0.ea12248 - name - openjpeg - description - The OpenJPEG library is an open-source JPEG 2000 codec written in C language. openssl + copyright + Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved; Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + description + Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) Library + license + openssl + license_file + LICENSES/openssl.txt + name + openssl platforms darwin64 @@ -2185,21 +2207,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - openssl - license_file - LICENSES/openssl.txt - copyright - Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved; Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) version 1.1.1q.de53f55 - name - openssl - description - Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) Library pcre + copyright + Copyright (c) 1997-2014 University of Cambridge; Copyright(c) 2009-2014 Zoltan Herczeg; Copyright (c) 2007-2012, Google Inc. + description + PCRE Perl-compatible regular expression library + license + bsd + license_file + LICENSES/pcre-license.txt + name + pcre platforms darwin64 @@ -2243,21 +2265,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - bsd - license_file - LICENSES/pcre-license.txt - copyright - Copyright (c) 1997-2014 University of Cambridge; Copyright(c) 2009-2014 Zoltan Herczeg; Copyright (c) 2007-2012, Google Inc. version 8.35.979fd86 - name - pcre - description - PCRE Perl-compatible regular expression library slvoice + copyright + 2010 Vivox, including audio coding using Polycom¨ Siren14TM (ITU-T Rec. G.722.1 Annex C) + description + Vivox SDK components + license + Mixed + license_file + LICENSES/vivox_licenses.txt + name + slvoice platforms darwin64 @@ -2305,21 +2327,19 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - Mixed - license_file - LICENSES/vivox_licenses.txt - copyright - 2010 Vivox, including audio coding using Polycom¨ Siren14TM (ITU-T Rec. G.722.1 Annex C) version 4.10.0000.32327.5fc3fe7c.571099 - name - slvoice - description - Vivox SDK components threejs + copyright + Copyright © 2010-2021 three.js authors + license + MIT + license_file + LICENSES/THREEJS_LICENSE.txt + name + threejs platforms darwin64 @@ -2363,16 +2383,8 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - MIT - license_file - LICENSES/THREEJS_LICENSE.txt - copyright - Copyright © 2010-2021 three.js authors version 0.132.2 - name - threejs tinygltf @@ -2412,6 +2424,18 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors tracy + canonical_repo + https://bitbucket.org/lindenlab/3p-tracy + copyright + Copyright (c) 2017-2022, Bartosz Taudul (wolf@nereid.pl) + description + Tracy Profiler Library + license + bsd + license_file + LICENSES/tracy_license.txt + name + tracy platforms darwin64 @@ -2441,20 +2465,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - bsd - license_file - LICENSES/tracy_license.txt - copyright - Copyright (c) 2017-2022, Bartosz Taudul (wolf@nereid.pl) - version - v0.8.1.235e98f - name - tracy - canonical_repo - https://bitbucket.org/lindenlab/3p-tracy - description - Tracy Profiler Library source https://bitbucket.org/lindenlab/3p-tracy source_type @@ -2464,6 +2474,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors tut + copyright + Copyright 2002-2006 Vladimir Dyuzhev, Copyright 2007 Denis Kononenko, Copyright 2008-2009 Michał Rzechonek + description + TUT is a small and portable unit test framework for C++. + license + bsd + license_file + LICENSES/tut.txt + name + tut platforms common @@ -2481,21 +2501,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors common - license - bsd - license_file - LICENSES/tut.txt - copyright - Copyright 2002-2006 Vladimir Dyuzhev, Copyright 2007 Denis Kononenko, Copyright 2008-2009 Michał Rzechonek version 2008.11.30 - name - tut - description - TUT is a small and portable unit test framework for C++. uriparser + copyright + Copyright (C) 2007, Weijia Song <songweijia@gmail.com>, Sebastian Pipping <webmaster@hartwork.org> + description + uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C. uriparser is cross-platform, fast, supports Unicode and is licensed under the New BSD license. + license + New BSD license + license_file + LICENSES/uriparser.txt + name + uriparser platforms darwin64 @@ -2541,21 +2561,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - New BSD license - license_file - LICENSES/uriparser.txt - copyright - Copyright (C) 2007, Weijia Song <songweijia@gmail.com>, Sebastian Pipping <webmaster@hartwork.org> version 0.9.4 - name - uriparser - description - uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C. uriparser is cross-platform, fast, supports Unicode and is licensed under the New BSD license. viewer-manager + copyright + Copyright (c) 2000-2012, Linden Research, Inc. + description + Linden Lab Viewer Management Process suite. + license + viewerlgpl + license_file + LICENSE + name + viewer-manager platforms darwin64 @@ -2601,25 +2621,23 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - viewerlgpl - license_file - LICENSE - copyright - Copyright (c) 2000-2012, Linden Research, Inc. - version - 3.0-08bf5ee - name - viewer-manager - description - Linden Lab Viewer Management Process suite. source https://bitbucket.org/lindenlab/vmp-standalone source_type hg + version + 3.0-08bf5ee vlc-bin + copyright + Copyright (C) 1998-2016 VLC authors and VideoLAN + license + GPL2 + license_file + LICENSES/vlc.txt + name + vlc-bin platforms darwin64 @@ -2651,19 +2669,23 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - GPL2 - license_file - LICENSES/vlc.txt - copyright - Copyright (C) 1998-2016 VLC authors and VideoLAN version 3.0.16.c219a5d - name - vlc-bin - xmlrpc-epi + vulkan_gltf + canonical_repo + https://bitbucket.org/lindenlab/3p-vulkan-gltf-pbr + copyright + Copyright (c) 2018 Sascha Willems + description + Vulkan GLTF Sample Implementation + license + Copyright (c) 2018 Sascha Willems + license_file + LICENSES/vulkan_gltf.txt + name + vulkan_gltf platforms darwin64 @@ -2671,71 +2693,53 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - aa12611374876196b3ebb6bda8d419a697217b8b - hash_algorithm - sha1 + 8cff2060843db3db788511ee34a8e8cc url - https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-darwin64-8a05acf.tar.zst + https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/101316/891509/vulkan_gltf-1-darwin64-572743.tar.bz2 name darwin64 - linux64 + windows archive hash - ad0c8b41ee4b4de216382bec46ee1c25962a3f12 - hash_algorithm - sha1 + 58eea384be49ba756ce9c5e66669540b url - https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-linux64-8a05acf.tar.zst + https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/101318/891520/vulkan_gltf-1-windows-572743.tar.bz2 name - linux64 + windows windows64 archive hash - e53fd38c14b8c47c7c84dead8a1b211bb8be170c - hash_algorithm - sha1 + 79b6a11622c2f83cfc2b7cd1fafb867b url - https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-windows64-8a05acf.tar.zst + https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/101319/891521/vulkan_gltf-1-windows64-572743.tar.bz2 name windows64 - license - xmlrpc-epi - license_file - LICENSES/xmlrpc-epi.txt - copyright - Copyright: (C) 2000 Epinions, Inc. version - 0.54.1.8a05acf - name - xmlrpc-epi - description - XMLRPC Library + 1 - vulkan_gltf + xmlrpc-epi - canonical_repo - https://bitbucket.org/lindenlab/3p-vulkan-gltf-pbr copyright - Copyright (c) 2018 Sascha Willems + Copyright: (C) 2000 Epinions, Inc. description - Vulkan GLTF Sample Implementation + XMLRPC Library license - Copyright (c) 2018 Sascha Willems + xmlrpc-epi license_file - LICENSES/vulkan_gltf.txt + LICENSES/xmlrpc-epi.txt name - vulkan_gltf + xmlrpc-epi platforms darwin64 @@ -2743,43 +2747,59 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 8cff2060843db3db788511ee34a8e8cc + aa12611374876196b3ebb6bda8d419a697217b8b + hash_algorithm + sha1 url - https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/101316/891509/vulkan_gltf-1-darwin64-572743.tar.bz2 + https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-darwin64-8a05acf.tar.zst name darwin64 - windows + linux64 archive hash - 58eea384be49ba756ce9c5e66669540b + ad0c8b41ee4b4de216382bec46ee1c25962a3f12 + hash_algorithm + sha1 url - https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/101318/891520/vulkan_gltf-1-windows-572743.tar.bz2 + https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-linux64-8a05acf.tar.zst name - windows + linux64 windows64 archive hash - 79b6a11622c2f83cfc2b7cd1fafb867b + e53fd38c14b8c47c7c84dead8a1b211bb8be170c + hash_algorithm + sha1 url - https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/101319/891521/vulkan_gltf-1-windows64-572743.tar.bz2 + https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-windows64-8a05acf.tar.zst name windows64 version - 1 + 0.54.1.8a05acf xxhash + copyright + Copyright (c) 2012-2021 Yann Collet + description + xxHash Library + license + xxhash + license_file + LICENSES/xxhash.txt + name + xxhash platforms common @@ -2837,21 +2857,23 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - xxhash - license_file - LICENSES/xxhash.txt - copyright - Copyright (c) 2012-2021 Yann Collet version 0.8.1.7501c90 - name - xxhash - description - xxHash Library zlib-ng + canonical_repo + https://bitbucket.org/lindenlab/3p-zlib-ng + copyright + Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler + description + zlib data compression library for the next generation systems + license + zlib-ng + license_file + LICENSES/zlib-ng.txt + name + zlib-ng platforms darwin64 @@ -2897,24 +2919,24 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors windows64 - license - zlib-ng - license_file - LICENSES/zlib-ng.txt - copyright - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler version 1.2.11.zlib-ng.32fd361 - name - zlib-ng - canonical_repo - https://bitbucket.org/lindenlab/3p-zlib-ng - description - zlib data compression library for the next generation systems package_description + canonical_repo + https://github.com/secondlife/viewer + copyright + Copyright (c) 2020, Linden Research, Inc. + description + Second Life Viewer + license + LGPL + license_file + docs/LICENSE-source.txt + name + Second Life Viewer platforms common @@ -2923,6 +2945,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors RelWithDebInfo + build + + configure command @@ -2933,10 +2958,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=TRUE - - - build - + name RelWithDebInfo @@ -2945,6 +2967,10 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors configure + arguments + + ../indra + command cmake options @@ -2953,17 +2979,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - - arguments - - ../indra - + name RelWithDebInfoOS Release + build + + configure command @@ -2974,10 +2999,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=TRUE - - - build - + name Release @@ -2986,6 +3008,10 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors configure + arguments + + ../indra + command cmake options @@ -2994,11 +3020,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - - arguments - - ../indra - + name ReleaseOS @@ -3009,22 +3031,12 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors darwin64 + build_directory + build-darwin-x86_64 configurations RelWithDebInfo - configure - - options - - -G - Xcode - - arguments - - ../indra - - build command @@ -3036,23 +3048,27 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -project SecondLife.xcodeproj -parallelizeTargets - + - default - True - name - RelWithDebInfo - - RelWithDebInfoOS - configure + arguments + + ../indra + options -G Xcode - + + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + build command @@ -3064,25 +3080,21 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -project SecondLife.xcodeproj -parallelizeTargets - + - name - RelWithDebInfoOS - - Release - configure options -G Xcode - - arguments - - ../indra - + + name + RelWithDebInfoOS + + Release + build command @@ -3094,21 +3106,25 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -project SecondLife.xcodeproj -parallelizeTargets - + - name - Release - - ReleaseOS - configure + arguments + + ../indra + options -G Xcode - + + name + Release + + ReleaseOS + build command @@ -3120,40 +3136,48 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -project SecondLife.xcodeproj -parallelizeTargets - + + + configure + + options + + -G + Xcode + name ReleaseOS - build_directory - build-darwin-x86_64 name darwin64 linux64 + build_directory + build-linux-x86_64 configurations Release + build + + command + ninja + configure + arguments + + ../indra + options -G Ninja -DLL_TESTS=Off - - arguments - - ../indra - - - build - - command - ninja + default True @@ -3162,6 +3186,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors ReleaseOS + build + + command + ninja + configure options @@ -3169,12 +3198,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -G Ninja -DLL_TESTS=Off - - - build - - command - ninja + name ReleaseOS @@ -3188,44 +3212,44 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors default - build_directory - build-linux-x86_64 name linux64 windows + build_directory + build-vc${AUTOBUILD_VSVER|170}-$AUTOBUILD_ADDRSIZE configurations RelWithDebInfo - configure + build - options - - -G - ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} - -A - ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - arguments - ..\indra - - - build - + SecondLife.sln + command devenv options /build RelWithDebInfo|${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - + + + configure + arguments - SecondLife.sln - + ..\indra + + options + + -G + ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} + -A + ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + default True @@ -3234,25 +3258,12 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors RelWithDebInfoOS - configure + build - options - - -G - ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} - -A - ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - -DINSTALL_PROPRIETARY=FALSE - -DUSE_KDU=FALSE - -DUSE_OPENAL:BOOL=ON - arguments - ..\indra - - - build - + SecondLife.sln + command msbuild.exe options @@ -3263,70 +3274,69 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors /p:useenv=true /verbosity:minimal /p:VCBuildAdditionalOptions= /incremental - - arguments - - SecondLife.sln - + - name - RelWithDebInfoOS - - Release - configure + arguments + + ..\indra + options -G ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} -A ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - - arguments - - ..\indra - + -DINSTALL_PROPRIETARY=FALSE + -DUSE_KDU=FALSE + -DUSE_OPENAL:BOOL=ON + + name + RelWithDebInfoOS + + Release + build + arguments + + SecondLife.sln + command devenv options /build Release|${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - - arguments - - SecondLife.sln - + - name - Release - - ReleaseOS - configure + arguments + + ..\indra + options -G ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} -A ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - -DUNATTENDED:BOOL=ON - -DINSTALL_PROPRIETARY=FALSE - -DUSE_KDU=FALSE - -DUSE_OPENAL:BOOL=ON - - arguments - - ..\indra - + + name + Release + + ReleaseOS + build + arguments + + SecondLife.sln + command msbuild.exe options @@ -3337,36 +3347,40 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors /p:useenv=true /verbosity:minimal /p:VCBuildAdditionalOptions= /incremental - + + + configure + arguments - SecondLife.sln - + ..\indra + + options + + -G + ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} + -A + ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + -DUNATTENDED:BOOL=ON + -DINSTALL_PROPRIETARY=FALSE + -DUSE_KDU=FALSE + -DUSE_OPENAL:BOOL=ON + name ReleaseOS - build_directory - build-vc${AUTOBUILD_VSVER|170}-$AUTOBUILD_ADDRSIZE name windows - license - LGPL - license_file - docs/LICENSE-source.txt - copyright - Copyright (c) 2020, Linden Research, Inc. version_file newview/viewer_version.txt - name - Second Life Viewer - canonical_repo - https://github.com/secondlife/viewer - description - Second Life Viewer + type + autobuild + version + 1.3 diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp index d610a44bc6..eea3077632 100644 --- a/indra/llrender/llrendernavprim.cpp +++ b/indra/llrender/llrendernavprim.cpp @@ -40,20 +40,20 @@ LLRenderNavPrim gRenderNav; //============================================================================= void LLRenderNavPrim::renderLLTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, const LLColor4U& color ) const { - LLColor4 cV(color); - gGL.color4fv( cV.mV ); - gGL.begin(LLRender::TRIANGLES); + gGL.color4ubv(color.mV); + + gGL.begin(LLRender::TRIANGLES); { gGL.vertex3fv( a.mV ); gGL.vertex3fv( b.mV ); gGL.vertex3fv( c.mV ); } - gGL.end(); + gGL.end(); } //============================================================================= void LLRenderNavPrim::renderNavMeshVB( U32 mode, LLVertexBuffer* pVBO, int vertCnt ) { pVBO->setBuffer(); - pVBO->drawArrays( mode, 0, vertCnt ); + pVBO->drawArrays( mode, 0, vertCnt ); } //============================================================================= -- cgit v1.3 From 78ce375dda587cbc86ade15a4d564a469e6db9d3 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 3 Jan 2024 22:57:28 +0200 Subject: SL-17896 Don't crash silently if files are missing or out of memory Under debug LL_ERRS will show a message as well, but release won't show anything and will quit silently so show a notification when applicable. --- indra/llcommon/llcoros.cpp | 1 + indra/llcommon/llerror.cpp | 42 ++++++++++++++++++++++ indra/llcommon/llerror.h | 23 ++++++++++++ indra/llcommon/llexception.cpp | 1 + indra/llcorehttp/_httpservice.cpp | 1 + indra/llimage/llimagebmp.cpp | 1 + indra/llimage/llimagedxt.cpp | 1 + indra/llimage/llimagetga.cpp | 1 + indra/llrender/llimagegl.cpp | 3 ++ indra/llui/llnotifications.cpp | 3 ++ indra/llui/lltexteditor.cpp | 1 + indra/llui/lltransutil.cpp | 8 ++++- indra/newview/llappcorehttp.cpp | 1 + indra/newview/llappviewer.cpp | 29 ++++++++++++--- indra/newview/llappviewer.h | 1 + indra/newview/llavatarrenderinfoaccountant.cpp | 2 ++ indra/newview/llmeshrepository.cpp | 8 ++--- indra/newview/llviewermenu.cpp | 16 +++++++++ indra/newview/skins/default/xui/en/menu_viewer.xml | 6 ++++ indra/newview/skins/default/xui/en/strings.xml | 13 ++++++- 20 files changed, 152 insertions(+), 10 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp index 3ab97b557f..1d383f174d 100644 --- a/indra/llcommon/llcoros.cpp +++ b/indra/llcommon/llcoros.cpp @@ -278,6 +278,7 @@ std::string LLCoros::launch(const std::string& prefix, const callable_t& callabl catch (std::bad_alloc&) { // Out of memory on stack allocation? + LLError::LLUserWarningMsg::showOutOfMemory(); printActiveCoroutines(); LL_ERRS("LLCoros") << "Bad memory allocation in LLCoros::launch(" << prefix << ")!" << LL_ENDL; } diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index 414515854a..3de641fcba 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -1601,6 +1601,48 @@ namespace LLError { return out << boost::stacktrace::stacktrace(); } + + // LLOutOfMemoryWarning + std::string LLUserWarningMsg::sLocalizedOutOfMemoryTitle; + std::string LLUserWarningMsg::sLocalizedOutOfMemoryWarning; + LLUserWarningMsg::Handler LLUserWarningMsg::sHandler; + + void LLUserWarningMsg::show(const std::string& message) + { + if (sHandler) + { + sHandler(std::string(), message); + } + } + + void LLUserWarningMsg::showOutOfMemory() + { + if (sHandler && !sLocalizedOutOfMemoryTitle.empty()) + { + sHandler(sLocalizedOutOfMemoryTitle, sLocalizedOutOfMemoryWarning); + } + } + + void LLUserWarningMsg::showMissingFiles() + { + // Files Are missing, likely can't localize. + const std::string error_string = + "Second Life viewer couldn't access some of the files it needs and will be closed." + "\n\nPlease reinstall viewer from https://secondlife.com/support/downloads/ and " + "contact https://support.secondlife.com if issue persists after reinstall."; + sHandler("Missing Files", error_string); + } + + void LLUserWarningMsg::setHandler(const LLUserWarningMsg::Handler &handler) + { + sHandler = handler; + } + + void LLUserWarningMsg::setOutOfMemoryStrings(const std::string& title, const std::string& message) + { + sLocalizedOutOfMemoryTitle = title; + sLocalizedOutOfMemoryWarning = message; + } } void crashdriver(void (*callback)(int*)) diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 05dd88ee51..6f6b349cf5 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -39,6 +39,7 @@ #include "llpreprocessor.h" #include +#include // std::function const int LL_ERR_NOERR = 0; @@ -301,6 +302,28 @@ namespace LLError { friend std::ostream& operator<<(std::ostream& out, const LLStacktrace&); }; + + // Provides access to OS notification popup on error, since + // not everything has access to OS's messages + class LLUserWarningMsg + { + public: + typedef std::function Handler; + static void setHandler(const Handler&); + static void setOutOfMemoryStrings(const std::string& title, const std::string& message); + + // When viewer encounters bad alloc or can't access files try warning user about reasons + static void showOutOfMemory(); + static void showMissingFiles(); + // Genering error + static void show(const std::string&); + + private: + // needs to be preallocated before viewer runs out of memory + static std::string sLocalizedOutOfMemoryTitle; + static std::string sLocalizedOutOfMemoryWarning; + static Handler sHandler; + }; } //this is cheaper than llcallstacks if no need to output other variables to call stacks. diff --git a/indra/llcommon/llexception.cpp b/indra/llcommon/llexception.cpp index 46560b5e4c..0787bde57f 100644 --- a/indra/llcommon/llexception.cpp +++ b/indra/llcommon/llexception.cpp @@ -37,6 +37,7 @@ #include "llerror.h" #include "llerrorcontrol.h" + // used to attach and extract stacktrace information to/from boost::exception, // see https://www.boost.org/doc/libs/release/doc/html/stacktrace/getting_started.html#stacktrace.getting_started.exceptions_with_stacktrace // apparently the struct passed as the first template param needs no definition? diff --git a/indra/llcorehttp/_httpservice.cpp b/indra/llcorehttp/_httpservice.cpp index 294acd7f63..517076804d 100644 --- a/indra/llcorehttp/_httpservice.cpp +++ b/indra/llcorehttp/_httpservice.cpp @@ -320,6 +320,7 @@ void HttpService::threadRun(LLCoreInt::HttpThread * thread) LLMemory::logMemoryInfo(TRUE); //output possible call stacks to log file. + LLError::LLUserWarningMsg::showOutOfMemory(); LLError::LLCallStacks::print(); LL_ERRS() << "Bad memory allocation in HttpService::threadRun()!" << LL_ENDL; diff --git a/indra/llimage/llimagebmp.cpp b/indra/llimage/llimagebmp.cpp index 90b7272efa..cdea0da68d 100644 --- a/indra/llimage/llimagebmp.cpp +++ b/indra/llimage/llimagebmp.cpp @@ -321,6 +321,7 @@ bool LLImageBMP::updateData() mColorPalette = new(std::nothrow) U8[color_palette_size]; if (!mColorPalette) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Out of memory in LLImageBMP::updateData()" << LL_ENDL; return false; } diff --git a/indra/llimage/llimagedxt.cpp b/indra/llimage/llimagedxt.cpp index 36317a5ba8..ae76c5243f 100644 --- a/indra/llimage/llimagedxt.cpp +++ b/indra/llimage/llimagedxt.cpp @@ -437,6 +437,7 @@ bool LLImageDXT::convertToDXR() U8* newdata = (U8*)ll_aligned_malloc_16(total_bytes); if (!newdata) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Out of memory in LLImageDXT::convertToDXR()" << LL_ENDL; return false; } diff --git a/indra/llimage/llimagetga.cpp b/indra/llimage/llimagetga.cpp index 88bdae9b80..152a7f309c 100644 --- a/indra/llimage/llimagetga.cpp +++ b/indra/llimage/llimagetga.cpp @@ -266,6 +266,7 @@ bool LLImageTGA::updateData() mColorMap = new(std::nothrow) U8[ color_map_bytes ]; if (!mColorMap) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Out of Memory in bool LLImageTGA::updateData()" << LL_ENDL; return false; } diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index c6fd824c4e..56a12b07b1 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -1353,6 +1353,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt scratch = new(std::nothrow) U32[width * height]; if (!scratch) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) << " bytes for a manual image W" << width << " H" << height << LL_ENDL; } @@ -1378,6 +1379,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt scratch = new(std::nothrow) U32[width * height]; if (!scratch) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) << " bytes for a manual image W" << width << " H" << height << LL_ENDL; } @@ -1406,6 +1408,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt scratch = new(std::nothrow) U32[width * height]; if (!scratch) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) << " bytes for a manual image W" << width << " H" << height << LL_ENDL; } diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index d736aa6634..2fe9ee18e3 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -1553,6 +1553,7 @@ bool LLNotifications::loadTemplates() if (!success || root.isNull() || !root->hasName( "notifications" )) { + LLError::LLUserWarningMsg::show(LLTrans::getString("MBMissingFile")); LL_ERRS() << "Problem reading XML from UI Notifications file: " << base_filename << LL_ENDL; return false; } @@ -1563,6 +1564,7 @@ bool LLNotifications::loadTemplates() if(!params.validateBlock()) { + LLError::LLUserWarningMsg::show(LLTrans::getString("MBMissingFile")); LL_ERRS() << "Problem reading XUI from UI Notifications file: " << base_filename << LL_ENDL; return false; } @@ -1629,6 +1631,7 @@ bool LLNotifications::loadVisibilityRules() if(!params.validateBlock()) { + LLError::LLUserWarningMsg::show(LLTrans::getString("MBMissingFile")); LL_ERRS() << "Problem reading UI Notification Visibility Rules file: " << full_filename << LL_ENDL; return false; } diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 092739a538..a247e8700a 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -2694,6 +2694,7 @@ BOOL LLTextEditor::importBuffer(const char* buffer, S32 length ) char* text = new char[ text_len + 1]; if (text == NULL) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "Memory allocation failure." << LL_ENDL; return FALSE; } diff --git a/indra/llui/lltransutil.cpp b/indra/llui/lltransutil.cpp index 5da722a72b..6c486f29ba 100644 --- a/indra/llui/lltransutil.cpp +++ b/indra/llui/lltransutil.cpp @@ -44,8 +44,13 @@ bool LLTransUtil::parseStrings(const std::string& xml_filename, const std::setdumpCurrentDirectories(LLError::LEVEL_WARN); - LL_ERRS() << "Couldn't load string table " << xml_filename << ". Please reinstall viewer from https://secondlife.com/support/downloads/ and contact https://support.secondlife.com if issue persists after reinstall." << LL_ENDL; + LL_ERRS() << "Couldn't load string table " << xml_filename << " " << errno << LL_ENDL; return false; } @@ -60,6 +65,7 @@ bool LLTransUtil::parseLanguageStrings(const std::string& xml_filename) if (!success) { + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS() << "Couldn't load localization table " << xml_filename << LL_ENDL; return false; } diff --git a/indra/newview/llappcorehttp.cpp b/indra/newview/llappcorehttp.cpp index debf93dccd..51e259992d 100644 --- a/indra/newview/llappcorehttp.cpp +++ b/indra/newview/llappcorehttp.cpp @@ -168,6 +168,7 @@ void LLAppCoreHttp::init() } else { + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS("Init") << "Missing CA File; should be at " << ca_file << LL_ENDL; } diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index e6a47f1c64..a1fecdb981 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -362,7 +362,6 @@ BOOL gRandomizeFramerate = FALSE; BOOL gPeriodicSlowFrame = FALSE; BOOL gCrashOnStartup = FALSE; -BOOL gLLErrorActivated = FALSE; BOOL gLogoutInProgress = FALSE; BOOL gSimulateMemLeak = FALSE; @@ -2253,9 +2252,6 @@ void errorCallback(LLError::ELevel level, const std::string &error_string) OSMessageBox(error_string, LLTrans::getString("MBFatalError"), OSMB_OK); #endif - //Set the ErrorActivated global so we know to create a marker file - gLLErrorActivated = true; - gDebugInfo["FatalMessage"] = error_string; // We're not already crashing -- we simply *intend* to crash. Since we // haven't actually trashed anything yet, we can afford to write the whole @@ -2264,6 +2260,14 @@ void errorCallback(LLError::ELevel level, const std::string &error_string) } } +void errorMSG(const std::string& title_string, const std::string& message_string) +{ + if (!message_string.empty()) + { + OSMessageBox(message_string, title_string.empty() ? LLTrans::getString("MBFatalError") : title_string, OSMB_OK); + } +} + void LLAppViewer::initLoggingAndGetLastDuration() { // @@ -2275,6 +2279,8 @@ void LLAppViewer::initLoggingAndGetLastDuration() LLError::addGenericRecorder(&errorCallback); //LLError::setTimeFunction(getRuntime); + LLError::LLUserWarningMsg::setHandler(errorMSG); + if (mSecondInstance) { @@ -2412,6 +2418,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key, { // failed to load if(file.required) { + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS() << "Error: Cannot load required settings file from: " << full_settings_path << LL_ENDL; return false; } @@ -2510,6 +2517,7 @@ bool LLAppViewer::initConfiguration() if (!success) { LL_WARNS() << "Cannot load default configuration file " << settings_file_list << LL_ENDL; + LLError::LLUserWarningMsg::showMissingFiles(); if (gDirUtilp->fileExists(settings_file_list)) { LL_ERRS() << "Cannot load default configuration file settings_files.xml. " @@ -2533,6 +2541,7 @@ bool LLAppViewer::initConfiguration() if (!mSettingsLocationList->validateBlock()) { + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS() << "Invalid settings file list " << settings_file_list << LL_ENDL; } @@ -2967,6 +2976,8 @@ bool LLAppViewer::initConfiguration() LLEventPumps::instance().obtain("LLControlGroup").post(LLSDMap("init", key)); } + LLError::LLUserWarningMsg::setOutOfMemoryStrings(LLTrans::getString("MBOutOfMemoryTitle"), LLTrans::getString("MBOutOfMemoryErr")); + return true; // Config was successful. } @@ -3004,6 +3015,7 @@ void LLAppViewer::initStrings() // initial check to make sure files are there failed gDirUtilp->dumpCurrentDirectories(LLError::LEVEL_WARN); + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS() << "Viewer failed to find localization and UI files." << " Please reinstall viewer from https://secondlife.com/support/downloads" << " and contact https://support.secondlife.com if issue persists after reinstall." << LL_ENDL; @@ -4309,6 +4321,7 @@ void LLAppViewer::loadKeyBindings() key_bindings_file = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "key_bindings.xml"); if (!gViewerInput.loadBindingsXML(key_bindings_file)) { + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS("InitInfo") << "Unable to open default key bindings from " << key_bindings_file << LL_ENDL; } } @@ -5399,6 +5412,14 @@ void LLAppViewer::forceErrorLLError() LL_ERRS() << "This is a deliberate llerror" << LL_ENDL; } +void LLAppViewer::forceErrorLLErrorMsg() +{ + LLError::LLUserWarningMsg::show("Deliberate error"); + // Note: under debug this will show a message as well, + // but release won't show anything and will quit silently + LL_ERRS() << "This is a deliberate llerror with a message" << LL_ENDL; +} + void LLAppViewer::forceErrorBreakpoint() { LL_WARNS() << "Forcing a deliberate breakpoint" << LL_ENDL; diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 6d1496d517..77a1cdb485 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -152,6 +152,7 @@ public: // LLAppViewer testing helpers. // *NOTE: These will potentially crash the viewer. Only for debugging. virtual void forceErrorLLError(); + virtual void forceErrorLLErrorMsg(); virtual void forceErrorBreakpoint(); virtual void forceErrorBadMemoryAccess(); virtual void forceErrorInfiniteLoop(); diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp index a6c9a41fa4..b95b971890 100644 --- a/indra/newview/llavatarrenderinfoaccountant.cpp +++ b/indra/newview/llavatarrenderinfoaccountant.cpp @@ -339,6 +339,7 @@ void LLAvatarRenderInfoAccountant::sendRenderInfoToRegion(LLViewerRegion * regio } catch (std::bad_alloc&) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "LLCoros::launch() allocation failure" << LL_ENDL; } } @@ -370,6 +371,7 @@ void LLAvatarRenderInfoAccountant::getRenderInfoFromRegion(LLViewerRegion * regi } catch (std::bad_alloc&) { + LLError::LLUserWarningMsg::showOutOfMemory(); LL_ERRS() << "LLCoros::launch() allocation failure" << LL_ENDL; } } diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index 01d6469010..6dc4f25d02 100644 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -1360,7 +1360,7 @@ bool LLMeshRepoThread::fetchMeshSkinInfo(const LLUUID& mesh_id, bool can_retry) U8* buffer = new(std::nothrow) U8[size]; if (!buffer) { - LL_WARNS_ONCE(LOG_MESH) << "Failed to allocate memory for skin info, size: " << size << LL_ENDL; + LL_WARNS(LOG_MESH) << "Failed to allocate memory for skin info, size: " << size << LL_ENDL; return false; } LLMeshRepository::sCacheBytesRead += size; @@ -1473,7 +1473,7 @@ bool LLMeshRepoThread::fetchMeshDecomposition(const LLUUID& mesh_id) U8* buffer = new(std::nothrow) U8[size]; if (!buffer) { - LL_WARNS_ONCE(LOG_MESH) << "Failed to allocate memory for mesh decomposition, size: " << size << LL_ENDL; + LL_WARNS(LOG_MESH) << "Failed to allocate memory for mesh decomposition, size: " << size << LL_ENDL; return false; } LLMeshRepository::sCacheBytesRead += size; @@ -1575,7 +1575,7 @@ bool LLMeshRepoThread::fetchMeshPhysicsShape(const LLUUID& mesh_id) U8* buffer = new(std::nothrow) U8[size]; if (!buffer) { - LL_WARNS_ONCE(LOG_MESH) << "Failed to allocate memory for physics shape, size: " << size << LL_ENDL; + LL_WARNS(LOG_MESH) << "Failed to allocate memory for physics shape, size: " << size << LL_ENDL; return false; } file.read(buffer, size); @@ -1770,7 +1770,7 @@ bool LLMeshRepoThread::fetchMeshLOD(const LLVolumeParams& mesh_params, S32 lod, U8* buffer = new(std::nothrow) U8[size]; if (!buffer) { - LL_WARNS_ONCE(LOG_MESH) << "Can't allocate memory for mesh " << mesh_id << " LOD " << lod << ", size: " << size << LL_ENDL; + LL_WARNS(LOG_MESH) << "Can't allocate memory for mesh " << mesh_id << " LOD " << lod << ", size: " << size << LL_ENDL; // todo: for now it will result in indefinite constant retries, should result in timeout // or in retry-count and disabling mesh. (but usually viewer is beyond saving at this point) return false; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 2cf341f87f..289ad2a948 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -289,6 +289,7 @@ void handle_disconnect_viewer(void *); void force_error_breakpoint(void *); void force_error_llerror(void *); +void force_error_llerror_msg(void*); void force_error_bad_memory_access(void *); void force_error_infinite_loop(void *); void force_error_software_exception(void *); @@ -2400,6 +2401,15 @@ class LLAdvancedForceErrorLlerror : public view_listener_t } }; +class LLAdvancedForceErrorLlerrorMsg: public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + force_error_llerror_msg(NULL); + return true; + } +}; + class LLAdvancedForceErrorBadMemoryAccess : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -8379,6 +8389,11 @@ void force_error_llerror(void *) LLAppViewer::instance()->forceErrorLLError(); } +void force_error_llerror_msg(void*) +{ + LLAppViewer::instance()->forceErrorLLErrorMsg(); +} + void force_error_bad_memory_access(void *) { LLAppViewer::instance()->forceErrorBadMemoryAccess(); @@ -9604,6 +9619,7 @@ void initialize_menus() // Advanced > Debugging view_listener_t::addMenu(new LLAdvancedForceErrorBreakpoint(), "Advanced.ForceErrorBreakpoint"); view_listener_t::addMenu(new LLAdvancedForceErrorLlerror(), "Advanced.ForceErrorLlerror"); + view_listener_t::addMenu(new LLAdvancedForceErrorLlerrorMsg(), "Advanced.ForceErrorLlerrorMsg"); view_listener_t::addMenu(new LLAdvancedForceErrorBadMemoryAccess(), "Advanced.ForceErrorBadMemoryAccess"); view_listener_t::addMenu(new LLAdvancedForceErrorBadMemoryAccessCoro(), "Advanced.ForceErrorBadMemoryAccessCoro"); view_listener_t::addMenu(new LLAdvancedForceErrorInfiniteLoop(), "Advanced.ForceErrorInfiniteLoop"); diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 38763cd9a8..7b3b4ed395 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2716,6 +2716,12 @@ function="World.EnvPreset" + + + diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index f3b26820d2..7360c06f86 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -3019,8 +3019,19 @@ Running in window. If you continue to receive this message, contact the [SUPPORT_SITE]. + Out Of Memory + + [APP_NAME]'s request for memory failed. Application can't proceed and will be closed. - +If your computer's RAM is low, quit any heavy applications before runing Second Life, allocate a page file or reduce graphical settings like draw distance. + + + [APP_NAME] couldn't access or find some of the files it needs and will be closed. + +Please reinstall viewer from https://secondlife.com/support/downloads/ and contact https://support.secondlife.com if issue persists after reinstall. + + + 5 O'Clock Shadow All White -- cgit v1.3 From 6c43baf0298929ee315bdb3d95f0bd23f589a4cf Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 24 Jan 2024 23:56:22 +0200 Subject: Issue #54 LLRender::init crash --- indra/llrender/llrender.cpp | 10 +++++++++- indra/llrender/llrender.h | 2 +- indra/newview/llviewerwindow.cpp | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index ee66122774..4d64dc9e10 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -857,7 +857,7 @@ LLRender::~LLRender() shutdown(); } -void LLRender::init(bool needs_vertex_buffer) +bool LLRender::init(bool needs_vertex_buffer) { #if LL_WINDOWS if (gGLManager.mHasDebugOutput && gDebugGL) @@ -879,6 +879,13 @@ void LLRender::init(bool needs_vertex_buffer) // necessary for reflection maps glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); +#if LL_WINDOWS + if (glGenVertexArrays == nullptr) + { + return false; + } +#endif + { //bind a dummy vertex array object so we're core profile compliant U32 ret; glGenVertexArrays(1, &ret); @@ -889,6 +896,7 @@ void LLRender::init(bool needs_vertex_buffer) { initVertexBuffer(); } + return true; } void LLRender::initVertexBuffer() diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index fd922affba..716b52354d 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -375,7 +375,7 @@ public: LLRender(); ~LLRender(); - void init(bool needs_vertex_buffer); + bool init(bool needs_vertex_buffer); void initVertexBuffer(); void resetVertexBuffer(); void shutdown(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 47c7eed872..37e64dfc17 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1957,7 +1957,11 @@ LLViewerWindow::LLViewerWindow(const Params& p) // Initialize OpenGL Renderer LLVertexBuffer::initClass(mWindow); LL_INFOS("RenderInit") << "LLVertexBuffer initialization done." << LL_ENDL ; - gGL.init(true); + if (!gGL.init(true)) + { + LLError::LLUserWarningMsg::show(LLTrans::getString("MBVideoDrvErr")); + LL_ERRS() << "gGL not initialized" << LL_ENDL; + } if (LLFeatureManager::getInstance()->isSafe() || (gSavedSettings.getS32("LastFeatureVersion") != LLFeatureManager::getInstance()->getVersion()) -- cgit v1.3