ngl renderer completely broken on Adreno 3xx GPUs
(Additional context available in https://gitlab.com/postmarketOS/pmaports/-/issues/2681)
It seems that the new ngl renderer is completely broken under Freedreno on at least the Adreno 306 GPU used by msm8916 devices.
Starting any GTK app results in the following:
[ 146.221250] msm_mdp 1a01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 3.0.6.0: hangcheck detected gpu lockup rb 0!
[ 146.221616] msm_mdp 1a01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 3.0.6.0: completed fence: 662
[ 146.221955] msm_mdp 1a01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 3.0.6.0: submitted fence: 668
[ 146.222157] msm_mdp 1a01000.display-controller: [drm:recover_worker [msm]] *ERROR* 3.0.6.0: hangcheck recover!
[ 146.222281] msm_mdp 1a01000.display-controller: [drm:recover_worker [msm]] *ERROR* 3.0.6.0: offending task: kgx (/usr/bin/kgx --gapplication-service)
[ 146.226893] revision: 307 (3.0.6.0)
[ 146.226918] rb 0: fence: 663/668
[ 146.226928] rptr: 4790
[ 146.226933] rb wptr: 4876
[ 146.226939] CP_SCRATCH_REG0: 0
[ 146.226944] CP_SCRATCH_REG1: 0
[ 146.226950] CP_SCRATCH_REG2: 662
[ 146.226956] CP_SCRATCH_REG3: 0
[ 146.226961] CP_SCRATCH_REG4: 0
[ 146.226967] CP_SCRATCH_REG5: 0
[ 146.226973] CP_SCRATCH_REG6: 0
[ 146.226978] CP_SCRATCH_REG7: 0
[ 148.221220] msm_mdp 1a01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 3.0.6.0: hangcheck detected gpu lockup rb 0!
[ 148.221648] msm_mdp 1a01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 3.0.6.0: completed fence: 665
[ 148.221930] msm_mdp 1a01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 3.0.6.0: submitted fence: 668
[ 148.222262] msm_mdp 1a01000.display-controller: [drm:recover_worker [msm]] *ERROR* 3.0.6.0: hangcheck recover!
[ 148.222466] msm_mdp 1a01000.display-controller: [drm:recover_worker [msm]] *ERROR* 3.0.6.0: offending task: kgx (/usr/bin/kgx --gapplication-service)
[ 148.222679] revision: 307 (3.0.6.0)
[ 148.222699] rb 0: fence: 666/668
[ 148.222714] rptr: 64
[ 148.222724] rb wptr: 104
[ 148.222733] CP_SCRATCH_REG0: 0
[ 148.222744] CP_SCRATCH_REG1: 0
[ 148.222755] CP_SCRATCH_REG2: 665
[ 148.222766] CP_SCRATCH_REG3: 0
[ 148.222777] CP_SCRATCH_REG4: 0
[ 148.222787] CP_SCRATCH_REG5: 0
[ 148.222798] CP_SCRATCH_REG6: 0
[ 148.222808] CP_SCRATCH_REG7: 0
For now pmOS has worked around this issue by forcing the GTK renderer back to gl
. My understanding is that this is just kicking the can down the road a bit, as the next major version of GTK will drop this renderer (and thus break support for these devices entirely).
I have some msm8916 + Adreno 306 devices to test with, and I'm happy to help diagnose this issue further, but I'll need some guidance on how I should go about doing that.