RayeR wrote on Yesterday, 22:54:
Hi Marco, I missed this intere ... [CUT]
Welcome — glad you found the thread!
Regarding uploading new versions to the first post: unfortunately Vogons does not allow editing the first post after a certain time has passed. New versions are posted as replies with a clear changelog. It is not ideal but it is the only option available.
On jitter and LCD: you are correct that an LCD buffers the frame and the jitter will not affect the displayed image. The measurement reflects the stability of the signal generated by the card, not the monitor response. On a CRT with raster effects — a gradient bar moving vertically, as you suggest — the deviation would likely be visible on modern GPUs with high σ/μ values. The GT740 trimodal distribution in articular would be a good candidate to observe.
On timing measurement — PIT vs TSC: X-VESA uses the PIT deliberately. The goal is compatibility from 386 onwards, and the TSC is only available from Pentium. The PIT granularity is sufficient for the measurements X-VESA performs, and its stability across systems is well understood. Your point is noted for future consideration on systems where TSC is available.
On AVX under DOS: yes, to my knowledge this is the first DOS tool to use AVX and AVX-512F. The implementation required discovering that VEX-encoded instructions (opcode prefix C5h) are decoded correctly in 16-bit Protected Mode — this is undocumented behavior. XCR0 is configured via xsetbv only once during initialization ; after that, AVX instructions execute directly in PM/16 without requiring a
transition to PM/32. This is what made it possible to use AVX inside a .COM with no external libraries. The entire sequence is hand-written in assembly.
On USB Legacy and SMI: your experience confirms what I found empirically — on one test system the AVX routines crashed consistently until I replaced the USB keyboard with PS/2. The SMI handler polling USB every 1-8ms corrupts the YMM register state during the AVX activation sequence. Disabling USB Legacy in the BIOS eliminates the problem. The long-term fix would be disabling xHCI LEGSUP via PCI config space before AVX execution — this is on the roadmap for a future version.
On 64-bit measurement — MMX vs FPU: X-VESA uses x87 FPU for 64-bit access to maintain compatibility with systems without MMX. Your suggestion to include an MMX path as an alternative is reasonable and noted for future development.
On VRAM measurement: X-VESA measures the physically accessible VRAM via direct hardware probe — independently of what the VESA interface declares in the TotalMemory field. The measurement works in both banked and linear mode, for every video mode separately, and goes beyond the declared limit on VESA 3.0+ cards if requested (with an explicit warning). The reliability test then operates on the measured VRAM with three distinct patterns, configurable start offset, size and number of passes, with a detailed error report including PIT timestamp, absolute offset, written value, read value, pass
number and test type. Full details of both features are in X-VESA.TXT included in the archive.
Looking forward to your results when time allows.