Faits : A. A.a. A._, employé auprès de la société C._ SA, circulait le 14 août 1996 au guidon d'une motocyclette lorsqu'une voiture conduite par une personne sous l'emprise de l'alcool lui a coupé la route. Il a été grièvement blessé, subissant notamment une fracture des poignets, un traumatisme cranio-cérébral, un traumatisme abdominal avec rupture de la vessie et brèche sigmoïdienne, une fracture du bassin et une fracture de l'omoplate gauche. Le salaire annuel brut de l'employé était à l'époque de 70'930 francs. L'employeur avait contracté en faveur de son personnel une police d'assurance-accidents obligatoire LAA auprès de X._, ultérieurement reprise par B._ SA (ci-après: la compagnie d'assurance). L'employeur était également signataire d'une police d'assurance-accidents complémentaire LAA auprès de la même compagnie; cette police renvoyait expressément aux conditions générales pour l'assurance complémentaire (CGA) et aux conditions complémentaires à celles-ci (CCA). L'assurance complémentaire prévoyait notamment la prestation suivante: "invalidité: 4 x le salaire annuel LAA en capital constant - progression B". Selon l'art. 28 let. b ch. 3 CGA, la somme d'invalidité était calculée selon la variante de progression choisie et selon le tableau intitulé "prestations en % de la somme d'assurance"; celui-ci indiquait que pour un taux d'invalidité de 85% dans la variante B, la somme d'invalidité correspondait à 275% de la somme assurée. Sous le titre "Paiement des prestations", l'art. 28 let. b ch. 5 CGA énonçait la règle suivante: "La somme d'invalidité ou la rente est payée dès que l'importance de l'invalidité permanente peut être déterminée, mais au plus tard cinq ans après le jour de l'accident". Par courrier du 10 juillet 1998, la compagnie d'assurance a attiré l'attention du conseil de l'employé quant à l'existence d'une police d'assurance complémentaire en précisant: "Nous joignons également à notre envoi un exemplaire des Conditions générales pour l'assurance complémentaire LAA. Vous trouverez à l'art. 28 les dispositions relatives à l'indemnité pour invalidité." A.b. L'état de santé de l'employé a fluctué durant les années qui ont suivi l'accident. De nombreuses expertises ont été effectuées. Par décision du 8 décembre 2003, l'Office cantonal de l'assurance-invalidité a retenu une incapacité de travail totale à partir du 14 mai 2003, date à laquelle l'employé avait cessé toute activité professionnelle de façon définitive. En conséquence, l'office lui a alloué une demi-rente à partir du 28 avril 2003 (date de la demande de révision) et une rente entière à partir du 1 er août 2003. Le 30 décembre 2003, la compagnie d'assurance a statué sur l'opposition de l'employé dirigée contre une décision qu'elle avait rendue en matière d'assurance obligatoire; elle a constaté que l'état de santé de l'employé n'était pas stabilisé et que les conditions d'octroi d'une rente n'étaient pas encore réunies. La compagnie d'assurance a requis une expertise médicale pluridisciplinaire; le rapport déposé le 23 septembre 2004 a retenu une atteinte à l'intégrité de 85%. Le 25 novembre 2004, la compagnie d'assurance a informé l'employé qu'elle allait passer au régime de la rente dès lors que son état de santé s'était stabilisé aux dires des experts; par mesure de simplification, elle proposait de faire débuter la rente d'invalidité au 1 er janvier 2005 et de verser les indemnités journalières jusqu'au 31 décembre 2004. Par décision du 14 juin 2005, la compagnie d'assurance a alloué à l'employé une indemnité LAA de 82'620 fr. pour atteinte à l'intégrité sur la base d'un taux de 85%. A.c. Dans un document intitulé "compte-rendu de visite", le représentant de la compagnie d'assurance a fait état d'un entretien avec le conseil de l'employé en date du 23 mars 2005. Il exposait avoir abordé la question de l'assurance complémentaire et avoir dit que l'indemnité n'était due que dans les cinq ans suivant l'accident; le conseil de l'employé aurait alors demandé "un geste à titre exceptionnel". Le 4 août 2005, l'employé a fait notifier à la compagnie d'assurance un commandement de payer pour la somme de 1'092'000 fr. plus intérêts. Sous rubrique "cause de l'obligation", il était mentionné "contrat d'assurance LAA complémentaire". Par courrier du 26 septembre 2005, la compagnie d'assurance a refusé toute indemnisation de l'invalidité au sens de l'art. 28 CGA, au motif que la prétention de l'employé était périmée faute d'avoir été réclamée dans les cinq ans (art. 28 let. b ch. 5 CGA) et, au surplus, prescrite (art. 46 LCA; RS 221.229.1). Elle relevait que par lettre du 10 juillet 1998, elle avait attiré l'attention du conseil de l'employé sur l'assurance complémentaire et sur l'art. 28 CGA, et que toutes les discussions ultérieures avaient concerné l'assurance obligatoire; elle n'avait jamais été sollicitée en tant qu'assureur privé avant un entretien au mois de mars 2005. L'employé a fait notifier deux autres commandements de payer les 13 juillet 2006 et 3 juillet 2007. Le 18 juin 2008, la compagnie d'assurance a déclaré renoncer à son droit d'invoquer la prescription dans la mesure où celle-ci n'était pas déjà acquise; elle précisait que le "délai en question" était de son point de vue un délai de péremption. B. B.a. Le 28 avril 2009, l'employé a ouvert action devant la Cour civile du Tribunal cantonal vaudois, concluant à ce que la compagnie d'assurance soit condamnée à lui payer 877'726 fr. 50 avec intérêts à 5% dès le 23 septembre 2004. Ce montant se décompose comme il suit: 858'000 fr. à titre d'indemnité pour invalidité (salaire annuel 2004 de 78'000 fr. x 4 x 275%) et 19'726 fr. 50 de frais d'avocat avant procès. La compagnie d'assurance a conclu au rejet de la demande, invoquant l'exception de prescription et se prévalant de la péremption. Par jugement du 20 août 2013, la Cour civile a rejeté les conclusions de l'employé. Elle a retenu que le délai de péremption (art. 28 let. b ch. 5 CGA) était arrivé à échéance le 14 août 2001, mais ne s'appliquait pas tant que le délai légal de prescription (art. 46 LCA) n'était pas échu. La prescription avait commencé à courir au moment où l'invalidité avait été constatée et son taux déterminé, à savoir le 14 mai 2003, jour où l'employé avait définitivement cessé toute activité professionnelle; la prescription de deux ans était donc acquise le 14 mai 2005. La Cour a enfin nié que l'employé ait été empêché sans faute de sa part d'agir dans le délai (art. 45 al. 3 LCA). B.b. Par arrêt du 22 août 2014, la Cour d'appel civile du Tribunal cantonal vaudois a rejeté l'appel de l'employé. Contrairement à la Cour civile, elle a estimé que la prescription avait commencé à courir le 23 septembre 2004 seulement, date à laquelle les trois experts mandatés par la compagnie d'assurance avaient déposé leur rapport concluant à une atteinte à l'intégrité de 85%. Comme l'instance précédente, elle a retenu que le délai de péremption (art. 28 CGA) ne pouvait pas venir à échéance tant que la prescription était exclue. Elle a donc admis que la péremption était intervenue à l'échéance du délai légal de prescription de deux ans à dater du fait d'où naît l'obligation (art. 46 LCA), soit le 23 septembre 2006. C. L'employé (ci-après: le recourant) a interjeté un recours en matière civile en reprenant les mêmes conclusions au fond qu'en première instance. Il soutient que la clause de péremption est nulle et que de toute façon, le délai de péremption ne saurait commencer à courir avant le délai de prescription; à titre subsidiaire, il se prévaut d'un abus de droit de la compagnie d'assurance (ci-après: l'intimée) qui l'aurait incité à ne pas agir. L'intimée conclut au rejet. Elle objecte notamment que le délai de prescription a commencé à courir au plus tard le 14 mai 2003, si bien que la prescription serait acquise. Le recourant a déposé des observations sur la réponse de l'intimée. Cette dernière n'a pas réagi. Quant à l'autorité précédente, elle s'est référée à son arrêt.