VICE on Pi4 causing video mode switching on KMS driver
stoo last edited by
Standalone VICE (vice-x64) causes my Pi4 to switch video modes - or at least blank out the HDMI signal temporarily - when starting up the emulator and when switching between the VICE menu and the running system.
This only occurs with the KMS driver, not the FKMS driver.
This is an FYI rather than a request for support.
Appreciate it's a heads up, but will need more information to diagnose. Set up specs, runcommand logs and so on. The mode switching logic should be the same between fkms and kms. I will test, but more info would be useful.
stoo last edited by stoo
@buzz I'll provide what I can. I'm guessing it'll end up being an SDL2 bug with KMS.
Pi Model or other hardware: 4B 8GB
Power Supply used: Official Pi4 supply
RetroPie Version: 4.6 fully updated
Built From: Pre made SD Image on RetroPie website
USB Devices connected: XBOX 360 controller, USB keyboard
Controller used: XBOX 360 controller
Error messages received: None
How to replicate the problem: Enable KMS driver, load emulator, switch between emulated C64 system and Main Menu.
Rucommand log is identical on both KMS and FKMS (I just chose a game at random, behaviour is the same):
Parameters: Executing: /opt/retropie/emulators/vice/bin/vice.sh x64 "/home/pi/RetroPie/roms/c64/Crazy Comets.d64" Unsupported archive: /home/pi/RetroPie/roms/c64/Crazy Comets.d64 sound new percent: 100.000000 Reading configuration file `/home/pi/.config/vice/sdl-vicerc'.
Here's my config.txt. To switch between KMS and FKMS I just comment/uncomment the appropriate dtoverlay lines in the [Pi4] section.
# 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=2 hdmi_mode=82 # 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 # The usage is dtoverlay=vc4-kms-v3d,noaudio combined with # dtparam=audio=on This turns off the vc4hdmi audio driver and keeps the # BCM2835 audio driver on. If you want the vc4hmdi audio driver the # usage is dtoverlay=vc4-kms-v3d and dtparam=audio=off # 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 #dtoverlay=vc4-kms-v3d,noaudio max_framebuffers=2 over_voltage=6 arm_freq=2000 gpu_freq=700 v3d_freq_min=500 [all] #dtoverlay=vc4-fkms-v3d overscan_scale=1 enable_uart=1 #hdmi_enable_4kp60=1
stoo last edited by stoo
Sorry the quality is so bad. Hopefully you can see the signal blanking out as I switch between the menu and the running system. The monitor's HDMI2 input notification appears in the top-right each time this happens.
The output resolution is 1080p@60 in both the system and the menu (I tried to show this but it's hard to see the monitor's OSD).
It feels more like the SDL window(?) is being recreated as I switch between the system and the menu.
With the FKMS driver, the monitor never blanks out and switching between the running system and the menu is instant.