[PATCH 1/4] wined3d: only activate blit_shader in arbfp_blit_surface for source fixups

Roderick Colenbrander thunderbird2k at gmail.com
Tue May 18 03:45:56 CDT 2010


On Tue, May 18, 2010 at 9:56 AM, Henri Verbeet <hverbeet at gmail.com> wrote:
> On 18 May 2010 09:30, Roderick Colenbrander <thunderbird2k at gmail.com> wrote:
>> -    arbfp_blit_set((IWineD3DDevice *)device, src_surface);
>> +    if (is_complex_fixup(src_surface->resource.format_desc->color_fixup) &&
>> +        !is_complex_fixup(dst_surface->resource.format_desc->color_fixup))
>> +        arbfp_blit_set((IWineD3DDevice *)device, src_surface);
>>
> - This doesn't do what your subject line says it does.
Correct, it should be using is_identity_fixup for the destination check.

> - Why do you think this patch makes sense?
All 'set_shader' calls perform similar checks to figure out whether
the shader should be set or not. The call only has information on the
source surface (though if you really want I could you could get more
from the device or swapchain). Since 'blit_surface' has all the
knowledge I thought it was nicer to avoid the unneeded call but it
isn't right since set_shader does useful things as well like
glEnable(tex_type). I could pass in the destination surface but have
to think what to do about swapchain_blit which doesn't fit into the
new design.

Roderick



More information about the wine-devel mailing list