Hi,
Il 24/03/22 20:59, Francisco Casas ha scritto:
But, if I am not mistaken, bool expands to _Bool (because we are including <stdbool.h>). And I don't see any point in the program were we may be assigning .b a value that's not 0 or 1. Given that in C, when an scalar is converted to _Bool, it automatically becomes 0 or 1.
Yeah, it's pretty obvious I got a bit confused about patches 4-6/6. Part of the reason is that in the development branch we've got a patch which gets rid of .b and uses .i instead. This makes sense to me, because it allows us to represent true with 0xffffffff without tripping on the fact that sizeof(bool) == 1. Quite evidently my effort to port my patches from that convention to the one currently in master failed spectacularly.
So I'd retract patches 4-6/6 and resubmit them on top of that change (getting rid of .b), which I assume we wanted upstreamed as well (if not, please let me know).
Actually, it seem more appropriate to use .u instead of .i: first, because I find it more straight forward to think a bool as unsigned rather than signed; second, because if makes true > false, which I think is aligned with HLSL.
Thanks for the feedback, Giovanni.