4 ms·
Latency hiding is indeed required, but it's a solvable problem. There's no way that this would work synchronously. See my other comment above. I implemented a
by exDM69 10y ago
Latency hiding is indeed required, but it's a solvable problem. There's no way that this would work synchronously.
See my other comment above. I implemented a technique like this (on a <10 watt mobile device!) and I had no issues whatsoever with framerate, even my suboptimal technique (using OpenGL sparse textures, which are quite restrictive) that might stall. These stalls can be avoided with Vulkan/D3D12 techniques (using aliased sparse pages, ie. one physical page mapped on several textures) so maintaining a stable framerate simply isn't an issue.
This was done with the CPU orchestrating the whole deal. The GPU isn't required to have access to disk or initiate the DMA transfer.
Latency, on the other hand, is an issue but it doesn't seem to be that bad in practice (warning: anecdotal evidence). In my simple demo, practically every page uploaded was resident on the GPU by the next frame after it was required. A small number of pages (less than 1%) had 2 frames of latency. None had 3 or more.
Hiding the visual artifacts from texture popping is a real issue too, but can be mitigated by speculatively uploading pages and applying filtering between mip map levels.
All of this can be done today using Vulkan or D3D12. What Carmack is suggesting (if I understood him correctly) is to make the kernel driver on the CPU initiate asynchronous upload without userspace intervention, which would improve latency and bandwidth.
- snaky 10y ago> Latency hiding is indeed required, but it's a solvable problem Is it so regarding VR? How can you predict a direction and angle where a user turn his head to?
- vardump 10y agoLatency hiding for asset loading. You're talking about rendering latency. Those two are different issues. Asset loading latency doesn't affect rendering latency, put simply, it just means you get to play sooner, with less wait.