Skip to content

Use of occlusion queries around individual draws results in one ResolveQueryData per query #17

@ajmiles

Description

@ajmiles

D3D11 gave no explicit control over batching query resolve operations, so it appears that 'EndQuery' is the place that ResolveQueryData operations are inserted.

The D3D11 pattern of:

  1. Begin(query)
  2. Draw
  3. End(query)

For tasks such as Occlusion Culling results in this pattern in D3D12:

  1. BeginQuery
  2. Draw
  3. EndQuery
  4. ResolveQueryData

This appears to inhibit draw-level parallelism as a ResolveQueryData operation sits between every draw. Some means (waves hands) of batching up Resolves into one operation before first use would help immeasurably!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions