Jarhead

In 1989, Anthony "Swoff" Swofford (Jake Gyllenhaal) attends U.S. Marine Corps training before being stationed at Camp Pendleton. Claiming that he joined the military because he "got lost on the way to college", Swofford finds his time at Camp Pendleton difficult, and struggles to make friends. While Swofford feigns illness to avoid his responsibilities, a "lifer", Staff Sergeant Sykes (Jamie Foxx), takes note of his potential and orders Swofford to attend his Scout Sniper course.
After gruelling training, the Scout Sniper course is left with eight candidates, among them Swofford, now a sniper, and Swofford's roommate Corporal Alan Troy (Peter Sarsgaard) who becomes his spotter. When Iraq invades Kuwait, Swofford's unit is deployed to the Arabian Peninsula as a part of Operation Desert Shield. Eager for combat, the Marines find themselves bored with remedial training, constant drills, and a routine monotony that feeds their boredom, and prompts them to talk about the unfaithful girlfriends and wives waiting for them at home. They even erect a bulletin board featuring photographs and brief notes telling what perfidies the women had committed.
Swofford obtains unauthorized alcohol and organizes an impromptu Christmas party, arranging for Fergus (Brian Geraghty) to cover his watch so he can celebrate. Fergus accidentally sets fire to a tent while cooking some sausages and ignites a crate of flares, waking the whole camp and enraging Staff Sergeant Sykes, who demotes Swofford from lance corporal to private and puts him on "shit-burning" detail. The punishments, combined with the heat, the boredom, and Swofford's suspicions of his girlfriend's infidelity, give Swofford a mental breakdown, to the point where he threatens Fergus with a rifle, then orders Fergus to shoot him instead.
Later, Operation Desert Storm begins and the Marines are sent to the Saudi Arabia-Kuwait border. Swofford learns from Sykes that Troy concealed his criminal record when enlisting and will be discharged when the unit returns home. Troy becomes distant from his friends. Knowing that Troy will not be allowed to reenlist, the Marines attack him with a red-hot USMC branding iron, marking him as one of their own. Following an accidental air attack from friendly forces, the Marines advance through the desert, facing no enemies on the ground. The Marines march through the Highway of Death, strewn with the burnt vehicles and charred bodies of retreating Iraqi soldiers, the aftermath of an allied bombing campaign. The Marines later suddenly catch sight of distant burning oil wells, ignited only moments before by retreating Iraqis, and they attempt to dig sleeping holes as a rain of crude oil falls from the sky. Before they can finish, Sykes orders the squad to move upwind.
Swofford and Troy are finally given a sniping mission. Lieutenant Colonel Kazinski, their battalion commander, orders them to kill at least one of two high-ranking Iraqi Republican Guard officers at a nearby airfield. At the last split second before Swofford takes the shot, Major Lincoln (Dennis Haysbert) interrupts them to call in an air strike. Swofford and Troy protest, but are overruled and look on in disappointment as airplanes destroy the Iraqi airfield.
After returning home the Marines parade through a town in a jovial celebration of victory. Swofford returns home to his family and girlfriend but discovers she has a new boyfriend. Fowler is seen with a prostitute in a bar, Kruger (Lucas Black) in a corporate boardroom, Escobar (Laz Alonso) as a supermarket employee, Cortez (Jacob Vargas) as a father of three, and Sykes continuing his service as a first sergeant in the Iraq War. Later, Swofford learns of Troy's death during a surprise visit from Fergus. He attends his funeral, reunites with some of his old friends and afterwards reminisces about the effects of the war.

Question: What does Swaofford learn during a surprise visit from Fergus?
Answer: Troy's death