wined3d: universal surface convertor function for unsigned integer color formats(2nd attempt)

Victor ErV2005 at rambler.ru
Thu Jul 17 17:04:27 CDT 2008


On Thursday 17 July 2008 22:33:34 Stefan Dösinger wrote:
> How many different conversions do the two games need? 
The games I've mentioned before use simple things like X8R8G8B8 to R5G6B5 or 
X8R8G8B8 to R8G8B8. By using Google I didn't found much applications with 
this particular FIXME (simcity3k, stranded2 and "army men" game, which 
requires conversion from argb to indexed color). 

I think that I saw "converter not found" messages some time ago (6-12 months 
ago) when I've been trying to run things like Sims1, SimCity 2000 rush hour, 
etc, probably with some other games.

In real DirectX/D3DX conversion code (with similar functionality) might be 
used with loading texture from different surface formats (like when trying to 
load A4R4G4B4 from A16R16G16B16 using D3DXCreateTextureFromFile, etc) and 
when dealing with D3DXFillTexture1D/2D/3D. 

The use of this function might be somehow dependand on hardware. In this:
http://ubuntuforums.org/showthread.php?t=741465
thread user experience game gui corruption, while on my machine without 
converter only water is corrupted, and converter isn't called for gui 
elements at all (I've been setting some channels to zero to check that).

> One of my concerns is 
> that this generic code is way slower than a separate conversion function
> for each pair of color formats.
Ideally, this requires benchmark.
Conversion shouldn't be deadly slow when compared with optimized function.
Besides there is only one optimized function implemented right now.

 An "optimized" replacement for current generic procedure would need up to 
240..380 functions, which will be error-prone, and will need either "macros 
magic" or just a lot of code. It'll be difficult to debug that.

If you are concerned about conversion speed, then conversion function can be 
easily modified in the way that it'll use generic conversion routine only if 
optimized conversion is not available. This way it'll be possible to optimize 
frequently-used conversions, while unusual ones will be still available.

-- 
Victor Eremin (ErV2005 at rambler.ru)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: This is a digitally signed message part.
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20080718/85deef9f/attachment.pgp 


More information about the wine-devel mailing list