Have you looked at the example? I can't tell you for sure if it will work in the Xray engine, I don't know what you have tried exactly so far, but it might be worth the try to create a very simple shader and then compile an ASM version to see if the engine will take it.
Yeah, I have, and it doesn't work. The compiler / engine doesn't seem to recognize the asm { } command that he is using in his example. The compiler seems to think that I wanted to define my own function called "asm", thus exiting with error
error X3064: object literals are not allowed inside functions
I don't know what D3D or compiler version is required to allow such inline asm blocks, or if some special compiler switch / option would need to be activated in order to use it. However I think it's just not possible with the xRay engine I'm running.
BTW, I'm curious what you are doing exactly in your shader that is so heavy and improves the quality so drastically?
Several different things which are not supported by xRay itself, and which require both lots of texture lookups and complex functions, such as dynamic depth of field (focus blur), adaptive night vision, and dynamic wet surfaces including object reflections - everything done purely in one single pixel shader (with several includes, of course).
For a "causual" windows or web application my code wouldn't be very complex, but for the HLSL compiler it seems to max out the limits...
Edited by Meltac, 22 May 2012 - 01:37 PM.