anv: setup distribution granularity with Wa_14019166699
Workaround describes that we need to set instance level distribution granularity when primitive id is used by the draw. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27955>
This commit is contained in:
@@ -1961,12 +1961,18 @@ genX(graphics_pipeline_emit)(struct anv_graphics_pipeline *pipeline,
|
||||
#endif
|
||||
|
||||
#if GFX_VERx10 >= 125
|
||||
bool needs_instance_granularity =
|
||||
intel_needs_workaround(pipeline->base.base.device->info, 14019166699) &&
|
||||
(sbe_primitive_id_override(pipeline) ||
|
||||
geom_or_tess_prim_id_used(pipeline));
|
||||
|
||||
anv_pipeline_emit(pipeline, partial.vfg, GENX(3DSTATE_VFG), vfg) {
|
||||
/* If 3DSTATE_TE: TE Enable == 1 then RR_STRICT else RR_FREE*/
|
||||
vfg.DistributionMode =
|
||||
anv_pipeline_has_stage(pipeline, MESA_SHADER_TESS_EVAL) ? RR_STRICT :
|
||||
RR_FREE;
|
||||
vfg.DistributionGranularity = BatchLevelGranularity;
|
||||
vfg.DistributionGranularity = needs_instance_granularity ?
|
||||
InstanceLevelGranularity : BatchLevelGranularity;
|
||||
#if INTEL_WA_14014851047_GFX_VER
|
||||
vfg.GranularityThresholdDisable =
|
||||
intel_needs_workaround(pipeline->base.base.device->info, 14014851047);
|
||||
|
||||
Reference in New Issue
Block a user