Clouds flicker (Vulkan)

  • Hi,

    My name is Dorian from Intel,

    We observed some issues in Aerofly FS2 (Vulkan) running on Intel Icelake hardware.

    Clouds from time to time (sometimes every 1-2 seconds) partially disappears for one frame(flicker).

    Screenshot with corruption is attached.

    Some performance options (like fullscreen) can make it more/less visible.

    Replaying just single frame does not show this glitch.

    Details we found so far:

    1. There are three swapchain elements, workload is GPU bound.

    2. Issue occurence is related to Aerofly edits of mapped vkMemory between vkEndCommandBuffer and vkQueueSubmit.

    3. One of those edits modifies vkMemory mapped to VkBuffer with VK_BUFFER_USAGE_INDEX_BUFFER_BIT.

    4. This VkBuffer is used to draw in every frame (ex. cloud drawing):

    Code
    vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance) returns void:
        commandBuffer:                  VkCommandBuffer = 0000028DB58106F0
        indexCount:                     uint32_t = 576
        instanceCount:                  uint32_t = 1
        firstIndex:                     uint32_t = 0
        vertexOffset:                   int32_t = 0
        firstInstance:                  uint32_t = 0

    5. If this buffer is used in every frame, this modification should be synchronized with previous frame

    rendering.

    6. Only synchronizations I see are for frames n-3 which is usual for three swapchain elements.

    I think you should consider using separate VkBuffers instead of modifying still used VkBuffer.

    May I ask you to investigate this matter?

    Game version: 2.04.09.15 (20200130)

    Driver version: 100.7755

    The reason why it is visible on Icelake is most likely related to position only shading:

    https://software.intel.com/sites/default/…techstories.org

    Thanks in advance