/* Images don't work with AFBC, since they require pixel-level granularity */
if (drm_is_afbc(rsrc->image.layout.modifier)) {
pan_resource_modifier_convert(ctx, rsrc,
- DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED);
+ DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED,
+ "Shader image");
}
util_copy_image_view(&ctx->images[shader][start_slot+i], image);
void
pan_resource_modifier_convert(struct panfrost_context *ctx,
struct panfrost_resource *rsrc,
- uint64_t modifier)
+ uint64_t modifier, const char *reason)
{
assert(!rsrc->modifier_constant);
+ perf_debug_ctx(ctx, "Disabling AFBC with a blit. Reason: %s", reason);
+
struct pipe_resource *tmp_prsrc =
panfrost_resource_create_with_modifier(
ctx->base.screen, &rsrc->base, modifier);
void
pan_resource_modifier_convert(struct panfrost_context *ctx,
struct panfrost_resource *rsrc,
- uint64_t modifier);
+ uint64_t modifier, const char *reason);
#endif /* PAN_RESOURCE_H */