intel/elk: Remove FB_WRITE_LOGICAL_SRC_SRC_STENCIL

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27629>
This commit is contained in:
Caio Oliveira
2024-02-12 19:08:03 -08:00
committed by Marge Bot
parent 7b651ac6c3
commit 2b6b786feb
4 changed files with 4 additions and 36 deletions
-1
View File
@@ -240,7 +240,6 @@ enum fb_write_logical_srcs {
FB_WRITE_LOGICAL_SRC_SRC0_ALPHA,
FB_WRITE_LOGICAL_SRC_SRC_DEPTH, /* gl_FragDepth */
FB_WRITE_LOGICAL_SRC_DST_DEPTH, /* GFX4-5: passthrough from thread */
FB_WRITE_LOGICAL_SRC_SRC_STENCIL, /* gl_FragStencilRefARB */
FB_WRITE_LOGICAL_SRC_OMASK, /* Sample Mask (gl_SampleMask) */
FB_WRITE_LOGICAL_SRC_COMPONENTS, /* REQUIRED */
FB_WRITE_LOGICAL_NUM_SRCS
@@ -1150,11 +1150,10 @@ try_constant_propagate(const elk_compiler *compiler, elk_fs_inst *inst,
break;
case ELK_FS_OPCODE_FB_WRITE_LOGICAL:
/* The stencil and omask sources of ELK_FS_OPCODE_FB_WRITE_LOGICAL are
/* The omask source of ELK_FS_OPCODE_FB_WRITE_LOGICAL is
* bit-cast using a strided region so they cannot be immediates.
*/
if (arg != FB_WRITE_LOGICAL_SRC_SRC_STENCIL &&
arg != FB_WRITE_LOGICAL_SRC_OMASK) {
if (arg != FB_WRITE_LOGICAL_SRC_OMASK) {
inst->src[arg] = val;
progress = true;
}
+2 -14
View File
@@ -674,7 +674,7 @@ elk_fs_visitor::emit_single_fb_write(const fs_builder &bld,
/* Hand over gl_FragDepth or the payload depth. */
const elk_fs_reg dst_depth = fetch_payload_reg(bld, fs_payload().dest_depth_reg);
elk_fs_reg src_depth, src_stencil;
elk_fs_reg src_depth;
if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
src_depth = frag_depth;
@@ -690,11 +690,8 @@ elk_fs_visitor::emit_single_fb_write(const fs_builder &bld,
src_depth = fetch_payload_reg(bld, fs_payload().source_depth_reg);
}
if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL))
src_stencil = frag_stencil;
const elk_fs_reg sources[] = {
color0, color1, src0_alpha, src_depth, dst_depth, src_stencil,
color0, color1, src0_alpha, src_depth, dst_depth,
(prog_data->uses_omask ? sample_mask : elk_fs_reg()),
elk_imm_ud(components)
};
@@ -771,15 +768,6 @@ elk_fs_visitor::emit_fb_writes()
limit_dispatch_width(8, "Depth writes unsupported in SIMD16+ mode.\n");
}
if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL)) {
/* From the 'Render Target Write message' section of the docs:
* "Output Stencil is not supported with SIMD16 Render Target Write
* Messages."
*/
limit_dispatch_width(8, "gl_FragStencilRefARB unsupported "
"in SIMD16+ mode.\n");
}
/* ANV doesn't know about sample mask output during the wm key creation
* so we compute if we need replicate alpha and emit alpha to coverage
* workaround here.
@@ -155,7 +155,6 @@ lower_fb_write_logical_send(const fs_builder &bld, elk_fs_inst *inst,
const elk_fs_reg src0_alpha = inst->src[FB_WRITE_LOGICAL_SRC_SRC0_ALPHA];
const elk_fs_reg src_depth = inst->src[FB_WRITE_LOGICAL_SRC_SRC_DEPTH];
const elk_fs_reg dst_depth = inst->src[FB_WRITE_LOGICAL_SRC_DST_DEPTH];
const elk_fs_reg src_stencil = inst->src[FB_WRITE_LOGICAL_SRC_SRC_STENCIL];
elk_fs_reg sample_mask = inst->src[FB_WRITE_LOGICAL_SRC_OMASK];
const unsigned components =
inst->src[FB_WRITE_LOGICAL_SRC_COMPONENTS].ud;
@@ -328,23 +327,6 @@ lower_fb_write_logical_send(const fs_builder &bld, elk_fs_inst *inst,
length++;
}
if (src_stencil.file != BAD_FILE) {
assert(devinfo->ver >= 9);
assert(bld.dispatch_width() == 8 * reg_unit(devinfo));
/* XXX: src_stencil is only available on gfx9+. dst_depth is never
* available on gfx9+. As such it's impossible to have both enabled at the
* same time and therefore length cannot overrun the array.
*/
assert(length < 15 * reg_unit(devinfo));
sources[length] = bld.vgrf(ELK_REGISTER_TYPE_UD);
bld.exec_all().annotate("FB write OS")
.MOV(retype(sources[length], ELK_REGISTER_TYPE_UB),
subscript(src_stencil, ELK_REGISTER_TYPE_UB, 0));
length++;
}
elk_fs_inst *load;
if (devinfo->ver >= 7) {
/* Send from the GRF */