[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