If other textures work, chances are this texture is an odd size or different format, and has been loaded without observing some necessary padding.
It is common for texture formats to need to be an even number of pixels, or to be rounded to some other multiple.
The 45-degree slant to the texture is also indicative of this kind of issue, as it often results from an extra pixel being read (or skipped) every line at some point in the pipeline.
Possible fixes for this are:
- Change the dimensions of your texture, such that there will be no padding.
- Change the loading of your texture, such that the padding is consistent with what GL expects
- Tell GL how your texture is packed, using
glPixelStorei()