unsigned first_level, unsigned last_level,
unsigned first_layer, unsigned last_layer,
unsigned first_sample, unsigned last_sample);
-
- void (*decompress_dcc)(struct pipe_context *ctx,
- struct r600_texture *rtex);
};
/* r600_buffer_common.c */
mtx_lock(&sscreen->aux_context_lock);
/* Decompress DCC. */
- rctx->decompress_dcc(&rctx->b, rtex);
+ si_decompress_dcc(&rctx->b, rtex);
rctx->b.flush(&rctx->b, NULL, 0);
if (&rctx->b == sscreen->aux_context)
if (vi_dcc_formats_are_incompatible(tex, level, view_format))
if (!si_texture_disable_dcc(rctx, (struct r600_texture*)tex))
- rctx->decompress_dcc(&rctx->b, rtex);
+ si_decompress_dcc(&rctx->b, rtex);
}
struct pipe_surface *si_create_surface_custom(struct pipe_context *pipe,
}
}
-static void si_decompress_dcc(struct pipe_context *ctx,
- struct r600_texture *rtex)
+void si_decompress_dcc(struct pipe_context *ctx, struct r600_texture *rtex)
{
if (!rtex->dcc_offset)
return;
sctx->b.b.flush_resource = si_flush_resource;
sctx->b.b.generate_mipmap = si_generate_mipmap;
sctx->b.blit_decompress_depth = si_blit_decompress_depth;
- sctx->b.decompress_dcc = si_decompress_dcc;
}
if (unlikely(!is_buffer && sview->dcc_incompatible)) {
if (vi_dcc_enabled(rtex, view->u.tex.first_level))
if (!si_texture_disable_dcc(&sctx->b, rtex))
- sctx->b.decompress_dcc(&sctx->b.b, rtex);
+ si_decompress_dcc(&sctx->b.b, rtex);
sview->dcc_incompatible = false;
}
* has been decompressed already.
*/
if (!si_texture_disable_dcc(&ctx->b, tex))
- ctx->b.decompress_dcc(&ctx->b.b, tex);
+ si_decompress_dcc(&ctx->b.b, tex);
}
if (ctx->b.chip_class >= GFX9) {
struct pipe_resource *src,
unsigned src_level,
const struct pipe_box *src_box);
+void si_decompress_dcc(struct pipe_context *ctx, struct r600_texture *rtex);
/* si_clear.c */
void vi_dcc_clear_level(struct si_context *sctx,
if (vi_dcc_enabled(rtex, surf->base.u.tex.level))
if (!si_texture_disable_dcc(&sctx->b, rtex))
- sctx->b.decompress_dcc(ctx, rtex);
+ si_decompress_dcc(ctx, rtex);
surf->dcc_incompatible = false;
}