I’ve been experimenting with ways to get a 1080p or higher raw (RGBA buffer data) texture stream captured off-thread (10-20ms operation) and streamed on to a UTexture2D for use as a texture on a quad in the game world. This is a VR project so it needs as close as possible 0 impact on frame rates.
I almost have it working well enough for 75fps VR, but I’m struggling to lower the impact on the Game Thread and RenderThread, since Lock MemCopy and Unlock is taking around 5ms for 1080p which is too large percentage of a 13ms frame. Is there a way to prepare a UTexture2D object completely off-thread and just mark it ready to read on the render thread? If not what is the lowest possible impact architecture to achieve something like this?