[Bug 86140] New: [BYT/HSW/BDW Bisected]SynMark2_v6_0_0_OglDrvShComp performance reduced ~60%
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Nov 11 01:19:56 PST 2014
https://bugs.freedesktop.org/show_bug.cgi?id=86140
Bug ID: 86140
Summary: [BYT/HSW/BDW Bisected]SynMark2_v6_0_0_OglDrvShComp
performance reduced ~60%
Product: Mesa
Version: unspecified
Hardware: Other
OS: All
Status: NEW
Severity: normal
Priority: medium
Component: Drivers/DRI/i965
Assignee: idr at freedesktop.org
Reporter: wendy.wang at intel.com
QA Contact: intel-3d-bugs at lists.freedesktop.org
Created attachment 109264
--> https://bugs.freedesktop.org/attachment.cgi?id=109264&action=edit
Xorg.0.log
Environment:
-----------------------------------
Platform:BDW
Libdrm:
(master)libdrm-2.4.58-4-g00847fa48b83a85b0cb882594a12ed1511f780db
Mesa: (master)f3b709c0ac073cd0ec90a3a0d91d1ee94668e043
Xserver:
(master)xorg-server-1.16.99.901-3-g63bb5c5ef16edf652179770294dcca4fc07dc992
Xf86_video_intel:
(master)2.99.916-139-ge96520327bd2ef4fbc7b7b5169a17b966d9f85f3
Cairo: (master)a03f2ff72054c9530f98738aac729354a3f56102
Libva: (master)ccd93de5a707e92a629cccd595757c8d436fa3cc
Libva_intel_driver:
(master)24cba20a119c96556ae4dc9a90043896ea70e567
Kernel: (drm-intel-nightly)b921a5e434f541c6d96378838df47b4259cc3489
Bug detailed description:
---------------------------------------------
SynMark2_v6_0_0_OglDrvShComp ~60%
Issue happened on BYT/HSW/BDW
It's Mesa regression,bisect result show first bad commit as below:
Commit: a16ca4ac6a356e02c6aa03c1e305f613a4e23202
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Oct 29 20:56:07 2014 -0700
glsl: Skip loop-too-large heuristic if indexing arrays of a certain size
A pattern in certain shaders is:
uniform vec4 colors[NUM_LIGHTS];
for (int i = 0; i < NUM_LIGHTS; i++) {
...use colors[i]...
}
In this case, the application author expects the shader compiler to
unroll the loop. By doing so, it replaces variable indexing of the
array with constant indexing, which is more efficient.
This patch extends the heuristic to see if arrays accessed within the
loop are indexed by an induction variable, and if the array size exactly
matches the number of loop iterations. If so, the application author
probably intended us to unroll it. If not, we rely on the existing
loop-too-large heuristic.
Improves performance in a phong shading microbenchmark by 2.88x, and a
shadow mapping microbenchmark by 1.63x. Without variable indexing, we
can upload the small uniform arrays as push constants instead of pull
constants, avoiding shader memory access. Affects several games, but
doesn't appear to impact their performance.
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Acked-by: Kristian Høgsberg <krh at bitplanet.net>
Reproduce steps:
---------------------------------------------
1. xinit&
2. ./ Synmark2 OglDrvShComp
Xorg.0.log file attached.
--
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20141111/6a78beb4/attachment-0001.html>
More information about the intel-3d-bugs
mailing list