My problem was with overlaping initialization. In onSurfaceChanged I was trying to execute it as fast as possible (I wanted to show other view with "loading" screen, but it will not show until the onSurfaceChanged method is executing), thats why the only thing I do here is create FrameBuffer, and start separate thread which, do the rest of initialization.
If I don't set explicity device orientation then when the orientation was changed I have noticed that the initialization was still executed by first activity, and the second instance of activity started its own initalization
Because there is no system wide synchronization method both instances started to make changes in one texture manager - I thought that TextureManager was created separately for Activity but I was mistaken.
Finally I set "synchronized" on texture manager object and it solved my problem