diff --git a/.pick_status.json b/.pick_status.json index 3514a1cc1f9..18235d38cff 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -31,7 +31,7 @@ "description": "intel/fs: fix framebuffer reads", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp index 2735a430ec3..8fbb35cf7c0 100644 --- a/src/intel/compiler/brw_fs.cpp +++ b/src/intel/compiler/brw_fs.cpp @@ -4871,6 +4871,20 @@ lower_fb_read_logical_send(const fs_builder &bld, fs_inst *inst) } } + /* BSpec 12470 (Gfx8-11), BSpec 47842 (Gfx12+) : + * + * "Must be zero for Render Target Read message." + * + * For bits : + * - 14 : Stencil Present to Render Target + * - 13 : Source Depth Present to Render Target + * - 12 : oMask to Render Target + * - 11 : Source0 Alpha Present to Render Target + */ + ubld.group(1, 0).AND(component(header, 0), + component(header, 0), + brw_imm_ud(~INTEL_MASK(14, 11))); + inst->resize_sources(1); inst->src[0] = header; inst->opcode = FS_OPCODE_FB_READ;