It's because of your GPU. While it's a fine GPU in my opinion, and has a lot of things going for it, it's just not fit to play BF3 on ultra at 1080p. It simply doesn't have the pure muscle necessary to do it. Since you already have an HD 7770, you might try getting a second one and putting them in crossfire. It's not the best setup, but it might be the best option in your case. It should give you roughly GTX 570 performance. Something to think about, anyway. You could also just buy an HD 7870, sell the 7770, and crossfire the 7870 later on. I know it's an inconvenience, but again, just a thought.