diff --git a/src/mesa/drivers/dri/i965/brw_blorp.h b/src/mesa/drivers/dri/i965/brw_blorp.h index c5c2c4e328d..d61e9d5a0f3 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.h +++ b/src/mesa/drivers/dri/i965/brw_blorp.h @@ -225,7 +225,10 @@ struct brw_blorp_params struct brw_blorp_surface_info src; struct brw_blorp_surface_info dst; enum gen6_hiz_op hiz_op; - unsigned fast_clear_op; + union { + unsigned fast_clear_op; + unsigned resolve_type; + }; bool color_write_disable[4]; struct brw_blorp_wm_push_constants wm_push_consts; unsigned num_varyings; diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp index 2cde347728c..d6c846a57ce 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp @@ -412,7 +412,10 @@ brw_blorp_resolve_color(struct brw_context *brw, struct intel_mipmap_tree *mt) brw_get_resolve_rect(brw, mt, ¶ms.x0, ¶ms.y0, ¶ms.x1, ¶ms.y1); - params.fast_clear_op = GEN7_PS_RENDER_TARGET_RESOLVE_ENABLE; + if (intel_miptree_is_lossless_compressed(brw, mt)) + params.resolve_type = GEN9_PS_RENDER_TARGET_RESOLVE_FULL; + else + params.resolve_type = GEN7_PS_RENDER_TARGET_RESOLVE_ENABLE; /* Note: there is no need to initialize push constants because it doesn't * matter what data gets dispatched to the render target. However, we must