[Mesa-dev] [PATCH] i965: Fix GPU hangs when a blorp batch is the first thing to execute.

Kenneth Graunke kenneth at whitecape.org
Thu May 2 10:43:51 PDT 2013


On 05/02/2013 02:13 AM, Chris Wilson wrote:
> On Wed, May 01, 2013 at 04:28:08PM -0700, Eric Anholt wrote:
>> The GPU apparently goes looking for constants even though there are no
>> shader stages enabled, and gets stuck because we haven't told it there are
>> no constants to collect.  If any other user of the 3D pipeline had run
>> (even the Render accel of the X server!) since power on, then the in-GPU
>> constant buffers would have been set up with some contents we didn't use,
>> and we would succeed.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56416
>> NOTE: This is a candidate for the stable branches.
>
> The collorary to this is that DynamicStateUpperBound is programmed to an
> unsafe value and should be (0x7fff0000 | 1) for most of our hardware. The
> actual value to program requires information not easily reported by the
> kernel (just like the mappable aperture size).
> -Chris

Actually, the sensible value to program is the end of the batchbuffer. 
Which is readily available, but requires a relocation.  The reason we 
switched to 0xfffff001 was because programming it to the end of the 
batch buffer required relaxed relocation support in the kernel.

But I bumped the kernel requirements so we won't even run if the kernel 
doesn't support that, so we can put it back to the batch end if people 
think that's best.


More information about the mesa-dev mailing list