4 ms·
As someone whos knows almost nothing about 3d graphics and its APIs, how does Vulkan play into all of this? Why should this new API be used instead of adding Vu
by wnevets 10y ago
As someone whos knows almost nothing about 3d graphics and its APIs, how does Vulkan play into all of this? Why should this new API be used instead of adding Vulkan's API to the browser?
- corysama 10y agoThis is intended to be WebVulkan|WebDX12|WebMetal with room for other possible underlying implementations. In general, Vulkan was not designed with the web in mind. For example: Vulkan's design intentionally has a whole lot of undefined behavior. Instead of strictly specifying what happens in all possible accidental cases, they strictly specify what is defined and provide debug layers that help you identify during development when you are unknowingly stepping into bizarro land. Also, I expect Vulkan was designed with the expectation of process-level isolation being the end-all of security concerns. That's not sufficient for single-process, multi-tab browsers.
- JoshTriplett 10y ago> Also, I expect Vulkan was designed with the expectation of process-level isolation being the end-all of security concerns. That's not sufficient for single-process, multi-tab browsers. Chrome has process isolation, and Firefox is developing process isolation right now. I don't think it makes sense for a new technology stack to go out of its way to support single-process multi-tab browsers.
- pygy_ 10y agoBut even in chrome, several tabs can share the same process, which means that information can be leaked, cross-tab.
- jra101 10y agoIt is higher level than Vulkan as you don't need to allocate or manage GPU memory, the implementation handles that for you. You also don't need to worry about transitioning render surfaces between different states (D3D12 and Vulkan). It does allow you to create pipeline state objects ahead of time like Vulkan and D3D12 but they only include a subset of state (shader + antialiasing state + color/depth attachment state). The rest of the state is set when recording the command buffer.