mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 04:50:11 +01:00
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:
parent
1d71981b27
commit
a5889d70f2
2 changed files with 20 additions and 1 deletions
|
|
@ -762,6 +762,13 @@ blorp_emit_ps_config(struct blorp_batch *batch,
|
||||||
ps.BindingTableEntryCount = 1;
|
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) {
|
if (prog_data) {
|
||||||
ps._8PixelDispatchEnable = prog_data->dispatch_8;
|
ps._8PixelDispatchEnable = prog_data->dispatch_8;
|
||||||
ps._16PixelDispatchEnable = prog_data->dispatch_16;
|
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.KernelStartPointer = KSP(brw, stage_state->prog_offset); \
|
||||||
pkt.SamplerCount = \
|
pkt.SamplerCount = \
|
||||||
DIV_ROUND_UP(CLAMP(stage_state->sampler_count, 0, 16), 4); \
|
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 = \
|
pkt.BindingTableEntryCount = \
|
||||||
|
GEN_GEN == 11 ? \
|
||||||
|
0 : \
|
||||||
stage_prog_data->binding_table.size_bytes / 4; \
|
stage_prog_data->binding_table.size_bytes / 4; \
|
||||||
pkt.FloatingPointMode = stage_prog_data->use_alt_mode; \
|
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);
|
DIV_ROUND_UP(CLAMP(stage_state->sampler_count, 0, 16), 4);
|
||||||
|
|
||||||
/* BRW_NEW_FS_PROG_DATA */
|
/* 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)
|
if (prog_data->base.use_alt_mode)
|
||||||
ps.FloatingPointMode = Alternate;
|
ps.FloatingPointMode = Alternate;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue