]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
slightly speed up vid_glx by better XShm handling
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 31 Dec 2012 19:10:23 +0000 (19:10 +0000)
committerRudolf Polzer <divverent@xonotic.org>
Wed, 2 Jan 2013 08:38:20 +0000 (09:38 +0100)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@11869 d7cf8633-e32d-0410-b094-e92efae38249
::stable-branch::merge=72d3f0988ac562e626cc3c2226a2746ef8bfc0ed

vid_glx.c

index 5b77483f71c54454c38d7487f045997e018d1a1b..c066555cd12b19ada0a9f026fb7f86d89ae0c6ae 100644 (file)
--- a/vid_glx.c
+++ b/vid_glx.c
@@ -909,18 +909,18 @@ void VID_Finish (void)
                                vid.softpixels = (unsigned int *) vidx11_ximage[vidx11_ximage_pos]->data;
                                DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
 
+                               ++vidx11_shmwait;
+                               XShmPutImage(vidx11_display, win, vidx11_gc, vidx11_ximage[!vidx11_ximage_pos], 0, 0, 0, 0, vid.width, vid.height, True);
+
                                // save mouse motion so we can deal with it later
                                in_mouse_x = 0;
                                in_mouse_y = 0;
-                               while(vidx11_shmwait)
+                               while(vidx11_shmwait > 1)
                                        HandleEvents();
                                in_mouse_x_save += in_mouse_x;
                                in_mouse_y_save += in_mouse_y;
                                in_mouse_x = 0;
                                in_mouse_y = 0;
-
-                               ++vidx11_shmwait;
-                               XShmPutImage(vidx11_display, win, vidx11_gc, vidx11_ximage[!vidx11_ximage_pos], 0, 0, 0, 0, vid.width, vid.height, True);
                        } else {
                                // no buffer switching here, we just flush the renderer
                                DPSOFTRAST_Finish();