summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarzyna Dec <katarzyna.dec@intel.com>2018-04-11 10:15:00 +0200
committerArkadiusz Hiler <arkadiusz.hiler@intel.com>2018-04-12 23:56:51 +0300
commit098b05b21e2935269b477125ef0b7c6729df4cb0 (patch)
tree760f95a717f27a9d8d6857884a905999898ca448
parent809961459f5770f21991a9bfa53ea9ad8f1287a3 (diff)
lib/gpgpu_fill: Add missing configuration parameters for gpgpu_fill
There are missing parameters for Gen8 configuration of gpgpu_fill that are causing GPU hangs on newer hardware. We need to set the number of threads in TG in gen8_fill_interface_descriptor. This field was omitted (apparently without any side effects), but according to bspec from BDW this field cannot be set to 0. We also need to use pipeline selection mask to gen9_gpgpu_fillfunc, which is necessary from SKL. v2: rebased on refactored library v3: Removed replacing gen7_emit_interface_descriptor_load with gen8 version in gen9_gpgpgu_fillfunc, because during refactoring gen8 function was removed. v4: rebase on series new version Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Lukasz Kalamarz <lukasz.kalamarz@intel.com> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
-rw-r--r--lib/gpgpu_fill.c3
-rw-r--r--lib/gpu_fill.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
index 579ce78d..5a77ebd4 100644
--- a/lib/gpgpu_fill.c
+++ b/lib/gpgpu_fill.c
@@ -223,7 +223,8 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
batch->ptr = batch->buffer;
/* GPGPU pipeline */
- OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_GPGPU);
+ OUT_BATCH(GEN7_PIPELINE_SELECT | GEN9_PIPELINE_SELECTION_MASK |
+ PIPELINE_SELECT_GPGPU);
gen9_emit_state_base_address(batch);
gen8_emit_vfe_state_gpgpu(batch);
diff --git a/lib/gpu_fill.c b/lib/gpu_fill.c
index a53e5533..f1fe5b33 100644
--- a/lib/gpu_fill.c
+++ b/lib/gpu_fill.c
@@ -462,6 +462,8 @@ gen8_fill_interface_descriptor(struct intel_batchbuffer *batch, struct igt_buf *
idd->desc5.constant_urb_entry_read_offset = 0;
idd->desc5.constant_urb_entry_read_length = 1; /* grf 1 */
+ idd->desc6.num_threads_in_tg = 1;
+
return offset;
}