i965: Stop restoring the default L3 configuration on Kernel 4.16+.

Kernel 4.16 has proper context isolation, which means we can change
the L3 configuration without worrying about that leaking to other
newly created contexts, breaking the assumptions of other userspace.

So, disable our workaround to reprogram it back to the default.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Kenneth Graunke 2018-02-16 11:03:58 -08:00
parent 5a1606c51f
commit a63c74be85
3 changed files with 7 additions and 2 deletions

View File

@ -739,9 +739,10 @@ brw_finish_batch(struct brw_context *brw)
if (brw->batch.ring == RENDER_RING) {
/* Work around L3 state leaks into contexts set MI_RESTORE_INHIBIT which
* assume that the L3 cache is configured according to the hardware
* defaults.
* defaults. On Kernel 4.16+, we no longer need to do this.
*/
if (devinfo->gen >= 7)
if (devinfo->gen >= 7 &&
!(brw->screen->kernel_features & KERNEL_ALLOWS_CONTEXT_ISOLATION))
gen7_restore_default_l3_config(brw);
if (devinfo->is_haswell) {

View File

@ -2660,6 +2660,9 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
if (devinfo->gen >= 8 || screen->cmd_parser_version >= 5)
screen->kernel_features |= KERNEL_ALLOWS_COMPUTE_DISPATCH;
if (intel_get_boolean(screen, I915_PARAM_HAS_CONTEXT_ISOLATION))
screen->kernel_features |= KERNEL_ALLOWS_CONTEXT_ISOLATION;
const char *force_msaa = getenv("INTEL_FORCE_MSAA");
if (force_msaa) {
screen->winsys_msaa_samples_override =

View File

@ -81,6 +81,7 @@ struct intel_screen
#define KERNEL_ALLOWS_COMPUTE_DISPATCH (1<<4)
#define KERNEL_ALLOWS_EXEC_CAPTURE (1<<5)
#define KERNEL_ALLOWS_EXEC_BATCH_FIRST (1<<6)
#define KERNEL_ALLOWS_CONTEXT_ISOLATION (1<<7)
struct brw_bufmgr *bufmgr;