microsoft / microsoft/D3D12TranslationLayer

Creating a query heap per query might be too expensive

Open
#69 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
357
Forks
56
Avg merge
5d 6h
Merged PRs (30d)
4

Description

Trying to run Tracy through D3D11On12 takes far too long to start up, with pretty much all of the time spent creating 64*1024 timestamp queries. Each of these timestamp queries creates a 4-query heap, which likely involves allocating a 64KiB query heap to store 32B.

This should probably turn into a device (immediate context) level query heap pool per type where query heap slots can be suballocated out to individual queries.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the D3D11On12 path that creates the 64*1024 timestamp queries and the immediate-context query handling described in the issue. Investigate how each 4-query heap is allocated, then determine the scope of a per-type query heap pool with suballocated slots; done means avoiding a separate heap allocation for every query while preserving query behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.