RetroArch
d3dcompiler.h
Go to the documentation of this file.
1 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // File: D3DCompiler.h
6 // Content: D3D Compilation Types and APIs
7 //
9 
10 #ifndef __D3DCOMPILER_H__
11 #define __D3DCOMPILER_H__
12 
13 /*#include <winapifamily.h>*/
14 
15 // Current name of the DLL shipped in the same SDK as this header.
16 
17 
18 
19 #define D3DCOMPILER_DLL_W L"d3dcompiler_47.dll"
20 #define D3DCOMPILER_DLL_A "d3dcompiler_47.dll"
21 
22 // Current HLSL compiler version.
23 
24 #define D3D_COMPILER_VERSION 47
25 
26 #ifdef UNICODE
27  #define D3DCOMPILER_DLL D3DCOMPILER_DLL_W
28 #else
29  #define D3DCOMPILER_DLL D3DCOMPILER_DLL_A
30 #endif
31 
32 #include "d3d11shader.h"
33 #include "d3d12shader.h"
34 
36 // APIs //////////////////////////////////////////////////////////////////////
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif //__cplusplus
42 
43 
44 /*#pragma region Application Family*/
45 /*#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)*/
46 
47 //----------------------------------------------------------------------------
48 // D3DReadFileToBlob:
49 // -----------------
50 // Simple helper routine to read a file on disk into memory
51 // for passing to other routines in this API.
52 //----------------------------------------------------------------------------
53 
54 HRESULT WINAPI
55 D3DReadFileToBlob(_In_ LPCWSTR pFileName,
56  _Out_ ID3DBlob** ppContents);
57 
58 //----------------------------------------------------------------------------
59 // D3DWriteBlobToFile:
60 // ------------------
61 // Simple helper routine to write a memory blob to a file on disk.
62 //----------------------------------------------------------------------------
63 
64 HRESULT WINAPI
65 D3DWriteBlobToFile(_In_ ID3DBlob* pBlob,
66  _In_ LPCWSTR pFileName,
67  _In_ BOOL bOverwrite);
68 
69 //----------------------------------------------------------------------------
70 // D3DCOMPILE flags:
71 // -----------------
72 // D3DCOMPILE_DEBUG
73 // Insert debug file/line/type/symbol information.
74 //
75 // D3DCOMPILE_SKIP_VALIDATION
76 // Do not validate the generated code against known capabilities and
77 // constraints. This option is only recommended when compiling shaders
78 // you KNOW will work. (ie. have compiled before without this option.)
79 // Shaders are always validated by D3D before they are set to the device.
80 //
81 // D3DCOMPILE_SKIP_OPTIMIZATION
82 // Instructs the compiler to skip optimization steps during code generation.
83 // Unless you are trying to isolate a problem in your code using this option
84 // is not recommended.
85 //
86 // D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
87 // Unless explicitly specified, matrices will be packed in row-major order
88 // on input and output from the shader.
89 //
90 // D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
91 // Unless explicitly specified, matrices will be packed in column-major
92 // order on input and output from the shader. This is generally more
93 // efficient, since it allows vector-matrix multiplication to be performed
94 // using a series of dot-products.
95 //
96 // D3DCOMPILE_PARTIAL_PRECISION
97 // Force all computations in resulting shader to occur at partial precision.
98 // This may result in faster evaluation of shaders on some hardware.
99 //
100 // D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
101 // Force compiler to compile against the next highest available software
102 // target for vertex shaders. This flag also turns optimizations off,
103 // and debugging on.
104 //
105 // D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
106 // Force compiler to compile against the next highest available software
107 // target for pixel shaders. This flag also turns optimizations off,
108 // and debugging on.
109 //
110 // D3DCOMPILE_NO_PRESHADER
111 // Disables Preshaders. Using this flag will cause the compiler to not
112 // pull out static expression for evaluation on the host cpu
113 //
114 // D3DCOMPILE_AVOID_FLOW_CONTROL
115 // Hint compiler to avoid flow-control constructs where possible.
116 //
117 // D3DCOMPILE_PREFER_FLOW_CONTROL
118 // Hint compiler to prefer flow-control constructs where possible.
119 //
120 // D3DCOMPILE_ENABLE_STRICTNESS
121 // By default, the HLSL/Effect compilers are not strict on deprecated syntax.
122 // Specifying this flag enables the strict mode. Deprecated syntax may be
123 // removed in a future release, and enabling syntax is a good way to make
124 // sure your shaders comply to the latest spec.
125 //
126 // D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
127 // This enables older shaders to compile to 4_0 targets.
128 //
129 // D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
130 // This enables a debug name to be generated based on source information.
131 // It requires D3DCOMPILE_DEBUG to be set, and is exclusive with
132 // D3DCOMPILE_DEBUG_NAME_FOR_BINARY.
133 //
134 // D3DCOMPILE_DEBUG_NAME_FOR_BINARY
135 // This enables a debug name to be generated based on compiled information.
136 // It requires D3DCOMPILE_DEBUG to be set, and is exclusive with
137 // D3DCOMPILE_DEBUG_NAME_FOR_SOURCE.
138 //
139 //----------------------------------------------------------------------------
140 
141 #define D3DCOMPILE_DEBUG (1 << 0)
142 #define D3DCOMPILE_SKIP_VALIDATION (1 << 1)
143 #define D3DCOMPILE_SKIP_OPTIMIZATION (1 << 2)
144 #define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR (1 << 3)
145 #define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR (1 << 4)
146 #define D3DCOMPILE_PARTIAL_PRECISION (1 << 5)
147 #define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT (1 << 6)
148 #define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT (1 << 7)
149 #define D3DCOMPILE_NO_PRESHADER (1 << 8)
150 #define D3DCOMPILE_AVOID_FLOW_CONTROL (1 << 9)
151 #define D3DCOMPILE_PREFER_FLOW_CONTROL (1 << 10)
152 #define D3DCOMPILE_ENABLE_STRICTNESS (1 << 11)
153 #define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
154 #define D3DCOMPILE_IEEE_STRICTNESS (1 << 13)
155 #define D3DCOMPILE_OPTIMIZATION_LEVEL0 (1 << 14)
156 #define D3DCOMPILE_OPTIMIZATION_LEVEL1 0
157 #define D3DCOMPILE_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15))
158 #define D3DCOMPILE_OPTIMIZATION_LEVEL3 (1 << 15)
159 #define D3DCOMPILE_RESERVED16 (1 << 16)
160 #define D3DCOMPILE_RESERVED17 (1 << 17)
161 #define D3DCOMPILE_WARNINGS_ARE_ERRORS (1 << 18)
162 #define D3DCOMPILE_RESOURCES_MAY_ALIAS (1 << 19)
163 #define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES (1 << 20)
164 #define D3DCOMPILE_ALL_RESOURCES_BOUND (1 << 21)
165 #define D3DCOMPILE_DEBUG_NAME_FOR_SOURCE (1 << 22)
166 #define D3DCOMPILE_DEBUG_NAME_FOR_BINARY (1 << 23)
167 
168 //----------------------------------------------------------------------------
169 // D3DCOMPILE_EFFECT flags:
170 // -------------------------------------
171 // These flags are passed in when creating an effect, and affect
172 // either compilation behavior or runtime effect behavior
173 //
174 // D3DCOMPILE_EFFECT_CHILD_EFFECT
175 // Compile this .fx file to a child effect. Child effects have no
176 // initializers for any shared values as these are initialied in the
177 // master effect (pool).
178 //
179 // D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS
180 // By default, performance mode is enabled. Performance mode
181 // disallows mutable state objects by preventing non-literal
182 // expressions from appearing in state object definitions.
183 // Specifying this flag will disable the mode and allow for mutable
184 // state objects.
185 //
186 //----------------------------------------------------------------------------
187 
188 #define D3DCOMPILE_EFFECT_CHILD_EFFECT (1 << 0)
189 #define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS (1 << 1)
190 
191 //----------------------------------------------------------------------------
192 // D3DCOMPILE Flags2:
193 // -----------------
194 // Root signature flags. (passed in Flags2)
195 #define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST 0
196 #define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 (1 << 4)
197 #define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 (1 << 5)
198 
199 //----------------------------------------------------------------------------
200 // D3DCompile:
201 // ----------
202 // Compile source text into bytecode appropriate for the given target.
203 //----------------------------------------------------------------------------
204 
205 // D3D_COMPILE_STANDARD_FILE_INCLUDE can be passed for pInclude in any
206 // API and indicates that a simple default include handler should be
207 // used. The include handler will include files relative to the
208 // current directory and files relative to the directory of the initial source
209 // file. When used with APIs like D3DCompile pSourceName must be a
210 // file name and the initial relative directory will be derived from it.
211 #define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
212 
213 HRESULT WINAPI
214 D3DCompile(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
215  _In_ SIZE_T SrcDataSize,
216  _In_opt_ LPCSTR pSourceName,
217  _In_reads_opt_(_Inexpressible_(pDefines->Name != NULL)) CONST D3D_SHADER_MACRO* pDefines,
218  _In_opt_ ID3DInclude* pInclude,
219  _In_opt_ LPCSTR pEntrypoint,
220  _In_ LPCSTR pTarget,
221  _In_ UINT Flags1,
222  _In_ UINT Flags2,
223  _Out_ ID3DBlob** ppCode,
224  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorMsgs);
225 
226 typedef HRESULT (WINAPI *pD3DCompile)
227  (LPCVOID pSrcData,
228  SIZE_T SrcDataSize,
229  LPCSTR pFileName,
230  CONST D3D_SHADER_MACRO* pDefines,
231  ID3DInclude* pInclude,
232  LPCSTR pEntrypoint,
233  LPCSTR pTarget,
234  UINT Flags1,
235  UINT Flags2,
236  ID3DBlob** ppCode,
237  ID3DBlob** ppErrorMsgs);
238 
239 #define D3DCOMPILE_SECDATA_MERGE_UAV_SLOTS 0x00000001
240 #define D3DCOMPILE_SECDATA_PRESERVE_TEMPLATE_SLOTS 0x00000002
241 #define D3DCOMPILE_SECDATA_REQUIRE_TEMPLATE_MATCH 0x00000004
242 
243 HRESULT WINAPI
244 D3DCompile2(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
245  _In_ SIZE_T SrcDataSize,
246  _In_opt_ LPCSTR pSourceName,
247  _In_reads_opt_(_Inexpressible_(pDefines->Name != NULL)) CONST D3D_SHADER_MACRO* pDefines,
248  _In_opt_ ID3DInclude* pInclude,
249  _In_ LPCSTR pEntrypoint,
250  _In_ LPCSTR pTarget,
251  _In_ UINT Flags1,
252  _In_ UINT Flags2,
253  _In_ UINT SecondaryDataFlags,
254  _In_reads_bytes_opt_(SecondaryDataSize) LPCVOID pSecondaryData,
255  _In_ SIZE_T SecondaryDataSize,
256  _Out_ ID3DBlob** ppCode,
257  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorMsgs);
258 
259 HRESULT WINAPI
260 D3DCompileFromFile(_In_ LPCWSTR pFileName,
261  _In_reads_opt_(_Inexpressible_(pDefines->Name != NULL)) CONST D3D_SHADER_MACRO* pDefines,
262  _In_opt_ ID3DInclude* pInclude,
263  _In_ LPCSTR pEntrypoint,
264  _In_ LPCSTR pTarget,
265  _In_ UINT Flags1,
266  _In_ UINT Flags2,
267  _Out_ ID3DBlob** ppCode,
268  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorMsgs);
269 
270 //----------------------------------------------------------------------------
271 // D3DPreprocess:
272 // -------------
273 // Process source text with the compiler's preprocessor and return
274 // the resulting text.
275 //----------------------------------------------------------------------------
276 
277 HRESULT WINAPI
278 D3DPreprocess(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
279  _In_ SIZE_T SrcDataSize,
280  _In_opt_ LPCSTR pSourceName,
281  _In_opt_ CONST D3D_SHADER_MACRO* pDefines,
282  _In_opt_ ID3DInclude* pInclude,
283  _Out_ ID3DBlob** ppCodeText,
284  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorMsgs);
285 
286 typedef HRESULT (WINAPI *pD3DPreprocess)
287  (LPCVOID pSrcData,
288  SIZE_T SrcDataSize,
289  LPCSTR pFileName,
290  CONST D3D_SHADER_MACRO* pDefines,
291  ID3DInclude* pInclude,
292  ID3DBlob** ppCodeText,
293  ID3DBlob** ppErrorMsgs);
294 
295 //----------------------------------------------------------------------------
296 // D3DGetDebugInfo:
297 // -----------------------
298 // Gets shader debug info. Debug info is generated by D3DCompile and is
299 // embedded in the body of the shader.
300 //----------------------------------------------------------------------------
301 
302 HRESULT WINAPI
303 D3DGetDebugInfo(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
304  _In_ SIZE_T SrcDataSize,
305  _Out_ ID3DBlob** ppDebugInfo);
306 
307 //----------------------------------------------------------------------------
308 // D3DReflect:
309 // ----------
310 // Shader code contains metadata that can be inspected via the
311 // reflection APIs.
312 //----------------------------------------------------------------------------
313 
314 HRESULT WINAPI
315 D3DReflect(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
316  _In_ SIZE_T SrcDataSize,
317  _In_ REFIID pInterface,
318  _Out_ void** ppReflector);
319 
320 //----------------------------------------------------------------------------
321 // D3DReflectLibrary:
322 // ----------
323 // Library code contains metadata that can be inspected via the library
324 // reflection APIs.
325 //----------------------------------------------------------------------------
326 
327 HRESULT WINAPI
328 D3DReflectLibrary(__in_bcount(SrcDataSize) LPCVOID pSrcData,
329  __in SIZE_T SrcDataSize,
330  __in REFIID riid,
331  __out LPVOID * ppReflector);
332 
333 //----------------------------------------------------------------------------
334 // D3DDisassemble:
335 // ----------------------
336 // Takes a binary shader and returns a buffer containing text assembly.
337 //----------------------------------------------------------------------------
338 
339 #define D3D_DISASM_ENABLE_COLOR_CODE 0x00000001
340 #define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS 0x00000002
341 #define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 0x00000004
342 #define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE 0x00000008
343 #define D3D_DISASM_DISABLE_DEBUG_INFO 0x00000010
344 #define D3D_DISASM_ENABLE_INSTRUCTION_OFFSET 0x00000020
345 #define D3D_DISASM_INSTRUCTION_ONLY 0x00000040
346 #define D3D_DISASM_PRINT_HEX_LITERALS 0x00000080
347 
348 HRESULT WINAPI
349 D3DDisassemble(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
350  _In_ SIZE_T SrcDataSize,
351  _In_ UINT Flags,
352  _In_opt_ LPCSTR szComments,
353  _Out_ ID3DBlob** ppDisassembly);
354 
355 typedef HRESULT (WINAPI *pD3DDisassemble)
356  (_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
357  _In_ SIZE_T SrcDataSize,
358  _In_ UINT Flags,
359  _In_opt_ LPCSTR szComments,
360  _Out_ ID3DBlob** ppDisassembly);
361 
362 HRESULT WINAPI
363 D3DDisassembleRegion(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
364  _In_ SIZE_T SrcDataSize,
365  _In_ UINT Flags,
366  _In_opt_ LPCSTR szComments,
367  _In_ SIZE_T StartByteOffset,
368  _In_ SIZE_T NumInsts,
369  _Out_opt_ SIZE_T* pFinishByteOffset,
370  _Out_ ID3DBlob** ppDisassembly);
371 
372 //----------------------------------------------------------------------------
373 // Shader linking and Function Linking Graph (FLG) APIs
374 //----------------------------------------------------------------------------
375 HRESULT WINAPI
376 D3DCreateLinker(__out interface ID3D11Linker ** ppLinker);
377 
378 HRESULT WINAPI
379 D3DLoadModule(_In_ LPCVOID pSrcData,
380  _In_ SIZE_T cbSrcDataSize,
381  _Out_ interface ID3D11Module ** ppModule);
382 
383 HRESULT WINAPI
385  _Out_ interface ID3D11FunctionLinkingGraph ** ppFunctionLinkingGraph);
386 
387 //----------------------------------------------------------------------------
388 // D3DGetTraceInstructionOffsets:
389 // -----------------------
390 // Determines byte offsets for instructions within a shader blob.
391 // This information is useful for going between trace instruction
392 // indices and byte offsets that are used in debug information.
393 //----------------------------------------------------------------------------
394 
395 #define D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE 0x00000001
396 
397 HRESULT WINAPI
398 D3DGetTraceInstructionOffsets(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
399  _In_ SIZE_T SrcDataSize,
400  _In_ UINT Flags,
401  _In_ SIZE_T StartInstIndex,
402  _In_ SIZE_T NumInsts,
403  _Out_writes_to_opt_(NumInsts, min(NumInsts, *pTotalInsts)) SIZE_T* pOffsets,
404  _Out_opt_ SIZE_T* pTotalInsts);
405 
406 //----------------------------------------------------------------------------
407 // D3DGetInputSignatureBlob:
408 // -----------------------
409 // Retrieve the input signature from a compilation result.
410 //----------------------------------------------------------------------------
411 
412 HRESULT WINAPI
413 D3DGetInputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
414  _In_ SIZE_T SrcDataSize,
415  _Out_ ID3DBlob** ppSignatureBlob);
416 
417 //----------------------------------------------------------------------------
418 // D3DGetOutputSignatureBlob:
419 // -----------------------
420 // Retrieve the output signature from a compilation result.
421 //----------------------------------------------------------------------------
422 
423 HRESULT WINAPI
424 D3DGetOutputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
425  _In_ SIZE_T SrcDataSize,
426  _Out_ ID3DBlob** ppSignatureBlob);
427 
428 //----------------------------------------------------------------------------
429 // D3DGetInputAndOutputSignatureBlob:
430 // -----------------------
431 // Retrieve the input and output signatures from a compilation result.
432 //----------------------------------------------------------------------------
433 
434 HRESULT WINAPI
435 D3DGetInputAndOutputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
436  _In_ SIZE_T SrcDataSize,
437  _Out_ ID3DBlob** ppSignatureBlob);
438 
439 //----------------------------------------------------------------------------
440 // D3DStripShader:
441 // -----------------------
442 // Removes unwanted blobs from a compilation result
443 //----------------------------------------------------------------------------
444 
446 {
454 
455 HRESULT WINAPI
456 D3DStripShader(_In_reads_bytes_(BytecodeLength) LPCVOID pShaderBytecode,
457  _In_ SIZE_T BytecodeLength,
458  _In_ UINT uStripFlags,
459  _Out_ ID3DBlob** ppStrippedBlob);
460 
461 //----------------------------------------------------------------------------
462 // D3DGetBlobPart:
463 // -----------------------
464 // Extracts information from a compilation result.
465 //----------------------------------------------------------------------------
466 
467 typedef enum D3D_BLOB_PART
468 {
482 
483  // Test parts are only produced by special compiler versions and so
484  // are usually not present in shaders.
489 } D3D_BLOB_PART;
490 
491 HRESULT WINAPI
492 D3DGetBlobPart(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
493  _In_ SIZE_T SrcDataSize,
494  _In_ D3D_BLOB_PART Part,
495  _In_ UINT Flags,
496  _Out_ ID3DBlob** ppPart);
497 
498 //----------------------------------------------------------------------------
499 // D3DSetBlobPart:
500 // -----------------------
501 // Update information in a compilation result.
502 //----------------------------------------------------------------------------
503 
504 HRESULT WINAPI
505 D3DSetBlobPart(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
506  _In_ SIZE_T SrcDataSize,
507  _In_ D3D_BLOB_PART Part,
508  _In_ UINT Flags,
509  _In_reads_bytes_(PartSize) LPCVOID pPart,
510  _In_ SIZE_T PartSize,
511  _Out_ ID3DBlob** ppNewShader);
512 
513 //----------------------------------------------------------------------------
514 // D3DCreateBlob:
515 // -----------------------
516 // Create an ID3DBlob instance.
517 //----------------------------------------------------------------------------
518 
519 HRESULT WINAPI
520 D3DCreateBlob(_In_ SIZE_T Size,
521  _Out_ ID3DBlob** ppBlob);
522 
523 //----------------------------------------------------------------------------
524 // D3DCompressShaders:
525 // -----------------------
526 // Compresses a set of shaders into a more compact form.
527 //----------------------------------------------------------------------------
528 
529 typedef struct _D3D_SHADER_DATA
530 {
531  LPCVOID pBytecode;
534 
535 #define D3D_COMPRESS_SHADER_KEEP_ALL_PARTS 0x00000001
536 
537 HRESULT WINAPI
538 D3DCompressShaders(_In_ UINT uNumShaders,
539  _In_reads_(uNumShaders) D3D_SHADER_DATA* pShaderData,
540  _In_ UINT uFlags,
541  _Out_ ID3DBlob** ppCompressedData);
542 
543 //----------------------------------------------------------------------------
544 // D3DDecompressShaders:
545 // -----------------------
546 // Decompresses one or more shaders from a compressed set.
547 //----------------------------------------------------------------------------
548 
549 HRESULT WINAPI
550 D3DDecompressShaders(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
551  _In_ SIZE_T SrcDataSize,
552  _In_ UINT uNumShaders,
553  _In_ UINT uStartIndex,
554  _In_reads_opt_(uNumShaders) UINT* pIndices,
555  _In_ UINT uFlags,
556  _Out_writes_(uNumShaders) ID3DBlob** ppShaders,
557  _Out_opt_ UINT* pTotalShaders);
558 
559 /*#endif*/ /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
560 /*#pragma endregion*/
561 
562 
563 /*#pragma region Desktop Family*/
564 /*#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/
565 
566 //----------------------------------------------------------------------------
567 // D3DDisassemble10Effect:
568 // -----------------------
569 // Takes a D3D10 effect interface and returns a
570 // buffer containing text assembly.
571 //----------------------------------------------------------------------------
572 
573 HRESULT WINAPI
575  _In_ UINT Flags,
576  _Out_ ID3DBlob** ppDisassembly);
577 
578 /*#endif*/ /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
579 /*#pragma endregion*/
580 
581 
582 #ifdef __cplusplus
583 }
584 #endif //__cplusplus
585 
586 #endif // #ifndef __D3DCOMPILER_H__
D3DCOMPILER_STRIP_FLAGS
Definition: d3dcompiler.h:445
HRESULT WINAPI D3DReflect(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ REFIID pInterface, _Out_ void **ppReflector)
HRESULT WINAPI D3DCreateBlob(_In_ SIZE_T Size, _Out_ ID3DBlob **ppBlob)
Definition: d3dcompiler.h:472
Unknown compiler Device disconnected from port File already exists Saving to backup buffer Got connection Port Mapping Successful No arguments supplied and no menu displaying help Waiting for client You have joined as player u Player *s has left the game *s has joined with input devices *s The netplay peer is running an old version of RetroArch Cannot connect A netplay peer is running a different core Cannot connect This core does not support inter architecture netplay between these systems Enter netplay server Incorrect password A netplay client has disconnected You do not have permission to play The input devices requested are not available Netplay peer s paused Give hardware rendered cores their own private context Avoids having to assume hardware state changes inbetween frames Adjusts menu screen appearance settings Improves performance at the cost of latency and more video stuttering Use only if you cannot obtain full speed otherwise Autodetect Capabilities Connecting to port Password Username Accounts List Endpoint Achievements Resume Achievements Hardcore Mode Scan Content Import content Ask Block Frames Audio Driver Audio Enable Turbo Deadzone Audio Maximum Timing Skew Audio Output Dynamic Audio Rate Control Audio Audio Volume WASAPI Exclusive Mode WASAPI Shared Buffer Length Load Override Files Automatically Load Shader Presets Automatically Confirm Quit Scroll Up Toggle Keyboard Basic menu controls Info Scroll Up Toggle Keyboard Don t overwrite SaveRAM on loading savestate Buildbot Assets URL Allow Camera Cheat Start Search For New Cheat Code Cheat File Load Cheat Load Cheat Save Cheat File As Description Leaderboards Locked Locked Test Unofficial Achievements Unlocked Verbose Mode Close Content Load Configuration Save Configuration on Exit Database History List Size Quick Menu Downloads Core Counters Core Information Categories Core name Permissions System manufacturer Controls Install or Restore a Core Core installation succesful Core Automatically extract downloaded archive Core Updater CPU CPU Cursor Custom Ratio Database Selection Start directory< Default > Directory not found Disk Cycle Tray Status Disk Index Don t care Download a Core DPI Override Enable Driver Check for Missing Firmware Before Loading Dynamic Backgrounds Menu entry hover color False Favorites Include Memory Details Sync to Exact Content Frame Throttle Load Content Specific Core Options Automatically Save Game options file Audio Video Troubleshooting Basic Menu Controls Loading Content What Is A Core History Image Information All Users Control Menu Left analog Left analog Left Analog Y Left analog Right Analog X Right analog Right Analog Y Right analog Gun Trigger Gun Aux A Gun Aux C Gun Select Gun D pad Down Gun D pad Right Analog Stick Deadzone Bind All Bind Timeout Hide Unbound Core Input Descriptors Device Index Mouse Index Duty Cycle Keyboard Gamepad Mapping Enable B Down D pad L3 L Left D pad R3 R Right D pad Start button X Y Mouse Mouse Mouse Wheel Down Wheel Right Max Users Cheat index Cheat toggle Disk next Enable hotkeys Fast forward toggle FPS toggle Grab mouse toggle Desktop menu toggle Menu toggle Audio mute toggle On screen keyboard toggle Pause toggle Reset game Cheat Details Save state Next shader Slow motion hold Savestate slot Volume Display Overlay Show Inputs On Overlay Poll Type Behavior Late Prefer Front Touch Remap Binds Enable Input Touch Enable Turbo Period Latency Input Autoconfig Services Dutch Esperanto German Japanese Polish Russian Vietnamese Greek Core Core Logging Level Load Archive Load Content Allow Location Logging Main Menu Menu Color Theme Blue Grey Green Red Footer Opacity Menu Driver Settings Horizontal Animation Background Missing Mouse Support Music Navigation Wrap Around Netplay Netplay Check Frames Input Latency Frames Range Disconnect from netplay host Connect to netplay host Stop netplay host Scan local network Username Publicly Announce Netplay Disallow Non Slave Mode Clients Analog Input Sharing Average Share Vote No preference Netplay Stateless Mode Netplay Spectator Enable Netplay NAT Traversal Network Command Port Network Gamepad Network None No achievements to display No cores available No core options available No history available No items No networks found No playlists No settings found OFF Online Onscreen Display Adjust Bezels and Onscreen controls Adjust the Onscreen Notifications Optional Autoload Preferred Overlay Overlay Opacity Overlay Scale Use PAL60 Mode Pause when menu activated Performance Counters Playlist Touch Support Present MIDI Analog supported CERO Rating CRC32 Developer Edge Magazine Rating ELSPA Rating ESRB Rating Franchise MD5 Origin Publisher Releasedate Year Serial Start Content Reboot Recording Output Custom Record Config Record Driver Enable Recording Save Recordings in Output Dir Load Remap File Save Content Directory Remap File Delete Core Remap File Delete Game Content Directory Remap File Restart Resume RetroKeyboard RetroPad w Analog Rewind Enable Auto Apply Cheats During Game Load Rewind Buffer Size(MB)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE_STEP
HRESULT(WINAPI * pD3DDisassemble)(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ UINT Flags, _In_opt_ LPCSTR szComments, _Out_ ID3DBlob **ppDisassembly)
Definition: d3dcompiler.h:356
Definition: d3dcompiler.h:486
HRESULT WINAPI D3DGetDebugInfo(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _Out_ ID3DBlob **ppDebugInfo)
Definition: d3dcompiler.h:474
Definition: d3dcommon.h:344
HRESULT WINAPI D3DStripShader(_In_reads_bytes_(BytecodeLength) LPCVOID pShaderBytecode, _In_ SIZE_T BytecodeLength, _In_ UINT uStripFlags, _Out_ ID3DBlob **ppStrippedBlob)
HRESULT WINAPI D3DReadFileToBlob(_In_ LPCWSTR pFileName, _Out_ ID3DBlob **ppContents)
Definition: d3dcompiler.h:473
HRESULT WINAPI D3DGetInputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _Out_ ID3DBlob **ppSignatureBlob)
HRESULT WINAPI D3DGetTraceInstructionOffsets(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ UINT Flags, _In_ SIZE_T StartInstIndex, _In_ SIZE_T NumInsts, _Out_writes_to_opt_(NumInsts, min(NumInsts, *pTotalInsts)) SIZE_T *pOffsets, _Out_opt_ SIZE_T *pTotalInsts)
Definition: d3dcompiler.h:481
Definition: d3dcompiler.h:478
typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
Definition: d3dcompiler.h:452
HRESULT WINAPI D3DCompressShaders(_In_ UINT uNumShaders, _In_reads_(uNumShaders) D3D_SHADER_DATA *pShaderData, _In_ UINT uFlags, _Out_ ID3DBlob **ppCompressedData)
HRESULT WINAPI D3DSetBlobPart(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ D3D_BLOB_PART Part, _In_ UINT Flags, _In_reads_bytes_(PartSize) LPCVOID pPart, _In_ SIZE_T PartSize, _Out_ ID3DBlob **ppNewShader)
_Outptr_ IUnknown ** pEffect
Definition: xapofx.h:175
_Outptr_ IUnknown _In_reads_bytes_opt_(InitDataByteSize) const void *pInitData
Definition: d3dcompiler.h:488
HRESULT WINAPI D3DReflectLibrary(__in_bcount(SrcDataSize) LPCVOID pSrcData, __in SIZE_T SrcDataSize, __in REFIID riid, __out LPVOID *ppReflector)
Definition: d3dcompiler.h:477
HRESULT WINAPI D3DDisassemble(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ UINT Flags, _In_opt_ LPCSTR szComments, _Out_ ID3DBlob **ppDisassembly)
Definition: d3dcompiler.h:479
HRESULT WINAPI D3DCreateLinker(__out interface ID3D11Linker **ppLinker)
#define NULL
Pointer to 0.
Definition: gctypes.h:65
_In_ D3D_ROOT_SIGNATURE_VERSION _Out_ ID3DBlob ** ppBlob
Definition: d3d12.h:3372
SIZE_T BytecodeLength
Definition: d3dcompiler.h:532
Definition: d3dcompiler.h:447
HRESULT WINAPI D3DWriteBlobToFile(_In_ ID3DBlob *pBlob, _In_ LPCWSTR pFileName, _In_ BOOL bOverwrite)
HRESULT WINAPI D3DCreateFunctionLinkingGraph(_In_ UINT uFlags, _Out_ interface ID3D11FunctionLinkingGraph **ppFunctionLinkingGraph)
HRESULT WINAPI D3DGetBlobPart(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ D3D_BLOB_PART Part, _In_ UINT Flags, _Out_ ID3DBlob **ppPart)
LPCVOID pBytecode
Definition: d3dcompiler.h:531
Definition: d3dcompiler.h:487
Definition: d3dcompiler.h:469
HRESULT WINAPI D3DCompile2(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_opt_ LPCSTR pSourceName, _In_reads_opt_(_Inexpressible_(pDefines->Name !=NULL)) CONST D3D_SHADER_MACRO *pDefines, _In_opt_ ID3DInclude *pInclude, _In_ LPCSTR pEntrypoint, _In_ LPCSTR pTarget, _In_ UINT Flags1, _In_ UINT Flags2, _In_ UINT SecondaryDataFlags, _In_reads_bytes_opt_(SecondaryDataSize) LPCVOID pSecondaryData, _In_ SIZE_T SecondaryDataSize, _Out_ ID3DBlob **ppCode, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs)
Definition: d3dcompiler.h:450
HRESULT WINAPI D3DPreprocess(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_opt_ LPCSTR pSourceName, _In_opt_ CONST D3D_SHADER_MACRO *pDefines, _In_opt_ ID3DInclude *pInclude, _Out_ ID3DBlob **ppCodeText, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs)
HRESULT WINAPI D3DDecompressShaders(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ UINT uNumShaders, _In_ UINT uStartIndex, _In_reads_opt_(uNumShaders) UINT *pIndices, _In_ UINT uFlags, _Out_writes_(uNumShaders) ID3DBlob **ppShaders, _Out_opt_ UINT *pTotalShaders)
Definition: d3dcompiler.h:480
D3D_BLOB_PART
Definition: d3dcompiler.h:467
ID3D10Blob ID3DBlob
Definition: d3dcommon.h:448
HRESULT WINAPI D3DCompileFromFile(_In_ LPCWSTR pFileName, _In_reads_opt_(_Inexpressible_(pDefines->Name !=NULL)) CONST D3D_SHADER_MACRO *pDefines, _In_opt_ ID3DInclude *pInclude, _In_ LPCSTR pEntrypoint, _In_ LPCSTR pTarget, _In_ UINT Flags1, _In_ UINT Flags2, _Out_ ID3DBlob **ppCode, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs)
interface ID3D10Effect ID3D10Effect
Definition: d3d10effect.h:1305
HRESULT WINAPI D3DCompile(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_opt_ LPCSTR pSourceName, _In_reads_opt_(_Inexpressible_(pDefines->Name !=NULL)) CONST D3D_SHADER_MACRO *pDefines, _In_opt_ ID3DInclude *pInclude, _In_opt_ LPCSTR pEntrypoint, _In_ LPCSTR pTarget, _In_ UINT Flags1, _In_ UINT Flags2, _Out_ ID3DBlob **ppCode, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs)
Definition: d3dcompiler.h:529
Definition: d3dcompiler.h:471
unsigned int BOOL
Definition: gctypes.h:51
Definition: d3dcompiler.h:476
HRESULT WINAPI D3DDisassemble10Effect(_In_ interface ID3D10Effect *pEffect, _In_ UINT Flags, _Out_ ID3DBlob **ppDisassembly)
Definition: d3dcompiler.h:470
Definition: glslang_tab.cpp:136
HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _Out_ ID3DBlob **ppSignatureBlob)
Definition: d3dcompiler.h:475
Definition: glslang_tab.cpp:133
_In_ D3D_ROOT_SIGNATURE_VERSION _Out_ ID3DBlob _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorBlob)
Definition: d3d12.h:3374
struct _D3D_SHADER_DATA D3D_SHADER_DATA
Definition: d3dcompiler.h:451
HRESULT(WINAPI * pD3DCompile)(LPCVOID pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D_SHADER_MACRO *pDefines, ID3DInclude *pInclude, LPCSTR pEntrypoint, LPCSTR pTarget, UINT Flags1, UINT Flags2, ID3DBlob **ppCode, ID3DBlob **ppErrorMsgs)
Definition: d3dcompiler.h:227
HRESULT WINAPI D3DLoadModule(_In_ LPCVOID pSrcData, _In_ SIZE_T cbSrcDataSize, _Out_ interface ID3D11Module **ppModule)
Definition: d3dcompiler.h:485
HRESULT(WINAPI * pD3DPreprocess)(LPCVOID pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D_SHADER_MACRO *pDefines, ID3DInclude *pInclude, ID3DBlob **ppCodeText, ID3DBlob **ppErrorMsgs)
Definition: d3dcompiler.h:287
HRESULT WINAPI D3DDisassembleRegion(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_ UINT Flags, _In_opt_ LPCSTR szComments, _In_ SIZE_T StartByteOffset, _In_ SIZE_T NumInsts, _Out_opt_ SIZE_T *pFinishByteOffset, _Out_ ID3DBlob **ppDisassembly)
Definition: d3dcompiler.h:449
Definition: d3dcompiler.h:448
HRESULT WINAPI D3DGetOutputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _Out_ ID3DBlob **ppSignatureBlob)
interface ID3DInclude ID3DInclude
Definition: d3dcommon.h:575