Porting Detroit: Become Human from PS4 to PC in Vulkan

Started by JeGX, September 25, 2020, 06:52:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JeGX

Here is an interesting blog series discussing the port of the game Detroit: Become Human from PlayStation 4 to PC. The developers explain why they chose the Vulkan API to port the game on PC.  On the first article we learn that the game has around 100k VkPipelines and more than 4000 textures in a frame:
Quote
In the end, we decided to generate all the VkPipeline during the first launch of the game. This completely eradicated the stuttering issue, but we were now facing a new problem: the generation of the VkPipelineCache was taking a very long time.

Detroit: Become Human has around 99,500 VkPipelines ! The game is using a forward rendering approach, so material shaders contain all the lighting code. Consequently, each shader can take a long time to compile.

...

Even with a low number, the update of descriptor sets was still a bottleneck. Updating a descriptor set can be very expensive if it contains many resources. In Detroit: Become Human, we can have more than 4,000 textures in a frame for instance.

...

Links:
- Part 1
- Part 2
- Part 3

Detroit: Become Human