2022年06月09日晚对loongnix进行了系统更新,直观的感觉到集显上运行kde桌面环境变得顺畅了。默认的桌面特效里,透明已经打开,一探究竟,是龙芯提供的etnaviv gc1000内核驱动在起作用。
龙芯桥片7A1000上的内置显卡,一直以来是个备胎角色,性能也一直被人诟病,主要原因之一是它的驱动,一直处于“可用”状态,但并不好用,尤其是它的3D驱动,因为闭源的原因,在linux上工作不稳定。所以在使用集显的情况下,运行桌面环境只能满足显示,而不能使用到OpenGL的硬件加速特性。
现在龙芯提供的etnaviv驱动,基本上解决了这个问题,桌面使用流畅性感觉明显。
目前的驱动状态如下:
# dmesg 的内核引导相关信息
[ 4.179243] etnaviv 0000:00:06.0: etnaviv drm private created
[ 4.179247] etnaviv 0000:00:06.0: DMA mask and the coherent DMA mask: 32
[ 4.179248] etnaviv 0000:00:06.0: dev->dma_parms->max_segment_size = 2G
[ 4.179287] etnaviv 0000:00:06.0: IRQ registered, irq=41
[ 4.179292] etnaviv 0000:00:06.0: Unbalanced pm_runtime_enable!
[ 4.179405] etnaviv 0000:00:06.0: Number of GPU: 1
[ 4.179415] etnaviv 0000:00:06.0: model: GC1000, revision: 5037
[ 4.179447] etnaviv 0000:00:06.0: with MC2.0
[ 4.179449] etnaviv 0000:00:06.0: with PIPE 3D
[ 4.179450] etnaviv 0000:00:06.0: with PIPE 2D
[ 4.179451] etnaviv 0000:00:06.0: dma mask: 0xffffffff
[ 4.179452] etnaviv 0000:00:06.0: PHYS_OFFSET: 0x0
[ 4.179454] etnaviv 0000:00:06.0: gpu memory base: 0x80000000
[ 4.179592] etnaviv 0000:00:06.0: GPU Initialized
[ 4.179718] [drm] Initialized etnaviv 1.2.0 20151214 for 0000:00:06.0 on minor 1
# 内核加载信息
etnaviv 278528 1
gpu_sched 147456 1 etnaviv
# 设备映射信息
/dev/dri
├── by-path
│ ├── pci-0000:00:06.0-card -> ../card1
│ ├── pci-0000:00:06.0-render -> ../renderD128
│ └── pci-0000:00:06.1-card -> ../card0
├── card0
├── card1
└── renderD128
也查看了下内核的config信息,在最新版内核里,包含有etnaviv编译选项,是以加载模块提供的,而上一个版本内核etnaviv编译选项并未配置。
cat config-4.19.0-17-loongson-3 | grep VIV
CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_VIVID_CEC=y
CONFIG_VIDEO_VIVID_MAX_DEVS=64
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_ETNAVIV_PCI_DRIVER=y
CONFIG_DRM_ETNAVIV_THERMAL=y