温馨提示×

linux xrender怎么测试

小樊
43
2026-10-02 17:44:06
栏目: 智能运维

在 Linux 下测试 XRender(X 的渲染扩展)通常可以从 功能是否可用、性能、实际渲染效果 三个角度来做。下面按常见场景给你一套实用方法。


一、确认 X Server 是否支持 XRender

1. 用 xdpyinfo 查看扩展

xdpyinfo | grep -i render

如果看到:

RENDER

说明 X Server 支持 XRender。

如果没有,可能是:

  • 使用的是 Wayland(XRender 不适用)
  • X 配置禁用了 Render 扩展

二、用 Xlib / XRender 自带工具测试

2. 使用 xrender 相关小程序

有些发行版带测试程序(不一定默认装):

which xrendertest

如果没装,可以自己写最小测试程序(见下)。


三、写一个简单的 XRender 测试程序(最靠谱)

示例:创建一个带透明矩形的窗口

安装依赖(Debian/Ubuntu)

sudo apt install libx11-dev libxrender-dev

test_xrender.c

#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 工作正常


四、测试 XRender 性能

3. 使用 x11perf

x11perf -renderrect100
x11perf -rendercompwin10

常见测试项:

  • -renderrect
  • -rendercomp
  • -rendercomppix

可以用来对比:

  • 软件渲染 vs GPU 加速
  • 不同窗口管理器

五、确认是否走 GPU 加速

XRender 是否加速取决于:

  • 显卡驱动(Intel / AMD / NVIDIA)
  • 合成器(Compiz / KWin / mutter)

查看:

glxinfo | grep "Rendering"

⚠️ 注意:

  • XRender ≠ OpenGL
  • Wayland 下不使用 XRender

六、常见问题排查

黑屏 / 无效果

  • 窗口未映射
  • 忘记 XSync
  • alpha 为 0
  • 没有 Picture

Wayland 用户

XRender 不可用,应测试:

  • Wayland 协议
  • OpenGL / Vulkan

如果你愿意,可以告诉我:

  • 你用的是 哪个发行版
  • X11 还是 Wayland
  • 想测 功能 / 性能 / Bug

我可以给你更针对性的测试方案。

0 踩