Bug 103247 - Performance regression: car chase, manhattan
Summary: Performance regression: car chase, manhattan
Status: RESOLVED DUPLICATE of bug 103258
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Kenneth Graunke
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-12 19:17 UTC by Mark Janes
Modified: 2017-10-16 21:33 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Mark Janes 2017-10-12 19:17:09 UTC
Performance regression is as much as 6% depending on the platform.  Currently bisecting between mesa fbcae1897b and 6f5abf3146.
Comment 1 Kenneth Graunke 2017-10-12 23:50:08 UTC
I'm pretty sure it's because of

commit ea0d2e98ecb369ab84e78c84709c0930ea8c293a
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Thu Oct 5 20:31:01 2017 -0700

    i965: Disable auxiliary buffers when there are self-dependencies.
Comment 2 Kenneth Graunke 2017-10-13 06:22:31 UTC
This is pretty straightforward.  It turns out that Car Chase does glGenerateMipmaps on every frame (surprising!)...and that GenerateMipmaps binds a single image as both a source texture and a render target, tripping the self-dependency code.

But it binds one miplevel and renders to the next, which is fine.  We set MaxLevel accordingly, so this is relatively straightforward to detect.  It also gave us the idea of avoiding resolves on texture views that don't use all the layers/levels...
Comment 3 Eero Tamminen 2017-10-16 07:20:42 UTC
While this was filed first, I'd propose setting it as duplicate of bug 103258, because that contains more information (bisect for commit, and that commit causing also incorrect rendering).
Comment 4 Mark Janes 2017-10-16 21:33:11 UTC

*** This bug has been marked as a duplicate of bug 103258 ***


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.