[PATCH 1/5] wined3d: Don't apply fixups to converted surfaces.

Stefan Dösinger stefandoesinger at gmx.at
Mon Nov 28 18:23:51 CST 2011


Am Montag, 28. November 2011, 22:05:31 schrieb Henri Verbeet:
> That's probably more a case of laziness by the spec writers than a
> real requirement for anything that's in there. I suppose there's
> MESA_texture_signed_rgba for hardware that couldn't possibly support
> either of those extensions.
It's probably because of the implied support for GL_RED and GL_RG textures and 
16 bit per channel textures(although GL 1.2 already requires support for 
that). 

MESA_texture_signed_rgba will probably work for r300g. 
WINED3DFMT_R8G8_SNORM_L8X8_UNORM can't be supported with this extension, but I 
assume that games do not depend on this format.

> We wouldn't demand support, signed textures simply aren't going to be
> supported if the underlying GL implementation doesn't support them.
> Sounds reasonable enough to me.
Which will break many d3d8/9 games that work fine right now. Pixel shader 1 
kinda implies signed texture format support with the texbem instruction.

However, I must say that fewer games use it than I expected. Out of the games 
I checked here, Sims 3 takes the format for granted and has rendering issues 
otherwise(texture creation rejected). Trackmania and the settlers 2 remake 
check for support and lower graphics quality. C&C3 checks for it, but I see no 
negative effect. 3DMark2001 crashes when Pixel Shaders are supported but V8U8 
is not. That's about one third of the d3d8/9 games I checked, the others don't 
use signed textures.

However, it's not clear to me what we'd gain from dropping signed texture 
conversion support. Yes, it makes P8 a bit easier because you can ignore the 
fact that the load-time conversion selection in d3dfmt_get_conv is broken(The 
entire function is questionable imo. Fixing the color keying parts of it will 
be harder). If you go the separate RGBA8 surface way you could e.g. move the 
P8 unpacking to the software blitter and always store P8 surfaces as GL_ALPHA8 
and keep them in software if shaders aren't supported. (There's not much point 
in doing HW blits on older GPUs anyway. Also the unpacked P8 textures are 
based on a broken design and use e.g. the wrong palette)

It won't fix blitting from surfaces that need non-complex fixups. E.g. GL_R32F 
also needs this.

It won't eliminate load-time fixups. The Bumpmap-Luminance formats will still 
need it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20111129/4730820f/attachment.pgp>


More information about the wine-devel mailing list