Maybe that dude could start: Bruce Ellington put on a show and, looking completely healthy for the first time since camp opened, may have put the No. 3 receiver competition out of reach for Quinton Patton and DeAndrew White. Ellington had three catches for 86 yards, including his 70-yard TD catch-and-run on a slant pass. He also had three punt returns for 44 yards and returned a kickoff for 21 yards.
QB depth chart As expected, starter Colin Kaepernick did not start. But unexpectedly, neither did backup Blaine Gabbert. Rather, undrafted rookie Dylan Thompson played the entire game and completed 17 of 25 passes for 225 yards with two touchdowns and a pick-six.
Who got hurt? The Niners appeared to emerge from the game unscathed.
A player who looks amazing: This had been Jarryd Hayne’s domain this preseason, and while he may not have been his usual Australian highlight reel -- although he did flatten Lowell Rose when he dropped his left shoulder into him when he attempted to tackle Hayne on the sideline on a screen pass -- as he returned three punts for just 43 yards and had his first fair catch despite no one being within 10 yards of him, he also carried the ball 10 times for 58 yards as a running back and caught two passes for 17 yards. Plus, he also saw time on coverage teams and had a particularly nice tackle on a punt as the gunner, beating double coverage downfield.
Rookie watch: DeAndrew White also seemingly solidified his spot on the 53-man roster. Besides catching three passes for 77 yards, he also returned three punts for 70 yards and a kickoff 26 yards.
One reason to freak out: Yes, that was defensive end Tony Jerod-Eddie playing left outside linebacker in the first half. With Ahmad Brooks still in limbo, is a conversion in the works?
The South Carolina 49ers?: It being the most meaningless preseason game, several frontline players sat. As such, rookies and backups got the snaps and the four South Carolina products saw major time, from Thompson to Ellington to running back Mike Davis (7 carries, 33 yards) to tight end Busta Anderson (2 catches, 18 yards and a 16-yard TD reception).