User Guide

  • 2021.2
  • 06/24/2021
  • Public Content
Contents

Analyze Synchronization

Using Trace Analyzer, you can identify synchronization issues that may appear in multi-context graphics applications (DirectX* 12, Vulkan*) with multi-threaded rendering. In addition to GPU-side synchronization, you can also analyze synchronization between CPU threads to address some CPU-side performance issues.
Examples of GPU-GPU and GPU-CPU synchronization types you can analyze using Trace Analyzer are:
  • Synchronization between context queues, when a signal from one queue resumes execution of another queue.
  • Synchronization between context queue and CPU thread, when either a signal from a context queue resumes a CPU thread or a signal from a CPU thread resumes execution of context queue.
  • Identify origins of Render, Signal, Wait, and Present packages. Click on a package in the
    Device Context
    track to display an arrow that reveals the API call that submitted that package. You can track execution from the CPU thread, to the User-Mode Driver, and up to the hardware queue.
You can also analyze CPU-side synchronization between CPU threads. On Windows* OS, Trace Analyzer supports synchronization relations highlighting for the following Win32 API functions:
SetEvent
,
WaitForSingleObject
,
WaitForMultipleObjects
.
To visualize synchronization events between threads, locate one of these function calls on the trace and click on the bar. An arrow appears, pointing to related synchronization calls.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.