Bug 20797 - [i945] Performance regression in 2.6.3 from 2.6.1 with non-gem kernel
Summary: [i945] Performance regression in 2.6.3 from 2.6.1 with non-gem kernel
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Keith Packard
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-22 16:32 UTC by Albert Damen
Modified: 2009-04-05 19:33 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Albert Damen 2009-03-22 16:32:27 UTC
With -intel 2.6.3 performance was very bad when using a non gem enabled kernel (2.6.27) and EXA. For example sauerbraten ran with 4 fps and screensaver GLBlur with 1 fps. With -intel 2.6.1 performance was good using the same kernel.

Git bisecting led me to commit f1ed73c1ef3e3daa9f695194dcc813167cbcb53d (in 2.6 branch) "Make i830_allocate_memory take tiling parameters" as first bad commit.

Using gdb I found tiling was set exactly the same in 2.6.3 as in 2.6.1, so that was good (TILE_XMAJOR for front, back and depth buffers).
Looking further I found the line mem->tiling = TILE_NONE; (line 961 in src/i830_memory.c) at the end of i830_allocate_memory suspicious, as mem->tiling now already gets set via i830_allocate_aperture and some buffers do have tiling. Removing that line indeed fixed the performance issue. Now sauerbraten runs with 30+ fps and GLBlur runs smoothly.


diff against git master:

diff --git a/src/i830_memory.c b/src/i830_memory.c
index 052d906..e3314c5 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -958,8 +958,6 @@ i830_allocate_memory(ScrnInfoPtr pScrn, const char *name,
        }
     }

-    mem->tiling = TILE_NONE;
-
     return mem;
 }
Comment 1 Eric Anholt 2009-04-05 19:33:32 UTC
commit e964d4e53af3a47de6d09c884be1cc0044d03bea
Author: Albert Damen <albrt@gmx.net>
Date:   Mon Mar 30 11:38:02 2009 -0700

    Non-GEM allocations incorrectly force TILE_NONE (bug 20797)


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.