[sldev] [VWR] VBO is broken

Callum Lerwick seg at haxxed.com
Thu Oct 4 10:23:49 PDT 2007


So, it seems I can't be a luddite and log in with 1.18.0.6 anymore.
Unfortunately, I haven't had a chance to complete a differential profile
between 1.18.0.6 and a current viewer to figure out what's going so
horribly wrong. 1.18.3.5 is still unusable on x86_64.

I am not crazy:

http://jira.secondlife.com/browse/VWR-2303
http://jira.secondlife.com/browse/VWR-2477
http://jira.secondlife.com/browse/VWR-2518
http://jira.secondlife.com/browse/VWR-2565

It is now clear that VBO is where the rapid, unbounded memory leak on
x86_64 lies. Turning off VBO makes it at least somewhat usable. I'm not
sure why the memory leak doesn't seem to happen on i386. Its still much
slower, and RAM usage is still much higher, than 1.18.0.6, and that
seems to be true on i386 as well. And I don't think the lack of VBO
entirely accounts for it. The VBO leak doesn't seem to be the only
problem, which is why I'm hesitant to dupe all those bugs together.

So much for message liberation. I asked previously about disabling the
optional update check. It seems now I need to disable the required
update as well:

--- linden.orig/indra/newview/llstartup.cpp     2007-10-04 10:09:56.000000000 -0500
+++ linden.patched/indra/newview/llstartup.cpp  2007-10-04 09:43:55.000000000 -0500
@@ -201,7 +201,6 @@
 LLPointer<LLImageGL> gStartImageGL;
 
 static LLHost gAgentSimHost;
-static BOOL gSkipOptionalUpdate = FALSE;
 
 bool gUseQuickTime = true;
 bool gQuickTimeInitialized = false;
@@ -339,12 +338,7 @@
        gViewerWindow->handlePerFrameHover();
        LLMortician::updateClass();
 
-       if (gNoRender)
-       {
-               // HACK, skip optional updates if you're running drones
-               gSkipOptionalUpdate = TRUE;
-       }
-       else
+       if (!gNoRender)
        {
                // Update images?
                gImageList.updateImages(0.01f);
@@ -960,7 +954,7 @@
                        lastname.c_str(),
                        password.c_str(),
                        start.str().c_str(),
-                       gSkipOptionalUpdate,
+                       TRUE,
                        gAcceptTOS,
                        gAcceptCriticalMessage,
                        gViewerDigest,
@@ -1122,7 +1116,7 @@
                                        // Clear the password
                                        password = "";
                                }
-                               if(reason_response && (0 == strcmp(reason_response, "update")))
+                               if(FALSE && reason_response && (0 == strcmp(reason_response, "update")))
                                {
                                        auth_message = gUserAuthp->getResponse("message");
                                        if (show_connect_box)
@@ -1144,7 +1138,6 @@
                                        {
                                                update_app(FALSE, auth_message);
                                                gStartupState = STATE_UPDATE_CHECK;
-                                               gSkipOptionalUpdate = TRUE;
                                                return FALSE;
                                        }
                                }
diff -urN -x '*.orig' -x '*.rej' -x '*~' -x '.*' -x '*-linux-client-release' linden.orig/indra/newview/lluserauth.cpp linden.patched/indra/newview/lluserauth.cpp
--- linden.orig/indra/newview/lluserauth.cpp    2007-07-11 17:17:02.000000000 -0500
+++ linden.patched/indra/newview/lluserauth.cpp 2007-10-04 10:19:01.000000000 -0500
@@ -121,9 +121,7 @@
        XMLRPC_VectorAppendString(params, "start", start, 0);
        char buffer[MAX_STRING];                /* Flawfinder: ignore */
        // the version is treated as a single string
-       snprintf(buffer, MAX_STRING, "%d.%d.%d.%d", 
-               LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VIEWER_BUILD); /* Flawfinder: ignore */
-       XMLRPC_VectorAppendString(params, "version", buffer, 0);
+       XMLRPC_VectorAppendString(params, "version", "1.18.99.99", 0);
        XMLRPC_VectorAppendString(params, "channel", gChannelName.c_str(), 0);
        XMLRPC_VectorAppendString(params, "platform", PLATFORM_STRING, 0);
        XMLRPC_VectorAppendString(params, "mac", hashed_mac.c_str(), 0);

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.secondlife.com/pipermail/sldev/attachments/20071004/e4fbec99/attachment.pgp


More information about the SLDev mailing list