Commit a5889d70 authored by Topi Pohjolainen's avatar Topi Pohjolainen Committed by Anuj Phogat

i965/icl: Disable binding table prefetching

Gen 11 workarounds table #2056 WABTPPrefetchDisable suggests to
disable prefetching of binding tables for ICLLP A0 and B0
steppings. It fixes multiple gpu hangs in
ext_framebuffer_multisample* tests on ICLLP B0 h/w.

Anuj: Add comments and commit message.
      Add gen 11 checks in the code.
Signed-off-by: Anuj Phogat's avatarAnuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Rafael Antognolli's avatarRafael Antognolli <rafael.antognolli@intel.com>
parent 1d71981b
......@@ -762,6 +762,13 @@ blorp_emit_ps_config(struct blorp_batch *batch,
ps.BindingTableEntryCount = 1;
}
/* Gen 11 workarounds table #2056 WABTPPrefetchDisable suggests to
* disable prefetching of binding tables on A0 and B0 steppings.
* TODO: Revisit this WA on C0 stepping.
*/
if (GEN_GEN == 11)
ps.BindingTableEntryCount = 0;
if (prog_data) {
ps._8PixelDispatchEnable = prog_data->dispatch_8;
ps._16PixelDispatchEnable = prog_data->dispatch_16;
......
......@@ -2165,7 +2165,13 @@ static const struct brw_tracked_state genX(wm_state) = {
pkt.KernelStartPointer = KSP(brw, stage_state->prog_offset); \
pkt.SamplerCount = \
DIV_ROUND_UP(CLAMP(stage_state->sampler_count, 0, 16), 4); \
/* Gen 11 workarounds table #2056 WABTPPrefetchDisable suggests to \
* disable prefetching of binding tables in A0 and B0 steppings. \
* TODO: Revisit this WA on C0 stepping. \
*/ \
pkt.BindingTableEntryCount = \
GEN_GEN == 11 ? \
0 : \
stage_prog_data->binding_table.size_bytes / 4; \
pkt.FloatingPointMode = stage_prog_data->use_alt_mode; \
\
......@@ -3965,7 +3971,13 @@ genX(upload_ps)(struct brw_context *brw)
DIV_ROUND_UP(CLAMP(stage_state->sampler_count, 0, 16), 4);
/* BRW_NEW_FS_PROG_DATA */
ps.BindingTableEntryCount = prog_data->base.binding_table.size_bytes / 4;
/* Gen 11 workarounds table #2056 WABTPPrefetchDisable suggests to disable
* prefetching of binding tables in A0 and B0 steppings.
* TODO: Revisit this workaround on C0 stepping.
*/
ps.BindingTableEntryCount = GEN_GEN == 11 ?
0 :
prog_data->base.binding_table.size_bytes / 4;
if (prog_data->base.use_alt_mode)
ps.FloatingPointMode = Alternate;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment