Skip to content
HN On Hacker News ↗

GitHub - KodeMunkie/sm750hdmifb: Experimental Linux DRM/KMS driver for the SM750G10 SE-DP750A-HDMI, with HDMI, custom RGB565 dithering, DMA and software-scaled ultrawide modes.

▲ 127 points 41 comments by SillyUsername 7d ago HN discussion ↗

Pangram verdict · v3.3

We believe this text is mainly AI, with some human-written content.

83 %

AI likelihood · overall

AI
7% human-written 93% AI-generated
SEGMENTS · HUMAN 2 of 4
SEGMENTS · AI 1 of 4
WORD COUNT 847
PEAK AI % 79% · §3
Analyzed
Aug 30
backend: pangram/v3.3
Segments scanned
4 windows
avg 212 words each
Distribution
7 / 93%
human / AI fraction
Verdict
AI
Pangram v3.3

Article text · 847 words · 4 segments analyzed

Human AI-generated
§1 Mixed · 52%

Push this card to real 2048-wide output or a software-scaled 2560x1080 ultrawide desktop, with bandwidth-saving colour conversion and update optimisations for smoother performance. Linux display driver for the single-HDMI SE-DP750A-HDMI PCIe card. Experimental: this driver is for one specific SM750 board. Optional modes can exceed published GPU or monitor clock limits and may produce no signal, distortion, or an unstable display. Keep SSH or another recovery route available when trying non-EDID modes.

§2 Human · 20%

Is my card supported? The tested board is sold or marked as SE-DP750A-HDMI and has all of these: Silicon Motion SM750G10-AC, revision A1 PCI ID 126f:0750 Silicon Image/Lattice SiI9024ACNU HDMI transmitter 16 MiB display memory One HDMI output The PCI ID alone is not enough.

§3 AI · 79%

Other SM750 cards may use VGA, a different transmitter, or different GPIO wiring and are not currently supported. Install Ubuntu 24.04 and Linux Mint 22 users can build a DKMS package locally: sudo apt update sudo apt install build-essential dkms linux-headers-$(uname -r) libdrm-dev git git clone https://github.com/KodeMunkie/sm750hdmifb.git cd sm750hdmifb make check ./build-package.sh sudo apt install ./dist/sm750hdmifb_0.5.5_all.deb sudo reboot The reboot matters: it lets the package blacklist Linux's old sm750fb driver before it can claim the card. The package is named sm750hdmifb; the kernel module is sm750hdmidrm.ko so it cannot be confused with sm750fb.ko. Kernel compatibility The driver is intended for Linux 6.17 and newer. DKMS deliberately refuses older kernels because the required DRM interfaces are not supported by this project. The source has compatibility paths for Linux 6.17 through the 6.x series and for Linux 7.0 onward. It currently builds and passes the full test suite against 6.17 and 7.0 Ubuntu kernels; the manual CI workflow also builds against Ubuntu 24.04's 6.17 kernel headers. There is no fixed upper version cap, but future kernels can change internal DRM APIs. Because this is an out-of-tree driver, a new kernel version may require a source update even though it falls within the intended 6.17+ range. Prebuilt packages, when available, are published under GitHub Releases. Building locally is recommended because DKMS compiles against the installed kernel headers. Normal use By default the driver: Uses monitor EDID modes Uses dithered 16-bit RGB565 scanout Uses a hardware cursor Coalesces updates on a worker Uploads eight-row batches with DMA Falls back safely if DMA fails Applications still render in 32-bit colour. Immediately before upload, the driver converts changed screen regions to RGB565 and applies KodeMunkie's ordered dither with a 94% green-channel correction. This is the default because the SM750 framebuffer is reached over a PCIe 1.1 x1 link. At the higher resolutions that link cannot provide responsive full-screen 32-bit updates: XRGB8888 sends four bytes per output pixel, while RGB565 sends two. Dithered RGB565 therefore halves device-bound pixel traffic while preserving much of the apparent colour detail. Common kernel or GRUB options are: The table omits the common sm750hdmidrm. prefix to keep it readable. For example, enter enable_dma=0 as sm750hdmidrm.enable_dma=0 in GRUB. Option and default When to specify it Effect and tradeoff scanout_format=rgb565-bbditherDefault: rgb565-bbdither No need; this is the recommended default Dithered 16-bit scanout with green correction scanout_format=xrgb8888Default: rgb565-bbdither Only for 32-bit scanout Disables RGB565, dither and green correction; doubles upload traffic and can lag at high resolutions scanout_format=rgb565Default: rgb565-bbdither Only for plain RGB565 Disables the dither and green correction, reducing colour quality dither_green_gain=94Default: 94 No need; correction is on by default Enables the tuned green correction while dithering dither_green_gain=100Default: 94 To turn green correction off Keeps the dither but may produce a greener colour balance enable_dma=1Default: 1 No need; DMA is on by default Verified eight-row DMA uploads with automatic CPU fallback enable_dma=0Default: 1 To disable DMA Forces CPU uploads, usually with lower update performance disable_hardware_cursor=1Default: 0 For the software cursor fallback Disables the hardware cursor and may reduce cursor responsiveness edid_only=0Default: 1 Required for the driver catalogue and ultrawide modes DANGEROUS: STOPS EDID RESTRICTING MODES AND CLOCKS THE MONITOR MAY NOT SUPPORT softscale_wide=1Default: 0 Required for 2464x1080 and 2560x1080; also set edid_only=0 DANGEROUS / EXPERIMENTAL: ENABLES WIDE COMPRESSION AND REQUIRES MONITOR STRETCHING sharpen=1Default: 0 Recommended with ultrawide modes Adds fixed 8% contrast sharpening after compression double_shadow=1Default: 0 Recommended to avoid redundant uploads Adds source and output comparison snapshots; skips unchanged pixels but uses more system memory. This is not front/back page flipping async_updates=1Default: 1 No need; enabled by default Keeps only the latest pending update instead of queuing stale frames Add options to the existing GRUB_CMDLINE_LINUX_DEFAULT value in /etc/default/grub, then apply them with: sudo update-grub sudo reboot Every option and its default is listed in Module parameters. Ultrawide scaling The device is normally described as supporting up to 1920 pixels horizontally.

§4 Human · 23%

With edid_only=0, the driver also exposes these real 2048-wide hardware modes: Desktop and HDMI mode Refresh rates Output and risk 2048x864 59.94, 60, 70, 72, 75 Hz Native or monitor-scaled. EXPERIMENTAL: NOT RESTRICTED BY EDID 2048x1024 59.94, 60, 70, 72 Hz Native or monitor-scaled. EXPERIMENTAL: NOT RESTRICTED BY EDID 2048x1080 50, 59.94, 60, 70, 72, 75 Hz Native or monitor-scaled. EXPERIMENTAL: HIGH REFRESH MAY EXCEED SPECIFICATION 2048x1152 59.94, 60 Hz Native or monitor-scaled. EXPERIMENTAL: NOT RESTRICTED BY EDID softscale_wide=1 adds two wider logical desktops.