SPS
Moderator
These posts have been moved from the AMD teasing thread to keep that thread on topic.
All GPU data is stored on the GPU. The only thing that usually gets pushed to the GPU every frame are shader parameters (constant buffers in DX11).
For example, a vertex buffer for a mesh is generally loaded by the CPU and then pushed to the GPU never to be touched again by the CPU. To move a mesh around, a transformation matrix is sent to the GPU (very little data compared to the entire vertex buffer). The vertex shader is then responsible for transforming each vertex by the matrix.
I do have some data yes, I'd have to dig out the specifcs when I'm back from work but I can tell you it slowed my frame down by at least 1000x. This was done in a single threaded DX11 app and the test was reading back from the GPU. APIs tend to be a bit more awkward when it comes to mapping back to the CPU so I couldn't tell you how much the API directly affected these timings.
But the bottleneck in batches/draw calls is to do with CPU load, not bus bottlenecks.
So mantle etc are about reducing cpu load proper, or doing more effective multi threading.
Bus bandwidth on pci bottlenecks, I'm less sure about.
Does anyone actually know the frame by frame pcie data traffic loads and what it consists of and why more bandwidth alleviates a current measurable bottleneck?
I'm not sure I understand it right, but is local vram used for storing textures and geometry as well as frame buffers etc, or is texture/geometry pushed to gpu from system ram per frame?
From tests I gathered it was the former, in which case in not sure why it'd be a huge issue with current bus bandwidth.
If its the latter then I'm not sure but we'd probably be bus bandwidth bound constantly which isn't the case!
Hence my confusion on that point hehe![]()
All GPU data is stored on the GPU. The only thing that usually gets pushed to the GPU every frame are shader parameters (constant buffers in DX11).
For example, a vertex buffer for a mesh is generally loaded by the CPU and then pushed to the GPU never to be touched again by the CPU. To move a mesh around, a transformation matrix is sent to the GPU (very little data compared to the entire vertex buffer). The vertex shader is then responsible for transforming each vertex by the matrix.
Do you actually have some data, I'm genuinely interested in the data flow and what it's made up of on a frame to frame and second to second basis... to 'fill' gigabytes a second of bandwidth.
Cheers
Dave
I do have some data yes, I'd have to dig out the specifcs when I'm back from work but I can tell you it slowed my frame down by at least 1000x. This was done in a single threaded DX11 app and the test was reading back from the GPU. APIs tend to be a bit more awkward when it comes to mapping back to the CPU so I couldn't tell you how much the API directly affected these timings.
Last edited: