This fix only takes care of mapping for the texture for the final compositing on the screen, however the shaders need calculation fixes as well. All the position reconstruction code in particular relies on the fact that uv coordinates are in the 0-1 range.
This is fixable but adds complexity in the code. In the case of, for instance, depth of field or any algorithm that requires downscaling, this scaling will have to be propagated to downscaled textures as well, and tracking this becomes quite annoying.
I'm a bit sceptical too if we really need to support this. Probably the best would be to just disable compositing for cards not supporting npo2 and remove the card from the blacklist.
Jan 16 2017
Jan 24 2016
Sep 18 2015
Sep 15 2015
Layered Weights is now a different normalize mode. It uses method in previous comment.
Sep 14 2015
Hardware has NPOT support, but is being blacklisted (there's a comment in gpu_extensions.c that certain API chipsets have issues, or something like that).
My graphics card has non power of 2 support. It's just being blacklisted (there's a comment in gpu_extensions.c about how certain API chipsets are problematic). I can try disabling the blacklisting and see what happens.
So, from the looks of it we still need to normalize if there are more than one groups affecting a vertex.
Reworked patch. Now, if new option 'layered weights' is enabled, vertices only affected by one deform group will not be normalized.
Remove code that kept verts affected by single weight groups from being normalized, as this breaks existing rigs.