diff --git a/src/draw/vg_lite/lv_vg_lite_utils.c b/src/draw/vg_lite/lv_vg_lite_utils.c index e2556f4a7f..947587394a 100644 --- a/src/draw/vg_lite/lv_vg_lite_utils.c +++ b/src/draw/vg_lite/lv_vg_lite_utils.c @@ -850,7 +850,10 @@ bool lv_vg_lite_buffer_open_image(vg_lite_buffer_t * buffer, lv_image_decoder_ds args.stride_align = true; args.use_indexed = true; args.no_cache = no_cache; - args.flush_cache = true; + + /** For images output by the GPU itself (such as draw layer), + * there is no need to flush the cache */ + args.flush_cache = !no_cache; lv_result_t res = lv_image_decoder_open(decoder_dsc, src, &args); if(res != LV_RESULT_OK) {