SL-16202 Put Multi-threaded GL behind a feature flag and update featuretable (decruftify settings, compatibility pass).

master
Dave Parks 2021-12-06 15:29:34 +00:00
parent e7830b39f0
commit 5e5be92d79
17 changed files with 67 additions and 947 deletions

View File

@ -161,7 +161,6 @@ LLMatrix4 gGLObliqueProjectionInverse;
std::list<LLGLUpdate*> LLGLUpdate::sGLQ;
#if (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
// ATI prototypes
#if LL_WINDOWS
PFNGLGETSTRINGIPROC glGetStringi = NULL;
@ -208,21 +207,6 @@ PFNGLGETSYNCIVPROC glGetSynciv = NULL;
PFNGLBUFFERPARAMETERIAPPLEPROC glBufferParameteriAPPLE = NULL;
PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glFlushMappedBufferRangeAPPLE = NULL;
// vertex object prototypes
PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI = NULL;
PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI = NULL;
PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI = NULL;
PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI = NULL;
PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI = NULL;
PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI = NULL;
PFNGLARRAYOBJECTATIPROC glArrayObjectATI = NULL;
PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI = NULL;
PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI = NULL;
PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI = NULL;
PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI = NULL;
PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI = NULL;
PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI = NULL;
// GL_ARB_occlusion_query
PFNGLGENQUERIESARBPROC glGenQueriesARB = NULL;
PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB = NULL;
@ -462,14 +446,9 @@ LLGLManager::LLGLManager() :
mHasCubeMap(FALSE),
mHasDebugOutput(FALSE),
mIsATI(FALSE),
mIsAMD(FALSE),
mIsNVIDIA(FALSE),
mIsIntel(FALSE),
mIsGF2or4MX(FALSE),
mIsGF3(FALSE),
mIsGFFX(FALSE),
mATIOffsetVerticalLines(FALSE),
mATIOldDriver(FALSE),
#if LL_DARWIN
mIsMobileGF(FALSE),
#endif
@ -628,59 +607,17 @@ bool LLGLManager::initGL()
// Trailing space necessary to keep "nVidia Corpor_ati_on" cards
// from being recognized as ATI.
// NOTE: AMD has been pretty good about not breaking this check, do not rename without good reason
if (mGLVendor.substr(0,4) == "ATI ")
{
mGLVendorShort = "ATI";
mGLVendorShort = "AMD";
// *TODO: Fix this?
mIsATI = TRUE;
#if LL_WINDOWS && !LL_MESA_HEADLESS
if (mDriverVersionRelease < 3842)
{
mATIOffsetVerticalLines = TRUE;
}
#endif // LL_WINDOWS
#if (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
// count any pre OpenGL 3.0 implementation as an old driver
if (mGLVersion < 3.f)
{
mATIOldDriver = TRUE;
}
#endif // (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
mIsAMD = TRUE;
}
else if (mGLVendor.find("NVIDIA ") != std::string::npos)
{
mGLVendorShort = "NVIDIA";
mIsNVIDIA = TRUE;
if ( mGLRenderer.find("GEFORCE4 MX") != std::string::npos
|| mGLRenderer.find("GEFORCE2") != std::string::npos
|| mGLRenderer.find("GEFORCE 2") != std::string::npos
|| mGLRenderer.find("GEFORCE4 460 GO") != std::string::npos
|| mGLRenderer.find("GEFORCE4 440 GO") != std::string::npos
|| mGLRenderer.find("GEFORCE4 420 GO") != std::string::npos)
{
mIsGF2or4MX = TRUE;
}
else if (mGLRenderer.find("GEFORCE FX") != std::string::npos
|| mGLRenderer.find("QUADRO FX") != std::string::npos
|| mGLRenderer.find("NV34") != std::string::npos)
{
mIsGFFX = TRUE;
}
else if(mGLRenderer.find("GEFORCE3") != std::string::npos)
{
mIsGF3 = TRUE;
}
#if LL_DARWIN
else if ((mGLRenderer.find("9400M") != std::string::npos)
|| (mGLRenderer.find("9600M") != std::string::npos)
|| (mGLRenderer.find("9800M") != std::string::npos))
{
mIsMobileGF = TRUE;
}
#endif
}
else if (mGLVendor.find("INTEL") != std::string::npos
#if LL_LINUX
@ -834,12 +771,6 @@ bool LLGLManager::initGL()
//HACK always disable texture multisample, use FXAA instead
mHasTextureMultisample = FALSE;
#if LL_WINDOWS
if (mIsATI)
{ //using multisample textures on ATI results in black screen for some reason
mHasTextureMultisample = FALSE;
}
if (mIsIntel && mGLVersion <= 3.f)
{ //never try to use framebuffer objects on older intel drivers (crashy)
mHasFramebufferObject = FALSE;
@ -1004,14 +935,9 @@ void LLGLManager::asLLSD(LLSD& info)
info["has_texture_srgb_decode"] = mHasTexturesRGBDecode;
// Vendor-specific extensions
info["is_ati"] = mIsATI;
info["is_ati"] = mIsAMD; // note, do not rename is_ati to is_amd without coordinating with DW
info["is_nvidia"] = mIsNVIDIA;
info["is_intel"] = mIsIntel;
info["is_gf2or4mx"] = mIsGF2or4MX;
info["is_gf3"] = mIsGF3;
info["is_gf_gfx"] = mIsGFFX;
info["ati_offset_vertical_lines"] = mATIOffsetVerticalLines;
info["ati_old_driver"] = mATIOldDriver;
// Other fields
info["has_requirements"] = mHasRequirements;
@ -1138,7 +1064,7 @@ void LLGLManager::initExtensions()
mHasDebugOutput = ExtensionExists("GL_ARB_debug_output", gGLHExts.mSysExts);
mHasTransformFeedback = mGLVersion >= 4.f ? TRUE : FALSE;
#if !LL_DARWIN
mHasPointParameters = !mIsATI && ExtensionExists("GL_ARB_point_parameters", gGLHExts.mSysExts);
mHasPointParameters = ExtensionExists("GL_ARB_point_parameters", gGLHExts.mSysExts);
#endif
#endif
@ -1256,14 +1182,7 @@ void LLGLManager::initExtensions()
LL_INFOS("RenderInit") << "Disabling mip-map generation for Intel GPUs" << LL_ENDL;
mHasMipMapGeneration = FALSE;
}
#if !LL_DARWIN
if (mIsATI && mHasMipMapGeneration)
{
LL_INFOS("RenderInit") << "Disabling mip-map generation for ATI GPUs (performance opt)" << LL_ENDL;
mHasMipMapGeneration = FALSE;
}
#endif
// Misc
glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, (GLint*) &mGLMaxVertexRange);
glGetIntegerv(GL_MAX_ELEMENTS_INDICES, (GLint*) &mGLMaxIndexRange);

View File

@ -119,14 +119,9 @@ public:
BOOL mHasTexturesRGBDecode;
// Vendor-specific extensions
BOOL mIsATI;
BOOL mIsAMD;
BOOL mIsNVIDIA;
BOOL mIsIntel;
BOOL mIsGF2or4MX;
BOOL mIsGF3;
BOOL mIsGFFX;
BOOL mATIOffsetVerticalLines;
BOOL mATIOldDriver;
#if LL_DARWIN
// Needed to distinguish problem cards on older Macs that break with Materials

View File

@ -66,9 +66,11 @@ F32 LLImageGL::sLastFrameTime = 0.f;
BOOL LLImageGL::sAllowReadBackRaw = FALSE ;
LLImageGL* LLImageGL::sDefaultGLTexture = NULL ;
bool LLImageGL::sCompressTextures = false;
std::set<LLImageGL*> LLImageGL::sImageList;
bool LLImageGLThread::sEnabled = false;
//****************************************************************************************************
//The below for texture auditing use only
//****************************************************************************************************
@ -177,11 +179,15 @@ BOOL is_little_endian()
}
//static
void LLImageGL::initClass(LLWindow* window, S32 num_catagories, BOOL skip_analyze_alpha /* = false */)
void LLImageGL::initClass(LLWindow* window, S32 num_catagories, BOOL skip_analyze_alpha /* = false */, bool multi_threaded /* = false */)
{
LL_PROFILE_ZONE_SCOPED;
sSkipAnalyzeAlpha = skip_analyze_alpha;
LLImageGLThread::createInstance(window);
if (multi_threaded)
{
LLImageGLThread::createInstance(window);
}
}
//static
@ -1511,13 +1517,6 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
if (mUseMipMaps)
{
mAutoGenMips = gGLManager.mHasMipMapGeneration;
#if LL_DARWIN
// On the Mac GF2 and GF4MX drivers, auto mipmap generation doesn't work right with alpha-only textures.
if (gGLManager.mIsGF2or4MX && (mFormatInternal == GL_ALPHA8) && (mFormatPrimary == GL_ALPHA))
{
mAutoGenMips = FALSE;
}
#endif
}
mCurrentDiscardLevel = discard_level;
@ -2272,6 +2271,7 @@ LLImageGLThread::LLImageGLThread(LLWindow* window)
, mWindow(window)
{
LL_PROFILE_ZONE_SCOPED;
sEnabled = true;
mFinished = false;
mContext = mWindow->createSharedContext();

View File

@ -278,7 +278,7 @@ public:
#endif
public:
static void initClass(LLWindow* window, S32 num_catagories, BOOL skip_analyze_alpha = false);
static void initClass(LLWindow* window, S32 num_catagories, BOOL skip_analyze_alpha = false, bool multi_threaded = false);
static void cleanupClass() ;
private:
@ -317,6 +317,9 @@ public:
class LLImageGLThread : public LLSimpleton<LLImageGLThread>, LL::ThreadPool
{
public:
// follows gSavedSettings "RenderGLMultiThreaded"
static bool sEnabled;
LLImageGLThread(LLWindow* window);
// post a function to be executed on the LLImageGL background thread

View File

@ -132,40 +132,15 @@ void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled )
}
else
{
if( gGLManager.mATIOffsetVerticalLines )
{
// Work around bug in ATI driver: vertical lines are offset by (-1,-1)
gGL.begin( LLRender::LINES );
// Verticals
gGL.vertex2i(left + 1, top);
gGL.vertex2i(left + 1, bottom);
gGL.vertex2i(right, bottom);
gGL.vertex2i(right, top);
// Horizontals
top--;
right--;
gGL.vertex2i(left, bottom);
gGL.vertex2i(right, bottom);
gGL.vertex2i(left, top);
gGL.vertex2i(right, top);
gGL.end();
}
else
{
top--;
right--;
gGL.begin( LLRender::LINE_STRIP );
gGL.vertex2i(left, top);
gGL.vertex2i(left, bottom);
gGL.vertex2i(right, bottom);
gGL.vertex2i(right, top);
gGL.vertex2i(left, top);
gGL.end();
}
top--;
right--;
gGL.begin( LLRender::LINE_STRIP );
gGL.vertex2i(left, top);
gGL.vertex2i(left, bottom);
gGL.vertex2i(right, bottom);
gGL.vertex2i(right, top);
gGL.vertex2i(left, top);
gGL.end();
}
stop_glerror();
}
@ -250,15 +225,6 @@ void gl_drop_shadow(S32 left, S32 top, S32 right, S32 bottom, const LLColor4 &st
void gl_line_2d(S32 x1, S32 y1, S32 x2, S32 y2 )
{
// Work around bug in ATI driver: vertical lines are offset by (-1,-1)
if( (x1 == x2) && gGLManager.mATIOffsetVerticalLines )
{
x1++;
x2++;
y1++;
y2++;
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gGL.begin(LLRender::LINES);
@ -269,15 +235,6 @@ void gl_line_2d(S32 x1, S32 y1, S32 x2, S32 y2 )
void gl_line_2d(S32 x1, S32 y1, S32 x2, S32 y2, const LLColor4 &color )
{
// Work around bug in ATI driver: vertical lines are offset by (-1,-1)
if( (x1 == x2) && gGLManager.mATIOffsetVerticalLines )
{
x1++;
x2++;
y1++;
y2++;
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gGL.color4fv( color.mV );

View File

@ -782,7 +782,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
}
}
if( gGLManager.mIsATI )
if( gGLManager.mIsAMD )
{
extra_code_text[extra_code_count++] = strdup( "#define IS_AMD_CARD 1\n" );
}

View File

@ -9818,7 +9818,18 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>RenderGLMultiThreaded</key>
<map>
<key>Comment</key>
<string>Allow OpenGL to use multiple render contexts (reduces frame stutters from loading textures, doesn't play nice with Intel drivers).</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>RenderGlow</key>
<map>

View File

@ -1,4 +1,4 @@
version 33
version 34
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
@ -71,37 +71,8 @@ RenderUseStreamVBO 1 1
RenderFSAASamples 1 16
RenderMaxTextureIndex 1 16
RenderGLCoreProfile 1 1
RenderGLMultiThreaded 1 1
//
// Low Graphics Settings (fixed function)
//
list LowFixedFunction
RenderAnisotropic 1 0
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0
RenderAvatarPhysicsLODFactor 1 0
RenderAvatarMaxNonImpostors 1 3
RenderAvatarMaxComplexity 1 25000
RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0
RenderGlowResolutionPow 1 8
RenderLocalLights 1 0
RenderMaxPartCount 1 0
RenderObjectBump 1 0
RenderReflectionDetail 1 0
RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
RenderTransparentWater 1 0
RenderTreeLODFactor 1 0
RenderVolumeLODFactor 1 1.125
WindLightUseAtmosShaders 1 0
RenderDeferred 1 0
RenderDeferredSSAO 1 0
RenderUseAdvancedAtmospherics 1 0
RenderShadowDetail 1 0
WLSkyDetail 1 48
RenderFSAASamples 1 0
//
// Low Graphics Settings
@ -113,7 +84,6 @@ RenderAvatarLODFactor 1 0
RenderAvatarPhysicsLODFactor 1 0
RenderAvatarMaxNonImpostors 1 3
RenderAvatarMaxComplexity 1 35000
RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0
RenderGlowResolutionPow 1 8
@ -143,7 +113,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0.5
RenderAvatarMaxComplexity 1 100000
RenderAvatarPhysicsLODFactor 1 0.75
RenderAvatarVP 1 1
RenderFarClip 1 96
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
@ -173,7 +142,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 200000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -203,7 +171,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 250000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -233,7 +200,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 300000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -263,7 +229,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 350000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -292,7 +257,6 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -317,415 +281,45 @@ RenderFSAASamples 1 2
// Class Unknown Hardware (unknown)
//
list Unknown
RenderVBOEnable 1 0
RenderShadowDetail 1 0
RenderDeferred 1 0
RenderDeferredSSAO 1 0
RenderUseAdvancedAtmospherics 1 0
//
// Class 0 Hardware (just old)
//
list Class0
RenderVBOEnable 1 1
//
// Class 1 Hardware
//
list Class1
RenderVBOEnable 1 1
//
// Class 2 Hardware
//
list Class2
RenderVBOEnable 1 1
//
// Class 3 Hardware
//
list Class3
RenderVBOEnable 1 1
//
// Class 4 Hardware
//
list Class4
RenderVBOEnable 1 1
//
// Class 5 Hardware
//
list Class5
RenderVBOEnable 1 1
//
// VRAM > 512MB
//
list VRAMGT512
RenderCompressTextures 1 0
//
// No Pixel Shaders available
//
list NoPixelShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
RenderDeferred 0 0
RenderDeferredSSAO 0 0
RenderShadowDetail 0 0
RenderUseAdvancedAtmospherics 0 0
//
// No Vertex Shaders available
//
list NoVertexShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
RenderDeferred 0 0
RenderDeferredSSAO 0 0
RenderShadowDetail 0 0
RenderUseAdvancedAtmospherics 0 0
//
// GL_ARB_map_buffer_range exists
//
list MapBufferRange
RenderVBOMappingDisable 1 1
//
// "Default" setups for safe, low, medium, high
//
list safe
RenderAnisotropic 1 0
RenderAvatarCloth 0 0
RenderAvatarVP 0 0
RenderAvatarMaxNonImpostors 1 16
RenderAvatarMaxComplexity 1 80000
RenderObjectBump 0 0
RenderLocalLights 1 0
RenderMaxPartCount 1 1024
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
RenderDeferred 0 0
RenderDeferredSSAO 0 0
RenderShadowDetail 0 0
//
// CPU based feature masks
//
// 1Ghz or less (equiv)
list CPUSlow
RenderMaxPartCount 1 1024
//
// RAM based feature masks
//
list RAM256MB
RenderObjectBump 0 0
//
// Graphics card based feature masks
//
list OpenGLPre15
RenderVBOEnable 1 0
list OpenGLPre30
RenderDeferred 0 0
RenderMaxTextureIndex 1 1
list Intel
RenderAnisotropic 1 0
RenderVBOEnable 1 0
RenderFSAASamples 1 0
RenderGLMultiThreaded 1 0
RenderGLCoreProfile 1 0
list GeForce2
RenderAnisotropic 1 0
RenderMaxPartCount 1 2048
RenderTerrainDetail 1 0
RenderVBOEnable 1 1
list SiS
UseOcclusion 0 0
list Intel_830M
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_845G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_855GM
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_865G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_900
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_915GM
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_915G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_945GM
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_945G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_950
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_965
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
UseOcclusion 0 0
list Intel_G33
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_G45
WindLightUseAtmosShaders 0 0
list Intel_Bear_Lake
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Broadwater
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Brookdale
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Eaglelake
WindLightUseAtmosShaders 0 0
list Intel_Montara
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Springdale
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list ATI_FireGL_5200
RenderVBOEnable 1 0
WindLightUseAtmosShaders 0 0
list ATI_Mobility_Radeon_7xxx
RenderVBOEnable 0 0
list ATI_Radeon_7xxx
RenderVBOEnable 0 0
list ATI_All-in-Wonder_Radeon
RenderVBOEnable 0 0
list ATI_All-in-Wonder_7500
RenderVBOEnable 0 0
list ATI_Mobility_Radeon_9600
Disregard96DefaultDrawDistance 1 0
/// tweaked ATI to 96 Draw distance
list ATI_Radeon_9000
Disregard96DefaultDrawDistance 1 0
list ATI_Radeon_9200
Disregard96DefaultDrawDistance 1 0
list ATI_Radeon_9500
Disregard96DefaultDrawDistance 1 0
list ATI_Radeon_9600
Disregard96DefaultDrawDistance 1 0
/// tweaked ATI to 128 draw distance
list ATI_Radeon_X300
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X400
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X500
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X600
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X700
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X1300
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
UseStartScreen 0 0
list ATI_Radeon_X1400
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X1500
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
UseStartScreen 0 0
list ATI_Radeon_X1600
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_X1700
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Mobility_Radeon_X1xxx
Disregard128DefaultDrawDistance 1 0
RenderVBOEnable 1 0
list ATI_Radeon_HD_2300
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_HD_2400
Disregard128DefaultDrawDistance 1 0
list ATI_ASUS_AH24xx
Disregard128DefaultDrawDistance 1 0
// Avatar hardware skinning causes invisible avatars
// on various ATI chipsets on drivers before 8.2
list ATIOldDriver
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
RenderVBOEnable 1 0
// ATI cards generally perform better when not using VBOs for streaming data
// ATI cards also prefer an OpenGL Compatibility Profile Context
list ATI
// AMD cards generally perform better when not using VBOs for streaming data
// AMD cards also prefer an OpenGL Compatibility Profile Context
list AMD
RenderUseStreamVBO 1 0
RenderGLCoreProfile 1 0
// Disable vertex buffer objects by default for ATI cards with little video memory
list ATIVramLT256
RenderVBOEnable 1 0
/// Tweaked NVIDIA
list NVIDIA_GeForce_FX_5100
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_5200
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_5500
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_5600
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5100
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5200
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5300
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5500
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5600
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_6100
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_6200
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_6500
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_6600
Disregard128DefaultDrawDistance 1 0
list NVIDIA_G73
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6100
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6200
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6500
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6600
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6700
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6800
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_7000
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7100
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7200
Disregard128DefaultDrawDistance 1 0
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7300
Disregard128DefaultDrawDistance 1 0
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7400
Disregard128DefaultDrawDistance 1 0
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7500
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7600
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7700
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7800
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7900
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7200
Disregard128DefaultDrawDistance 1 0
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7300
Disregard128DefaultDrawDistance 1 0
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7300_LE
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7400
Disregard128DefaultDrawDistance 1 0
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7600
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7700
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7800
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7900
RenderShaderLightingMaxLevel 1 2

View File

@ -1,4 +1,4 @@
version 37
version 38
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
@ -70,37 +70,8 @@ RenderShadowDetail 1 2
RenderUseStreamVBO 1 1
RenderFSAASamples 1 16
RenderMaxTextureIndex 1 16
//
// Low Graphics Settings (fixed function)
//
list LowFixedFunction
RenderAnisotropic 1 0
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0
RenderAvatarPhysicsLODFactor 1 0
RenderAvatarMaxNonImpostors 1 3
RenderAvatarMaxComplexity 1 25000
RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0
RenderGlowResolutionPow 1 8
RenderLocalLights 1 0
RenderMaxPartCount 1 0
RenderObjectBump 1 0
RenderReflectionDetail 1 0
RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
RenderTransparentWater 1 0
RenderTreeLODFactor 1 0
RenderVolumeLODFactor 1 0.5
WindLightUseAtmosShaders 1 0
RenderDeferred 1 0
RenderDeferredSSAO 1 0
RenderUseAdvancedAtmospherics 1 0
RenderShadowDetail 1 0
WLSkyDetail 1 48
RenderFSAASamples 1 0
RenderGLCoreProfile 1 0
RenderGLMultiThreaded 1 0
//
// Low Graphics Settings
@ -112,7 +83,6 @@ RenderAvatarLODFactor 1 0
RenderAvatarPhysicsLODFactor 1 0
RenderAvatarMaxNonImpostors 1 3
RenderAvatarMaxComplexity 1 35000
RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0
RenderGlowResolutionPow 1 8
@ -142,7 +112,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0.5
RenderAvatarMaxComplexity 1 100000
RenderAvatarPhysicsLODFactor 1 0.75
RenderAvatarVP 1 1
RenderFarClip 1 96
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
@ -172,7 +141,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 200000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -202,7 +170,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 250000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -232,7 +199,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 300000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -262,7 +228,6 @@ RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxComplexity 1 350000
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -291,7 +256,6 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarPhysicsLODFactor 1 1.0
RenderAvatarVP 1 1
RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
@ -316,73 +280,11 @@ RenderFSAASamples 1 2
// Class Unknown Hardware (unknown)
//
list Unknown
RenderVBOEnable 1 0
RenderShadowDetail 1 0
RenderDeferred 1 0
RenderDeferredSSAO 1 0
RenderUseAdvancedAtmospherics 1 0
//
// Class 0 Hardware (just old)
//
list Class0
RenderVBOEnable 1 1
//
// Class 1 Hardware
//
list Class1
RenderVBOEnable 1 1
//
// Class 2 Hardware
//
list Class2
RenderVBOEnable 1 1
//
// Class 3 Hardware
//
list Class3
RenderVBOEnable 1 1
//
// Class 4 Hardware
//
list Class4
RenderVBOEnable 1 1
//
// Class 5 Hardware
//
list Class5
RenderVBOEnable 1 1
//
// No Pixel Shaders available
//
list NoPixelShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
RenderDeferred 0 0
RenderDeferredSSAO 0 0
RenderUseAdvancedAtmospherics 0 0
RenderShadowDetail 0 0
//
// No Vertex Shaders available
//
list NoVertexShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
RenderDeferred 0 0
RenderDeferredSSAO 0 0
RenderUseAdvancedAtmospherics 0 0
RenderShadowDetail 0 0
//
// VRAM > 512MB
@ -396,14 +298,12 @@ RenderCompressTextures 1 0
list safe
RenderAnisotropic 1 0
RenderAvatarCloth 0 0
RenderAvatarVP 0 0
RenderAvatarMaxNonImpostors 1 16
RenderAvatarMaxComplexity 1 80000
RenderObjectBump 0 0
RenderLocalLights 1 0
RenderMaxPartCount 1 1024
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
RenderDeferred 0 0
@ -411,31 +311,10 @@ RenderDeferredSSAO 0 0
RenderUseAdvancedAtmospherics 0 0
RenderShadowDetail 0 0
//
// CPU based feature masks
//
// 1Ghz or less (equiv)
list CPUSlow
RenderMaxPartCount 1 1024
//
// RAM based feature masks
//
list RAM256MB
RenderObjectBump 0 0
//
// Graphics card based feature masks
//
list OpenGLPre15
RenderVBOEnable 1 0
list TexUnit8orLess
RenderDeferredSSAO 0 0
list ATI
list AMD
RenderDeferredSSAO 1 0
list Intel
@ -443,195 +322,6 @@ RenderAnisotropic 1 0
RenderLocalLights 1 0
RenderFSAASamples 1 0
list GeForce2
RenderAnisotropic 1 0
RenderLocalLights 1 0
RenderMaxPartCount 1 2048
RenderTerrainDetail 1 0
RenderVBOEnable 1 1
list Intel_830M
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_845G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_855GM
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_865G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_900
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_915GM
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_915G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_945GM
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_945G
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_950
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
RenderGround 1 0
list Intel_965
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
UseOcclusion 0 0
list Intel_G33
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Bear_Lake
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Broadwater
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Brookdale
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_X3100
WindLightUseAtmosShaders 0 0
list Intel_Montara
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list Intel_Springdale
RenderTerrainDetail 1 0
RenderVBOEnable 1 0
list ATI_Mobility_Radeon_9600
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_8600
RenderTextureMemoryMultiple 1 1
UseOcclusion 0 0
/// tweaked ATI to 96 Draw distance
list ATI_Radeon_9000
Disregard96DefaultDrawDistance 1 0
list ATI_Radeon_9200
Disregard96DefaultDrawDistance 1 0
list ATI_Radeon_9500
Disregard96DefaultDrawDistance 1 0
list ATI_Radeon_9600
Disregard96DefaultDrawDistance 1 0
/// tweaked ATI to 128 draw distance
list ATI_Radeon_X300
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X400
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X500
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X600
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X700
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X1300
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X1400
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X1500
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X1600
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X1700
Disregard128DefaultDrawDistance 1 0
list ATI_Mobility_Radeon_X1xxx
Disregard128DefaultDrawDistance 1 0
/// Tweaked NVIDIA
list NVIDIA_GeForce_FX_5100
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_5200
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_5500
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5100
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5200
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5300
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5500
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_FX_Go5600
Disregard96DefaultDrawDistance 1 0
list NVIDIA_GeForce_6100
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_6200
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_6500
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_6600
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6100
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6200
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6500
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6600
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6700
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6800
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_6
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_7200
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_7300
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_7400
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_7200
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_7300
Disregard128DefaultDrawDistance 1 0
list NVIDIA_GeForce_Go_7400
Disregard128DefaultDrawDistance 1 0
list OSX_10_6_8
RenderDeferred 0 0

View File

@ -1104,7 +1104,7 @@ bool LLAppViewer::init()
{
url = LLTrans::getString("NvidiaDriverPage");
}
else if (gGLManager.mIsATI)
else if (gGLManager.mIsAMD)
{
url = LLTrans::getString("AMDDriverPage");
}

View File

@ -125,7 +125,7 @@ void LLViewerDynamicTexture::preRender(BOOL clear_depth)
llassert(mFullHeight <= static_cast<S32>(gPipeline.mPhysicsDisplay.getHeight()));
}
if (gGLManager.mHasFramebufferObject && gPipeline.mPhysicsDisplay.isComplete() && !gGLManager.mIsATI)
if (gGLManager.mHasFramebufferObject && gPipeline.mPhysicsDisplay.isComplete() && !gGLManager.mIsAMD)
{ //using offscreen render target, just use the bottom left corner
mOrigin.set(0, 0);
}
@ -212,7 +212,7 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
return TRUE;
}
bool use_fbo = gGLManager.mHasFramebufferObject && gPipeline.mBake.isComplete() && !gGLManager.mIsATI;
bool use_fbo = gGLManager.mHasFramebufferObject && gPipeline.mBake.isComplete() && !gGLManager.mIsAMD;
if (use_fbo)
{

View File

@ -607,22 +607,6 @@ void LLFeatureManager::setGraphicsLevel(U32 level, bool skipFeatures)
// if we're passed an invalid level, default to "Low"
std::string features(isValidGraphicsLevel(level)? getNameForGraphicsLevel(level) : "Low");
if (features == "Low")
{
#if LL_DARWIN
// This Mac-specific change is to insure that we force 'Basic Shaders' for all Mac
// systems which support them instead of falling back to fixed-function unnecessarily
// MAINT-2157
if (gGLManager.mGLVersion < 2.1f)
#else
// only use fixed function by default if GL version < 3.0 or this is an intel graphics chip
if (gGLManager.mGLVersion < 3.f || gGLManager.mIsIntel)
#endif
{
// same as Low, but with "Basic Shaders" disabled
features = "LowFixedFunction";
}
}
maskFeatures(features);
@ -670,42 +654,18 @@ void LLFeatureManager::applyBaseMasks()
}
// now all those wacky ones
if (!mGPUSupported)
{
maskFeatures("NoVertexShaders");
}
if (gGLManager.mIsNVIDIA)
{
maskFeatures("NVIDIA");
}
if (gGLManager.mIsGF2or4MX)
if (gGLManager.mIsAMD)
{
maskFeatures("GeForce2");
}
if (gGLManager.mIsATI)
{
maskFeatures("ATI");
}
if (gGLManager.mHasATIMemInfo && gGLManager.mVRAM < 256)
{
maskFeatures("ATIVramLT256");
}
if (gGLManager.mATIOldDriver)
{
maskFeatures("ATIOldDriver");
}
if (gGLManager.mIsGFFX)
{
maskFeatures("GeForceFX");
maskFeatures("AMD");
}
if (gGLManager.mIsIntel)
{
maskFeatures("Intel");
}
if (gGLManager.mGLVersion < 1.5f)
{
maskFeatures("OpenGLPre15");
}
if (gGLManager.mGLVersion < 3.f)
{
maskFeatures("OpenGLPre30");
@ -745,17 +705,6 @@ void LLFeatureManager::applyBaseMasks()
//LL_INFOS() << "Masking features from gpu table match: " << gpustr << LL_ENDL;
maskFeatures(gpustr);
// now mask cpu type ones
if (gSysMemory.getPhysicalMemoryKB() <= U32Megabytes(256))
{
maskFeatures("RAM256MB");
}
if (gSysCPU.getMHz() < 1100)
{
maskFeatures("CPUSlow");
}
if (isSafe())
{
maskFeatures("safe");

View File

@ -1115,6 +1115,7 @@ F32 gpu_benchmark()
// ensure matched pair of bind() and unbind() calls
ShaderBinder binder(gBenchmarkProgram);
#ifdef GL_ARB_vertex_array_object
U32 glarray = 0;
if (LLRender::sGLCoreProfile)
@ -1122,6 +1123,7 @@ F32 gpu_benchmark()
glGenVertexArrays(1, &glarray);
glBindVertexArray(glarray);
}
#endif
buff->setBuffer(LLVertexBuffer::MAP_VERTEX);
glFinish();
@ -1155,11 +1157,13 @@ F32 gpu_benchmark()
}
}
#ifdef GL_ARB_vertex_array_object
if (LLRender::sGLCoreProfile)
{
glBindVertexArray(0);
glDeleteVertexArrays(1, &glarray);
}
#endif
std::sort(results.begin(), results.end());

View File

@ -1633,8 +1633,7 @@ void LLViewerFetchedTexture::scheduleCreateTexture()
if (preCreateTexture())
{
mNeedsCreateTexture = TRUE;
#if LL_WINDOWS //flip to 0 to revert to single-threaded OpenGL texture uploads
auto mainq = mMainQueue.lock();
auto mainq = LLImageGLThread::sEnabled ? mMainQueue.lock() : nullptr;
if (mainq)
{
mainq->postTo(
@ -1660,7 +1659,6 @@ void LLViewerFetchedTexture::scheduleCreateTexture()
});
}
else
#endif
{
gTextureList.mCreateTextureList.insert(this);
unref();

View File

@ -1361,7 +1361,7 @@ S32Megabytes LLViewerTextureList::getMaxVideoRamSetting(bool get_recommended, fl
// - it's going to be swapping constantly regardless
S32Megabytes max_vram(gGLManager.mVRAM);
if(gGLManager.mIsATI)
if(gGLManager.mIsAMD)
{
//shrink the availabe vram for ATI cards because some of them do not handel texture swapping well.
max_vram = max_vram * 0.75f;

View File

@ -2022,7 +2022,7 @@ LLViewerWindow::LLViewerWindow(const Params& p)
// Init the image list. Must happen after GL is initialized and before the images that
// LLViewerWindow needs are requested.
LLImageGL::initClass(mWindow, LLViewerTexture::MAX_GL_IMAGE_CATEGORY) ;
LLImageGL::initClass(mWindow, LLViewerTexture::MAX_GL_IMAGE_CATEGORY, false, gSavedSettings.getBOOL("RenderGLMultiThreaded"));
gTextureList.init();
LLViewerTextureManager::init() ;
gBumpImageList.init();

View File

@ -890,7 +890,7 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
if (!addDeferredAttachments(mDeferredScreen)) return false;
GLuint screenFormat = GL_RGBA16;
if (gGLManager.mIsATI)
if (gGLManager.mIsAMD)
{
screenFormat = GL_RGBA12;
}