When LAC starts up in full-screen mode with an HDMI monitor or TV, it actively negotiates the requested resolution through the HDMI interface. In general, the monitor or TV will accept LAC's requested resolution. Sometimes, if it can't exactly match the requested resolution, the TV will use some higher but similar resolution that it CAN support, and then LAC's application frame, not filling the entire display surface, will get stretched to fill the space (or it may end up centered within that surface with blank, black areas surrounding it).
In our experience, some HDMI monitors and HDMI TVs (especially low-cost TVs) are highly optimized for high refresh/frame rates at certain resolution settings but are NOT optimized for other resolution settings. (It seems that converting video data from its input resolution to some other resolution for display is a rather challenging activity that may try to use up the TV's high-speed memory faster than it can show the results.) If you happen to request a resolution setting for which your HDMI monitor or TV is not optimized, LAC's frame rate may drop SUBSTANTIALLY lower than you might obtain if you experiment enough to find the preferred, optimal frame rate for your display.
In the worst cases we've seen, some TVs can keep up with LAC's high frame rate for awhile, but they will completely freeze LAC's activity for several seconds from time to time and then resume it at full speed 4 or 5 seconds later. We've seen this happen every 20 seconds or so on a few TV sets when LAC requests a resolution that is not optimized. (Our best guess is that the TV hardware is running out of memory cache as it re-sizes LAC's window and it has to freeze the screen until it can "drain" the cache and resume active display activity.) In every case when we've seen this problem, we've been able to configure LAC with a different resolution setting that does NOT suffer these troubling freeze/delay periods.
Most of the time when using a Raspberry Pi4b, Pi400, or Pi5, we recommend a display resolution of 1280x720. However, when LAC requests Full Screen display on some HDMI TV sets, we have found much better success with LAC's resolution set at 1024x768.
If your HDMI monitor or TV has a native resolution of 1280x720 (commonly advertised as "720P"), you might even experience better success if you AVOID LAC's "Full Screen" mode, specifying a slightly diminished resolution like 1280x680 to ensure that the sim's display window ALMOST fills the available screen space but still leaves a few rows for the Linux "Kicker Panel". When you avoid "Full Screen" mode, the TV won't need to expend any extra effort converting input resolution to display resolution; it just displays whatever it received as it will best fit within its native resolution. Unfortunately, when configured for the recommended 1280x720 resolution this will leave LAC in a very small window somewhere within the native 1920x1080 resolution of a typical 1080p "gaming" monitor. But if your inexpensive HDMI TV or HDMI monitor has a native resolution of just 1280x720, you'll see LAC's window frame filling (or nearly filling) the entire display surface while operating at a resolution that your Pi can easily support with a glassy-smooth frame rate.
Last edit: bbosen 2024-08-17
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
When LAC starts up in full-screen mode with an HDMI monitor or TV, it actively negotiates the requested resolution through the HDMI interface. In general, the monitor or TV will accept LAC's requested resolution. Sometimes, if it can't exactly match the requested resolution, the TV will use some higher but similar resolution that it CAN support, and then LAC's application frame, not filling the entire display surface, will get stretched to fill the space (or it may end up centered within that surface with blank, black areas surrounding it).
In our experience, some HDMI monitors and HDMI TVs (especially low-cost TVs) are highly optimized for high refresh/frame rates at certain resolution settings but are NOT optimized for other resolution settings. (It seems that converting video data from its input resolution to some other resolution for display is a rather challenging activity that may try to use up the TV's high-speed memory faster than it can show the results.) If you happen to request a resolution setting for which your HDMI monitor or TV is not optimized, LAC's frame rate may drop SUBSTANTIALLY lower than you might obtain if you experiment enough to find the preferred, optimal frame rate for your display.
In the worst cases we've seen, some TVs can keep up with LAC's high frame rate for awhile, but they will completely freeze LAC's activity for several seconds from time to time and then resume it at full speed 4 or 5 seconds later. We've seen this happen every 20 seconds or so on a few TV sets when LAC requests a resolution that is not optimized. (Our best guess is that the TV hardware is running out of memory cache as it re-sizes LAC's window and it has to freeze the screen until it can "drain" the cache and resume active display activity.) In every case when we've seen this problem, we've been able to configure LAC with a different resolution setting that does NOT suffer these troubling freeze/delay periods.
Most of the time when using a Raspberry Pi4b, Pi400, or Pi5, we recommend a display resolution of 1280x720. However, when LAC requests Full Screen display on some HDMI TV sets, we have found much better success with LAC's resolution set at 1024x768.
If your HDMI monitor or TV has a native resolution of 1280x720 (commonly advertised as "720P"), you might even experience better success if you AVOID LAC's "Full Screen" mode, specifying a slightly diminished resolution like 1280x680 to ensure that the sim's display window ALMOST fills the available screen space but still leaves a few rows for the Linux "Kicker Panel". When you avoid "Full Screen" mode, the TV won't need to expend any extra effort converting input resolution to display resolution; it just displays whatever it received as it will best fit within its native resolution. Unfortunately, when configured for the recommended 1280x720 resolution this will leave LAC in a very small window somewhere within the native 1920x1080 resolution of a typical 1080p "gaming" monitor. But if your inexpensive HDMI TV or HDMI monitor has a native resolution of just 1280x720, you'll see LAC's window frame filling (or nearly filling) the entire display surface while operating at a resolution that your Pi can easily support with a glassy-smooth frame rate.
Last edit: bbosen 2024-08-17