http://bugs.winehq.org/show_bug.cgi?id=14038
--- Comment #29 from Tobias Jakobi liquid.acid@gmx.net 2008-07-19 11:56:45 --- (In reply to comment #28)
I don't think looking at old wine versions will help here. The patches pointed out switch the conditional NP2 support between different codepaths; Knowing which switch caused which behavior doesn't really give me further information.
OK, it don't bisect then :)
What would be useful to know is this:
- Does your card support GL_ARB_texture_non_power_of_two?
- Which opengl version does your driver advertise?
My Geforce FX 5900 only provides (with driver version 173.14.09) the GL_ARB_texture_rectangle/GL_NV_texture_rectangle extension. The NPOT extension is not in the extension string. OpenGL version string: 2.1.2 NVIDIA 173.14.09
WineD3D has code to detect situations in which GL_ARB_texture_non_power_of_two is emulated, but so far only for ATI cards. This code is in directx.c, in the function fixup_extensions(), around line 3715 in today's git.
The two important lines are: gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO] = FALSE; gl_info->supported[WINE_NORMALIZED_TEXRECT] = TRUE;
For testing purposes, you can modify the code to run them unconditionally(ie, remove the if conditions around them), and see if that improves your performance. If it does, then you can modify the if conditions to blacklist ARB_TEXTURE_NON_POWER_OF_TWO and enable WINE_NORMALIZED_TEXRECT on GeForce FX cards.
I'm going to try that out.
Greets, Tobias