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