diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 00baa4ba312..6f277f08961 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -1706,6 +1706,10 @@ iris_create_rasterizer_state(struct pipe_context *ctx, sf.PointWidthSource = state->point_size_per_vertex ? Vertex : State; sf.PointWidth = state->point_size; +#if GEN_GEN >= 12 + sf.DerefBlockSize = PerPolyDerefMode; +#endif + if (state->flatshade_first) { sf.TriangleFanProvokingVertexSelect = 1; } else { diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 9db829c30f2..84b7cac7e67 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -671,7 +671,11 @@ blorp_emit_sf_config(struct blorp_batch *batch, #if GEN_GEN >= 8 - blorp_emit(batch, GENX(3DSTATE_SF), sf); + blorp_emit(batch, GENX(3DSTATE_SF), sf) { +#if GEN_GEN >= 12 + sf.DerefBlockSize = PerPolyDerefMode; +#endif + } blorp_emit(batch, GENX(3DSTATE_RASTER), raster) { raster.CullMode = CULLMODE_NONE; diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index 0426acaf2b2..0a91e1d009c 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -591,6 +591,10 @@ emit_rs_state(struct anv_pipeline *pipeline, sf.LineStippleEnable = line_info && line_info->stippledLineEnable; #endif +#if GEN_GEN >= 12 + sf.DerefBlockSize = PerPolyDerefMode; +#endif + const struct brw_vue_prog_data *last_vue_prog_data = anv_pipeline_get_last_vue_prog_data(pipeline);