+static bool vkd3d_shader_instruction_is_uav_atomic_op(const struct vkd3d_shader_instruction *instruction) +{ + enum vkd3d_shader_opcode handler_idx = instruction->handler_idx; + return (VKD3DSIH_ATOMIC_AND <= handler_idx && handler_idx <= VKD3DSIH_ATOMIC_XOR + && instruction->dst[0].reg.type == VKD3DSPR_UAV); +}
Should we take the IMM_ATOMIC_* operations into account here as well, like we do in vkd3d_shader_instruction_is_uav_read()?