On Thu Jan 18 17:22:04 2024 +0000, Zebediah Figura wrote:
These annotation tests are good to start with, but we could use more. Here are some that occur to me: * Can you use braced initializers? They work the same way as the rest of HLSL, right? [E.g. braces aren't validated; unwritten components are initialized to zero; variable boundaries need not match.] Cf. initializer-nested.shader_test and initializer-flatten.shader_test; of course we don't need to copy every test but one or two should be enough to answer this question in the affirmative. * Can you leave variables uninitialized? If so, can you put a state block in there? * Can you declare a type *within* the annotation, via a typedef or struct declaration? * If not, can you still declare a struct and a variable at the same time? (I.e. "struct apple { ...} a;") * Can you give variables values that require constant folding? * Can you give variables values that require copy-prop? (E.g. assigning to a previously declared static const variable). * Can you give variables modifiers? Both type qualifiers like "row_major", and storage modifiers like "static", are interesting to test here. * Can you use the comma to separate multiple variable declarations? Cf. also initializer-multi.shader_test. * Can you declare implicitly sized arrays? I also doubt it's worth duplicating the annotation tests for every effect model if they seem to behave identically. On the other hand, we might want to put them into a dedicated test file. Thanks, that was very helpful. I think this list is covered now.
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/565#note_57969