diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index 2b974319452..0b2fc2b9656 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -349,6 +349,11 @@ struct iris_fs_data { bool has_side_effects; bool pulls_bary; + bool uses_sample_offsets; + bool uses_npc_bary_coefficients; + bool uses_pc_bary_coefficients; + bool uses_depth_w_coefficients; + bool uses_nonperspective_interp_modes; bool is_per_sample; diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index 8d8849ec976..d425d9dfce8 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -115,6 +115,11 @@ iris_apply_brw_wm_prog_data(struct iris_compiled_shader *shader, iris->has_side_effects = brw->has_side_effects; iris->pulls_bary = brw->pulls_bary; + iris->uses_sample_offsets = brw->uses_sample_offsets; + iris->uses_npc_bary_coefficients = brw->uses_npc_bary_coefficients; + iris->uses_pc_bary_coefficients = brw->uses_pc_bary_coefficients; + iris->uses_depth_w_coefficients = brw->uses_depth_w_coefficients; + iris->uses_nonperspective_interp_modes = brw->uses_nonperspective_interp_modes; iris->is_per_sample = brw_wm_prog_data_is_persample(brw, 0); diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index b9ac6d9a898..0fd4f954f83 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -5254,6 +5254,17 @@ iris_store_fs_state(const struct intel_device_info *devinfo, #endif psx.PixelShaderComputesStencil = fs_data->computed_stencil; #endif + +#if GFX_VER >= 11 + psx.PixelShaderRequiresSubpixelSampleOffsets = + fs_data->uses_sample_offsets; + psx.PixelShaderRequiresNonPerspectiveBaryPlaneCoefficients = + fs_data->uses_npc_bary_coefficients; + psx.PixelShaderRequiresPerspectiveBaryPlaneCoefficients = + fs_data->uses_pc_bary_coefficients; + psx.PixelShaderRequiresSourceDepthandorWPlaneCoefficients = + fs_data->uses_depth_w_coefficients; +#endif } }