http://bugs.winehq.org/show_bug.cgi?id=18225
--- Comment #5 from Tobias Jakobi liquid.acid@gmx.net 2009-06-25 15:42:27 --- Similar garbling (upsampling artifacts) happens for the intro and outro video of Max Payne 2 (the demo works for that), when disabling ARB_npot and therefore forcing the use of tex_rect.
The videos seem to have a native width of 640 pixels, so if you select a ingame res of 640x480 the videos are rendered fine. Once you select a different res the garbling becomes apparent. With a res with twice the native width (e.g. 1280x1024) you clearly see that the videos are rendered with simple "pixel doubling", which translates to GL's nearest filter.
tex_rect is capable of bilinear (GL's linear) filtering, they just don't support any mipmapping.
Current hack edits IWineD3DTextureImpl_BindTexture in texture.c and replaces GL_NEAREST with GL_LINEAR and WINED3DTEXF_POINT with WINED3DTEXF_LINEAR in the condnp2 handling branch. However this doesn't seem to have any effect on the issue (it should though).
Replacing all entries of minMipLookup_noFilter (directx.c) with GL_LINEAR restores correct rendering of the videos. stefand suspect a driver bug concerning min/mag-filtering and base LOD.
Note to me: Try to write a GLUT testcase for this.