i965: Revert absolute mode for constant buffer pointers.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 19 Oct 2017 21:38:30 +0000 (14:38 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 23 Oct 2017 19:03:22 +0000 (12:03 -0700)
commit013d33122028f2492da90a03ae4bc1dab84c3ee9
tree039ab4d9b3a37e0a5c94634d0f0455effa66112f
parentd4567efa5ca5383fd5576b8871b3abc05e085360
i965: Revert absolute mode for constant buffer pointers.

The kernel doesn't initialize the value of the INSTPM or CS_DEBUG_MODE2
registers at context initialization time.  Instead, they're inherited
from whatever happened to be running on the GPU prior to first run of a
new context.  So, when we started setting these, other contexts in the
system started inheriting our values.  Since this controls whether
3DSTATE_CONSTANT_* takes a pointer or an offset, getting the wrong
setting is fatal for almost any process which isn't expecting this.

Unfortunately, VA-API and Beignet don't initialize this (nor does older
Mesa), so they will die horribly if we start doing this.  UXA and SNA
don't use any push constants, so they are unaffected.

Until we have some kind of solution to this problem, I'm going to revert
this patch and abandon using the feature for now.  It will lead to fewer
pushed UBO ranges on Broadwell+, which may lead to lower performance,
though I don't have any data on the impact.

Cc: "17.3 17.2" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102774
src/mesa/drivers/dri/i965/brw_state_upload.c
src/mesa/drivers/dri/i965/intel_screen.c