diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 0ddb025f5b5..9c6f93e2fdf 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -5165,7 +5165,9 @@ iris_store_fs_state(const struct intel_device_info *devinfo, psx.PixelShaderValid = true; psx.PixelShaderComputedDepthMode = wm_prog_data->computed_depth_mode; psx.PixelShaderKillsPixel = wm_prog_data->uses_kill; +#if GFX_VER < 20 psx.AttributeEnable = wm_prog_data->num_varying_inputs != 0; +#endif psx.PixelShaderUsesSourceDepth = wm_prog_data->uses_src_depth; psx.PixelShaderUsesSourceW = wm_prog_data->uses_src_w; psx.PixelShaderIsPerSample = @@ -5173,7 +5175,11 @@ iris_store_fs_state(const struct intel_device_info *devinfo, psx.oMaskPresenttoRenderTarget = wm_prog_data->uses_omask; #if GFX_VER >= 9 +#if GFX_VER >= 20 + assert(!wm_prog_data->pulls_bary); +#else psx.PixelShaderPullsBary = wm_prog_data->pulls_bary; +#endif psx.PixelShaderComputesStencil = wm_prog_data->computed_stencil; #endif } diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 3144fd99cb5..09c184abcd0 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -967,7 +967,9 @@ blorp_emit_ps_config(struct blorp_batch *batch, blorp_emit(batch, GENX(3DSTATE_PS_EXTRA), psx) { if (prog_data) { psx.PixelShaderValid = true; +#if GFX_VER < 20 psx.AttributeEnable = prog_data->num_varying_inputs > 0; +#endif psx.PixelShaderIsPerSample = prog_data->persample_dispatch; psx.PixelShaderComputedDepthMode = prog_data->computed_depth_mode; #if GFX_VER >= 9 diff --git a/src/intel/genxml/gen20.xml b/src/intel/genxml/gen20.xml index 822a37b218a..057248d9a3d 100644 --- a/src/intel/genxml/gen20.xml +++ b/src/intel/genxml/gen20.xml @@ -279,6 +279,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index df6e1b480b7..04547ee6694 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -1631,7 +1631,9 @@ emit_3dstate_ps_extra(struct anv_graphics_pipeline *pipeline, anv_pipeline_emit(pipeline, final.ps_extra, GENX(3DSTATE_PS_EXTRA), ps) { ps.PixelShaderValid = true; +#if GFX_VER < 20 ps.AttributeEnable = wm_prog_data->num_varying_inputs > 0; +#endif ps.oMaskPresenttoRenderTarget = wm_prog_data->uses_omask; ps.PixelShaderIsPerSample = brw_wm_prog_data_is_persample(wm_prog_data, pipeline->fs_msaa_flags); @@ -1649,7 +1651,11 @@ emit_3dstate_ps_extra(struct anv_graphics_pipeline *pipeline, wm_prog_data->uses_kill; ps.PixelShaderComputesStencil = wm_prog_data->computed_stencil; +#if GFX_VER >= 20 + assert(!wm_prog_data->pulls_bary); +#else ps.PixelShaderPullsBary = wm_prog_data->pulls_bary; +#endif ps.InputCoverageMaskState = ICMS_NONE; assert(!wm_prog_data->inner_coverage); /* Not available in SPIR-V */ diff --git a/src/intel/vulkan/genX_simple_shader.c b/src/intel/vulkan/genX_simple_shader.c index 6bce939d72a..9adbf8cac36 100644 --- a/src/intel/vulkan/genX_simple_shader.c +++ b/src/intel/vulkan/genX_simple_shader.c @@ -212,7 +212,9 @@ genX(emit_simpler_shader_init_fragment)(struct anv_simple_shader *state) anv_batch_emit(batch, GENX(3DSTATE_PS_EXTRA), psx) { psx.PixelShaderValid = true; +#if GFX_VER < 20 psx.AttributeEnable = prog_data->num_varying_inputs > 0; +#endif psx.PixelShaderIsPerSample = prog_data->persample_dispatch; psx.PixelShaderComputedDepthMode = prog_data->computed_depth_mode; psx.PixelShaderComputesStencil = prog_data->computed_stencil;