summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRye <rye@alchemyviewer.org>2025-11-04 23:48:19 -0500
committerRye <rye@alchemyviewer.org>2025-11-04 23:56:51 -0500
commit6fccf062fba5873c00199d84d5daf7568a7734dc (patch)
tree0cd9f690643a64dc0462a8659cde14819cd86247
parent82a924829157f36bf186aadb24689670faf6b47d (diff)
Improve fix for line width crashes under certain Mesa GL drivers
We default to and only use aliased lines. Signed-off-by: Rye <rye@alchemyviewer.org>
-rw-r--r--indra/llrender/llgl.cpp6
-rw-r--r--indra/llrender/llgl.h3
-rw-r--r--indra/llrender/llrender.cpp9
3 files changed, 3 insertions, 15 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index c45ad70758..260f787a51 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -1329,11 +1329,7 @@ bool LLGLManager::initGL()
glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &mMaxUniformBlockSize);
// If outside the allowed range, glLineWidth fails with "invalid value".
- // On Darwin, the range is [1, 1].
- GLfloat line_width_range[2]{0.f};
- glGetFloatv(GL_SMOOTH_LINE_WIDTH_RANGE, line_width_range);
- mMinSmoothLineWidth = line_width_range[0];
- mMaxSmoothLineWidth = line_width_range[1];
+ glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, mAliasedLineRange.mV);
// sanity clamp max uniform block size to 64k just in case
// there's some implementation that reports a crazy value
diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h
index 3a311ad03b..5098478c22 100644
--- a/indra/llrender/llgl.h
+++ b/indra/llrender/llgl.h
@@ -92,8 +92,7 @@ public:
F32 mMaxAnisotropy = 0.f;
S32 mMaxUniformBlockSize = 0;
S32 mMaxVaryingVectors = 0;
- F32 mMinSmoothLineWidth = 1.f;
- F32 mMaxSmoothLineWidth = 1.f;
+ LLVector2 mAliasedLineRange = LLVector2(1.f, 1.f);
// GL 4.x capabilities
bool mHasCubeMapArray = false;
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 0d7ebd4a25..ab88e4868e 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -1930,14 +1930,7 @@ void LLRender::setLineWidth(F32 width)
{
gGL.flush();
- if(sGLCoreProfile)
- {
- width = 1.f;
- }
- else
- {
- width = llclamp(width, gGLManager.mMinSmoothLineWidth, gGLManager.mMaxSmoothLineWidth);
- }
+ width = llclamp(width, gGLManager.mAliasedLineRange[0], gGLManager.mAliasedLineRange[1]);
if(mLineWidth != width)
{
mLineWidth = width;