Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wgpu: Include memory report in debug info #17483

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Aaron1011
Copy link
Member

Sample report:

wgpu memory report: GlobalReport { surfaces: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 592 }, vulkan: None, gl: Some(HubReport { adapters: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 272 }, devices: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 9720 }, queues: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 88 }, pipeline_layouts: RegistryReport { num_allocated: 5, num_kept_from_user: 5, num_released_from_user: 1, num_error: 0, element_size: 216 }, shader_modules: RegistryReport { num_allocated: 19, num_kept_from_user: 19, num_released_from_user: 1, num_error: 0, element_size: 832 }, bind_group_layouts: RegistryReport { num_allocated: 12, num_kept_from_user: 12, num_released_from_user: 1, num_error: 0, element_size: 232 }, bind_groups: RegistryReport { num_allocated: 3, num_kept_from_user: 3, num_released_from_user: 0, num_error: 0, element_size: 304 }, command_buffers: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 9192 }, render_bundles: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 848 }, render_pipelines: RegistryReport { num_allocated: 84, num_kept_from_user: 84, num_released_from_user: 0, num_error: 0, element_size: 712 }, compute_pipelines: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 280 }, pipeline_caches: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 64 }, query_sets: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 88 }, buffers: RegistryReport { num_allocated: 22, num_kept_from_user: 22, num_released_from_user: 0, num_error: 0, element_size: 280 }, textures: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 776 }, texture_views: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 1, num_error: 0, element_size: 208 }, samplers: RegistryReport { num_allocated: 25, num_kept_from_user: 25, num_released_from_user: 0, num_error: 0, element_size: 64 } }) }

Sample report:
```
wgpu memory report: GlobalReport { surfaces: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 592 }, vulkan: None, gl: Some(HubReport { adapters: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 272 }, devices: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 9720 }, queues: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 88 }, pipeline_layouts: RegistryReport { num_allocated: 5, num_kept_from_user: 5, num_released_from_user: 1, num_error: 0, element_size: 216 }, shader_modules: RegistryReport { num_allocated: 19, num_kept_from_user: 19, num_released_from_user: 1, num_error: 0, element_size: 832 }, bind_group_layouts: RegistryReport { num_allocated: 12, num_kept_from_user: 12, num_released_from_user: 1, num_error: 0, element_size: 232 }, bind_groups: RegistryReport { num_allocated: 3, num_kept_from_user: 3, num_released_from_user: 0, num_error: 0, element_size: 304 }, command_buffers: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 9192 }, render_bundles: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 848 }, render_pipelines: RegistryReport { num_allocated: 84, num_kept_from_user: 84, num_released_from_user: 0, num_error: 0, element_size: 712 }, compute_pipelines: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 280 }, pipeline_caches: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 64 }, query_sets: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 0, num_error: 0, element_size: 88 }, buffers: RegistryReport { num_allocated: 22, num_kept_from_user: 22, num_released_from_user: 0, num_error: 0, element_size: 280 }, textures: RegistryReport { num_allocated: 1, num_kept_from_user: 1, num_released_from_user: 0, num_error: 0, element_size: 776 }, texture_views: RegistryReport { num_allocated: 0, num_kept_from_user: 0, num_released_from_user: 1, num_error: 0, element_size: 208 }, samplers: RegistryReport { num_allocated: 25, num_kept_from_user: 25, num_released_from_user: 0, num_error: 0, element_size: 64 } }) }
```
@torokati44
Copy link
Member

Pretty-printed:

GlobalReport {
  surfaces: RegistryReport {
    num_allocated: 1,
    num_kept_from_user: 1,
    num_released_from_user: 0,
    num_error: 0,
    element_size: 592
  },
  vulkan: None,
  gl: Some(
    HubReport {
      adapters: RegistryReport {
        num_allocated: 1,
        num_kept_from_user: 1,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 272
      },
      devices: RegistryReport {
        num_allocated: 1,
        num_kept_from_user: 1,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 9720
      },
      queues: RegistryReport {
        num_allocated: 1,
        num_kept_from_user: 1,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 88
      },
      pipeline_layouts: RegistryReport {
        num_allocated: 5,
        num_kept_from_user: 5,
        num_released_from_user: 1,
        num_error: 0,
        element_size: 216
      },
      shader_modules: RegistryReport {
        num_allocated: 19,
        num_kept_from_user: 19,
        num_released_from_user: 1,
        num_error: 0,
        element_size: 832
      },
      bind_group_layouts: RegistryReport {
        num_allocated: 12,
        num_kept_from_user: 12,
        num_released_from_user: 1,
        num_error: 0,
        element_size: 232
      },
      bind_groups: RegistryReport {
        num_allocated: 3,
        num_kept_from_user: 3,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 304
      },
      command_buffers: RegistryReport {
        num_allocated: 1,
        num_kept_from_user: 1,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 9192
      },
      render_bundles: RegistryReport {
        num_allocated: 0,
        num_kept_from_user: 0,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 848
      },
      render_pipelines: RegistryReport {
        num_allocated: 84,
        num_kept_from_user: 84,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 712
      },
      compute_pipelines: RegistryReport {
        num_allocated: 0,
        num_kept_from_user: 0,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 280
      },
      pipeline_caches: RegistryReport {
        num_allocated: 0,
        num_kept_from_user: 0,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 64
      },
      query_sets: RegistryReport {
        num_allocated: 0,
        num_kept_from_user: 0,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 88
      },
      buffers: RegistryReport {
        num_allocated: 22,
        num_kept_from_user: 22,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 280
      },
      textures: RegistryReport {
        num_allocated: 1,
        num_kept_from_user: 1,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 776
      },
      texture_views: RegistryReport {
        num_allocated: 0,
        num_kept_from_user: 0,
        num_released_from_user: 1,
        num_error: 0,
        element_size: 208
      },
      samplers: RegistryReport {
        num_allocated: 25,
        num_kept_from_user: 25,
        num_released_from_user: 0,
        num_error: 0,
        element_size: 64
      }
    }
  )
}

@kjarosh
Copy link
Member

kjarosh commented Aug 20, 2024

Shouldn't that info be gathered at the time of a panic instead of when instantiating the player?

@Dinnerbone
Copy link
Contributor

Dinnerbone commented Aug 21, 2024

We show cached data at panic time, because... well, we panicked. So any data in this report will be wrong for those cases.

We'll need to find a better way to do this - and also really should update the report to indicate that it's indeed old cached info.

@danielhjacobs danielhjacobs added A-rendering Area: Rendering & Graphics render-wgpu Issues relating to the wgpu renderer T-feature Type: New Feature (that Flash doesn't have) labels Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rendering Area: Rendering & Graphics render-wgpu Issues relating to the wgpu renderer T-feature Type: New Feature (that Flash doesn't have)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants