[GD-Windows] Reducing Shader Load Time
Brought to you by:
vexxed72
From: Glen M. <gle...@di...> - 2007-08-27 20:10:13
|
We're using native C++ & DirectX 9 and I'm looking for a way to reduce our the shader load times. We have a relatively large number of shader permutations in our engine and we probably load upwards of 10,000 small permutations to the card at startup. IO is not a problem -- it's only a 2 or 4 MB and the data is streamed in asynchronously -- the real hitch seems to be D3D. The hitch is surprisingly bad on my modern workstation with a Radeon X1800 -- it can take upwards of 18 seconds spread over a few frames to shunt that mess up to the card. In comparison, on one of the consoles we're targetting we can push the same shaders to the card in less than 1ms (the other has UMA, so shaders are registered in place instantly). I'm running very recent Radeon drivers, most recent DirectX SDK developer runtime but using retail D3D9, no validation or anything. I'm reasonably confident our artists who aren't using the developer runtime also experience this problem. 18 seconds. The stall seems to happen in CreatePixelShader & CreateVertexShader -- does anyone know any tricks to lube up the driver so it'll accept a that much love all at once? peace |