aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
authorthickbrick2011-03-24 17:06:27 +0200
committerthickbrick2011-03-24 17:06:27 +0200
commitf8d46d105e5d137890b98fd18bdf26fa797e22d3 (patch)
treeac656516a6c8053a5c73108f1de212a2a5b56767 /linden
parentChanged version to Experimental 2011.03.20 (diff)
downloadmeta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.zip
meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.tar.gz
meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.tar.bz2
meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.tar.xz
Fix #824/SNOW-466: Window Creation Error related to FSAA
- Linux only: Retry window creation with lower FSAA samples if it fails. - All platforms: save actual FSAA level into RenderFSAASamples after window is created. This exapnds on the patch from SNOW-466 by Robin Cornelius.
Diffstat (limited to '')
-rw-r--r--linden/doc/contributions.txt1
-rw-r--r--linden/indra/llwindow/llwindowsdl.cpp9
-rw-r--r--linden/indra/newview/llviewerwindow.cpp7
3 files changed, 17 insertions, 0 deletions
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt
index 8aab5c8..6a41ddf 100644
--- a/linden/doc/contributions.txt
+++ b/linden/doc/contributions.txt
@@ -528,6 +528,7 @@ Robin Cornelius
528 SNOW-108 528 SNOW-108
529 SNOW-196 529 SNOW-196
530 SNOW-422 530 SNOW-422
531 SNOW-466
531 SNOW-485 532 SNOW-485
532 VWR-2488 533 VWR-2488
533 VWR-9557 534 VWR-9557
diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp
index edfe33b..2f9de6b 100644
--- a/linden/indra/llwindow/llwindowsdl.cpp
+++ b/linden/indra/llwindow/llwindowsdl.cpp
@@ -632,6 +632,15 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
632 mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); 632 mWindow = SDL_SetVideoMode(width, height, bits, sdlflags);
633 } 633 }
634 634
635 while (!mWindow && mFSAASamples > 0)
636 {
637 llwarns << "Window creating failed with " << mFSAASamples << "x FSAA."<<llendl;
638 mFSAASamples = mFSAASamples>>1;
639 SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, mFSAASamples ? 1 : 0);
640 SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, mFSAASamples);
641 mWindow = SDL_SetVideoMode(width, height, bits, sdlflags);
642 }
643
635 if (!mWindow) 644 if (!mWindow)
636 { 645 {
637 llwarns << "createContext: window creation failure. SDL: " << SDL_GetError() << llendl; 646 llwarns << "createContext: window creation failure. SDL: " << SDL_GetError() << llendl;
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp
index 57580cf..e6b207b 100644
--- a/linden/indra/newview/llviewerwindow.cpp
+++ b/linden/indra/newview/llviewerwindow.cpp
@@ -1278,6 +1278,13 @@ LLViewerWindow::LLViewerWindow(
1278 LLAppViewer::instance()->forceExit(1); 1278 LLAppViewer::instance()->forceExit(1);
1279 } 1279 }
1280 1280
1281 const U32 real_fsaa = mWindow->getFSAASamples();
1282 if (real_fsaa != gSavedSettings.getU32("RenderFSAASamples"))
1283 {
1284 LL_WARNS("Window") << "Window created with reduced anti-aliasing samples: " << real_fsaa << "x FSAA." << LL_ENDL;
1285 gSavedSettings.setU32("RenderFSAASamples", real_fsaa);
1286 }
1287
1281 // Get the real window rect the window was created with (since there are various OS-dependent reasons why 1288 // Get the real window rect the window was created with (since there are various OS-dependent reasons why
1282 // the size of a window or fullscreen context may have been adjusted slightly...) 1289 // the size of a window or fullscreen context may have been adjusted slightly...)
1283 F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor"); 1290 F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor");