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 <anuj.phogat@gmail.com> Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
This commit is contained in:

committed by
Anuj Phogat

parent
1d71981b27
commit
a5889d70f2
@@ -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;
|
||||
|
Reference in New Issue
Block a user