[Nouveau] [PATCH] dri3: remove bogus condition for creating pixmap

Ilia Mirkin imirkin at alum.mit.edu
Sun Feb 4 17:49:37 UTC 2018


On Sun, Dec 31, 2017 at 2:35 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Sun, Dec 31, 2017 at 2:23 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> Not clear what the depth % 8 was trying to protect against, but it was
>> breaking 30bpp visuals with DRI3.
>
> Erm, actually switching to my test config which doesn't enable dri3 is
> what "fixed" things. DRI3 is still busted. Ignore this patch until
> that's properly figured out for 30bpp.

So actually it does seem like DRI3 works fine now. After a lot of
tracing, looks like bitsPerPixel will still get set to 32 in this
case, so a lot of the code that does like bitsPerPixel / 8 should
remain OK. I'm following up with a patch which also ensures that the
pixmap->drawable.bitsPerPixel % 8 == 0. Presumably that's what was
trying to be checked earlier.

>
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>  src/nouveau_dri2.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c
>> index cbb7b2a..07b6022 100644
>> --- a/src/nouveau_dri2.c
>> +++ b/src/nouveau_dri2.c
>> @@ -1076,7 +1076,7 @@ static PixmapPtr nouveau_dri3_pixmap_from_fd(ScreenPtr screen, int fd, CARD16 wi
>>         struct nouveau_bo *bo = NULL;
>>         struct nouveau_pixmap *nvpix;
>>
>> -       if (depth < 8 || depth > 32 || depth % 8)
>> +       if (depth < 8 || depth > 32)
>>                 return NULL;
>>
>>         pixmap = screen->CreatePixmap(screen, 0, 0, depth, 0);
>> --
>> 2.13.6
>>


More information about the Nouveau mailing list