diff --git a/.pick_status.json b/.pick_status.json index b0a1a6be8a7..a760fd62817 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2554,7 +2554,7 @@ "description": "crocus: Fix shader precompilation on Gen6 and higher", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/crocus/crocus_program.c b/src/gallium/drivers/crocus/crocus_program.c index 5be1a0d6f05..6ee7bc84fbd 100644 --- a/src/gallium/drivers/crocus/crocus_program.c +++ b/src/gallium/drivers/crocus/crocus_program.c @@ -2869,14 +2869,15 @@ crocus_create_fs_state(struct pipe_context *ctx, BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK)); bool can_rearrange_varyings = - screen->devinfo.ver > 6 && util_bitcount64(info->inputs_read & ELK_FS_VARYING_INPUT_MASK) <= 16; + screen->devinfo.ver > 5 && util_bitcount64(info->inputs_read & ELK_FS_VARYING_INPUT_MASK) <= 16; const struct intel_device_info *devinfo = &screen->devinfo; struct elk_wm_prog_key key = { KEY_INIT(), .nr_color_regions = util_bitcount(color_outputs), .coherent_fb_fetch = false, - .ignore_sample_mask_out = screen->devinfo.ver < 6 ? 1 : 0, + .multisample_fbo = (info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK)) ? ELK_ALWAYS : ELK_NEVER, + .ignore_sample_mask_out = !key.multisample_fbo, .input_slots_valid = can_rearrange_varyings ? 0 : info->inputs_read | VARYING_BIT_POS, };