The offensive numbers from the Week 1 loss to the Panthers were not pretty.
The 49ers scored three points, amassed just 217 total yards, went 2-for-11 on third down and turned the ball over twice.
Brian Hoyer was sacked four times.
"It's always hard when a team scores three points, so it's easy to say they stunk," Greg Cosell said on KNBR 680. "I thought Hyde ran well and looked good.
"I thought the pass game -- you saw really good concepts. Don't forget -- Goodwin drops the go route ... on the sack-fumble, he (Hoyer) was getting ready to throw the ball to George Kittle, who was wide open on a corner route in a beautifully designed three-level stretch.
"I think the issue for their offense -- and it will be all season -- is their interior three on their offensive line. This was a really good D-line they played against; they're gonna face the same issue this week when they play Seattle.
"That's where they're going to have to get better and it's not likely to happen this season."
Left guard Zane Beadles, in particular, struggled mightily.
In late August, the 49ers traded for Laken Tomlinson -- the 28th overall pick in the 2015 draft.
He started 24 games for the Lions over the prior two seasons and may be in line to take over for Beadles soon.
“That’s something we’ll evaluate all three days," Kyle Shanahan said on Wednesday. "The same as I told you guys, I forget what day, Monday or Sunday, but we’re working Laken in more. This is his second week here, so he’s getting a little bit more reps. We’ll see how he handles it and how it plays out.
“He's definitely got the ability to and that's why we're excited to have him here and we're just trying to work with him and get him comfortable to do it and put him in an NFL game for the first time in a while.”