在 Linux 下测试 XRender(X 的渲染扩展)通常可以从 功能是否可用、性能、实际渲染效果 三个角度来做。下面按常见场景给你一套实用方法。
xdpyinfo 查看扩展xdpyinfo | grep -i render
如果看到:
RENDER
说明 X Server 支持 XRender。
如果没有,可能是:
xrender 相关小程序有些发行版带测试程序(不一定默认装):
which xrendertest
如果没装,可以自己写最小测试程序(见下)。
sudo apt install libx11-dev libxrender-dev
#include <X11/Xlib.h>
#include <X11/extensions/Xrender.h>
#include <stdio.h>
int main() {
Display *dpy = XOpenDisplay(NULL);
if (!dpy) {
printf("Cannot open display\n");
return 1;
}
int ev, err;
if (!XRenderQueryExtension(dpy, &ev, &err)) {
printf("XRender not supported\n");
return 1;
}
printf("XRender supported\n");
Window w = XCreateSimpleWindow(
dpy, RootWindow(dpy, 0),
100, 100, 400, 300, 0,
BlackPixel(dpy, 0),
WhitePixel(dpy, 0)
);
XMapWindow(dpy, w);
XSync(dpy, False);
XRenderColor color;
color.red = 0x8000;
color.green = 0x0000;
color.blue = 0x8000;
color.alpha = 0x8000;
Picture pict = XRenderCreatePicture(
dpy, w,
XRenderFindVisualFormat(dpy, DefaultVisual(dpy, 0)),
0, NULL
);
XRenderFillRectangle(dpy, PictOpOver, pict, &color, 50, 50, 200, 150);
XSync(dpy, False);
sleep(5);
return 0;
}
gcc test_xrender.c -o test_xrender -lX11 -lXrender
./test_xrender
如果看到半透明紫色矩形,说明: ✅ XRender 工作正常
x11perfx11perf -renderrect100
x11perf -rendercompwin10
常见测试项:
-renderrect-rendercomp-rendercomppix可以用来对比:
XRender 是否加速取决于:
查看:
glxinfo | grep "Rendering"
⚠️ 注意:
XSyncXRender 不可用,应测试:
如果你愿意,可以告诉我:
我可以给你更针对性的测试方案。