[v10 1/4] d3dx9: Implement fxlc constants (expressions) in effect.

Matteo Bruni matteo.mystral at gmail.com
Wed Apr 13 15:21:59 CDT 2016


2016-04-13 22:16 GMT+02:00 Paul Gofman <gofmanp at gmail.com>:
> On 04/13/2016 10:53 PM, Matteo Bruni wrote:
>>
>>>     BTW I encountered d3ts_dotswiz preshader opcode which can take 6 or
>>> 8 arguments. Adding it required the appropriate increase of
>>> MAX_INPUTS_COUNT and a bit different handling of op table (not to
>>> introduce a variable input count in instructions and not to take back
>>> the input arguments count into instruction structure), but
>>> ARGS_ARRAY_SIZE remained unchanged.
>> Cool. How did you test that 6 and 8 are the only possible argument counts?
>> I don't know how you changed the opcode handling but otherwise you
>> could probably just use two separate opcodes for dotswiz 6 and dotswiz
>> 8.
>>
> I checked the translation all possible components count constructs like
> a.zxyy * b.xxxw. If the components count is 3 or 4, MS compiler
> generates d3ts_dotswiz with the respective number of args, and plain
> mul/add if less. It does not prove that it is not possible to get
> d3ts_dotswiz with 2 though, but I am not sure I should add such until I
> will be sweeping all possible opcodes to have all of them in place.
> After we finish with this patchset I will summarize the leftovers/TODOs
> for preshader/effects I know so we could possibly prioritize them.
>
> I used two separate entries into op_info with the same opcode and
> different args count, and modified search to compare both opcode and
> number of arguments.

Sounds good, thanks!



More information about the wine-devel mailing list