From 838c0e5eefd444df701b6d9cbcef1b06eb5eb207 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Mon, 30 Aug 2021 13:03:26 +0300 Subject: [PATCH] intel/fs: fix framebuffer reads We're missing some restrictions on those messages. Signed-off-by: Lionel Landwerlin Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5292 Cc: mesa-stable Reviewed-by: Jordan Justen Part-of: --- src/intel/compiler/brw_fs.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp index 61d44033b3b..9ff48c9bc3a 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;