﻿<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<instrumentationManifest xmlns="http://schemas.microsoft.com/win/2004/08/events">
  <instrumentation
      xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      >
    <events xmlns="http://schemas.microsoft.com/win/2004/08/events">
      <provider
          guid="{af2ca688-62aa-48e9-8bf6-a0ca0cae2354}"
          message="$(string.eventProviderName)"
          messageFileName="%SystemRoot%\system32\dxcompilerp.dll"
          name="Microsoft-Windows-DxcRuntime-API"
          resourceFileName="%SystemRoot%\system32\dxcompilerp.dll"
          symbol="MICROSOFT_WINDOWS_DXCRUNTIME_PROVIDER"
          >
        <channels>
          <channel
              chid="DxcRuntimeAnalytic"
              name="Microsoft-Windows-DxcRuntime-API/Analytic"
              type="Analytic"
              />
        </channels>
        <tasks>
          <task
              name="DxcRuntimeInitialization"
              value="1"
              />
          <task
              name="DxcRuntimeShutdown"
              value="2"
              />
          <task
              name="DxcTranslate"
              value="3"
              >
            <opcodes>
              <opcode
                  message="$(string.Task.DxcTranslate.TranslateStats)"
                  name="TranslateStats"
                  symbol="TranslateStats"
                  value="100"
                  />
            </opcodes>
          </task>
        </tasks>
        <events>
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="win:Start"
              symbol="DxcRuntimeInitialization_Start"
              task="DxcRuntimeInitialization"
              value="0"
              />
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="win:Stop"
              symbol="DxcRuntimeInitialization_Stop"
              task="DxcRuntimeInitialization"
              template="OperationResultTemplate"
              value="1"
              />
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="win:Start"
              symbol="DxcRuntimeShutdown_Start"
              task="DxcRuntimeShutdown"
              value="2"
              />
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="win:Stop"
              symbol="DxcRuntimeShutdown_Stop"
              task="DxcRuntimeShutdown"
              template="OperationResultTemplate"
              value="3"
              />
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="win:Start"
              symbol="DxcTranslate_Start"
              task="DxcTranslate"
              value="4"
              />
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="win:Stop"
              symbol="DxcTranslate_Stop"
              task="DxcTranslate"
              template="OperationResultTemplate"
              value="5"
              />
          <event
              channel="DxcRuntimeAnalytic"
              level="win:Informational"
              opcode="TranslateStats"
              symbol="DxcTranslate_TranslateStats"
              task="DxcTranslate"
              template="TranslateStatsTemplate"
              value="6"
              />
        </events>
        <templates>
          <template tid="OperationResultTemplate">
            <data
                inType="win:Int32"
                name="errorCode"
                outType="win:HResult"
                />
          </template>
          <template tid="TranslateStatsTemplate">
            <data
                inType="win:UInt32"
                name="inputByteCount"
                />
            <data
                inType="win:UInt32"
                name="inputShaderSize"
                />
            <data
                inType="win:Binary"
                length="inputShaderSize"
                name="inputShader"
                />
            <data
                inType="win:UInt32"
                name="outputByteCount"
                />
          </template>
        </templates>
      </provider>
    </events>
  </instrumentation>
  <localization>
    <resources culture="en-US">
      <stringTable>
        <string
            id="eventProviderName"
            value="Microsoft-Windows-DxcRuntime-API"
            />
        <string
            id="Task.DxcTranslate.TranslateStats"
            value="Translation statistics."
            />
      </stringTable>
    </resources>
  </localization>
</instrumentationManifest>
