W.x. wrote on 2024-01-10, 15:50:
Acumos AVGA2 is only VBE 1.1 card, so UNIVBE refuse to install VESA VBE 2.0 extension
But it happens on Trident 8900CL. Even VBE 3.0 extensions are installed.
Is possible to use Linear Frame Buffer on ISA 512KB VRAM card, or 1MB Video RAM memory is ALWAYS needed as minimum?
You seem to misunderstand what VBE 2.0 or 3.0 implies. VBE 2.0 does not imply that you will always have a linear frame buffer. The linear frame buffer is an option provided with VBE 2.0, which need not be implemented for all modes, and in fact, a VBE 2.0 implementation reporting "no LFB support" for all VESA modes is perfectly compliant, as long as it recognizes all VBE 2.0 API calls and properly rejects every optional functionality it does not support.
There is no general minimum amount for LFB support. Even a card with just 256KB of RAM could support LFB for easy access to the video memory in 640x400 at 8bpp. The 4bpp modes heavily rely on the VGA memory interface logic and often do not support LFB access.
And last but not least, it is possible for a protected mode kernel to implement a "virtual linear frame buffer". In this case, the application gets the address of a linear frame buffer, but only 64KB of that buffer is actually accessible, and remapped to the standard VGA memory range. As soon as the application accesses a different part of the linear frame buffer, the kernel catches the exception, re-banks the VGA memory, re-maps the memory in a way that the area accessed right now is permitted in the LFB range, and returns to the application. IIRC later UNIVBE versions implement this, which is great for marketing, and which makes Quake run in high resolution in cards without LFB support - but is not generally advantageous to performance. A notable example for "virtual LFB" is the Windows 3.1/95 graphics driver subsystem: Most SVGA drivers that do not support LFB (or operate with LFB disabled due to system incompatibility) rely on the Microsoft-provided VFB driver that implements the strategy I just described. During initialization of the graphics driver, VFB is requested to generate a virtual LFB given a pointer to the hardware bank switching funtion.