summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-03-12 08:54:41 -0800
committerJason Ekstrand <[email protected]>2016-03-12 08:57:16 -0800
commit41af9b2e517dd0c17e519490ca915b96f6898390 (patch)
treea4d6c9a28eb81a603504cefdf02028603a8f5a97
parent753ebe4457444e13124eba1e2e2e07edc9ab3c09 (diff)
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.
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c11
1 files changed, 11 insertions, 0 deletions
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);