Skip to content

[replay] Hitting assert when Command Buffer contains no render passes. #2516

@tomhog-arm

Description

@tomhog-arm

Describe the replay bug:
Hi,

I've started hitting an assert here

link

When trying to dump resources in sascha williams multithreading vulkan sample on android. I'm attempting to capture all drawcalls. Previously this example would execute (there's a separate issue of the RenderPass attachments being cleared between draws). However with the latest changes the attached example now hits the assert.

I'm able to get round this by wrapping the renderpass handling branches below like so, but I'm unsure of the side effects this might have.

    //GFXRECON_ASSERT(!RP_indices_.empty());
    if (!RP_indices_.empty())
    {
        if (current_render_pass_type_ == kRenderPass)
        {
            device_table_->CmdEndRenderPass(current_command_buffer);
        }
        else if (current_render_pass_type_ == kDynamicRendering)
        {

Verify before submission:

  • Was trimming enabled? in original capture yes
  • Was replayer renamed if necessary? no (though not sure what that means)
  • Was --sync used if title is known to need forced synchronization? no

Build Environment:
Please include the SHA and PR or branch name used in capture and also used to build the replayer.

dev: 28ad088

To Reproduce
Steps to reproduce the behavior:

  1. Get the .gfxr file from multi_threading_example.zip

  2. Run gfxrecon-replay with [insert parameters here]

       start_activity(adb, replay_pkg, [
            "--dump-resources", dst_dump_args,
            "--dump-resources-dir", f"{replay_wd}/dump_resources",
            "--dump-resources-json-output-per-command",
            "--dump-resources-dump-raw-images",

            dst_trace
        ])

Screenshots:
If applicable, add screenshots to illustrate visual corruption.

System environment:

  • GPU and driver version on which capture was taken:

Device information:
GPU name: Immortalis-G925
GPU architecture: Arm 5th Gen
Vulkan driver version: 49.1.0

  • GPU and driver version on which capture file was replayed with issue: same as capture

Title configuration:

  • Title name: sascha williams multithreading
  • Title version
  • Steam ID if applicable: none
  • Is DXR enabled? no

Additional information (optional):

  • is there a SHA for which replayer is known to replay correctly? (indicates possible regression in decoder/consumer)
  • Is there an older trace that works? What SHA was used to build those capture DLLs? (indicates possible regression in capture/encoder)
  • Does a newer capture work? (indicates bug fix in capture/encoder that needs to be noted)
  • Does the capture file replay correctly on a different GPU?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions