Почему глубина кадрового буфера отличается для Raspberry Pi 3 и Pi 4? Как успешно сопоставить фреймбуфер 4k с помощью Raspberry Pi 4?

В настоящее время у меня есть графическое приложение, работающее с Raspberry PI 3. Я использую телевизор LG B9 4k (3840x2160), и Pi сопоставляет его с разрешением 1920x1080 для проецирования моего приложения на телевизор. Это работает нормально, но разрешение, конечно, не такое четкое.

У меня есть Pi 4, чтобы использовать разрешение 4k. Но отображение фреймбуфера не работает. Я попытался сравнить файл /boot/config.txt обоих, и единственное различие между двумя исполнениями - это глубина цвета фреймбуфера? Мой Pi 3 имеет глубину цвета 32 бита на пиксель, и это работает. Pi 4 имеет бит на пиксель 16, и это не работает, поэтому я предполагаю, что проблема заключается в глубине цвета. Как я могу изменить глубину цвета фреймбуфера? И почему мое сопоставление кадрового буфера не работает, если разрешение телевизора соответствует разрешению, которое я установил в своем коде? Вот файлы конфигурации для моих настроек и выходных данных, которые я распечатал.

РЕДАКТИРОВАТЬ: (Возможное решение) Я смог изменить разрешение на 3840x2160 при 32 битах на пиксель, отключив 3D-ускорение, то есть dtoverlay=vc4-fkms-v3d в файле конфигурации.

Настройка Pi 3 (1920 x 1080)

# 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 (3840 x 2160)

# 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

person ni5arg    schedule 22.02.2021    source источник
comment
Попробуйте команду tvservice здесь... stackoverflow.com/a/58816979/2836621   -  person Mark Setchell    schedule 23.02.2021