This is necessary to keep openQA working, which uses LLVMpipe as a
renderer on a Cirrus device that operates in depth 16.
LLVMpipe advertises 24/32 bit sRGB configurations on this setup, but
they cannot be presented.
CCBUG: 408594
fvogt | |
zzag |
KWin |
This is necessary to keep openQA working, which uses LLVMpipe as a
renderer on a Cirrus device that operates in depth 16.
LLVMpipe advertises 24/32 bit sRGB configurations on this setup, but
they cannot be presented.
CCBUG: 408594
Compile tested only.
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
llvmpipe generally works fine, just not when using it with cirrus if the kernel uses 16bpp.
From the bug report:
(In reply to Fabian Vogt from comment #31)
> (In reply to Fredrik Höglund from comment #30)
> > (In reply to Fabian Vogt from comment #27)
> > > > So I'm going to solve this by blacklisting sRGB configs on LLVMPipe instead.
> > >
> > > That sounds like a bit too much, everything except cirrus with 16bpp seems to
> > > work.
> >
> > Unfortunately we can't easily detect that the video device is a Cirrus
> > device. The OpenGL driver can only tell us that it is llvmpipe; it doesn't
> > know where the results of the rendering is going to be presented.
>
> Luckily that shouldn't be necessary, as we only know that llvmpipe + 16bpp
> is broken. Is detecting a 16bpp default framebuffer possible?That's something that we can do.
I'll update https://phabricator.kde.org/D22203