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