[PATCH 8/9] d3dx9: Add test for 'cmp' preshader opcode.

Paul Gofman gofmanp at gmail.com
Thu May 11 13:23:11 CDT 2017


On 05/11/2017 08:48 PM, Matteo Bruni wrote:
> 2017-05-11 18:48 GMT+02:00 Paul Gofman <gofmanp at gmail.com>:
>
> FWIW it doesn't necessarily have to be a 100% private ad-hoc tool used
> only for this test. We want to support generating effects from
> d3dcompiler at some point and for that we'll need to extend
> bytecodewriter.c to generate effects bytecode. One way to do that is
> to introduce a struct bwriter_effect storing a representation of all
> the parameters and techniques (and thus passes, states, ...) of an
> effect, similar to the current struct bwriter_shader, and a
> bwriter_write_effect() function which serializes that to bytecode, in
> the same vein as SlWriteBytecode(). The tool itself could then simply
> build a struct bwriter_effect with all the stuff you need for the test
> and call bwriter_write_effect() on it.
> I don't know if it makes sense to get there right now. It's certainly
> overkill for the test alone but on the other hand it would be an
> excuse to implement a d3dcompiler feature which will be eventually
> useful for the compiler itself.
Implementing an effect compiler is an interesting thing, though a big 
one. I didn't look at what is there in the current effect compiler 
framework yet though, getting into it alone requires some time.
>
>>> Maybe I'm wrong and this is utterly insane, but it doesn't feel like
>>> it to me at the moment (but then again that's what fools think all the
>>> time, I guess...) Try to give it a shot though. If it's terrible and
>>> ugly and kills kittens, just drop everything and continue using the
>>> current test scheme.
>>>
>>
>> Maybe alternative somewhat "intermediate" approach would be to build just a
>> preshader blob for "cmp" instruction instead of generating it and test it in
>> a separate test function? This would be a ready blob for preshader to be
>> just copied to the specified location in the existing effect blob, while the
>> existing code in test_preshader_opcode would be left unchanged.
> That doesn't help much with the issues I mentioned with the current
> tests though.
>
It is possible to generate corrupted effect blob, exactly the same way 
the code was corrupting it before that fix. Anyway, I understand your 
reasoning, but maybe there is some simpler option to add a test for 
'cmp' instruction and maybe improve the existing test then stepping 
towards effect compiler?





More information about the wine-devel mailing list