diff --git a/src/intel/genxml/gen20.xml b/src/intel/genxml/gen20.xml
index 9950b829799..7308301c134 100644
--- a/src/intel/genxml/gen20.xml
+++ b/src/intel/genxml/gen20.xml
@@ -64,7 +64,7 @@
-
+
@@ -342,7 +342,7 @@
-
+
diff --git a/src/intel/vulkan/genX_cmd_compute.c b/src/intel/vulkan/genX_cmd_compute.c
index 552fcb5c1fa..3bee556729c 100644
--- a/src/intel/vulkan/genX_cmd_compute.c
+++ b/src/intel/vulkan/genX_cmd_compute.c
@@ -1043,6 +1043,9 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer,
pipeline->base.scratch_size);
btd.ScratchSpaceBuffer = scratch_surf >> 4;
}
+#if INTEL_NEEDS_WA_14017794102
+ btd.BTDMidthreadpreemption = false;
+#endif
}
genX(cmd_buffer_ensure_cfe_state)(cmd_buffer, pipeline->base.scratch_size);
@@ -1079,6 +1082,9 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer,
.BindingTablePointer = surfaces->offset,
.NumberofThreadsinGPGPUThreadGroup = 1,
.BTDMode = true,
+#if INTEL_NEEDS_WA_14017794102
+ .ThreadPreemption = false,
+#endif
};
struct brw_rt_raygen_trampoline_params trampoline_params = {
diff --git a/src/intel/vulkan/genX_init_state.c b/src/intel/vulkan/genX_init_state.c
index 13316958522..4938e5b6621 100644
--- a/src/intel/vulkan/genX_init_state.c
+++ b/src/intel/vulkan/genX_init_state.c
@@ -330,6 +330,9 @@ init_common_queue_state(struct anv_queue *queue, struct anv_batch *batch)
*/
.offset = device->btd_fifo_bo->offset,
};
+#if INTEL_NEEDS_WA_14017794102
+ btd.BTDMidthreadpreemption = false;
+#endif
}
}
#endif