diff --git a/src/intel/compiler/elk/elk_eu_defines.h b/src/intel/compiler/elk/elk_eu_defines.h index fd983ac1757..30350e96ea8 100644 --- a/src/intel/compiler/elk/elk_eu_defines.h +++ b/src/intel/compiler/elk/elk_eu_defines.h @@ -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 diff --git a/src/intel/compiler/elk/elk_fs_copy_propagation.cpp b/src/intel/compiler/elk/elk_fs_copy_propagation.cpp index 0743e7b288b..14f0051c2d3 100644 --- a/src/intel/compiler/elk/elk_fs_copy_propagation.cpp +++ b/src/intel/compiler/elk/elk_fs_copy_propagation.cpp @@ -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; } diff --git a/src/intel/compiler/elk/elk_fs_visitor.cpp b/src/intel/compiler/elk/elk_fs_visitor.cpp index 3316f1f7d7d..1aa8e0cae58 100644 --- a/src/intel/compiler/elk/elk_fs_visitor.cpp +++ b/src/intel/compiler/elk/elk_fs_visitor.cpp @@ -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. diff --git a/src/intel/compiler/elk/elk_lower_logical_sends.cpp b/src/intel/compiler/elk/elk_lower_logical_sends.cpp index 6b19f87b102..365bd8fb772 100644 --- a/src/intel/compiler/elk/elk_lower_logical_sends.cpp +++ b/src/intel/compiler/elk/elk_lower_logical_sends.cpp @@ -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 */