Summary: | [SNB, BXT] up to 40% perf drop from "loader/dri3: Overhaul dri3_update_num_back" commit | ||
---|---|---|---|
Product: | Mesa | Reporter: | Eero Tamminen <eero.t.tamminen> |
Component: | Other | Assignee: | mesa-dev |
Status: | VERIFIED FIXED | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | high | CC: | michel, turbonomad |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Xorg log
Always use at least two buffers backtrace before change backtrace after change |
Description
Eero Tamminen
2016-08-31 13:55:01 UTC
Please attach the corresponding Xorg log file. It would also be interesting to know which path dri3_update_num_back takes before and after the change for each affected test. Created attachment 126171 [details] Xorg log (In reply to Michel Dänzer from comment #1) > Please attach the corresponding Xorg log file. Attached, didn't seem to have anything significant (only difference to version before the issue is timestamps, build IDs and some additional input device lines). Does the problem also occur with the modesetting driver instead of intel? If yes, I'm afraid we can't make progress on this bug without seeing at least the number of buffers used before and after my change in the affected cases, preferably also the values of the variables used to decide that number. Created attachment 126214 [details] [review] Always use at least two buffers Does this patch fix the problem? (In reply to Michel Dänzer from comment #4) > Created attachment 126214 [details] [review] [review] > Always use at least two buffers > > Does this patch fix the problem? Yes, but that's not all... BXT performance raised a lot in the affected programs end of last week (some more than the drop, some less than the drop). This was due Chris' commit adding BXT & KBL PCI IDs to xf86-video-intel. I assume with this, X will be using SNA also on BXT instead of the "default acceleration" that uses (slow) legacy blitter. So, I did few tests: * BXT: reverting the "Overhaul dri3_update_num_back" with the new X DDX didn't affect the performance (same good one) * BXT: with old X DDX attached patch fixes the drops * BXT: with new X DDX attached patch doesn't give additional improvement * SNB: attached patch fixes the drops Comments: - This isn't necessarily Mesa issue, but X DDX one - Something fishy with SNB for which it would be good to get comment from Chris Still TODO: -Check modesetting driver perf with the before and after the commit - Provide requested info from GDB With modesetting: * BXT: similar to new X DDX, perf OK (somewhat below X DDX) * SNB: perf still bad, but better than with Intel DDX -> on SNB the attached patch is needed to get performance on previous level regardless of DDX. Backtraces are from BXT, both with old (last month) X Intel DDX, before and after the commit. Earlier dri3_update_num_back() was called when getting buffers, now it's called when swapping. Created attachment 126221 [details]
backtrace before change
Created attachment 126222 [details]
backtrace after change
Thanks for the information and testing! Fix pushed to master: Module: Mesa Branch: master Commit: dc3bb5db8c81e7f08ae12ea5d3ee999e2afcbfd1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc3bb5db8c81e7f08ae12ea5d3ee999e2afcbfd1 Author: Michel Dänzer <michel.daenzer@amd.com> Date: Tue Sep 6 11:34:49 2016 +0900 loader/dri3: Always use at least two back buffers Verified. This affected also KBL (for which Intel DDX still doesn't seem to use SNA) and potentially BYT too. |
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.