This content has been marked as final. Show 1 reply
I too think it would be great if AMD could provide an "IL Programming Guide", explaining what the relevant options are for declarations and the like and giving some guidance on what the differences are and when to use what, as well as explaining common constructions such as how to read in an array.
Some points I'd like to see addressed for example are: the difference between vWinCoord0 and v0 (already mentioned on the forum at some level I think), the difference between the various declarations of these two ( _interp(linear), _interp(linear_noperspective), _interp(linear_noperspective)_centered_center), why vWinCoord0 are floats (ending in 0.5) whereas vObjIndex0 is an integer, what the number in the _sampler() part of the sample instruction does (if anything...), what the unnorm part in _type() of a resource declaration does, how to do integer subraction (is inegate followed by iadd the optimal way?)/why there is no integer subtraction opcode or integer negation modifier (_neg seems only to work with floats) and so on.
In the meantime though, I've found it possible to learn by example using the provided IL samples in the CAL SDK. If you're on linux, you can do things like "grep -r vWin samples/" from the amdcal directory to find and compare all possible usages to find one that is close to what you want to do. So one can figure out how to correctly do common tasks even if you're not precisely sure what all the options are doing! My own program is almost working now...