On Tue, May 19, 2015 at 4:35 PM, Martin Peres <martin.pe...@free.fr> wrote: > On 19/05/15 23:28, Ilia Mirkin wrote: >> >> A 32-bit shift is a no-op, which will also make the new planemask get >> or'd with ~0, thus negating the usefulness of the subsequent >> planemask != ~0 check. Only do this if it's a less-than-32-bit per pixel >> format, in which case it will have the desired effect of setting the >> high bits. >> >> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> >> --- >> src/nv04_exa.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/src/nv04_exa.c b/src/nv04_exa.c >> index 7a58dd7..d5dec68 100644 >> --- a/src/nv04_exa.c >> +++ b/src/nv04_exa.c >> @@ -49,7 +49,8 @@ NV04EXASetROP(PixmapPtr ppix, int subc, int mthd, int >> alu, Pixel planemask) >> NVPtr pNv = NVPTR(pScrn); >> struct nouveau_pushbuf *push = pNv->pushbuf; >> - planemask |= ~0 << ppix->drawable.bitsPerPixel; >> + if (ppix->drawable.bitsPerPixel < 32) >> + planemask |= ~0 << ppix->drawable.bitsPerPixel; >> if (planemask != ~0 || alu != GXcopy) { >> if (ppix->drawable.bitsPerPixel == 32) >> return FALSE; > > > Both patches look good to me. Thanks for tracking those bugs down :) > > Reviewed-by: Martin Peres <martin.pe...@free.fr>
Thanks! FWIW I just happened to notice this as I was reading the code, so it's untested and not in response to any bug. I have no idea if it actually affects things... I suspect planemask != ~0U is pretty rare to begin with, outside of things that test it explicitly. -ilia _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau