Fix another 1856 crash on startup case when Terrain Bake shaders are unsupported (#2491)
fixes secondlife/viewer#1856master
parent
cb9f3dcfe9
commit
2a188ab306
|
|
@ -7183,6 +7183,17 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderCanUseTerrainBakeShaders</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Hardware has support for Terrain Bake shaders</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderClass1MemoryBandwidth</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -3446,6 +3446,12 @@ bool enable_gltf_upload()
|
|||
return enable_gltf_save_as();
|
||||
}
|
||||
|
||||
bool enable_terrain_local_paintmap()
|
||||
{
|
||||
static LLCachedControl<bool> can_use_shaders(gSavedSettings, "RenderCanUseTerrainBakeShaders", true);
|
||||
return can_use_shaders;
|
||||
}
|
||||
|
||||
class LLSelfRemoveAllAttachments : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
|
|
@ -10217,6 +10223,7 @@ void initialize_menus()
|
|||
enable.add("EnableGLTF", boost::bind(&enable_gltf));
|
||||
enable.add("EnableGLTFSaveAs", boost::bind(&enable_gltf_save_as));
|
||||
enable.add("EnableGLTFUpload", boost::bind(&enable_gltf_upload));
|
||||
enable.add("EnableTerrainLocalPaintMap", std::bind(&enable_terrain_local_paintmap));
|
||||
|
||||
view_listener_t::addMenu(new LLFloaterVisible(), "FloaterVisible");
|
||||
view_listener_t::addMenu(new LLShowSidetrayPanel(), "ShowSidetrayPanel");
|
||||
|
|
|
|||
|
|
@ -2993,7 +2993,14 @@ bool LLViewerShaderMgr::loadShadersInterface()
|
|||
const U32 value_range = (1 << bit_depth) - 1;
|
||||
shader->addPermutation("TERRAIN_PAINT_PRECISION", llformat("%d", value_range));
|
||||
success = success && shader->createShader();
|
||||
llassert(success);
|
||||
//llassert(success);
|
||||
if (!success)
|
||||
{
|
||||
LL_WARNS() << "Failed to create shader '" << shader->mName << "', disabling!" << LL_ENDL;
|
||||
gSavedSettings.setBOOL("RenderCanUseTerrainBakeShaders", false);
|
||||
// continue as if this shader never happened
|
||||
success = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (success)
|
||||
|
|
|
|||
|
|
@ -3672,9 +3672,10 @@ function="World.EnvPreset"
|
|||
<menu_item_separator/>
|
||||
|
||||
<menu_item_call
|
||||
enabled="true"
|
||||
label="Create Local Paintmap"
|
||||
name="Create Local Paintmap">
|
||||
<menu_item_call.on_enable
|
||||
function="EnableTerrainLocalPaintMap"/>
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.TerrainCreateLocalPaintMap" />
|
||||
</menu_item_call>
|
||||
|
|
|
|||
Loading…
Reference in New Issue