SAN FRANCISCO -- A third preseason game against the defending NFC champion 49ers was supposed to serve as a regular-season dress rehearsal and answer a bunch of our questions about this team two weeks from the start of the regular season.

It ended up being a 34-14 beatdown that left even more questions about a sputtering offense, a defense that could be looking at the loss of Kevin Williams and a normally-strong special teams unit that gave up a 105-yard kickoff return for a touchdown.

Here's some of what we learned or, perhaps, didn't:

Kevin Williams' knee. How is it?

The Vikings won't know until a magnetic resonance imaging exam is performed on Monday. Coach Leslie Frazier said Williams' injury, which came on a questionable cut block by second-year backup guard Joe Looney, was the only potential serious injury to come out of the game. The rest of the injuries, including a groin injury that knocked starting cornerback Chris Cook out of the game in the second quarter, was classified by Frazier as "bumps and bruises" that should heal soon.

Here is the hit on Williams.

What happens if Williams is out?

The Vikings were already down a couple of under tackles when the game began. Hence this week's signing of Spencer Nealy. Christian Ballard remains on the reserve/left team list because of personal reasons. Rookie Sharrif Floyd didn't make the trip and won't play again until the regular season after having a "minor procedure" performed on his knee.

Floyd is expected to be ready for the regular season opener at Detroit on Sept. 8. If Williams is out, Floyd, who started the summer as the No. 3 under tackle, probably will start.

The Vikings also have some flexibility when they go to their nickel package. End Everson Griffen can move inside, where he's an exceptional interior pass rusher.

One thing is certain. Second-year player Chase Baker, a practice squad member a year ago, will get a ton of work in Thursday's preseason finale.

Why even play Peterson two snaps if he's not going to run the ball?

It makes sense not to suit up Peterson for the first two preseason games. But to dress him Sunday and play him for two snaps without giving him the ball? That seemed odd.

Said Frazier: "I had made the decision way in advance of this ballgame the number of snaps he would get. Originally, it was going to be three. We got him a chance to get a little game action and get his adrenaline going in a game situation. We got what we needed out of him."

Whatever you think of that reasoning, quarterback Christian Ponder summed it up best when he said, "We all know what Adrian and do, and we know he'll be healthy for the start of the season."

Peterson said he was OK with Frazier's decision and added that he thinks the Vikings offense will "be ready to roll" on Sept. 8 in Detroit.

Every 20-point beatdown and 0-3 record apparently has a silver lining

The Vikings had seven offensive possessions with Ponder at quarterback. They went fumble by Ponder, punt, punt, punt, touchdown, interception, touchdown. The first touchdown was a 28-yard drive set up by Chad Greenway's interception. It also was aided by a pass interference penalty in the end zone on third-and-seven. The interception goes on Ponder's plate, but it wasn't his fault. Receiver Stephen Burton inexplicably stopped on a slant route, enabling Nnamdi Asomugha to make the easy pick. Ponder took the high road, saying it was "a miscommunication." Quarterbacks especially aren't supposed to point fingers, and Ponder was wise not to point out the obvious.

In 13 possessions over three preseason games with Ponder at QB, the Vikings scored 17 points. Only four of those 13 drives went farther than three plays and 15 yards.

Still, Ponder and Frazier both wrapped their arms around what was Ponder's final drive of the preseason: A 12-play, 78-yarder that came early in the third quarter and ended with a three-yard touchdown pass to Joe Webb, who outjumped a defender and held on despite being facemasked at the time.

Said Ponder: "We didn't do as well as we would have liked, but we ended on a positive note. There are some things we still need to get a lot better at, but I have no worries about the leadership on this team and the maturity on this team that we'll fix it."

Added Frazier: "There were some things solidified in my mind finishing that drive in the third quarter as we get ready for the regular season. I do have some resolved about some things I saw."

The drive was aided by two defensive penalties: a pass interference on a third-and-two incompletion and a 15-yard penalty for unnecessary roughness. That's one penalty that extended the drive and another that moved the ball to the 49ers' 23-yard line. But you can't fault Ponder and Frazier for trying to find something positive to build around as the team falls to 0-3 and heads into a preseason finale that few starters will suit up for.

And, finally, did Kalil learn from tonight?

Among the things Vikings fans should never want to see, Matt Kalil being benched for Kevin Murphy has to rank pretty high on the list.

But Frazier had to pull the big fella after he was called for two personal foul penalties for unnecessary roughness in a span of six plays in one drive. Kalil was called for pushing linebacker Michael Wilhoite to the ground from behind as Ponder was running out of bounds. He then was flagged for pushing linebacker NaVorro Bowman after Bowman had gotten into a shoving match with guard Brandon Fusco.

"The second one, where I shoved him after the play, that's my fault," Kalil said. "The first one, I was just hustling down the field and the whistle hadn't blown yet. A couple of the refs told me they wouldn't have called it.

"The second one, I can understand. They always see the second guy, naturally. But if I see one of my teammates being pushed, I'm going to retaliate. I guess it's the result of trying to pick up the tempo a little this game. Probably too much, but last game I feel I was a little lackadaisical. That's what preseason is for, to learn from your mistakes."

Frazier pointed to those penalties and Kalil's inconsistent play -- he whiffed on a block on Justin Smith that resulted in a four-yard loss by Toby Gerhart on third-and-1 -- when he said, "Matt Kalil is one of those guys we have to rely on to be consistent every game."