d3d11shadertracing.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 8.01.0622 */
  3. /* @@MIDL_FILE_HEADING( ) */
  4. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  5. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  6. #define __REQUIRED_RPCNDR_H_VERSION__ 500
  7. #endif
  8. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  9. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  10. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  11. #endif
  12. #include "rpc.h"
  13. #include "rpcndr.h"
  14. #ifndef __RPCNDR_H_VERSION__
  15. #error this stub requires an updated version of <rpcndr.h>
  16. #endif /* __RPCNDR_H_VERSION__ */
  17. #ifndef COM_NO_WINDOWS_H
  18. #include "windows.h"
  19. #include "ole2.h"
  20. #endif /*COM_NO_WINDOWS_H*/
  21. #ifndef __d3d11ShaderTracing_h__
  22. #define __d3d11ShaderTracing_h__
  23. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  24. #pragma once
  25. #endif
  26. /* Forward Declarations */
  27. #ifndef __ID3D11ShaderTrace_FWD_DEFINED__
  28. #define __ID3D11ShaderTrace_FWD_DEFINED__
  29. typedef interface ID3D11ShaderTrace ID3D11ShaderTrace;
  30. #endif /* __ID3D11ShaderTrace_FWD_DEFINED__ */
  31. #ifndef __ID3D11ShaderTraceFactory_FWD_DEFINED__
  32. #define __ID3D11ShaderTraceFactory_FWD_DEFINED__
  33. typedef interface ID3D11ShaderTraceFactory ID3D11ShaderTraceFactory;
  34. #endif /* __ID3D11ShaderTraceFactory_FWD_DEFINED__ */
  35. /* header files for imported files */
  36. #include "oaidl.h"
  37. #include "ocidl.h"
  38. #ifdef __cplusplus
  39. extern "C"{
  40. #endif
  41. /* interface __MIDL_itf_d3d11ShaderTracing_0000_0000 */
  42. /* [local] */
  43. typedef
  44. enum D3D11_SHADER_TYPE
  45. {
  46. D3D11_VERTEX_SHADER = 1,
  47. D3D11_HULL_SHADER = 2,
  48. D3D11_DOMAIN_SHADER = 3,
  49. D3D11_GEOMETRY_SHADER = 4,
  50. D3D11_PIXEL_SHADER = 5,
  51. D3D11_COMPUTE_SHADER = 6
  52. } D3D11_SHADER_TYPE;
  53. #define D3D11_TRACE_COMPONENT_X 0x1
  54. #define D3D11_TRACE_COMPONENT_Y 0x2
  55. #define D3D11_TRACE_COMPONENT_Z 0x4
  56. #define D3D11_TRACE_COMPONENT_W 0x8
  57. typedef UINT8 D3D11_TRACE_COMPONENT_MASK;
  58. typedef struct D3D11_VERTEX_SHADER_TRACE_DESC
  59. {
  60. UINT64 Invocation;
  61. } D3D11_VERTEX_SHADER_TRACE_DESC;
  62. typedef struct D3D11_HULL_SHADER_TRACE_DESC
  63. {
  64. UINT64 Invocation;
  65. } D3D11_HULL_SHADER_TRACE_DESC;
  66. typedef struct D3D11_DOMAIN_SHADER_TRACE_DESC
  67. {
  68. UINT64 Invocation;
  69. } D3D11_DOMAIN_SHADER_TRACE_DESC;
  70. typedef struct D3D11_GEOMETRY_SHADER_TRACE_DESC
  71. {
  72. UINT64 Invocation;
  73. } D3D11_GEOMETRY_SHADER_TRACE_DESC;
  74. typedef struct D3D11_PIXEL_SHADER_TRACE_DESC
  75. {
  76. UINT64 Invocation;
  77. INT X;
  78. INT Y;
  79. UINT64 SampleMask;
  80. } D3D11_PIXEL_SHADER_TRACE_DESC;
  81. typedef struct D3D11_COMPUTE_SHADER_TRACE_DESC
  82. {
  83. UINT64 Invocation;
  84. UINT ThreadIDInGroup[ 3 ];
  85. UINT ThreadGroupID[ 3 ];
  86. } D3D11_COMPUTE_SHADER_TRACE_DESC;
  87. #define D3D11_SHADER_TRACE_FLAG_RECORD_REGISTER_WRITES 0x1
  88. #define D3D11_SHADER_TRACE_FLAG_RECORD_REGISTER_READS 0x2
  89. typedef struct D3D11_SHADER_TRACE_DESC
  90. {
  91. D3D11_SHADER_TYPE Type;
  92. UINT Flags;
  93. union
  94. {
  95. D3D11_VERTEX_SHADER_TRACE_DESC VertexShaderTraceDesc;
  96. D3D11_HULL_SHADER_TRACE_DESC HullShaderTraceDesc;
  97. D3D11_DOMAIN_SHADER_TRACE_DESC DomainShaderTraceDesc;
  98. D3D11_GEOMETRY_SHADER_TRACE_DESC GeometryShaderTraceDesc;
  99. D3D11_PIXEL_SHADER_TRACE_DESC PixelShaderTraceDesc;
  100. D3D11_COMPUTE_SHADER_TRACE_DESC ComputeShaderTraceDesc;
  101. } ;
  102. } D3D11_SHADER_TRACE_DESC;
  103. typedef
  104. enum D3D11_TRACE_GS_INPUT_PRIMITIVE
  105. {
  106. D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED = 0,
  107. D3D11_TRACE_GS_INPUT_PRIMITIVE_POINT = 1,
  108. D3D11_TRACE_GS_INPUT_PRIMITIVE_LINE = 2,
  109. D3D11_TRACE_GS_INPUT_PRIMITIVE_TRIANGLE = 3,
  110. D3D11_TRACE_GS_INPUT_PRIMITIVE_LINE_ADJ = 6,
  111. D3D11_TRACE_GS_INPUT_PRIMITIVE_TRIANGLE_ADJ = 7
  112. } D3D11_TRACE_GS_INPUT_PRIMITIVE;
  113. typedef struct D3D11_TRACE_STATS
  114. {
  115. D3D11_SHADER_TRACE_DESC TraceDesc;
  116. UINT8 NumInvocationsInStamp;
  117. UINT8 TargetStampIndex;
  118. UINT NumTraceSteps;
  119. D3D11_TRACE_COMPONENT_MASK InputMask[ 32 ];
  120. D3D11_TRACE_COMPONENT_MASK OutputMask[ 32 ];
  121. UINT16 NumTemps;
  122. UINT16 MaxIndexableTempIndex;
  123. UINT16 IndexableTempSize[ 4096 ];
  124. UINT16 ImmediateConstantBufferSize;
  125. UINT PixelPosition[ 4 ][ 2 ];
  126. UINT64 PixelCoverageMask[ 4 ];
  127. UINT64 PixelDiscardedMask[ 4 ];
  128. UINT64 PixelCoverageMaskAfterShader[ 4 ];
  129. UINT64 PixelCoverageMaskAfterA2CSampleMask[ 4 ];
  130. UINT64 PixelCoverageMaskAfterA2CSampleMaskDepth[ 4 ];
  131. UINT64 PixelCoverageMaskAfterA2CSampleMaskDepthStencil[ 4 ];
  132. BOOL PSOutputsDepth;
  133. BOOL PSOutputsMask;
  134. D3D11_TRACE_GS_INPUT_PRIMITIVE GSInputPrimitive;
  135. BOOL GSInputsPrimitiveID;
  136. D3D11_TRACE_COMPONENT_MASK HSOutputPatchConstantMask[ 32 ];
  137. D3D11_TRACE_COMPONENT_MASK DSInputPatchConstantMask[ 32 ];
  138. } D3D11_TRACE_STATS;
  139. typedef struct D3D11_TRACE_VALUE
  140. {
  141. UINT Bits[ 4 ];
  142. D3D11_TRACE_COMPONENT_MASK ValidMask;
  143. } D3D11_TRACE_VALUE;
  144. typedef
  145. enum D3D11_TRACE_REGISTER_TYPE
  146. {
  147. D3D11_TRACE_OUTPUT_NULL_REGISTER = 0,
  148. D3D11_TRACE_INPUT_REGISTER = ( D3D11_TRACE_OUTPUT_NULL_REGISTER + 1 ) ,
  149. D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER = ( D3D11_TRACE_INPUT_REGISTER + 1 ) ,
  150. D3D11_TRACE_IMMEDIATE_CONSTANT_BUFFER = ( D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER + 1 ) ,
  151. D3D11_TRACE_TEMP_REGISTER = ( D3D11_TRACE_IMMEDIATE_CONSTANT_BUFFER + 1 ) ,
  152. D3D11_TRACE_INDEXABLE_TEMP_REGISTER = ( D3D11_TRACE_TEMP_REGISTER + 1 ) ,
  153. D3D11_TRACE_OUTPUT_REGISTER = ( D3D11_TRACE_INDEXABLE_TEMP_REGISTER + 1 ) ,
  154. D3D11_TRACE_OUTPUT_DEPTH_REGISTER = ( D3D11_TRACE_OUTPUT_REGISTER + 1 ) ,
  155. D3D11_TRACE_CONSTANT_BUFFER = ( D3D11_TRACE_OUTPUT_DEPTH_REGISTER + 1 ) ,
  156. D3D11_TRACE_IMMEDIATE32 = ( D3D11_TRACE_CONSTANT_BUFFER + 1 ) ,
  157. D3D11_TRACE_SAMPLER = ( D3D11_TRACE_IMMEDIATE32 + 1 ) ,
  158. D3D11_TRACE_RESOURCE = ( D3D11_TRACE_SAMPLER + 1 ) ,
  159. D3D11_TRACE_RASTERIZER = ( D3D11_TRACE_RESOURCE + 1 ) ,
  160. D3D11_TRACE_OUTPUT_COVERAGE_MASK = ( D3D11_TRACE_RASTERIZER + 1 ) ,
  161. D3D11_TRACE_STREAM = ( D3D11_TRACE_OUTPUT_COVERAGE_MASK + 1 ) ,
  162. D3D11_TRACE_THIS_POINTER = ( D3D11_TRACE_STREAM + 1 ) ,
  163. D3D11_TRACE_OUTPUT_CONTROL_POINT_ID_REGISTER = ( D3D11_TRACE_THIS_POINTER + 1 ) ,
  164. D3D11_TRACE_INPUT_FORK_INSTANCE_ID_REGISTER = ( D3D11_TRACE_OUTPUT_CONTROL_POINT_ID_REGISTER + 1 ) ,
  165. D3D11_TRACE_INPUT_JOIN_INSTANCE_ID_REGISTER = ( D3D11_TRACE_INPUT_FORK_INSTANCE_ID_REGISTER + 1 ) ,
  166. D3D11_TRACE_INPUT_CONTROL_POINT_REGISTER = ( D3D11_TRACE_INPUT_JOIN_INSTANCE_ID_REGISTER + 1 ) ,
  167. D3D11_TRACE_OUTPUT_CONTROL_POINT_REGISTER = ( D3D11_TRACE_INPUT_CONTROL_POINT_REGISTER + 1 ) ,
  168. D3D11_TRACE_INPUT_PATCH_CONSTANT_REGISTER = ( D3D11_TRACE_OUTPUT_CONTROL_POINT_REGISTER + 1 ) ,
  169. D3D11_TRACE_INPUT_DOMAIN_POINT_REGISTER = ( D3D11_TRACE_INPUT_PATCH_CONSTANT_REGISTER + 1 ) ,
  170. D3D11_TRACE_UNORDERED_ACCESS_VIEW = ( D3D11_TRACE_INPUT_DOMAIN_POINT_REGISTER + 1 ) ,
  171. D3D11_TRACE_THREAD_GROUP_SHARED_MEMORY = ( D3D11_TRACE_UNORDERED_ACCESS_VIEW + 1 ) ,
  172. D3D11_TRACE_INPUT_THREAD_ID_REGISTER = ( D3D11_TRACE_THREAD_GROUP_SHARED_MEMORY + 1 ) ,
  173. D3D11_TRACE_INPUT_THREAD_GROUP_ID_REGISTER = ( D3D11_TRACE_INPUT_THREAD_ID_REGISTER + 1 ) ,
  174. D3D11_TRACE_INPUT_THREAD_ID_IN_GROUP_REGISTER = ( D3D11_TRACE_INPUT_THREAD_GROUP_ID_REGISTER + 1 ) ,
  175. D3D11_TRACE_INPUT_COVERAGE_MASK_REGISTER = ( D3D11_TRACE_INPUT_THREAD_ID_IN_GROUP_REGISTER + 1 ) ,
  176. D3D11_TRACE_INPUT_THREAD_ID_IN_GROUP_FLATTENED_REGISTER = ( D3D11_TRACE_INPUT_COVERAGE_MASK_REGISTER + 1 ) ,
  177. D3D11_TRACE_INPUT_GS_INSTANCE_ID_REGISTER = ( D3D11_TRACE_INPUT_THREAD_ID_IN_GROUP_FLATTENED_REGISTER + 1 ) ,
  178. D3D11_TRACE_OUTPUT_DEPTH_GREATER_EQUAL_REGISTER = ( D3D11_TRACE_INPUT_GS_INSTANCE_ID_REGISTER + 1 ) ,
  179. D3D11_TRACE_OUTPUT_DEPTH_LESS_EQUAL_REGISTER = ( D3D11_TRACE_OUTPUT_DEPTH_GREATER_EQUAL_REGISTER + 1 ) ,
  180. D3D11_TRACE_IMMEDIATE64 = ( D3D11_TRACE_OUTPUT_DEPTH_LESS_EQUAL_REGISTER + 1 ) ,
  181. D3D11_TRACE_INPUT_CYCLE_COUNTER_REGISTER = ( D3D11_TRACE_IMMEDIATE64 + 1 ) ,
  182. D3D11_TRACE_INTERFACE_POINTER = ( D3D11_TRACE_INPUT_CYCLE_COUNTER_REGISTER + 1 )
  183. } D3D11_TRACE_REGISTER_TYPE;
  184. #define D3D11_TRACE_REGISTER_FLAGS_RELATIVE_INDEXING 0x1
  185. typedef struct D3D11_TRACE_REGISTER
  186. {
  187. D3D11_TRACE_REGISTER_TYPE RegType;
  188. union
  189. {
  190. UINT16 Index1D;
  191. UINT16 Index2D[ 2 ];
  192. } ;
  193. UINT8 OperandIndex;
  194. UINT8 Flags;
  195. } D3D11_TRACE_REGISTER;
  196. #define D3D11_TRACE_MISC_GS_EMIT 0x1
  197. #define D3D11_TRACE_MISC_GS_CUT 0x2
  198. #define D3D11_TRACE_MISC_PS_DISCARD 0x4
  199. #define D3D11_TRACE_MISC_GS_EMIT_STREAM 0x8
  200. #define D3D11_TRACE_MISC_GS_CUT_STREAM 0x10
  201. #define D3D11_TRACE_MISC_HALT 0x20
  202. #define D3D11_TRACE_MISC_MESSAGE 0x40
  203. typedef UINT16 D3D11_TRACE_MISC_OPERATIONS_MASK;
  204. typedef struct D3D11_TRACE_STEP
  205. {
  206. UINT ID;
  207. BOOL InstructionActive;
  208. UINT8 NumRegistersWritten;
  209. UINT8 NumRegistersRead;
  210. D3D11_TRACE_MISC_OPERATIONS_MASK MiscOperations;
  211. UINT OpcodeType;
  212. UINT64 CurrentGlobalCycle;
  213. } D3D11_TRACE_STEP;
  214. extern RPC_IF_HANDLE __MIDL_itf_d3d11ShaderTracing_0000_0000_v0_0_c_ifspec;
  215. extern RPC_IF_HANDLE __MIDL_itf_d3d11ShaderTracing_0000_0000_v0_0_s_ifspec;
  216. #ifndef __ID3D11ShaderTrace_INTERFACE_DEFINED__
  217. #define __ID3D11ShaderTrace_INTERFACE_DEFINED__
  218. /* interface ID3D11ShaderTrace */
  219. /* [unique][local][object][uuid] */
  220. EXTERN_C const IID IID_ID3D11ShaderTrace;
  221. #if defined(__cplusplus) && !defined(CINTERFACE)
  222. MIDL_INTERFACE("36b013e6-2811-4845-baa7-d623fe0df104")
  223. ID3D11ShaderTrace : public IUnknown
  224. {
  225. public:
  226. virtual HRESULT STDMETHODCALLTYPE TraceReady(
  227. /* [annotation] */
  228. _Out_opt_ UINT64 *pTestCount) = 0;
  229. virtual void STDMETHODCALLTYPE ResetTrace( void) = 0;
  230. virtual HRESULT STDMETHODCALLTYPE GetTraceStats(
  231. /* [annotation] */
  232. _Out_ D3D11_TRACE_STATS *pTraceStats) = 0;
  233. virtual HRESULT STDMETHODCALLTYPE PSSelectStamp(
  234. /* [annotation] */
  235. _In_ UINT stampIndex) = 0;
  236. virtual HRESULT STDMETHODCALLTYPE GetInitialRegisterContents(
  237. /* [annotation] */
  238. _In_ D3D11_TRACE_REGISTER *pRegister,
  239. /* [annotation] */
  240. _Out_ D3D11_TRACE_VALUE *pValue) = 0;
  241. virtual HRESULT STDMETHODCALLTYPE GetStep(
  242. /* [annotation] */
  243. _In_ UINT stepIndex,
  244. /* [annotation] */
  245. _Out_ D3D11_TRACE_STEP *pTraceStep) = 0;
  246. virtual HRESULT STDMETHODCALLTYPE GetWrittenRegister(
  247. /* [annotation] */
  248. _In_ UINT stepIndex,
  249. /* [annotation] */
  250. _In_ UINT writtenRegisterIndex,
  251. /* [annotation] */
  252. _Out_ D3D11_TRACE_REGISTER *pRegister,
  253. /* [annotation] */
  254. _Out_ D3D11_TRACE_VALUE *pValue) = 0;
  255. virtual HRESULT STDMETHODCALLTYPE GetReadRegister(
  256. /* [annotation] */
  257. _In_ UINT stepIndex,
  258. /* [annotation] */
  259. _In_ UINT readRegisterIndex,
  260. /* [annotation] */
  261. _Out_ D3D11_TRACE_REGISTER *pRegister,
  262. /* [annotation] */
  263. _Out_ D3D11_TRACE_VALUE *pValue) = 0;
  264. };
  265. #else /* C style interface */
  266. typedef struct ID3D11ShaderTraceVtbl
  267. {
  268. BEGIN_INTERFACE
  269. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  270. ID3D11ShaderTrace * This,
  271. /* [in] */ REFIID riid,
  272. /* [annotation][iid_is][out] */
  273. _COM_Outptr_ void **ppvObject);
  274. ULONG ( STDMETHODCALLTYPE *AddRef )(
  275. ID3D11ShaderTrace * This);
  276. ULONG ( STDMETHODCALLTYPE *Release )(
  277. ID3D11ShaderTrace * This);
  278. HRESULT ( STDMETHODCALLTYPE *TraceReady )(
  279. ID3D11ShaderTrace * This,
  280. /* [annotation] */
  281. _Out_opt_ UINT64 *pTestCount);
  282. void ( STDMETHODCALLTYPE *ResetTrace )(
  283. ID3D11ShaderTrace * This);
  284. HRESULT ( STDMETHODCALLTYPE *GetTraceStats )(
  285. ID3D11ShaderTrace * This,
  286. /* [annotation] */
  287. _Out_ D3D11_TRACE_STATS *pTraceStats);
  288. HRESULT ( STDMETHODCALLTYPE *PSSelectStamp )(
  289. ID3D11ShaderTrace * This,
  290. /* [annotation] */
  291. _In_ UINT stampIndex);
  292. HRESULT ( STDMETHODCALLTYPE *GetInitialRegisterContents )(
  293. ID3D11ShaderTrace * This,
  294. /* [annotation] */
  295. _In_ D3D11_TRACE_REGISTER *pRegister,
  296. /* [annotation] */
  297. _Out_ D3D11_TRACE_VALUE *pValue);
  298. HRESULT ( STDMETHODCALLTYPE *GetStep )(
  299. ID3D11ShaderTrace * This,
  300. /* [annotation] */
  301. _In_ UINT stepIndex,
  302. /* [annotation] */
  303. _Out_ D3D11_TRACE_STEP *pTraceStep);
  304. HRESULT ( STDMETHODCALLTYPE *GetWrittenRegister )(
  305. ID3D11ShaderTrace * This,
  306. /* [annotation] */
  307. _In_ UINT stepIndex,
  308. /* [annotation] */
  309. _In_ UINT writtenRegisterIndex,
  310. /* [annotation] */
  311. _Out_ D3D11_TRACE_REGISTER *pRegister,
  312. /* [annotation] */
  313. _Out_ D3D11_TRACE_VALUE *pValue);
  314. HRESULT ( STDMETHODCALLTYPE *GetReadRegister )(
  315. ID3D11ShaderTrace * This,
  316. /* [annotation] */
  317. _In_ UINT stepIndex,
  318. /* [annotation] */
  319. _In_ UINT readRegisterIndex,
  320. /* [annotation] */
  321. _Out_ D3D11_TRACE_REGISTER *pRegister,
  322. /* [annotation] */
  323. _Out_ D3D11_TRACE_VALUE *pValue);
  324. END_INTERFACE
  325. } ID3D11ShaderTraceVtbl;
  326. interface ID3D11ShaderTrace
  327. {
  328. CONST_VTBL struct ID3D11ShaderTraceVtbl *lpVtbl;
  329. };
  330. #ifdef COBJMACROS
  331. #define ID3D11ShaderTrace_QueryInterface(This,riid,ppvObject) \
  332. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  333. #define ID3D11ShaderTrace_AddRef(This) \
  334. ( (This)->lpVtbl -> AddRef(This) )
  335. #define ID3D11ShaderTrace_Release(This) \
  336. ( (This)->lpVtbl -> Release(This) )
  337. #define ID3D11ShaderTrace_TraceReady(This,pTestCount) \
  338. ( (This)->lpVtbl -> TraceReady(This,pTestCount) )
  339. #define ID3D11ShaderTrace_ResetTrace(This) \
  340. ( (This)->lpVtbl -> ResetTrace(This) )
  341. #define ID3D11ShaderTrace_GetTraceStats(This,pTraceStats) \
  342. ( (This)->lpVtbl -> GetTraceStats(This,pTraceStats) )
  343. #define ID3D11ShaderTrace_PSSelectStamp(This,stampIndex) \
  344. ( (This)->lpVtbl -> PSSelectStamp(This,stampIndex) )
  345. #define ID3D11ShaderTrace_GetInitialRegisterContents(This,pRegister,pValue) \
  346. ( (This)->lpVtbl -> GetInitialRegisterContents(This,pRegister,pValue) )
  347. #define ID3D11ShaderTrace_GetStep(This,stepIndex,pTraceStep) \
  348. ( (This)->lpVtbl -> GetStep(This,stepIndex,pTraceStep) )
  349. #define ID3D11ShaderTrace_GetWrittenRegister(This,stepIndex,writtenRegisterIndex,pRegister,pValue) \
  350. ( (This)->lpVtbl -> GetWrittenRegister(This,stepIndex,writtenRegisterIndex,pRegister,pValue) )
  351. #define ID3D11ShaderTrace_GetReadRegister(This,stepIndex,readRegisterIndex,pRegister,pValue) \
  352. ( (This)->lpVtbl -> GetReadRegister(This,stepIndex,readRegisterIndex,pRegister,pValue) )
  353. #endif /* COBJMACROS */
  354. #endif /* C style interface */
  355. #endif /* __ID3D11ShaderTrace_INTERFACE_DEFINED__ */
  356. #ifndef __ID3D11ShaderTraceFactory_INTERFACE_DEFINED__
  357. #define __ID3D11ShaderTraceFactory_INTERFACE_DEFINED__
  358. /* interface ID3D11ShaderTraceFactory */
  359. /* [unique][local][object][uuid] */
  360. EXTERN_C const IID IID_ID3D11ShaderTraceFactory;
  361. #if defined(__cplusplus) && !defined(CINTERFACE)
  362. MIDL_INTERFACE("1fbad429-66ab-41cc-9617-667ac10e4459")
  363. ID3D11ShaderTraceFactory : public IUnknown
  364. {
  365. public:
  366. virtual HRESULT STDMETHODCALLTYPE CreateShaderTrace(
  367. /* [annotation] */
  368. _In_ IUnknown *pShader,
  369. /* [annotation] */
  370. _In_ D3D11_SHADER_TRACE_DESC *pTraceDesc,
  371. /* [annotation] */
  372. _COM_Outptr_ ID3D11ShaderTrace **ppShaderTrace) = 0;
  373. };
  374. #else /* C style interface */
  375. typedef struct ID3D11ShaderTraceFactoryVtbl
  376. {
  377. BEGIN_INTERFACE
  378. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  379. ID3D11ShaderTraceFactory * This,
  380. /* [in] */ REFIID riid,
  381. /* [annotation][iid_is][out] */
  382. _COM_Outptr_ void **ppvObject);
  383. ULONG ( STDMETHODCALLTYPE *AddRef )(
  384. ID3D11ShaderTraceFactory * This);
  385. ULONG ( STDMETHODCALLTYPE *Release )(
  386. ID3D11ShaderTraceFactory * This);
  387. HRESULT ( STDMETHODCALLTYPE *CreateShaderTrace )(
  388. ID3D11ShaderTraceFactory * This,
  389. /* [annotation] */
  390. _In_ IUnknown *pShader,
  391. /* [annotation] */
  392. _In_ D3D11_SHADER_TRACE_DESC *pTraceDesc,
  393. /* [annotation] */
  394. _COM_Outptr_ ID3D11ShaderTrace **ppShaderTrace);
  395. END_INTERFACE
  396. } ID3D11ShaderTraceFactoryVtbl;
  397. interface ID3D11ShaderTraceFactory
  398. {
  399. CONST_VTBL struct ID3D11ShaderTraceFactoryVtbl *lpVtbl;
  400. };
  401. #ifdef COBJMACROS
  402. #define ID3D11ShaderTraceFactory_QueryInterface(This,riid,ppvObject) \
  403. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  404. #define ID3D11ShaderTraceFactory_AddRef(This) \
  405. ( (This)->lpVtbl -> AddRef(This) )
  406. #define ID3D11ShaderTraceFactory_Release(This) \
  407. ( (This)->lpVtbl -> Release(This) )
  408. #define ID3D11ShaderTraceFactory_CreateShaderTrace(This,pShader,pTraceDesc,ppShaderTrace) \
  409. ( (This)->lpVtbl -> CreateShaderTrace(This,pShader,pTraceDesc,ppShaderTrace) )
  410. #endif /* COBJMACROS */
  411. #endif /* C style interface */
  412. #endif /* __ID3D11ShaderTraceFactory_INTERFACE_DEFINED__ */
  413. /* interface __MIDL_itf_d3d11ShaderTracing_0000_0002 */
  414. /* [local] */
  415. HRESULT WINAPI
  416. D3DDisassemble11Trace(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
  417. _In_ SIZE_T SrcDataSize,
  418. _In_ ID3D11ShaderTrace* pTrace,
  419. _In_ UINT StartStep,
  420. _In_ UINT NumSteps,
  421. _In_ UINT Flags,
  422. _COM_Outptr_ interface ID3D10Blob** ppDisassembly);
  423. extern RPC_IF_HANDLE __MIDL_itf_d3d11ShaderTracing_0000_0002_v0_0_c_ifspec;
  424. extern RPC_IF_HANDLE __MIDL_itf_d3d11ShaderTracing_0000_0002_v0_0_s_ifspec;
  425. /* Additional Prototypes for ALL interfaces */
  426. /* end of Additional Prototypes */
  427. #ifdef __cplusplus
  428. }
  429. #endif
  430. #endif