I have been working on a DirectX 10 2D engine witten in c++ using the tutorials on http://rastertek.com/ My sprite system is based up on http://rastertek.com/dx10tut11.html and has been working quite well until I tried to render a background texture that is 1920x1080 in size.
The problem I am having is that the FPS drops down from 3000 to 1800 though if I draw a smaller texture only to about 2800. I know that drawing large textures will always have performance impact but there must be a way to optimize this quite a bit. First I thought that it had something to do with the vertex buffer being dynamic but changing it to a default one didn't optimize the performance. The shader code is as simple as it get's: Calculate the position of the vertices against the view matrices and the pixel shader uses the texture coordinates to draw them. I have been thinking about just using the D3DXSPRITE system included in DirectX 10 but it has been been taken out in DirectX 11 so I decided against it.
So after this long explanation my question is: How can I optimize my code to draw large textures ? Are there any solutions that you would suggest to use ?