From b140b9451d562b7c4115060b837721c0559fdfb8 Mon Sep 17 00:00:00 2001 From: Beq Date: Tue, 22 Apr 2025 19:09:00 +0100 Subject: [PATCH 01/14] Update FMOD Studio to 2.03.07 for Linux and MacOS --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index f71cba29e3..743f4b47bc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -922,11 +922,11 @@ archive hash - ff3057e8763bdbe87a478a3d77067b5a + 19e40aa358c1784b49eccd547e704647 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-2.02.26-darwin64-243641704.tar.bz2 + file:///opt/firestorm/fmodstudio-2.03.07-darwin64-251121740.tar.bz2 name darwin64 @@ -936,11 +936,11 @@ archive hash - 41265f539399e365601a22d108287e91 + a459e2967306ff56a835a321dc00718c hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-2.02.26-linux64-243641703.tar.bz2 + file:///opt/firestorm/fmodstudio-2.03.07-linux64-251121739.tar.bz2 name linux64 From 8443e783a2efd7b11cdc3e7db0cd752d5c4a0e0a Mon Sep 17 00:00:00 2001 From: minerjr Date: Tue, 22 Apr 2025 16:49:01 -0300 Subject: [PATCH 02/14] Change dump to use older std::setw instead of std::format Changed dump method for LLViewerTextureList to use std::setw instead of std::format due to gcc 11 support. --- indra/newview/llviewertexturelist.cpp | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index b282dc3857..4a68e98b38 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -455,10 +455,10 @@ void LLViewerTextureList::dump() LL_INFOS() << "Size vs Size" << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; // Create a header that for the Sizes - LL_INFOS() << std::format("{:<8}", "Size"); + LL_INFOS() << std::setw(8) << "Size"; for (S32 x = 1; x <= 2048; x <<= 1) { - LL_CONT << std::format("{:<8}", x); + LL_CONT << std::setw(8) << x; } LL_CONT << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; @@ -466,11 +466,11 @@ void LLViewerTextureList::dump() // Y Axis is the size of the height of the texture for (S32 y = 0; y < 12; y++) { - LL_INFOS() << std::format("{:<8}", (1 << y)); + LL_INFOS() << std::setw(8) << (1 << y); //X Axis is the size of the width of the texture for (S32 x = 0; x < 12; x++) { - LL_CONT << std::format("{:<8}", size_counts[x + y * 12]); + LL_CONT << std::setw(8) << size_counts[x + y * 12]; } LL_CONT << LL_ENDL; @@ -480,10 +480,10 @@ void LLViewerTextureList::dump() // This is the Discard Level Vs Size counts table LL_INFOS() << "Discard Level Vs Size" << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; - LL_INFOS() << std::format("{:<8}", "Discard"); + LL_INFOS() << std::setw(8) << "Discard"; for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++) { - LL_CONT << std::format("{:<8}", (x - 1)); + LL_CONT << std::setw(8) << (x - 1); } LL_CONT << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; @@ -491,11 +491,11 @@ void LLViewerTextureList::dump() // Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used) for (S32 y = 0; y < 12; y++) { - LL_INFOS() << std::format("{:<8}", (1 << y)); + LL_INFOS() << std::setw(8) << (1 << y); // X Axis is the discard level starging from -1 up to 10 (2 x MAX_DISCARD_LEVEL + 1 (for negative number) + 1 additional for the fact that the last value actuauly used on not < but <=) for (S32 x = 0; x < (MAX_DISCARD_LEVEL * 2 + 2); x++) { - LL_CONT << std::format("{:<8}", discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]); + LL_CONT << std::setw(8) << discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]; } LL_CONT << LL_ENDL; } @@ -505,10 +505,10 @@ void LLViewerTextureList::dump() // This is the Discard Level Vs Full Size counts table LL_INFOS() << "Discard Level Vs Full Size" << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; - LL_INFOS() << std::format("{:<8}", "Discard"); + LL_INFOS() << std::setw(8) << "Discard"; for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++) { - LL_CONT << std::format("{:<8}", (x - 1)); + LL_CONT << std::setw(8) << (x - 1); } LL_CONT << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; @@ -516,11 +516,11 @@ void LLViewerTextureList::dump() // Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used) for (S32 y = 0; y < 12; y++) { - LL_INFOS() << std::format("{:<8}", (1 << y)); + LL_INFOS() << std::setw(8) << (1 << y); // X Axis is the discard level starging from -1 up to 10 (2 x MAX_DISCARD_LEVEL + 1 (for negative number) + 1 additional for the fact that the last value actuauly used on not < but <=) for (S32 x = 0; x < (MAX_DISCARD_LEVEL * 2 + 2); x++) { - LL_CONT << std::format("{:<8}", fullsize_discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]); + LL_CONT << std::setw(8) << fullsize_discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]; } LL_CONT << LL_ENDL; } @@ -531,10 +531,10 @@ void LLViewerTextureList::dump() LL_INFOS() << "Boost Level Vs Size" << LL_ENDL; header_break.append((LLViewerTexture::BOOST_MAX_LEVEL * 8) - (12 * 8), '-'); LL_INFOS() << header_break << LL_ENDL; - LL_INFOS() << std::format("{:<8}", "Discard"); + LL_INFOS() << std::setw(8) << "Discard"; for (S32 x = 0; x < LLViewerTexture::BOOST_MAX_LEVEL; x++) { - LL_CONT << std::format("{:<8}", x); + LL_CONT << std::setw(8) << x; } LL_CONT << LL_ENDL; LL_INFOS() << header_break << LL_ENDL; @@ -542,11 +542,11 @@ void LLViewerTextureList::dump() // Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used) for (S32 y = 0; y < 12; y++) { - LL_INFOS() << std::format("{:<8}", (1 << y)); + LL_INFOS() << std::setw(8) << (1 << y); // X Axis is the boost level starging from BOOST_NONE up to BOOST_MAX_LEVEL for (S32 x = 0; x < (LLViewerTexture::BOOST_MAX_LEVEL); x++) { - LL_CONT << std::format("{:<8}", boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)]); + LL_CONT << std::setw(8) << boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)]; } LL_CONT << LL_ENDL; } From d362e4ed8f89559bc3080baa75384b73d6df57c2 Mon Sep 17 00:00:00 2001 From: minerjr Date: Tue, 22 Apr 2025 16:54:35 -0300 Subject: [PATCH 03/14] Cleaned up comments (incorrect comment from JIRA title) --- indra/llmath/llcamera.cpp | 10 +++++----- indra/llmath/llcamera.h | 4 ++-- indra/llrender/llgltexture.cpp | 2 +- indra/llrender/llgltexture.h | 2 +- indra/llui/llconsole.cpp | 2 +- indra/newview/llappviewer.cpp | 2 +- indra/newview/llface.cpp | 22 +++++++++++----------- indra/newview/llface.h | 2 +- indra/newview/llviewerobjectlist.cpp | 4 ++-- indra/newview/llviewerobjectlist.h | 2 +- indra/newview/llviewertexture.cpp | 24 ++++++++++++------------ indra/newview/llviewertexture.h | 4 ++-- indra/newview/llviewertexturelist.cpp | 26 +++++++++++++------------- indra/newview/llviewertexturelist.h | 2 +- indra/newview/llvoavatar.cpp | 4 ++-- indra/newview/llvograss.cpp | 2 +- indra/newview/llvotree.cpp | 2 +- indra/newview/llvovolume.cpp | 16 ++++++++-------- 18 files changed, 66 insertions(+), 66 deletions(-) diff --git a/indra/llmath/llcamera.cpp b/indra/llmath/llcamera.cpp index 3103ce90dd..b3f0530af5 100644 --- a/indra/llmath/llcamera.cpp +++ b/indra/llmath/llcamera.cpp @@ -35,7 +35,7 @@ LLCamera::LLCamera() : LLCoordFrame(), mView(DEFAULT_FIELD_OF_VIEW), mAspect(DEFAULT_ASPECT_RATIO), - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //mInverseAspect(1.0f / DEFAULT_ASPECT_RATIO), mDrawDistanceMultiplier(1.0f), // [FIRE-35081] @@ -67,14 +67,14 @@ LLCamera::LLCamera(F32 vertical_fov_rads, F32 aspect_ratio, S32 view_height_in_p } mAspect = llclamp(aspect_ratio, MIN_ASPECT_RATIO, MAX_ASPECT_RATIO); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Store the inverse of the aspect ratio, so we can remove it from texture calculations //mInverseAspect = 1.0f / mAspect; // [FIRE-35081] mNearPlane = llclamp(near_plane, MIN_NEAR_PLANE, MAX_NEAR_PLANE); if(far_plane < 0) far_plane = DEFAULT_FAR_PLANE; mFarPlane = llclamp(far_plane, MIN_FAR_PLANE, MAX_FAR_PLANE); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Store the draw distance multiplier based upon how much bigger/smaller the far plan is then the default (64.0f) mDrawDistanceMultiplier = mFarPlane / DEFAULT_FAR_PLANE; mDrawDistanceMultiplier = mDrawDistanceMultiplier < 1.0f ? 1.0f : mDrawDistanceMultiplier; @@ -141,7 +141,7 @@ void LLCamera::setViewHeightInPixels(S32 height) void LLCamera::setAspect(F32 aspect_ratio) { mAspect = llclamp(aspect_ratio, MIN_ASPECT_RATIO, MAX_ASPECT_RATIO); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Store the inverse of the aspect ratio, so we can remove it from texture calculations //mInverseAspect = 1.0f / mAspect; // [FIRE-35081] @@ -159,7 +159,7 @@ void LLCamera::setNear(F32 near_plane) void LLCamera::setFar(F32 far_plane) { mFarPlane = llclamp(far_plane, MIN_FAR_PLANE, MAX_FAR_PLANE); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Store the draw distance multiplier based upon how much bigger/smaller the far plan is then the default (64.0f) mDrawDistanceMultiplier = mFarPlane / DEFAULT_FAR_PLANE; mDrawDistanceMultiplier = mDrawDistanceMultiplier < 1.0f ? 1.0f : mDrawDistanceMultiplier; diff --git a/indra/llmath/llcamera.h b/indra/llmath/llcamera.h index c89162b9ff..81964f73c8 100644 --- a/indra/llmath/llcamera.h +++ b/indra/llmath/llcamera.h @@ -127,7 +127,7 @@ private: F32 mView; // angle between top and bottom frustum planes in radians. F32 mAspect; // width/height - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Store the inverse of the aspect ratio, for the texture's sizes //F32 mInverseAspect; // height/width F32 mDrawDistanceMultiplier; // mFarPlane / DEFAULT_FAR_PLANE @@ -166,7 +166,7 @@ public: F32 getView() const { return mView; } // vertical FOV in radians S32 getViewHeightInPixels() const { return mViewHeightInPixels; } F32 getAspect() const { return mAspect; } // width / height - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //F32 getInverseAspect() const { return mInverseAspect; } // width / height F32 getDrawDistanceMultiplier() const { return mDrawDistanceMultiplier; } // mFarPlane / DEFAULT_FAR_PLANE (could also include near plane as well) // [FIRE-35081] diff --git a/indra/llrender/llgltexture.cpp b/indra/llrender/llgltexture.cpp index 5f645b9d76..377e453ba4 100644 --- a/indra/llrender/llgltexture.cpp +++ b/indra/llrender/llgltexture.cpp @@ -104,7 +104,7 @@ void LLGLTexture::setBoostLevel(S32 level) if(mBoostLevel != LLGLTexture::BOOST_NONE && mBoostLevel != LLGLTexture::BOOST_ICON && mBoostLevel != LLGLTexture::BOOST_THUMBNAIL - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Add the new grass, light and tree boosts && mBoostLevel != LLGLTexture::BOOST_GRASS && mBoostLevel != LLGLTexture::BOOST_LIGHT diff --git a/indra/llrender/llgltexture.h b/indra/llrender/llgltexture.h index 65911e92a7..4336039c1c 100644 --- a/indra/llrender/llgltexture.h +++ b/indra/llrender/llgltexture.h @@ -53,7 +53,7 @@ public: BOOST_AVATAR_BAKED , BOOST_TERRAIN , // Needed for minimap generation for now. Lower than BOOST_HIGH so the texture stats don't get forced, i.e. texture stats are manually managed by minimap/terrain instead. - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings BOOST_GRASS , // Grass has a alternative calculation for virtual and face sizes. BOOST_TREE , // Tree has a alternative calculation for virtual and face sizes. BOOST_LIGHT , // Light textures has a alternative calculation for virtual and face sizes. diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index d810d365bc..0842c90409 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -565,7 +565,7 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, L { if ( !force_resize ) { - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // if ( mMaxWidth >= 0.0f //&& mMaxWidth < screen_width) // If viewer window was made as small as possible with the console enabled, it would cause an assert error diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 8aa46e636d..2279181bba 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -5988,7 +5988,7 @@ void LLAppViewer::idle() // objects and camera should be in sync, do LOD calculations now { LL_RECORD_BLOCK_TIME(FTM_LOD_UPDATE); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Added a max time limit to the object list updates as these updates do affect the texture system //gObjectList.updateApparentAngles(gAgent); F32 max_update_apparent_angles = 0.025f * gFrameIntervalSeconds.value(); // 20 ms/second decode time diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index ca997ff7aa..ef9b585423 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -75,7 +75,7 @@ static LLStaticHashedString sColorIn("color_in"); bool LLFace::sSafeRenderSelect = true; // false -// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer +// [FIRE-35081] Blurry prims not changing with graphics settings // Moved to allow more code to access these values const S8 FACE_IMPORTANCE_LEVEL = 4 ; const F32 FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE[FACE_IMPORTANCE_LEVEL][2] = //{distance, importance_weight} @@ -180,7 +180,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp) mFaceColor = LLColor4(1,0,0,1); mImportanceToCamera = 1.f ; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings mCloseToCamera = 1.0f; // [FIRE-35081] mBoundingSphereRadius = 0.0f ; @@ -1683,7 +1683,7 @@ bool LLFace::getGeometryVolume(const LLVolume& volume, xforms = XFORM_NONE; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Removed check for turning off animations //if (getVirtualSize() >= MIN_TEX_ANIM_SIZE) // || isState(LLFace::RIGGED)) // [FIRE-35081] @@ -2287,7 +2287,7 @@ F32 LLFace::getTextureVirtualSize() F32 radius; F32 cos_angle_to_view_dir; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //bool in_frustum = calcPixelArea(cos_angle_to_view_dir, radius); // The mInFrustum value is now updated in calcPixelArea, so no longer need to accss the value calcPixelArea(cos_angle_to_view_dir, radius); @@ -2325,7 +2325,7 @@ F32 LLFace::getTextureVirtualSize() } face_area = LLFace::adjustPixelArea(mImportanceToCamera, face_area); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Remove the face area being affected by being partial off screen as close to screen textures can then become scaled down along with // animated textures. /* @@ -2423,7 +2423,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) // no rigged extents, zero out bounding box and skip update mRiggedExtents[0] = mRiggedExtents[1] = LLVector4a(0.f, 0.f, 0.f); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Set the face to be out of the frustum as the object is invalid mInFrustum = false; // [FIRE-35081] @@ -2473,7 +2473,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) LLVector4a x_axis; x_axis.load3(camera->getXAxis().mV); cos_angle_to_view_dir = lookAt.dot3(x_axis).getF32(); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Added close to camera (based upon the mImportanceToCamera) where any object that is within the FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE (16.1f) // gets an extra texture scaling up. // Use positive distance to the camera and apply the multiplier based upon the texture scaled for increase in the default draw distance @@ -2488,7 +2488,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) if(!camera->AABBInFrustum(center, size)) { mImportanceToCamera = 0.f ; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Added real in frustum check value. Previous was only false for media textures off screen and invalid rig objects mInFrustum = false; // [FIRE-35081] @@ -2514,7 +2514,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) { cos_angle_to_view_dir = 1.0f ; mImportanceToCamera = 1.0f ; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings mInFrustum = true; // If the face is important to the camera, it is in the frustum mCloseToCamera = 1.0f; // [FIRE-35081] @@ -2561,7 +2561,7 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist) { LL_PROFILE_ZONE_SCOPED_CATEGORY_FACE; F32 importance = 0.f ; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Move camera out to use for the inital check for the distance to the face importance with the multiplier LLViewerCamera* camera = LLViewerCamera::getInstance(); @@ -2581,7 +2581,7 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist) } S32 i = 0 ; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Added draw distance multiplier to the distance for(i = 0; i < FACE_IMPORTANCE_LEVEL && dist > FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE[i][0] * camera->getDrawDistanceMultiplier(); ++i); // [FIRE-35081] diff --git a/indra/newview/llface.h b/indra/newview/llface.h index a3bd935760..16cd4d6eb1 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -52,7 +52,7 @@ class LLDrawInfo; class LLMeshSkinInfo; const F32 MIN_ALPHA_SIZE = 1024.f; -// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer +// [FIRE-35081] Blurry prims not changing with graphics settings //const F32 MIN_TEX_ANIM_SIZE = 512.f; // Change the min size to const F32 MIN_TEX_ANIM_SIZE = 10.f; diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 45af5f228d..e170d8fa19 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -835,7 +835,7 @@ void LLViewerObjectList::setAllObjectDefaultTextures(U32 nChannel, bool fShowDef } } // [/SL:KB] -// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer +// [FIRE-35081] Blurry prims not changing with graphics settings //void LLViewerObjectList::updateApparentAngles(LLAgent &agent) // Added time limit on processing of objects as they affect the texture system (They also calcuate mMaxVirtualSize and mPixelArea) void LLViewerObjectList::updateApparentAngles(LLAgent &agent, F32 max_time) @@ -845,7 +845,7 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent, F32 max_time) LLViewerObject *objectp; S32 num_updates, max_value; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Remove the old code as it worked on fixed number of updates (Total # of Object / 128) per frame // and some objects had nothing to do while others were avatars or volumes and could t /* diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h index fe13d3a4ae..c4a8026f93 100644 --- a/indra/newview/llviewerobjectlist.h +++ b/indra/newview/llviewerobjectlist.h @@ -89,7 +89,7 @@ public: void processObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type, bool compressed=false); void processCompressedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type); void processCachedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //void updateApparentAngles(LLAgent &agent); // Added time limit on processing of objects as they affect the texture system void updateApparentAngles(LLAgent &agent, F32 max_time); diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 0a460152d5..0a8029b26d 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -779,7 +779,7 @@ void LLViewerTexture::setBoostLevel(S32 level) mBoostLevel = level; if(mBoostLevel != LLViewerTexture::BOOST_NONE && mBoostLevel != LLViewerTexture::BOOST_SELECTED && - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Added the new boost levels mBoostLevel != LLViewerTexture::BOOST_GRASS && mBoostLevel != LLViewerTexture::BOOST_LIGHT && @@ -796,7 +796,7 @@ void LLViewerTexture::setBoostLevel(S32 level) if (mBoostLevel >= LLViewerTexture::BOOST_HIGH) { mMaxVirtualSize = 2048.f * 2048.f; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Add additional for the important to camera and in frustum static LLCachedControl texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f); mMaxVirtualSize = mMaxVirtualSize + (mMaxVirtualSize * 1.0f * texture_camera_boost); @@ -1208,7 +1208,7 @@ void LLViewerFetchedTexture::init(bool firstinit) mKeptSavedRawImageTime = 0.f; mLastCallBackActiveTime = 0.f; mForceCallbackFetch = false; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings mCloseToCamera = 1.0f; // Store if the camera is close to the camera (0.0f or 1.0f) // [FIRE-35081] @@ -3086,13 +3086,13 @@ void LLViewerLODTexture::processTextureStats() else if (mBoostLevel < LLGLTexture::BOOST_HIGH && mMaxVirtualSize <= 10.f) { // If the image has not been significantly visible in a while, we don't want it - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL + 1)); // Off screen textures at 6 would not downscale. mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL)); // [FIRE-35081] mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S32)mLoadedCallbackDesiredDiscardLevel); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Add scale down here as the textures off screen were not getting scaled down properly S32 current_discard = getDiscardLevel(); if (mBoostLevel < LLGLTexture::BOOST_AVATAR_BAKED) @@ -3111,7 +3111,7 @@ void LLViewerLODTexture::processTextureStats() } else { - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings /* //static const F64 log_2 = log(2.0); static const F64 log_4 = log(4.0); @@ -3456,7 +3456,7 @@ void LLViewerMediaTexture::initVirtualSize() { return; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Add camera importance to the media textures as well static LLCachedControl texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f); F32 vsize = 0.0f; @@ -3464,7 +3464,7 @@ void LLViewerMediaTexture::initVirtualSize() findFaces(); for(std::list< LLFace* >::iterator iter = mMediaFaceList.begin(); iter!= mMediaFaceList.end(); ++iter) { - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //addTextureStats((*iter)->getVirtualSize()); // Add camera importance to the media textures as well vsize = (*iter)->getVirtualSize(); @@ -3532,7 +3532,7 @@ void LLViewerMediaTexture::addFace(U32 ch, LLFace* facep) } // [/SL:KB] - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Try to set the boost level to MEDIA to try to force the media to high quality tex->setBoostLevel(LLViewerTexture::MEDIA); // [FIRE-35081] @@ -3777,7 +3777,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize() { addTextureStats(0.f, false);//reset } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings static LLCachedControl texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f); F32 vsize = 0.0f; // [FIRE-35081] @@ -3791,7 +3791,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize() LLFace* facep = mFaceList[ch][i]; if(facep->getDrawable()->isRecentlyVisible()) { - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //addTextureStats(facep->getVirtualSize()); // Add the importance to camera and close to camera to the media texture vsize = facep->getVirtualSize(); @@ -3815,7 +3815,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize() LLFace* facep = *iter; if(facep->getDrawable()->isRecentlyVisible()) { - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //addTextureStats(facep->getVirtualSize()); // Add the importance to camera and close to camera to the media texture vsize = facep->getVirtualSize(); diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index 13b6b6b883..812779c6d4 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -437,7 +437,7 @@ public: void setInFastCacheList(bool in_list) { mInFastCacheList = in_list; } bool isInFastCacheList() { return mInFastCacheList; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings F32 getCloseToCamera() const {return mCloseToCamera ;} // Get close to camera value void setCloseToCamera(F32 value) {mCloseToCamera = value ;} // Set the close to camera value (0.0f or 1.0f) // [FIRE-35081] @@ -542,7 +542,7 @@ protected: bool mForSculpt ; //a flag if the texture is used as sculpt data. bool mIsFetched ; //is loaded from remote or from cache, not generated locally. - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings F32 mCloseToCamera; // Float (0.0f or 1.0f) to indicate if the texture is close to the camera // [FIRE-35081] diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 4a68e98b38..32e1248c8b 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -372,7 +372,7 @@ void LLViewerTextureList::shutdown() mInitialized = false ; //prevent loading textures again. } -// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer +// [FIRE-35081] Blurry prims not changing with graphics settings // static // Allows the menu to call the dump method of the texture list void LLViewerTextureList::dumpTexturelist() @@ -385,7 +385,7 @@ void LLViewerTextureList::dump() { LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE; LL_INFOS() << "LLViewerTextureList::dump()" << LL_ENDL; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings S32 texture_count = 0; S32 textures_close_to_camera = 0; std::array image_counts{0}; // Double the size for higher discards from textures < 1024 (2048 can make a 7 and 4096 could make an 8) @@ -404,7 +404,7 @@ void LLViewerTextureList::dump() << " size " << image->getWidth() << "x" << image->getHeight() << " discard " << image->getDiscardLevel() << " desired " << image->getDesiredDiscardLevel() - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings << " close to camera " << (image->getCloseToCamera() > 0.0f ? "Y" : "N") // Display the close to camera flag << " FFType " << fttype_to_string(image->getFTType()) // Display the FFType of the camera << " Type " << (S32)image->getType() // Display the type of the image (LOCAL_TEXTURE = 0, MEDIA_TEXTURE = 1, DYNAMIC_TEXTURE = 2, FETCHED_TEXTURE = 3,LOD_TEXTURE = 4) @@ -422,7 +422,7 @@ void LLViewerTextureList::dump() // [FIRE-35081] LL_CONT << " http://asset.siva.lindenlab.com/" << image->getID() << ".texture" << LL_ENDL; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings image_counts[(image->getDiscardLevel() + 1)] += 1; // Need to add +1 to make up for -1 being a possible value S32 x_index = (S32)log2(image->getWidth()); // Convert the width into a 0 based index by taking the Log2 of the size to get the exponent of the size. (1 = 2^0, 2 = 2^1, 4 = 2^2...) S32 y_index = (S32)log2(image->getHeight()); // Convert the height into a 0 based index by taking the Log2 of the size to get the exponent of the size. (1 = 2^0, 2 = 2^1, 4 = 2^2...) @@ -439,7 +439,7 @@ void LLViewerTextureList::dump() textures_close_to_camera += S32(image->getCloseToCamera()); // [FIRE-35081] } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Add overal texture totals LL_INFOS() << "Texture Stats: Textures in Close to Camera " << textures_close_to_camera << " of " << texture_count << " : " << LL_ENDL; @@ -1095,7 +1095,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag F32 bias = llclamp(max_discard - 2.f, 1.f, LLViewerTexture::sDesiredDiscardBias); // convert bias into a vsize scaler - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //bias = (F32) llroundf(powf(4, bias - 1.f)); // Pre-divide the bias so you can just use multiply in the loop bias = (F32) 1.0f / llroundf(powf(4, bias - 1.f)); @@ -1137,7 +1137,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag if (face && face->getViewerObject()) { ++face_count; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // No longer needed as we no longer re-calculate the face's virtual texture size, we use it directly from the face //F32 radius; //F32 cos_angle_to_view_dir; @@ -1156,7 +1156,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag } // Also moved allocation outside the loop - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //F32 vsize = face->getPixelArea(); //on_screen |= face->mInFrustum; @@ -1171,7 +1171,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag animated += S64(face->hasMedia()); // Add has media for both local and parcel media animated += S64(imagep->hasParcelMedia()); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer (It is) + // [FIRE-35081] Blurry prims not changing with graphics settings (It is) /* // Scale desired texture resolution higher or lower depending on texture scale // @@ -1232,7 +1232,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag } } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //if (max_vsize >= LLViewerFetchedTexture::sMaxVirtualSize // && (on_screen || LLViewerTexture::sDesiredDiscardBias <= BIAS_TRS_ON_SCREEN)) //{ @@ -1241,7 +1241,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag // } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Replaced all the checks for this bool to be only in this 1 place instead of in the loop. // If the on screen counter is greater then 0, then there was at least 1 on screen texture on_screen = bool(on_screen_count); @@ -1269,7 +1269,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag } } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //imagep->addTextureStats(max_vsize); // New logic block for the bias system // Then depending on the type of texture, the higher resolution on_screen_max_vsize is applied. @@ -1396,7 +1396,7 @@ F32 LLViewerTextureList::updateImagesCreateTextures(F32 max_time) mCreateTextureList.pop(); if (imagep->hasGLTexture() && imagep->getDiscardLevel() < imagep->getDesiredDiscardLevel() && - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //(imagep->getDesiredDiscardLevel() <= MAX_DISCARD_LEVEL)) // Add additional restrictions on scaling down (only BOOST_NONE LOD Textures (Also skip media) (imagep->getDesiredDiscardLevel() <= MAX_DISCARD_LEVEL) && imagep->getBoostLevel() == LLViewerTexture::BOOST_NONE && imagep->getType() == LLViewerTexture::LOD_TEXTURE && !imagep->hasParcelMedia() && !imagep->isViewerMediaTexture()) diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h index c8e9693c58..e2f9c15a5a 100644 --- a/indra/newview/llviewertexturelist.h +++ b/indra/newview/llviewertexturelist.h @@ -111,7 +111,7 @@ public: static void receiveImageHeader(LLMessageSystem *msg, void **user_data); static void receiveImagePacket(LLMessageSystem *msg, void **user_data); // - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings static void dumpTexturelist(); // Added code to handle dumping texture information // [FIRE-35081] diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 2ff56d3da8..9b339a5609 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2975,7 +2975,7 @@ LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUU LL_DEBUGS("Avatar") << avString() << "get old-bake image from host " << uuid << LL_ENDL; LLHost host = getObjectHost(); result = LLViewerTextureManager::getFetchedTexture( - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //uuid, FTT_HOST_BAKE, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); uuid, FTT_HOST_BAKE, true, LLGLTexture::BOOST_AVATAR_BAKED, LLViewerTexture::LOD_TEXTURE, 0, 0, host); // [FIRE-35081] @@ -11012,7 +11012,7 @@ void LLVOAvatar::applyParsedAppearanceMessage(LLAppearanceMessageContents& conte //LL_DEBUGS("Avatar") << avString() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL; LL_DEBUGS("Avatar") << avString() << "sb " << (S32) isUsingServerBakes() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL; setTEImage(mBakedTextureDatas[baked_index].mTextureIndex, - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); //Texture will use baked textures, so it should also use that for the boost. LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_AVATAR_BAKED, LLViewerTexture::LOD_TEXTURE)); diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp index ccdc38a332..3551492a77 100644 --- a/indra/newview/llvograss.cpp +++ b/indra/newview/llvograss.cpp @@ -99,7 +99,7 @@ void LLVOGrass::updateSpecies() SpeciesMap::const_iterator it = sSpeciesTable.begin(); mSpecies = (*it).first; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); // Added new boost Grass as it forces a fixed size on updates setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_GRASS, LLViewerTexture::LOD_TEXTURE)); diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp index 954faa5572..deaa952f0a 100644 --- a/indra/newview/llvotree.cpp +++ b/indra/newview/llvotree.cpp @@ -330,7 +330,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys, // Load Species-Specific data // static const S32 MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 32 ; //frames. - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); // Set boost level for Tree as it overrides the normal texture sizes mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_TREE, LLViewerTexture::LOD_TEXTURE); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 5144f95101..ba8fb0438a 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -742,7 +742,7 @@ void LLVOVolume::animateTextures() { LLFace* facep = mDrawable->getFace(i); if (!facep) continue; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Removed check for turning off animations //if(facep->getVirtualSize() <= MIN_TEX_ANIM_SIZE && facep->mTextureMatrix) continue; // [FIRE-35081] @@ -770,7 +770,7 @@ void LLVOVolume::animateTextures() if (!facep->mTextureMatrix) { facep->mTextureMatrix = new LLMatrix4(); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Removed check for turning off animations //if (facep->getVirtualSize() > MIN_TEX_ANIM_SIZE) // [FIRE-35081] @@ -926,7 +926,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced) F32 min_vsize=999999999.f, max_vsize=0.f; LLViewerCamera* camera = LLViewerCamera::getInstance(); std::stringstream debug_text; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Use this flag to indicate that there was a legit change to 0.0 for the mPixelArea (All faces off screen) bool changed = false; // [FIRE-35081] @@ -978,7 +978,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced) mPixelArea = llmax(mPixelArea, face->getPixelArea()); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // If the new area is changed from the old area, then accept it. if (mPixelArea != old_area) { @@ -1073,7 +1073,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced) { LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); LLUUID id = params->getLightTexture(); - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Light textures should be treaded not the same as normal LOD textures mLightTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, true, LLGLTexture::BOOST_LIGHT); // [FIRE-35081] @@ -1126,7 +1126,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced) setDebugText(output); } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings //if (mPixelArea == 0) // If there is a legit change to 0.0, don't dismiss it. if (mPixelArea == 0 && !changed) @@ -5462,7 +5462,7 @@ bool can_batch_texture(LLFace* facep) return false; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Removed check for turning off animations if (facep->isState(LLFace::TEXTURE_ANIM))//&& facep->getVirtualSize() > MIN_TEX_ANIM_SIZE) // [FIRE-35081] @@ -5612,7 +5612,7 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep, } const LLMatrix4* tex_mat = NULL; - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // [FIRE-35081] Blurry prims not changing with graphics settings // Removed check for turning off animations if (facep->isState(LLFace::TEXTURE_ANIM)) //&& facep->getVirtualSize() > MIN_TEX_ANIM_SIZE) // [FIRE-35081] From 4673bab66342de92195ad59113cd114de8062591 Mon Sep 17 00:00:00 2001 From: minerjr Date: Wed, 23 Apr 2025 10:52:38 -0300 Subject: [PATCH 04/14] [FIRE-35382] - Add share_mutex to fix JointKey::construct lockup Added a share_mutex to the JointKey::construct to fix the lockup when the unordered_map gets corrupted. Set the shared_lock when reading and unique_lock when writing to. --- indra/llcharacter/lljoint.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp index 91f33a73eb..f619fe132b 100644 --- a/indra/llcharacter/lljoint.cpp +++ b/indra/llcharacter/lljoint.cpp @@ -34,21 +34,29 @@ #include "llmath.h" #include +#include "llmutex.h" // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup #include std::unordered_map mpStringToKeys; +std::shared_mutex mpStringToKeysMutex; // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup JointKey JointKey::construct(const std::string& aName) { + {// [FIRE-35382] Add share_mutex to fix JointKey::construct lockup + std::shared_lock lock(mpStringToKeysMutex); // [FIRE-35382] Added a shared lock for reading the mpStringToKeys unordered_map. if (const auto itr = mpStringToKeys.find(aName); itr != mpStringToKeys.end()) { return { aName, itr->second }; } + }// [FIRE-35382] Add share_mutex to fix JointKey::construct lockup + { // Add a unique lock for writing to the mpStringToKeys unordered_map. + std::unique_lock lock(mpStringToKeysMutex);// [FIRE-35382] U32 size = static_cast(mpStringToKeys.size()) + 1; mpStringToKeys.try_emplace(aName, size); return { aName, size }; + } // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup } // From e5d5845074e9e86944130763043914e87c60b933 Mon Sep 17 00:00:00 2001 From: minerjr Date: Wed, 23 Apr 2025 11:01:17 -0300 Subject: [PATCH 05/14] Revert "[FIRE-35382] - Add share_mutex to fix JointKey::construct lockup" This reverts commit 4673bab66342de92195ad59113cd114de8062591. --- indra/llcharacter/lljoint.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp index f619fe132b..91f33a73eb 100644 --- a/indra/llcharacter/lljoint.cpp +++ b/indra/llcharacter/lljoint.cpp @@ -34,29 +34,21 @@ #include "llmath.h" #include -#include "llmutex.h" // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup #include std::unordered_map mpStringToKeys; -std::shared_mutex mpStringToKeysMutex; // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup JointKey JointKey::construct(const std::string& aName) { - {// [FIRE-35382] Add share_mutex to fix JointKey::construct lockup - std::shared_lock lock(mpStringToKeysMutex); // [FIRE-35382] Added a shared lock for reading the mpStringToKeys unordered_map. if (const auto itr = mpStringToKeys.find(aName); itr != mpStringToKeys.end()) { return { aName, itr->second }; } - }// [FIRE-35382] Add share_mutex to fix JointKey::construct lockup - { // Add a unique lock for writing to the mpStringToKeys unordered_map. - std::unique_lock lock(mpStringToKeysMutex);// [FIRE-35382] U32 size = static_cast(mpStringToKeys.size()) + 1; mpStringToKeys.try_emplace(aName, size); return { aName, size }; - } // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup } // From 062afc46fb5b891734b1be2d830a131548c4dd90 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 23 Apr 2025 10:56:46 +0100 Subject: [PATCH 06/14] Mirrors should never be run at ultra except by explicit choice. --- indra/newview/featuretable.txt | 4 ++-- indra/newview/featuretable_linux.txt | 4 ++-- indra/newview/featuretable_mac.txt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index 442fe4ce75..c2aeba6334 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 3 RenderMirrors 1 0 RenderHeroProbeResolution 1 1024 RenderHeroProbeDistance 1 16 -RenderHeroProbeUpdateRate 1 1 +RenderHeroProbeUpdateRate 1 2 RenderHeroProbeConservativeUpdateMultiplier 1 4 RenderCASSharpness 1 0.4 RenderExposure 1 1 @@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3 RenderMirrors 1 0 RenderHeroProbeResolution 1 2048 RenderHeroProbeDistance 1 16 -RenderHeroProbeUpdateRate 1 1 +RenderHeroProbeUpdateRate 1 2 RenderHeroProbeConservativeUpdateMultiplier 1 4 RenderCASSharpness 1 0.4 RenderExposure 1 1 diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt index b1c2b3cf55..ecb1036c0b 100644 --- a/indra/newview/featuretable_linux.txt +++ b/indra/newview/featuretable_linux.txt @@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 3 RenderMirrors 1 0 RenderHeroProbeResolution 1 1024 RenderHeroProbeDistance 1 16 -RenderHeroProbeUpdateRate 1 1 +RenderHeroProbeUpdateRate 1 2 RenderHeroProbeConservativeUpdateMultiplier 1 4 RenderCASSharpness 1 0.4 RenderExposure 1 1 @@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3 RenderMirrors 1 0 RenderHeroProbeResolution 1 2048 RenderHeroProbeDistance 1 16 -RenderHeroProbeUpdateRate 1 1 +RenderHeroProbeUpdateRate 1 2 RenderHeroProbeConservativeUpdateMultiplier 1 4 RenderCASSharpness 1 0.4 RenderExposure 1 1 diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index 1d8ebdf6fb..05bd89e3f6 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 2 RenderMirrors 1 0 RenderHeroProbeResolution 1 512 RenderHeroProbeDistance 1 16 -RenderHeroProbeUpdateRate 1 1 +RenderHeroProbeUpdateRate 1 2 RenderHeroProbeConservativeUpdateMultiplier 1 4 RenderCASSharpness 1 0.4 RenderExposure 1 1 @@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3 RenderMirrors 1 0 RenderHeroProbeResolution 1 1024 RenderHeroProbeDistance 1 16 -RenderHeroProbeUpdateRate 1 1 +RenderHeroProbeUpdateRate 1 2 RenderHeroProbeConservativeUpdateMultiplier 1 4 RenderCASSharpness 1 0.4 RenderExposure 1 1 From 1cca5e08a291c1a74756f93f143e9f682f550e68 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 23 Apr 2025 22:56:53 +0100 Subject: [PATCH 07/14] [FIRE-35422] Poser (visual) does not work correctly on attached animesh --- indra/newview/fsfloaterposer.cpp | 7 ++++--- indra/newview/fsfloaterposer.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/indra/newview/fsfloaterposer.cpp b/indra/newview/fsfloaterposer.cpp index 5a5f04c7e6..536ec189ba 100644 --- a/indra/newview/fsfloaterposer.cpp +++ b/indra/newview/fsfloaterposer.cpp @@ -1645,13 +1645,14 @@ std::vector FSFloaterPoser::getUiSelectedPoserJo return joints; } -void FSFloaterPoser::updateManipWithFirstSelectedJoint(std::vector joints) +void FSFloaterPoser::updateManipWithFirstSelectedJoint(std::vector joints) const { - if (!gAgentAvatarp || gAgentAvatarp.isNull()) + auto avatarp = getUiSelectedAvatar(); + if (!avatarp) return; if (joints.size() >= 1) - FSToolCompPose::getInstance()->setJoint(gAgentAvatarp->getJoint(JointKey::construct(joints[0]->jointName()))); + FSToolCompPose::getInstance()->setJoint(avatarp->getJoint(JointKey::construct(joints[0]->jointName()))); else FSToolCompPose::getInstance()->setJoint(nullptr); } diff --git a/indra/newview/fsfloaterposer.h b/indra/newview/fsfloaterposer.h index 622577b0de..14c7d90615 100644 --- a/indra/newview/fsfloaterposer.h +++ b/indra/newview/fsfloaterposer.h @@ -136,7 +136,7 @@ public: /// Updates the visual with the first selected joint from the supplied collection, if any. /// /// The collection of selected joints. - static void updateManipWithFirstSelectedJoint(std::vector joints); + void updateManipWithFirstSelectedJoint(std::vector joints) const; /// /// Gets a detectable avatar by its UUID. From bf82ab14b5766aa8aa1a10d66a510938f60d0cc6 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 23 Apr 2025 23:09:28 +0100 Subject: [PATCH 08/14] [FIRE-35393] Improved handling of bad feature notification. --- indra/newview/llfloaternewfeaturenotification.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/indra/newview/llfloaternewfeaturenotification.cpp b/indra/newview/llfloaternewfeaturenotification.cpp index 0927ecfe51..9ea51451ad 100644 --- a/indra/newview/llfloaternewfeaturenotification.cpp +++ b/indra/newview/llfloaternewfeaturenotification.cpp @@ -47,9 +47,20 @@ bool LLFloaterNewFeatureNotification::postBuild() const std::string dsc_txt = "description_txt"; // FIRE-35393 stop crashing just cos whirly does something daft and blames Atlas for it std::string feature = getKey().asString(); - if(feature.empty()) + if(feature.empty() ) { - return true; + LL_WARNS("FloaterNewFeature") << "Unexpected failure - No feature name NewFeatureNotification." << LL_ENDL; + return false; + } + if (!hasString( title_txt + "_" + feature ) ) + { + LL_WARNS("FloaterNewFeature") << "No string for " << title_txt + "_" + feature << LL_ENDL; + return false; + } + if (!hasString( dsc_txt + "_" + feature ) ) + { + LL_WARNS("FloaterNewFeature") << "No string for " << dsc_txt + "_" + feature << LL_ENDL; + return false; } // From 7bb717f355e97b8668bca3c09288cd3e639c4eb5 Mon Sep 17 00:00:00 2001 From: minerjr Date: Wed, 23 Apr 2025 10:52:38 -0300 Subject: [PATCH 09/14] [FIRE-35382] - Add share_mutex to fix JointKey::construct lockup Added a share_mutex to the JointKey::construct to fix the lockup when the unordered_map gets corrupted. Set the shared_lock when reading and unique_lock when writing to. --- indra/llcharacter/lljoint.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp index 91f33a73eb..f619fe132b 100644 --- a/indra/llcharacter/lljoint.cpp +++ b/indra/llcharacter/lljoint.cpp @@ -34,21 +34,29 @@ #include "llmath.h" #include +#include "llmutex.h" // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup #include std::unordered_map mpStringToKeys; +std::shared_mutex mpStringToKeysMutex; // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup JointKey JointKey::construct(const std::string& aName) { + {// [FIRE-35382] Add share_mutex to fix JointKey::construct lockup + std::shared_lock lock(mpStringToKeysMutex); // [FIRE-35382] Added a shared lock for reading the mpStringToKeys unordered_map. if (const auto itr = mpStringToKeys.find(aName); itr != mpStringToKeys.end()) { return { aName, itr->second }; } + }// [FIRE-35382] Add share_mutex to fix JointKey::construct lockup + { // Add a unique lock for writing to the mpStringToKeys unordered_map. + std::unique_lock lock(mpStringToKeysMutex);// [FIRE-35382] U32 size = static_cast(mpStringToKeys.size()) + 1; mpStringToKeys.try_emplace(aName, size); return { aName, size }; + } // [FIRE-35382] Add share_mutex to fix JointKey::construct lockup } // From 4adf81795071895821b3b46b03abf505c19878df Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 24 Apr 2025 01:52:03 +0100 Subject: [PATCH 10/14] [FIRE-35388] creation of calling card upon login (experimental fix) This appears to be related to the commits for #3745 from LL, in 25.03. For some reason I do not see this reproducing on LL viewer though. --- indra/newview/llcallingcard.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index 5542a16b2e..961c103c22 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -516,7 +516,7 @@ void LLAvatarTracker::idleNotifyObservers() void LLAvatarTracker::notifyObservers() { - if (mIsNotifyObservers || (LLStartUp::getStartupState() <= STATE_INVENTORY_CALLBACKS)) + if (mIsNotifyObservers || (LLStartUp::getStartupState() <= STATE_INVENTORY_SEND2)) { // Don't allow multiple calls. // new masks and ids will be processed later from idle. @@ -835,7 +835,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online) mModifyMask |= LLFriendObserver::ONLINE; instance().notifyObservers(); // Skip if we had received the friends list before the inventory callbacks were properly initialized - if (LLStartUp::getStartupState() > STATE_INVENTORY_CALLBACKS) + if (LLStartUp::getStartupState() > STATE_INVENTORY_SEND2) { gInventory.notifyObservers(); } From 9259979cc67bd322112108411c3d91fa17fc341e Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 24 Apr 2025 02:19:07 +0100 Subject: [PATCH 11/14] [FIRE-35391] Make timestamps in snapshot filenames optional --- indra/newview/app_settings/settings.xml | 11 +++++++++ indra/newview/llviewerwindow.cpp | 11 +++++++-- .../default/xui/en/panel_snapshot_local.xml | 24 +++++++++++++++++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 55066dba15..a32d8c453c 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -26288,5 +26288,16 @@ Change of this parameter will affect the layout of buttons in notification toast Value 0 + FSSnapshotLocalNamesWithTimestamps + + Comment + include a timestamp in the filename when saving snapshots locally + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 489180b980..77130beae3 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -5936,8 +5936,15 @@ void LLViewerWindow::saveImageLocal(LLImageFormatted *image, const snapshot_save filepath = sSnapshotDir; filepath += gDirUtilp->getDirDelimiter(); filepath += sSnapshotBaseName; - filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S"); - filepath += llformat("%.2d", i); +// FIRE-35391 - Restore ability for snapshots saving with simple index number +// filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S"); +// filepath += llformat("%.2d", i); + if (gSavedSettings.getBOOL("FSSnapshotLocalNamesWithTimestamps")) + { + filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S"); + } + filepath += llformat("_%.3d", i); +// filepath += extension; llstat stat_info; diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_local.xml b/indra/newview/skins/default/xui/en/panel_snapshot_local.xml index a00a122f0a..658d49e321 100644 --- a/indra/newview/skins/default/xui/en/panel_snapshot_local.xml +++ b/indra/newview/skins/default/xui/en/panel_snapshot_local.xml @@ -176,14 +176,34 @@ - Save location and filename between sessions + Persist location and filename + + + + include date/time in filename