On Wed, May 19, 2010 at 8:27 PM, Roderick Colenbrander thunderbird2k@gmail.com wrote:
On Wed, May 19, 2010 at 7:02 PM, Henri Verbeet hverbeet@gmail.com wrote:
On 19 May 2010 14:46, Roderick Colenbrander thunderbird2k@gmail.com wrote:
The main issue I'm facing is p8 uploads which are completely broken right now (a regression). At the beginning of the week I wanted to add
...
What do you think?
Is there a bug report / demo application that clearly shows the problem? Maybe I can give it a look.
The bug in question is and a test case is StarCraft: http://bugs.winehq.org/show_bug.cgi?id=22575
I have made a draft patch (this would have to be cut in a lot of pieces and changes a few more things than just the issue). It might be an acceptable path.
The idea is to move the 'p8 texture format' to the formats table including the case when no shaders/ext_paletted_texture is around (this case needs to be added in some form anyway since fixup up an empty format desc is not that nice). The format is overridden in case of color keying / drawpixels. So at this stage the 'blit_supported' is implicitly performed at formats table initialization. This might be acceptable for now. At a later stage I can imagine that we want to ask the 'blit_shader' for the format to use as that what this is basically about.
If I add the 'converted p8' format to the formats table, I would still have to return 'CONVERT_PALETTED' in d3dfmt_get_conv and somehow inspect the format. The cleanest way (I could check conv_bytes) I think is to add a flag WINED3DFMT_FLAG_CONVERTED. I want to set this flag also for converted textures and thus checks like 'convert != NO_CONVERSION || desc.convert' can be adjusted as well and d3dfmt_convert_surface is now a bit nicer as well.
Though not all parts might be needed right now, I think at least the Flags changes are a step in the right direction. Is the 'p8 solution' acceptable for now?
Roderick
Before I clean this stuff up and flood wine-patches, would this be an acceptable solution for 1.2? Essentially it is about adding a WINED3DFMT_FLAG_CONVERTED flag to converted formats and adding a generic p8 format (which uses conversion) to the formats table, so the table acts as a 'blit_supported' for now. Even in the long run I think it makes sense to have these flags and the main thing which has to be fixed is the format selection itself.
Roderick