mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 13:30:11 +01:00
anv: fix 3DSTATE_VFG emission
3DSTATE_VFG was moved into a section that only gets emitted for legacy
pipelines, not mesh pipelines.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0ce772bd19 ("anv: split 3DSTATE_VFG emission")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25109>
This commit is contained in:
parent
51773d135d
commit
ef8f28403f
1 changed files with 28 additions and 28 deletions
|
|
@ -364,34 +364,6 @@ emit_vertex_input(struct anv_graphics_pipeline *pipeline,
|
|||
sgvs.XP2ElementOffset = drawid_slot;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if GFX_VERx10 >= 125
|
||||
struct anv_device *device = pipeline->base.base.device;
|
||||
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;
|
||||
/* Wa_14014890652 */
|
||||
if (intel_device_info_is_dg2(device->info))
|
||||
vfg.GranularityThresholdDisable = 1;
|
||||
/* 192 vertices for TRILIST_ADJ */
|
||||
vfg.ListNBatchSizeScale = 0;
|
||||
/* Batch size of 384 vertices */
|
||||
vfg.List3BatchSizeScale = 2;
|
||||
/* Batch size of 128 vertices */
|
||||
vfg.List2BatchSizeScale = 1;
|
||||
/* Batch size of 128 vertices */
|
||||
vfg.List1BatchSizeScale = 2;
|
||||
/* Batch size of 256 vertices for STRIP topologies */
|
||||
vfg.StripBatchSizeScale = 3;
|
||||
/* 192 control points for PATCHLIST_3 */
|
||||
vfg.PatchBatchSizeScale = 1;
|
||||
/* 192 control points for PATCHLIST_3 */
|
||||
vfg.PatchBatchSizeMultiplier = 31;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1937,6 +1909,34 @@ genX(graphics_pipeline_emit)(struct anv_graphics_pipeline *pipeline,
|
|||
emit_3dstate_primitive_replication(pipeline, state->rp);
|
||||
#endif
|
||||
|
||||
#if GFX_VERx10 >= 125
|
||||
struct anv_device *device = pipeline->base.base.device;
|
||||
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;
|
||||
/* Wa_14014890652 */
|
||||
if (intel_device_info_is_dg2(device->info))
|
||||
vfg.GranularityThresholdDisable = 1;
|
||||
/* 192 vertices for TRILIST_ADJ */
|
||||
vfg.ListNBatchSizeScale = 0;
|
||||
/* Batch size of 384 vertices */
|
||||
vfg.List3BatchSizeScale = 2;
|
||||
/* Batch size of 128 vertices */
|
||||
vfg.List2BatchSizeScale = 1;
|
||||
/* Batch size of 128 vertices */
|
||||
vfg.List1BatchSizeScale = 2;
|
||||
/* Batch size of 256 vertices for STRIP topologies */
|
||||
vfg.StripBatchSizeScale = 3;
|
||||
/* 192 control points for PATCHLIST_3 */
|
||||
vfg.PatchBatchSizeScale = 1;
|
||||
/* 192 control points for PATCHLIST_3 */
|
||||
vfg.PatchBatchSizeMultiplier = 31;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (anv_pipeline_is_primitive(pipeline)) {
|
||||
emit_vertex_input(pipeline, state, state->vi);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue