   Animated Mesh loading times
  Im using D3DXLoadMeshHierarchyFromX to load in an animated character which is 285k with a texture of 768k which I've admittedly nabbed from a tutorial somewhere.It takes around 4 seconds to complete each call, is this normal? I wanted to call this on the fly to respawn characters but this obviously causes a major stutter.I'm using a memory allocator class which I believe to be pretty standard and i've tried on two different spec'd computers.   
  Is the X file binary or text? And what format is the texture?If you're parsing a large text file, that'll be slow-ish, and if you're reading a large PNG or JPEG texture, that'll be very slow.   ;  The .x file appears to be binary but the the texture format is .bmp 512x512 at 768kb.You think it could be the .bmp as its not a very compressed gfx format?Thanks for the quick reply by the way.;  Did you try using a simpler model, or a smaller texture, just to compare the loading time?It might also help if you post some of the code (including the memory allocator).   ;  It's worth noting calling any function that hits the hard drive in your main loop is rarely going to be fast enough to avoid a noticeable frame rate hitch, even if you can make the rest of the 4 seconds of work (which does seem a bit slow to me) run instantly.Let's say you have a fairly standard hard drive which can read data at 50MB/s and has a seek time of 10ms. To load two files totalling 1MB you'll need at least two seeks and 1MB of data loading which will total 40 milliseconds. To maintain a frame rate of 60 FPS you have a total of 16.7 ms per frame to do everything.That means you should do the loading from disc on another thread, and use the FromFileInMemory() variants of the D3DX functions on the main thread (or use D3DCREATE_MULTITHREADED flag, which can have a performance impact).   ;  It looks like its either the texture or the .x file, neither of which I can change.I'll have to figure a way around it, pre-load them and then switch between or something untidy like that or multi-threading (which i was trying to avoid as i know little about it and am on a deadline) as Adam_42 suggested.thanks guys;  Load it once at "init" time then use ID3DXAnimationController::CloneAnimationController.   