Inside the vertex shader the tangent and normal space stored inside the gbuffer like this:

output.normal = mul((float3x3)modelWorld, input.normal); output.tangent = mul((float3x3)modelWorld, input.tangent);

Brayzersoft tutorial for bump mapping uses model's normals for the tangents. the modelworld matrix is the matrix idenity of the model. Maybe I'm not understanding deferred lighting very much perhaps.