intel: Increase Gen11 compute shader scratch IDs to 64.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 23 Aug 2019 00:32:25 +0000 (17:32 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 23 Sep 2019 23:59:40 +0000 (16:59 -0700)
commitb9e93db20896a436c716107dd0d12057b3aa9f72
tree3253c84a292f3fbb15350c46e6f66bd6b29aa6b4
parent50c0dd8621c9e9ff7227a7d4fc8b61d61b61baf5
intel: Increase Gen11 compute shader scratch IDs to 64.

From the MEDIA_VFE_STATE docs:

   "Starting with this configuration, the Maximum Number of Threads must
    be set to (#EU * 8) for GPGPU dispatches.

    Although there are only 7 threads per EU in the configuration, the
    FFTID is calculated as if there are 8 threads per EU, which in turn
    requires a larger amount of Scratch Space to be allocated by the
    driver."

It's pretty clear that we need to increase this for scratch address
calculations, because the FFTID has a certain bit-pattern.  The quote
above seems to indicate that we should increase the actual thread count
programmed in MEDIA_VFE_STATE as well, but we think the intention is to
only bump the scratch space.

Fixes GPU hangs in Bioshock Infinite and Synmark's CSDof on Icelake 8x8.

Fixes: 5ac804bd9ac ("intel: Add a preliminary device for Ice Lake")
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/gallium/drivers/iris/iris_program.c
src/intel/vulkan/anv_allocator.c
src/mesa/drivers/dri/i965/brw_program.c