d3dx9: ID3DXConstantTable

Rico Schüller kgbricola at web.de
Tue Aug 28 02:12:38 CDT 2012

On 23.08.2012 22:58, Rico Schüller wrote:
> On 23.08.2012 15:43, Józef Kucia wrote:
>> I would prefer you to clean it up submit it. I hope it gets committed
>> this time.
> Ok, I'll try to clean them and send them. I will do it the safe way and
> compare each handle with all handles we have. If it is slow, we could
> easily move by using the highest bit for comparison against the
> D3DXHANDLE. We just have to take care that an easy switch is possible.
> Thanks for the input.
> Rico
Patches are in git now. The normal way should work fine. The following 
things should be considered (but I have no patches for these):

1. The cross calling (table1, variable_from_table2).
2. We may avoid the desc copy, because the variables may be set often 
and so the copy time will make some speed difference in set_*_array and 
GetSamplerIndex. Example for GetSamplerIndex:

res = ID3DXConstantTable_GetConstantDesc(iface,constant,&desc,&count);
if (FAILED(res)) return (UINT)-1;
if (desc.RegisterSet != D3DXRS_SAMPLER)

to something like:

struct ctab_constant *c = get_valid_constant(This, constant);
if (c->desc.RegisterSet != D3DXRS_SAMPLER)

3. The wine_todo should be fixed in the test. Is there a way to disable 
them to show up, when running e.g. "wine d3dx9_36_test.exe.so shader"? 
It's a bit annoying when you search for your own failing tests. Well I 
could comment out the tests, but that's also not a very fine solution.


More information about the wine-devel mailing list