(12-06-2012, 11:23 PM)neobrain Wrote: What you're probably seeing is that a vertex buffer was still in use when we tried writing new data into it. The GPU driver likely delayed the actual RAM->VRAM upload to the next DrawPrimitive() call, which is why you see so much CPU time spent there.But the draw command should also be delayed? In fact, adding much sleeps between uploading and drawing doesn't change this timings.
(12-06-2012, 11:23 PM)neobrain Wrote: .. Or it's just the typical case that the CPU says "Yo GPU, here's some data to draw" and the GPU answers "Yo dawg, I'm still busy so wait a minute with that data".A secound identical draw command will return directly, so I guess, this is not the reason.
btw, after switching the shader, the draw command use double the time. So it is perhaps changing the state of the pipeline?
Edit: enabling USE_DUAL_SOURCE_BLEND, the secound draw command isn't used anymore and (more importend) the shader won't be changed for this. So the shader sometimes don't need to be changed befor the regular call. So the total time spend on draw commands (1856usec) is now lower than the time spend on the frist draw command without alphapass.
