温馨提示×

linux xrender如何测试

小樊
41
2026-10-05 15:23:18
栏目: 智能运维

在 Linux 下,XRender(X Rendering Extension)的测试通常分为几类:扩展是否可用、基本功能是否正常、性能与渲染效果验证。下面按“从简到深”的方式说明。


一、确认 X Server 是否支持 XRender

1. 使用 xdpyinfo

xdpyinfo | grep -i render

如果看到:

XRendr Extension (XRender)

说明 X Server 支持 XRender。

2. 使用 xprop

xprop -root | grep RENDER

有输出通常也表示支持。


二、使用 XRender 自带测试工具

1. rendercheck(最常用)

很多发行版可直接安装:

# Debian / Ubuntu
sudo apt install x11-apps

# 或单独
sudo apt install rendercheck

运行测试:

rendercheck

常用选项:

rendercheck -v        # 详细输出
rendercheck -t all    # 跑所有测试
rendercheck -o out.ppm

✅ 如果全部 PASS,说明 XRender 基本功能正常。


三、使用 Xlib + XRender 写最小测试程序(C)

示例:创建一个窗口并使用 XRender 画一个半透明矩形

#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 major, minor;
    if (!XRenderQueryVersion(dpy, &major, &minor)) {
        printf("XRender not supported\n");
        return 1;
    }
    printf("XRender version: %d.%d\n", major, minor);

    Window w = XCreateSimpleWindow(
        dpy, RootWindow(dpy, 0),
        100, 100, 400, 300, 1,
        BlackPixel(dpy, 0), WhitePixel(dpy, 0)
    );
    XMapWindow(dpy, w);

    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);

    XFlush(dpy);
    sleep(5);

    XCloseDisplay(dpy);
    return 0;
}

编译:

gcc xrender_test.c -o xrender_test -lX11 -lXrender

四、图形化 / 实际效果测试

1. 启用合成器(Compositor)

XRender 常用于窗口合成:

xcompmgr &
# 或
compton &

测试透明窗口、阴影效果。

2. 使用 GTK / Qt 程序

  • GTK 2/3(部分后端)
  • Qt(某些旧版本)

例如:

glxinfo | grep -i render

虽然不是 XRender,但可辅助判断是否走软件渲染。


五、性能测试(可选)

rendercheck -t blend -f

或结合:

  • x11perf
  • xperf

六、常见问题排查

1. 没有 XRender

  • 使用 VNC / 某些远程桌面可能不支持
  • Wayland 下无 XRender(需用 Vulkan / OpenGL)

2. 软件渲染慢

export LIBGL_ALWAYS_SOFTWARE=1

3. 驱动问题

  • 更新显卡驱动(Intel / AMD / NVIDIA)

七、总结

测试方式 用途
xdpyinfo 是否支持
rendercheck 功能/正确性
C + XRender 开发验证
xcompmgr 实际效果
x11perf 性能

如果你告诉我:

  • 是 桌面环境 / 驱动 / 开发调试 / 远程桌面
  • 还是 XRender 黑屏 / 透明失效

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

0 踩