How to use properly a canvas

I want to be able to write pixel by pixel the screen so I need to use a canvas in lvgl.

The canvas is the size of the screen so I need to reserve a very big memory portion (240x240).

On the other hand I still have to create the two display buffers required in LVGL, in this case the size is just a portion of the screen.

What is the best procedure if I want to use LVGL for normal GUI things (like buttons and so on) but in some cases I need to control the screen pixel by pixel? The method that I have described doesn’t look very optimal since when I don’t use the canvas a huge memory portion is allocated.

Any thought?