| #version 450 | |
| #extension GL_EXT_buffer_reference : require | |
| layout(local_size_x = 1) in; | |
| layout(std430, buffer_reference, buffer_reference_align = 8) | |
| readonly buffer src_predicate_t { | |
| uvec2 data; | |
| }; | |
| layout(std430, buffer_reference, buffer_reference_align = 4) | |
| writeonly buffer dst_predicate_t { | |
| uint data; | |
| }; | |
| layout(push_constant) | |
| uniform u_info_t { | |
| src_predicate_t src; | |
| dst_predicate_t dst; | |
| bool invert; | |
| }; | |
| void main() { | |
| dst.data = (all(equal(src.data, 0u.xx)) != invert) ? 0u : 1u; | |
| } |