diff options
author | Katarzyna Dec <katarzyna.dec@intel.com> | 2018-04-11 10:15:00 +0200 |
---|---|---|
committer | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2018-04-12 23:56:51 +0300 |
commit | 098b05b21e2935269b477125ef0b7c6729df4cb0 (patch) | |
tree | 760f95a717f27a9d8d6857884a905999898ca448 | |
parent | 809961459f5770f21991a9bfa53ea9ad8f1287a3 (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.c | 3 | ||||
-rw-r--r-- | lib/gpu_fill.c | 2 |
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; } |