Summary: | [IVB,BYT] GPU hang on deqp-gles31.functional.separate.shader.random | ||
---|---|---|---|
Product: | Mesa | Reporter: | Mark Janes <mark.a.janes> |
Component: | Drivers/DRI/i965 | Assignee: | Kenneth Graunke <kenneth> |
Status: | RESOLVED FIXED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Mark Janes
2016-07-25 23:21:41 UTC
This should be fixed by: commit ebdc82d06532f992aea592265c29a11330e698fa Author: Kenneth Graunke <kenneth@whitecape.org> Date: Tue Jul 26 13:19:46 2016 -0700 i965: Fix move_interpolation_to_top() pass. ... Papers over GPU hangs on Ivybridge and Baytrail caused by the recent NIR FS input rework by restoring the old behavior. (I'm not honestly sure why they hang with PLN not at the top.) However...it's probably worth trying to understand why they hang with move_interpolation_to_top disabled. Curro figured this one out. The problem was the NoDDClear/NoDDCheck flags on the PLN instructions. Normally, we do a (-f0.0) PLN with NoDDClear (for helper pixels) and a (+f0.0) PLN with NoDDCheck. This works fine at the top level, because at least one pixel won't be a helper invocation, so the (-f0.0) PLN with NoDDClear will actually execute. But with my (broken) rework, we started emitting PLNs inside control flow. If only helper pixels take a certain control flow path, the (-f0.0) PLN with NoDDClear might not ever execute, leaving the register dependency set, so the next instruction that tries to touch that register would hang. So, move to top is a real solution to this problem, not just papering over it. I've also sent a patch to the mailing list that eliminates the PLN dependency hints, which will allow us to move PLNs into control flow safely (if we want to): https://lists.freedesktop.org/archives/mesa-dev/2016-August/124946.html |
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.