I have a 16bit (565) display attached to a Pi with the DPI interface. The problem is that the framebuffer that gets set up is still 32bit and it looks like it's just dropping the LSBs to truncate the output to the screen. This leads to really nasty banding when there is a colour gradient to display.
How can I force the framebuffer to be 16bit?
I've tried setting framebuffer_depth=16
in the config.txt but still end up with a 32bit framebuffer.
And my dpi_output_format
is set to 0x70013
which should be mode 3 565 output.
fbset output:
mode "320x480"
geometry 320 480 320 480 32
timings 0 0 0 0 0 0 0
rgba 8/16,8/8,8/0,8/24
endmode
Frame buffer device information:
Name : BCM2708 FB
Address : 0x1eb62000
Size : 614400
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 1
YPanStep : 1
YWrapStep : 0
LineLength : 1280
Accelerator : No
fbset -depth 16
but that will only work if the driver honors your request.