I took a trace from the project I'm working on and I saw that the GPU VERY under used, basically GPU's EUs are Active 50% of the time (21% VertexShader, 29% PxielShader), and it's stalled 38.2% of the time, and Idle 11.5%.
I'm taking a look into it, but I'm not sure what kind of things to look for... I asume that the GPU can be stalling because of texture loads, I also found that there are more than 70 render targets used in each frame, so I asume that there must be some overhead in that (though not sure exactly what the penalty is for, creating targets is costly?.. switching to it?)....
What other kind of things could be stalling the GPU?... and if the application is running so slow why it says that the 11.5% of the time the GPU is idle?...
Is there a way to write HLSL 5 Assembly? I don't really like the instructions the HLSL compiler compiles. I could hand optimize about 30% of the instructions if I could directly write the assembly instructions.
Unfortunately no, in DirectX 9 it was something you could do, but starting from DirectX 10 upwards you are not able to write shaders in assambly langage anymore, just to read their instructions... It's a pain, I know.. but we'll have to stick to it.
Porting Shaders Direct3D 10 Shaders are Authored in HLSL Direct3D 10 limits the use of assembly language to that of debugging purposes only, therefore any hand written assembly shaders used in Direct3D 9 will need to be converted to HLSL.
Well, it looks that this is not going to be an "Express only" thing, I've downloaded Visual Studio Ultimate 2012 RC and it has no C++ support either, and i haven't found so far how to enable it or download the C++ part.
the weird thing is that a few weeks ago previews Visual Studio 11 Beta did had that C++ support (and it was quite fantastic to be honest).