In compositor.c recenter_zoomed_area() there is this branch: https://git.xfce.org/xfce/xfwm4/tree/src/compositor.c?id=944769cfeaa459de3e31145e798822e2c63d2b4c#n3272
The intent of this is that at very high zoom levels, the filtering should switch to nearest, ie sharp pixels. The reasoning is that if you zoom in to the point where only 20x20 area is visible, you probably are doing it because you are working on some graphics and need to see the individual pixels are right.
However, in git master this no longer seems to work. You always get linear filtering, ie blurry pixels. I am not sure why. I have traced the code and it is selecting the correct branch.
If the code can't be made to work then the GL_NEAREST branch may as well be removed.
The default vblank backend is using GLX and that code is not used with GLX, as GL is used for zooming, instead of Xrender.
For GL, GL_LINEAR/GL_NEAREST are used instead of FilterBilinear/FilterNearest.
Try with XPresent (--vblank=xpresent) or even disabling vblank (--vblank=off) to see if that makes a difference.
Yeah, this is it, GL_NEAREST doesn't give as sharp results as FilterNearest...
Olivier Fourdan referenced this bugreport in commit 14cd399a6e518a52e0d9944711f97e8e1741e2a4
compositor: Apply texture filter for zooming
My bad, that should be fixed now.
Works for me now, thanks.