DRTVWR-440, another whitespace only (detabify) to test TeamCity triggers
parent
16699fe8a5
commit
3e44cb06df
|
|
@ -392,84 +392,84 @@ S32 LLViewerShaderMgr::getShaderLevel(S32 type)
|
|||
|
||||
void LLViewerShaderMgr::setShaders()
|
||||
{
|
||||
//setShaders might be called redundantly by gSavedSettings, so return on reentrance
|
||||
static bool reentrance = false;
|
||||
|
||||
if (!gPipeline.mInitialized || !sInitialized || reentrance || sSkipReload)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//setShaders might be called redundantly by gSavedSettings, so return on reentrance
|
||||
static bool reentrance = false;
|
||||
|
||||
if (!gPipeline.mInitialized || !sInitialized || reentrance || sSkipReload)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static LLCachedControl<U32> max_texture_index(gSavedSettings, "RenderMaxTextureIndex", 16);
|
||||
LLGLSLShader::sIndexedTextureChannels = llmax(llmin(gGLManager.mNumTextureImageUnits, (S32) max_texture_index), 1);
|
||||
static LLCachedControl<U32> max_texture_index(gSavedSettings, "RenderMaxTextureIndex", 16);
|
||||
LLGLSLShader::sIndexedTextureChannels = llmax(llmin(gGLManager.mNumTextureImageUnits, (S32) max_texture_index), 1);
|
||||
|
||||
//NEVER use more than 16 texture channels (work around for prevalent driver bug)
|
||||
LLGLSLShader::sIndexedTextureChannels = llmin(LLGLSLShader::sIndexedTextureChannels, 16);
|
||||
//NEVER use more than 16 texture channels (work around for prevalent driver bug)
|
||||
LLGLSLShader::sIndexedTextureChannels = llmin(LLGLSLShader::sIndexedTextureChannels, 16);
|
||||
|
||||
if (gGLManager.mGLSLVersionMajor < 1 ||
|
||||
(gGLManager.mGLSLVersionMajor == 1 && gGLManager.mGLSLVersionMinor <= 20))
|
||||
{ //NEVER use indexed texture rendering when GLSL version is 1.20 or earlier
|
||||
LLGLSLShader::sIndexedTextureChannels = 1;
|
||||
}
|
||||
if (gGLManager.mGLSLVersionMajor < 1 ||
|
||||
(gGLManager.mGLSLVersionMajor == 1 && gGLManager.mGLSLVersionMinor <= 20))
|
||||
{ //NEVER use indexed texture rendering when GLSL version is 1.20 or earlier
|
||||
LLGLSLShader::sIndexedTextureChannels = 1;
|
||||
}
|
||||
|
||||
reentrance = true;
|
||||
reentrance = true;
|
||||
|
||||
if (LLRender::sGLCoreProfile)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("VertexShaderEnable"))
|
||||
{ //vertex shaders MUST be enabled to use core profile
|
||||
gSavedSettings.setBOOL("VertexShaderEnable", TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
//setup preprocessor definitions
|
||||
LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits);
|
||||
|
||||
// Make sure the compiled shader map is cleared before we recompile shaders.
|
||||
if (LLRender::sGLCoreProfile)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("VertexShaderEnable"))
|
||||
{ //vertex shaders MUST be enabled to use core profile
|
||||
gSavedSettings.setBOOL("VertexShaderEnable", TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
//setup preprocessor definitions
|
||||
LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits);
|
||||
|
||||
// Make sure the compiled shader map is cleared before we recompile shaders.
|
||||
mVertexShaderObjects.clear();
|
||||
mFragmentShaderObjects.clear();
|
||||
|
||||
initAttribsAndUniforms();
|
||||
gPipeline.releaseGLBuffers();
|
||||
|
||||
initAttribsAndUniforms();
|
||||
gPipeline.releaseGLBuffers();
|
||||
|
||||
if (gSavedSettings.getBOOL("VertexShaderEnable"))
|
||||
{
|
||||
LLPipeline::sWaterReflections = gGLManager.mHasCubeMap;
|
||||
LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");
|
||||
LLPipeline::updateRenderDeferred();
|
||||
}
|
||||
else
|
||||
{
|
||||
LLPipeline::sRenderGlow = FALSE;
|
||||
LLPipeline::sWaterReflections = FALSE;
|
||||
}
|
||||
|
||||
//hack to reset buffers that change behavior with shaders
|
||||
gPipeline.resetVertexBuffers();
|
||||
if (gSavedSettings.getBOOL("VertexShaderEnable"))
|
||||
{
|
||||
LLPipeline::sWaterReflections = gGLManager.mHasCubeMap;
|
||||
LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");
|
||||
LLPipeline::updateRenderDeferred();
|
||||
}
|
||||
else
|
||||
{
|
||||
LLPipeline::sRenderGlow = FALSE;
|
||||
LLPipeline::sWaterReflections = FALSE;
|
||||
}
|
||||
|
||||
//hack to reset buffers that change behavior with shaders
|
||||
gPipeline.resetVertexBuffers();
|
||||
|
||||
if (gViewerWindow)
|
||||
{
|
||||
gViewerWindow->setCursor(UI_CURSOR_WAIT);
|
||||
}
|
||||
if (gViewerWindow)
|
||||
{
|
||||
gViewerWindow->setCursor(UI_CURSOR_WAIT);
|
||||
}
|
||||
|
||||
// Lighting
|
||||
gPipeline.setLightingDetail(-1);
|
||||
// Lighting
|
||||
gPipeline.setLightingDetail(-1);
|
||||
|
||||
// Shaders
|
||||
LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL;
|
||||
LL_INFOS("ShaderLoading") << llformat("Using GLSL %d.%d", gGLManager.mGLSLVersionMajor, gGLManager.mGLSLVersionMinor) << LL_ENDL;
|
||||
// Shaders
|
||||
LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL;
|
||||
LL_INFOS("ShaderLoading") << llformat("Using GLSL %d.%d", gGLManager.mGLSLVersionMajor, gGLManager.mGLSLVersionMinor) << LL_ENDL;
|
||||
|
||||
for (S32 i = 0; i < SHADER_COUNT; i++)
|
||||
{
|
||||
mShaderLevel[i] = 0;
|
||||
}
|
||||
mMaxAvatarShaderLevel = 0;
|
||||
for (S32 i = 0; i < SHADER_COUNT; i++)
|
||||
{
|
||||
mShaderLevel[i] = 0;
|
||||
}
|
||||
mMaxAvatarShaderLevel = 0;
|
||||
|
||||
LLGLSLShader::sNoFixedFunction = false;
|
||||
LLVertexBuffer::unbind();
|
||||
if (LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")
|
||||
&& (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)
|
||||
&& gSavedSettings.getBOOL("VertexShaderEnable"))
|
||||
LLGLSLShader::sNoFixedFunction = false;
|
||||
LLVertexBuffer::unbind();
|
||||
if (LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")
|
||||
&& (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)
|
||||
&& gSavedSettings.getBOOL("VertexShaderEnable"))
|
||||
{
|
||||
bool canRenderDeferred = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred");
|
||||
bool hasWindLightShaders = LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders");
|
||||
|
|
@ -477,24 +477,24 @@ void LLViewerShaderMgr::setShaders()
|
|||
bool useRenderDeferred = canRenderDeferred && gSavedSettings.getBOOL("RenderDeferred") && gSavedSettings.getBOOL("RenderAvatarVP");
|
||||
bool doingWindLight = hasWindLightShaders && gSavedSettings.getBOOL("WindLightUseAtmosShaders");
|
||||
|
||||
//using shaders, disable fixed function
|
||||
LLGLSLShader::sNoFixedFunction = true;
|
||||
//using shaders, disable fixed function
|
||||
LLGLSLShader::sNoFixedFunction = true;
|
||||
|
||||
S32 light_class = 3;
|
||||
S32 light_class = 3;
|
||||
S32 interface_class = 2;
|
||||
S32 env_class = 2;
|
||||
S32 obj_class = 2;
|
||||
S32 effect_class = 2;
|
||||
S32 wl_class = 1;
|
||||
S32 water_class = 2;
|
||||
S32 deferred_class = 0;
|
||||
S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0;
|
||||
S32 env_class = 2;
|
||||
S32 obj_class = 2;
|
||||
S32 effect_class = 2;
|
||||
S32 wl_class = 1;
|
||||
S32 water_class = 2;
|
||||
S32 deferred_class = 0;
|
||||
S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0;
|
||||
|
||||
static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);
|
||||
if (!use_transform_feedback)
|
||||
{
|
||||
transform_class = 0;
|
||||
}
|
||||
static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);
|
||||
if (!use_transform_feedback)
|
||||
{
|
||||
transform_class = 0;
|
||||
}
|
||||
|
||||
if (useRenderDeferred)
|
||||
{
|
||||
|
|
@ -527,55 +527,55 @@ void LLViewerShaderMgr::setShaders()
|
|||
light_class = 2;
|
||||
}
|
||||
|
||||
// Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders
|
||||
if (!wl_class || (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull()))
|
||||
{
|
||||
gSky.mVOSkyp->forceSkyUpdate();
|
||||
}
|
||||
// Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders
|
||||
if (!wl_class || (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull()))
|
||||
{
|
||||
gSky.mVOSkyp->forceSkyUpdate();
|
||||
}
|
||||
|
||||
// Load lighting shaders
|
||||
mShaderLevel[SHADER_LIGHTING] = light_class;
|
||||
mShaderLevel[SHADER_INTERFACE] = interface_class;
|
||||
mShaderLevel[SHADER_ENVIRONMENT] = env_class;
|
||||
mShaderLevel[SHADER_WATER] = water_class;
|
||||
mShaderLevel[SHADER_OBJECT] = obj_class;
|
||||
mShaderLevel[SHADER_EFFECT] = effect_class;
|
||||
mShaderLevel[SHADER_WINDLIGHT] = wl_class;
|
||||
mShaderLevel[SHADER_DEFERRED] = deferred_class;
|
||||
mShaderLevel[SHADER_TRANSFORM] = transform_class;
|
||||
// Load lighting shaders
|
||||
mShaderLevel[SHADER_LIGHTING] = light_class;
|
||||
mShaderLevel[SHADER_INTERFACE] = interface_class;
|
||||
mShaderLevel[SHADER_ENVIRONMENT] = env_class;
|
||||
mShaderLevel[SHADER_WATER] = water_class;
|
||||
mShaderLevel[SHADER_OBJECT] = obj_class;
|
||||
mShaderLevel[SHADER_EFFECT] = effect_class;
|
||||
mShaderLevel[SHADER_WINDLIGHT] = wl_class;
|
||||
mShaderLevel[SHADER_DEFERRED] = deferred_class;
|
||||
mShaderLevel[SHADER_TRANSFORM] = transform_class;
|
||||
|
||||
BOOL loaded = loadBasicShaders();
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Failed to load basic shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Failed to load basic shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
gPipeline.mVertexShadersEnabled = TRUE;
|
||||
gPipeline.mVertexShadersLoaded = 1;
|
||||
if (loaded)
|
||||
{
|
||||
gPipeline.mVertexShadersEnabled = TRUE;
|
||||
gPipeline.mVertexShadersLoaded = 1;
|
||||
|
||||
// Load all shaders to set max levels
|
||||
loaded = loadShadersEnvironment();
|
||||
// Load all shaders to set max levels
|
||||
loaded = loadShadersEnvironment();
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded environment shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Failed to load environment shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded environment shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Failed to load environment shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
loaded = loadShadersWater();
|
||||
if (loaded)
|
||||
{
|
||||
loaded = loadShadersWater();
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded water shaders." << LL_ENDL;
|
||||
|
|
@ -585,10 +585,10 @@ void LLViewerShaderMgr::setShaders()
|
|||
LL_WARNS() << "Failed to load water shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
if (loaded)
|
||||
{
|
||||
loaded = loadShadersWindLight();
|
||||
if (loaded)
|
||||
{
|
||||
|
|
@ -599,10 +599,10 @@ void LLViewerShaderMgr::setShaders()
|
|||
LL_WARNS() << "Failed to load windlight shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
if (loaded)
|
||||
{
|
||||
loaded = loadShadersEffects();
|
||||
if (loaded)
|
||||
{
|
||||
|
|
@ -613,25 +613,25 @@ void LLViewerShaderMgr::setShaders()
|
|||
LL_WARNS() << "Failed to load effects shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
loaded = loadShadersInterface();
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded interface shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Failed to load interface shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
}
|
||||
if (loaded)
|
||||
{
|
||||
loaded = loadShadersInterface();
|
||||
if (loaded)
|
||||
{
|
||||
LL_INFOS() << "Loaded interface shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Failed to load interface shaders." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
}
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
if (loaded)
|
||||
|
||||
{
|
||||
{
|
||||
loaded = loadTransformShaders();
|
||||
if (loaded)
|
||||
{
|
||||
|
|
@ -767,7 +767,7 @@ void LLViewerShaderMgr::setShaders()
|
|||
}
|
||||
gPipeline.createGLBuffers();
|
||||
|
||||
reentrance = false;
|
||||
reentrance = false;
|
||||
}
|
||||
|
||||
void LLViewerShaderMgr::unloadShaders()
|
||||
|
|
|
|||
Loading…
Reference in New Issue