add hlsl support