I have a graphic application running from a Raspberry PI 3 currently. I'm using an LG B9 4k tv (3840x2160) and Pi maps it to 1920x1080 to project my application on the tv. This works fine but the resolution is of course not as crisp.
I got a Pi 4 to use the 4k resolution now. But the framebuffer mapping fails. I tried comparing the /boot/config.txt file of both and the one difference between two execution is the color depth of the framebuffer? My Pi 3 has the color depth of 32 bits per pixel and that seems to work. The Pi 4 has the bits per pixel 16 and that does not work, so I'm assuming the problem is the color depth. How can I change the framebuffer's color depth? And why does my framebuffer mapping fail is the tv resolution matches the resolution I have set in my code? Here are the config files for both my setups and the outputs that I printed out.
EDIT: (Potential Solution) I was able to change the resolution to 3840x2160 at 32 bits per pixel by disabling the 3d acceleration, that is dtoverlay=vc4-fkms-v3d in the config file.
Pi 3 setup(1920x1080)
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=-16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=1
#hdmi_mode=63
hdmi_mode=95
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Enable serial console
enable_uart=1
# Added by Nisarg:Use RGB full(0-255)
#hdmi_pixel_encoding = 2
hdmi_enable_4kp60=1
**OUTPUT**:
xRes =1920, yRes=1080
bits/pixel = 32
bpc = 4
bits/pixel = 32
real x = 3840
real y = 2160
virtual x = 3840
virtual y = 2160
here19201080frame buffer size = 8294400
herehereUsb Click Open
timer 1ms ID is 0x121410
timer 100ms ID is 0x121420
Pi 4 setup(3840x2160)
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=3840
#framebuffer_height=2160
#framebuffer_depth=32
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=95
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
#hdmi_enable_4kp60=1
OUTPUT:
xRes =3840, yRes=2160
bits/pixel = 16
bpc = 4
bits/pixel = 32
real x = 3840
real y = 2160
virtual x = 3840
virtual y = 2160
here38402160frame buffer size = 33177600
fb map failed!
Segmentation fault