From 41af9b2e517dd0c17e519490ca915b96f6898390 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Sat, 12 Mar 2016 08:54:41 -0800 Subject: [PATCH] HACK: Don't re-configure L3$ in render stages pre-BDW This fixes a "regression" on Haswell and prior caused by merging the gen7 and gen8 flush_state functions. Haswell should still work just fine if you're on a 4.4 kernel, but we really should make it detect the command parser version and do something intelligent. --- src/intel/vulkan/genX_cmd_buffer.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index c3d2043dcdf..723f6d81a39 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -324,7 +324,18 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer) assert((pipeline->active_stages & VK_SHADER_STAGE_COMPUTE_BIT) == 0); +#if GEN_GEN >= 8 + /* FIXME (jason): Currently, the config_l3 function causes problems on + * Haswell and prior if you have a kernel older than 4.4. In order to + * work, it requires a couple of registers be white-listed in the + * command parser and they weren't added until 4.4. What we should do + * is check the command parser version and make it a no-op if your + * command parser is either off or too old. Compute won't work 100%, + * but at least 3-D will. In the mean time, I'm going to make this + * gen8+ only so that we can get Haswell working again. + */ genX(cmd_buffer_config_l3)(cmd_buffer, false); +#endif genX(flush_pipeline_select_3d)(cmd_buffer); -- 2.30.2