[Bug 103517] 10% perf drop in CPU bound tests with "i965: Call gen6_upload_push_constants() even when the stage is disabled"

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Nov 9 16:50:13 UTC 2017


--- Comment #1 from Eero Tamminen <eero.t.tamminen at intel.com> ---
According to ezBench:
* Indicated commit also broke Xonotic rendering, in addition to performance
* This commit fixed the rendering issue, but not the performance drop:
commit 877dd14e88de6ee115617a2a6412e86ba67db443
Author:     Kenneth Graunke <kenneth at whitecape.org>
AuthorDate: Fri Oct 20 15:38:52 2017 -0700
Commit:     Kenneth Graunke <kenneth at whitecape.org>
CommitDate: Mon Oct 30 20:38:08 2017 -0700

    i965: Don't flag BRW_NEW_SURFACES unless some push constants are dirty.

    Due to a gaffe on my part, we were re-emitting all binding table entries
    on every single draw call.  The push_constant_packets atom listens to
    BRW_NEW_DRAW_CALL, but skips emitting 3DSTATE_CONSTANT_XS for each stage
    unless stage_state->push_constants_dirty is true.  However, it flagged
    BRW_NEW_SURFACES unconditionally at the end, by mistake.

    Instead, it should only flag it if we actually emit 3DSTATE_CONSTANT_XS
    for a stage.  We can move it a few lines up, inside the loop - the early
    continues will skip over it if push constants aren't dirty for a stage.

    With INTEL_NO_HW=1 set, improves performance of GFXBench5 gl_driver_2
    on Apollolake at 1280x720 by 1.01122% +/- 0.470723% (n=35).

    Reviewed-by: Rafael Antognolli <rafael.antognolli at intel.com>

(And indeed, the perf is still at the regressed level, it hasn't improved
noticeably since the regression.)

You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20171109/54526049/attachment.html>

More information about the intel-3d-bugs mailing list