The idea of keeping this struct as "dxgi_resource" while using it for non-resources seems dubious to me. I don't know that it's worth using a separate structure either, but if we don't, we should probably rename to dxgi_surface.
Using dxgi_resource seems appropriate because it's also used for buffer types. I am leaving it unchanged.