Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
9887b09
Added rewriter option ConsistentBindings (-consistent-bindings) for t…
Nielsbishere Jul 14, 2025
8454274
Option -consistent-bindings now properly generates bindings for not f…
Nielsbishere Jul 15, 2025
f60c594
Added a test for generating consistent bindings and changed tests to …
Nielsbishere Jul 15, 2025
74283d1
Applied clang format
Nielsbishere Jul 16, 2025
94bc9e9
Added a 'reflect HLSL' argument to the rewriter (-reflect-hlsl). Curr…
Nielsbishere Aug 2, 2025
f9b0090
Enums now have a type and started thinking about function parameters,…
Nielsbishere Aug 2, 2025
75b63ca
Added a language option for 'PreserveUnknownAnnotations', this is a t…
Nielsbishere Aug 3, 2025
8af90b7
RecursiveReflectHLSL will temporarily flatten the descriptor array, T…
Nielsbishere Aug 3, 2025
a78fbcc
Now supporting multi dimensional register arrays for -consistent-bind…
Nielsbishere Aug 3, 2025
7f42181
Renamed Dxc reflection structs to DxcHLSL to separate it. Now exposin…
Nielsbishere Aug 3, 2025
092532b
Added multiple reflection settings to determine what the user wants t…
Nielsbishere Aug 5, 2025
a520504
Started defining DxcHLSLParameter, pretty close to finishing DxcHLSLR…
Nielsbishere Aug 14, 2025
4c572c0
Now storing strings as an index, now handling arrays of sugared types…
Nielsbishere Aug 14, 2025
85b0976
Variable is now very minimal, the localId points to the type node and…
Nielsbishere Aug 27, 2025
76c33fc
Added struct members and now also going through registers that have b…
Nielsbishere Aug 27, 2025
ad65161
Removal of bit fields to allow consistent writing to disk regardless …
Nielsbishere Aug 28, 2025
18b14ca
Flattened DxcHLSLType by adding a DxcHLSLMember array to DxcReflectio…
Nielsbishere Aug 28, 2025
fcd0666
DxcHLSLNode doesn't use bit fields anymore. Implemented operator== al…
Nielsbishere Aug 28, 2025
49a7031
Registers now add buffer information if relevant. Added some validati…
NielsbishereAlt Aug 30, 2025
c590bd9
Added full validation for the loaded reflection binary to ensure no i…
Nielsbishere Aug 30, 2025
94b18be
Renamed hlsl function internals feature to scopes to better reflect w…
Nielsbishere Aug 30, 2025
ece3cb1
Added option to disable debug info, which is useful if you want the A…
Nielsbishere Aug 30, 2025
3598581
Added ability to compare two ASTs without checking debug data to chec…
Nielsbishere Aug 30, 2025
289ad18
Added ability to generate 'fully resolved' member names and struct/fu…
Nielsbishere Aug 30, 2025
693d3b7
Added support for inheritance and annotations can now either be 'buil…
Nielsbishere Aug 31, 2025
884d43b
Refactored to put reflection logic into a standalone library. Fixed a…
Nielsbishere Aug 31, 2025
0eeb173
Removed rewriter option -consistent-bindings and now doing it in the …
Nielsbishere Sep 1, 2025
1933c52
Removed binding point and binding space from DxcHLSLRegister since th…
Nielsbishere Sep 9, 2025
11ec78b
Added a node API to IDxcHLSLReflection to allow querying symbols as w…
Nielsbishere Sep 9, 2025
c415cb2
Fixed some issues with building
Nielsbishere Sep 9, 2025
25a2000
A node can now actually break the DAG, you can now point between the …
Nielsbishere Sep 17, 2025
791d6a7
Fixed printing forward declarations and the frontend now skips forwar…
Nielsbishere Sep 19, 2025
8846113
Fixed stripping of inner sugar of StructuredBuffer<T> aka <F32> would…
Nielsbishere Sep 20, 2025
80f02ce
Implemented handling of $Globals in both frontend and backend.
Nielsbishere Sep 20, 2025
353ba42
Querying an undefined function is now allowed from the frontend, sinc…
Nielsbishere Sep 20, 2025
627777d
Extended D3D12_SHADER_INPUT_BIND_DESC to allow querying multi dimensi…
Nielsbishere Sep 20, 2025
bd7e1e3
Now properly ignoring groupshared
Nielsbishere Sep 20, 2025
4f53503
Added dxreflector.exe to be able to spit out a reflection object from…
Nielsbishere Sep 20, 2025
c643880
Implemented serialization and deserialization from a reflection blob
Nielsbishere Sep 20, 2025
f21a204
Added ReflectOption for dxreflector.exe. Moved all reflection options…
Nielsbishere Sep 21, 2025
0248f29
Removed unused variables from setup in dxreflector.exe. -D now proper…
Nielsbishere Sep 21, 2025
d728f73
Fixed implicit functions causing problems with ->getName()
Nielsbishere Sep 21, 2025
0ae49a4
Added ability to specify -T with the dxreflector.exe, in case -enable…
Nielsbishere Sep 22, 2025
ec241f8
Removed reflect-variables from dxreflector. Implemented static variab…
Nielsbishere Sep 26, 2025
bf0c462
Added semanticId to DxcHLSLNode, this points to a non debug string th…
Nielsbishere Sep 26, 2025
98e86b5
Interfaces support: DxcHLSLType can now properly point to interfaces.…
Nielsbishere Sep 27, 2025
f6cce18
Implemented IsEqual and IsOfType in CHLSLReflectionType
Nielsbishere Sep 27, 2025
450fec3
Added support for variables of builtin object types such as (RW)Textu…
Nielsbishere Sep 27, 2025
04da70e
Replaced asserts that have to deal with bit limits with std::invalid_…
Nielsbishere Sep 27, 2025
a5f34e0
Added logic to prune the template arguments from builtin HLSL types a…
Nielsbishere Sep 27, 2025
07db5f3
Added parameters to backend; they're quite simple, just a type and in…
Nielsbishere Sep 30, 2025
64fb566
Added function parameters to frontend.
NielsbishereAlt Oct 3, 2025
1559552
Added scopes; the inner body of functions can now be reflected.
NielsbishereAlt Oct 3, 2025
5ef0715
Added DxcHLSLIf to handle control flow in a function. THe if is quite…
NielsbishereAlt Oct 13, 2025
ccf035d
Can now handle scopes inside of a body. It also validates with the sa…
NielsbishereAlt Oct 13, 2025
83b3321
Now fixed every if/else introducing unncessary scopes
NielsbishereAlt Oct 13, 2025
9195605
Added do
NielsbishereAlt Oct 13, 2025
d6305af
Added DxcHLSLForWhileSwitch temporarily, though likely it'll change t…
NielsbishereAlt Oct 13, 2025
e23146b
Unified if/switch/while/for into DxcHLSLStatement. This can handle co…
NielsbishereAlt Oct 14, 2025
8be6f76
Added DxcHLSLArrayOrElements to wrap the concept of having either an …
Nielsbishere Oct 22, 2025
382ad40
Fixed annotations/attributes on for/if loops
Nielsbishere Oct 24, 2025
e81b93c
Removed clang dependent logic from dxcreflection to allow it to be us…
Nielsbishere Oct 25, 2025
34f0f5f
Changed from a long if chain to a visitor pattern to be cleaner, fast…
Nielsbishere Oct 25, 2025
0f66dce
Moved Stmt traversal into a visitor StmtVisitor pattern
Nielsbishere Oct 26, 2025
844c79e
Changed exceptions to DxcReflectionError which is just a const char* …
Nielsbishere Oct 29, 2025
bb6c8df
Removed all throws from AST traversal. Only need to fix the ones in d…
Nielsbishere Oct 29, 2025
41abd76
Added an index to DxcReflectionError for when the error is thrown in …
Nielsbishere Oct 29, 2025
1fb4095
Now working on a reflection -> json tool
Nielsbishere Nov 1, 2025
f59f36c
Added stringify for Registers
Nielsbishere Nov 2, 2025
fc7f310
Added function to json with all parameters
Nielsbishere Nov 2, 2025
7050c83
Almost finished exposing the raw reflection data as json
Nielsbishere Nov 2, 2025
0217b6d
Added printing Enum values/descs, annotations, arrays and started on …
Nielsbishere Nov 3, 2025
3388dd5
Now handling type printing
Nielsbishere Nov 3, 2025
96158ba
Implemented recursive buffer printing
Nielsbishere Nov 3, 2025
48eebe2
Completed statements to string
Nielsbishere Nov 3, 2025
cfb5c7b
Moved json serialization to DxcReflectionJson.cpp in the reflection a…
Nielsbishere Nov 3, 2025
6cda035
Added human readable output of a reflection object
Nielsbishere Nov 3, 2025
f83c920
Added recursive type printing and replaced buffer's recursive type pr…
Nielsbishere Nov 3, 2025
137dcab
Now printing symbol for function params, enum values
Nielsbishere Nov 3, 2025
f7d0b4a
Moved dxcreflection to dxcreflectioncontainer, so new dxcreflection w…
Nielsbishere Nov 3, 2025
8f69e64
Moved dxcreflector into its own library from libclang
Nielsbishere Nov 3, 2025
715265e
Moved dxcreflect out of dxctools
Nielsbishere Nov 3, 2025
a2c86c4
Added defaulting lib version to dxcreflector
Nielsbishere Nov 3, 2025
ec2c2c1
Merge upstream into fork
Nielsbishere Nov 8, 2025
58df838
Reset stale changes
Nielsbishere Nov 8, 2025
ecd0095
Renamed DxcReflection.cpp to DxcReflectionContainer.h and DxcReflecti…
Nielsbishere Nov 8, 2025
363dd6e
Renamed Dxc(HLSL) prefixed types to Reflection prefix, since there is…
Nielsbishere Nov 9, 2025
594fda9
Some formatting
Nielsbishere Nov 9, 2025
f209f66
Looked through the final files for a review and put the debug deseria…
Nielsbishere Nov 9, 2025
79c9e1b
Fixed passing invalid encoded arguments to reflector api in dxreflect…
Nielsbishere Nov 9, 2025
89f855d
Added unwrapping of enum types to get underlying uint/int type
Nielsbishere Nov 9, 2025
0a83b6c
Fixed problems with typedefs of resources and default template argume…
Nielsbishere Nov 9, 2025
cdeb6b0
Disabled printing buffer id when BAB is encountered
Nielsbishere Nov 10, 2025
e451f46
Now skipping forward declare information in human readable version. B…
Nielsbishere Nov 10, 2025
0ef496d
Removed printing BufferId and NameId in human readable mode. Fixed cr…
Nielsbishere Nov 10, 2025
e3e8015
Extended the bitset for the comma stack by 3x, allowing long if/else …
Nielsbishere Nov 10, 2025
e28baff
Fixed root node pointing to an invalid source file in case of an empt…
Nielsbishere Nov 10, 2025
f080ff0
Added ShowFileInfo (-reflect-show-file-info) to ReflectOpts which unh…
Nielsbishere Nov 10, 2025
7e635a6
Added PrintChildren to handle printing recursive children.
Nielsbishere Nov 10, 2025
3c80ff8
Removed IsVerbose since it'll never get used and overcomplicates prin…
Nielsbishere Nov 10, 2025
436c88e
Replaced AllRelevantMembers and HideFileInfo with ReflectionPrintSett…
Nielsbishere Nov 10, 2025
9b628e7
Fixed invalid UnderlyingName for builtin objects if the sugared and d…
Nielsbishere Nov 11, 2025
ab2f1b3
Now added ability to know the inner type of sbuffer/cbuffer/textures …
Nielsbishere Nov 11, 2025
71aebb8
Exposed BaseClass/Interfaces to 'Class' attribute in nodes for struct…
Nielsbishere Nov 11, 2025
f9b3454
Fixed linux build by separating the function from the error string, a…
Nielsbishere Nov 11, 2025
34cd641
Fixed windows build and removed printing reflection binary size to pr…
Nielsbishere Nov 11, 2025
9e75661
Applied clang format to everything except *_ast.cpp since the include…
Nielsbishere Nov 11, 2025
546a28d
Formatting on _ast.cpp after adding missing includes
Nielsbishere Nov 11, 2025
8e03ef0
Moved interpolationMode to node so that struct members can also have …
Nielsbishere Nov 11, 2025
8ca85cd
Added MuteArgs to fix typedefs printing Args for full types that alre…
Nielsbishere Nov 11, 2025
3f0a522
Renamed IDxcHLSLReflection to IHLSLReflectionData and IDxcHLSLReflect…
Nielsbishere Nov 11, 2025
66fa205
Added forward declare test. Added requirement from structs that it ha…
Nielsbishere Nov 12, 2025
e1a8ebf
Fixed underlying array sizes being mixed up. Added unit test for all …
Nielsbishere Nov 12, 2025
6a1b3ee
Added tests for enums, recursive buffers, variable types, stripping s…
Nielsbishere Nov 12, 2025
d82d516
Added walking of templates to collect underlying types and added a te…
Nielsbishere Nov 12, 2025
7521677
Added unit test for showing symbols (file loc + line, column, etc.). …
Nielsbishere Nov 12, 2025
16abf1f
Added a raw data test
Nielsbishere Nov 12, 2025
5c69ad2
Added name to Condition variable in for/if/etc. Added unit tests for …
Nielsbishere Nov 12, 2025
e9688d8
Added ReflectionIfSwitchStmt and ReflectionBranchStmt. This allows ca…
Nielsbishere Nov 13, 2025
fee7be5
Clang format
Nielsbishere Nov 13, 2025
f69f86e
Fixed linux build
Nielsbishere Nov 13, 2025
8a60db7
Added support for using
Nielsbishere Nov 13, 2025
0afdd5e
If/else chain is now properly being handled as an if root node and if…
Nielsbishere Nov 13, 2025
d03b0a5
Fixed dxcreflect in external projects
Nielsbishere Nov 13, 2025
9f64f3a
Added NodeId to ENUM_DESC, ENUM_VALUE, FUNCTION_DESC to allow fetchin…
Nielsbishere Nov 14, 2025
5652f2a
Fixed certain types not being exposed to reflection such as enums, fu…
Nielsbishere Nov 16, 2025
c00fc31
Fixed -reflect-function when a definition is found but the fwd declar…
Nielsbishere Nov 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,008 changes: 1,008 additions & 0 deletions include/dxc/DxcReflection/DxcReflectionContainer.h

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion include/dxc/Support/ErrorCodes.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,4 +157,5 @@
// 0X80AA001F - DXIL container Program Version mismatches Dxil module shader
// model
#define DXC_E_INCORRECT_PROGRAM_VERSION \
DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR, FACILITY_DXC, (0x001F))
DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR, FACILITY_DXC, (0x001F))

18 changes: 18 additions & 0 deletions include/dxc/Support/HLSLOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ enum HlslFlags {
CoreOption = (1 << 15),
ISenseOption = (1 << 16),
RewriteOption = (1 << 17),
ReflectOption = (1 << 18)
};

enum ID {
Expand Down Expand Up @@ -79,6 +80,9 @@ static const unsigned DxcFlags =
/// Flags for dxr.exe command-line tool.
static const unsigned DxrFlags =
HlslFlags::RewriteOption | HlslFlags::DriverOption;
/// Flags for dxreflector.exe command-line tool.
static const unsigned DxreflectorFlags =
HlslFlags::ReflectOption | HlslFlags::DriverOption;
/// Flags for IDxcIntelliSense APIs.
static const unsigned ISenseFlags =
HlslFlags::CoreOption | HlslFlags::ISenseOption;
Expand Down Expand Up @@ -114,6 +118,17 @@ struct RewriterOpts {
bool DeclGlobalCB = false; // OPT_rw_decl_global_cb
};

struct ReflectOpts {
bool Basics = false; // OPT_reflect_basics
bool Functions = false; // OPT_reflect_functions
bool Namespaces = false; // OPT_reflect_namespaces
bool UserTypes = false; // OPT_reflect_user_types
bool Scopes = false; // OPT_reflect_scopes
bool DisableSymbols = false; // OPT_reflect_disable_symbols
bool ShowFileInfo = false; // OPT_reflect_show_file_info
bool ShowRawData = false; // OPT_reflect_show_raw_data
};

/// Use this class to capture all options.
class DxcOpts {
public:
Expand Down Expand Up @@ -246,6 +261,9 @@ class DxcOpts {
// Rewriter Options
RewriterOpts RWOpt;

// Reflector Options
ReflectOpts ReflOpt;

std::vector<std::string> Warnings;

bool IsRootSignatureProfile() const;
Expand Down
48 changes: 37 additions & 11 deletions include/dxc/Support/HLSLOptions.td
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ def ISenseOption : OptionFlag;
// RewriteOption - This is considered a "rewriter" HLSL option.
def RewriteOption : OptionFlag;

// ReflectOption - This is considered a "reflector" HLSL option.
def ReflectOption : OptionFlag;

//////////////////////////////////////////////////////////////////////////////
// Groups

Expand Down Expand Up @@ -70,6 +73,7 @@ def hlsloptz_Group : OptionGroup<"HLSL Optimization">, HelpText<"Optimization Op
def hlslutil_Group : OptionGroup<"HLSL Utility">, HelpText<"Utility Options">;
def hlslcore_Group : OptionGroup<"HLSL Core">, HelpText<"Common Options">;
def hlslrewrite_Group : OptionGroup<"HLSL Rewriter">, HelpText<"Rewriter Options">;
def hlslreflect_Group : OptionGroup<"HLSL Reflector">, HelpText<"Reflector Options">;

def spirv_Group : OptionGroup<"SPIR-V CodeGen">, HelpText<"SPIR-V CodeGen Options">; // SPIRV Change

Expand All @@ -86,11 +90,11 @@ def spirv_Group : OptionGroup<"SPIR-V CodeGen">, HelpText<"SPIR-V CodeGen Option
// The general approach is to include only things that are in use, in the
// same order as in Options.td.

def D : JoinedOrSeparate<["-", "/"], "D">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption]>,
def D : JoinedOrSeparate<["-", "/"], "D">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption]>,
HelpText<"Define macro">;
def H : Flag<["-"], "H">, Flags<[CoreOption]>, Group<hlslcomp_Group>,
HelpText<"Show header includes and nesting depth">;
def I : JoinedOrSeparate<["-", "/"], "I">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption]>,
def I : JoinedOrSeparate<["-", "/"], "I">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption]>,
HelpText<"Add directory to include search path">;
def O0 : Flag<["-", "/"], "O0">, Group<hlsloptz_Group>, Flags<[CoreOption]>,
HelpText<"Optimization Level 0">;
Expand Down Expand Up @@ -302,13 +306,13 @@ def pack_optimized : Flag<["-", "/"], "pack-optimized">, Group<hlslcomp_Group>,
HelpText<"Optimize signature packing assuming identical signature provided for each connecting stage">;
def pack_optimized_ : Flag<["-", "/"], "pack_optimized">, Group<hlslcomp_Group>, Flags<[CoreOption, HelpHidden]>,
HelpText<"Optimize signature packing assuming identical signature provided for each connecting stage">;
def hlsl_version : Separate<["-", "/"], "HV">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption]>,
def hlsl_version : Separate<["-", "/"], "HV">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption]>,
HelpText<"HLSL version (2016, 2017, 2018, 2021). Default is 2021">;
def no_warnings : Flag<["-", "/"], "no-warnings">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption]>,
def no_warnings : Flag<["-", "/"], "no-warnings">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption]>,
HelpText<"Suppress warnings">;
def rootsig_define : Separate<["-", "/"], "rootsig-define">, Group<hlslcomp_Group>, Flags<[CoreOption]>,
HelpText<"Read root signature from a #define">;
def enable_16bit_types: Flag<["-", "/"], "enable-16bit-types">, Flags<[CoreOption, RewriteOption, DriverOption]>, Group<hlslcomp_Group>,
def enable_16bit_types: Flag<["-", "/"], "enable-16bit-types">, Flags<[CoreOption, RewriteOption, ReflectOption, DriverOption]>, Group<hlslcomp_Group>,
HelpText<"Enable 16bit types and disable min precision types. Available in HLSL 2018 and shader model 6.2">;
def ignore_line_directives : Flag<["-", "/"], "ignore-line-directives">, HelpText<"Ignore line directives">, Flags<[CoreOption]>, Group<hlslcomp_Group>;
def auto_binding_space : Separate<["-", "/"], "auto-binding-space">, Group<hlslcomp_Group>, Flags<[CoreOption]>,
Expand All @@ -321,7 +325,7 @@ def default_linkage : Separate<["-", "/"], "default-linkage">, Group<hlslcomp_Gr
HelpText<"Set default linkage for non-shader functions when compiling or linking to a library target (internal, external)">;
def precise_output : Separate<["-", "/"], "precise-output">, Group<hlslcomp_Group>, Flags<[CoreOption, HelpHidden]>,
HelpText<"Mark output semantic as precise">;
def encoding : Separate<["-", "/"], "encoding">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, DriverOption]>,
def encoding : Separate<["-", "/"], "encoding">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption, DriverOption]>,
HelpText<"Set default encoding for source inputs and text outputs (utf8|utf16(win)|utf32(*nix)|wide) default=utf8">;
def validator_version : Separate<["-", "/"], "validator-version">, Group<hlslcomp_Group>, Flags<[CoreOption, HelpHidden]>,
HelpText<"Override validator version for module. Format: <major.minor> ; Default: DXIL.dll version or current internal version.">;
Expand All @@ -345,9 +349,9 @@ def enable_lifetime_markers : Flag<["-", "/"], "enable-lifetime-markers">, Group
HelpText<"Enable generation of lifetime markers">;
def disable_lifetime_markers : Flag<["-", "/"], "disable-lifetime-markers">, Group<hlslcomp_Group>, Flags<[CoreOption, HelpHidden]>,
HelpText<"Disable generation of lifetime markers where they would be otherwise (6.6+)">;
def enable_payload_qualifiers : Flag<["-", "/"], "enable-payload-qualifiers">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, DriverOption]>,
def enable_payload_qualifiers : Flag<["-", "/"], "enable-payload-qualifiers">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption, DriverOption]>,
HelpText<"Enables support for payload access qualifiers for raytracing payloads in SM 6.6.">;
def disable_payload_qualifiers : Flag<["-", "/"], "disable-payload-qualifiers">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, DriverOption]>,
def disable_payload_qualifiers : Flag<["-", "/"], "disable-payload-qualifiers">, Group<hlslcomp_Group>, Flags<[CoreOption, RewriteOption, ReflectOption, DriverOption]>,
HelpText<"Disables support for payload access qualifiers for raytracing payloads in SM 6.7.">;
def disable_exception_handling : Flag<["-", "/"], "disable-exception-handling">, Group<hlslcomp_Group>, Flags<[DriverOption, HelpHidden]>,
HelpText<"Disable dxc handling of exceptions">;
Expand Down Expand Up @@ -448,12 +452,12 @@ def fvk_bind_counter_heap : MultiArg<["-"], "fvk-bind-counter-heap", 2>, MetaVar
//////////////////////////////////////////////////////////////////////////////
// fxc-based flags that don't match those previously defined.

def target_profile : JoinedOrSeparate<["-", "/"], "T">, Flags<[CoreOption]>, Group<hlslcomp_Group>, MetaVarName<"<profile>">,
def target_profile : JoinedOrSeparate<["-", "/"], "T">, Flags<[CoreOption, ReflectOption]>, Group<hlslcomp_Group>, MetaVarName<"<profile>">,
/* <py::lines('VALRULE-TEXT')>hctdb_instrhelp.get_target_profiles()</py>*/
// VALRULE-TEXT:BEGIN
HelpText<"Set target profile. \n\t<profile>: ps_6_0, ps_6_1, ps_6_2, ps_6_3, ps_6_4, ps_6_5, ps_6_6, ps_6_7, ps_6_8, ps_6_9, ps_6_10, \n\t\t vs_6_0, vs_6_1, vs_6_2, vs_6_3, vs_6_4, vs_6_5, vs_6_6, vs_6_7, vs_6_8, vs_6_9, vs_6_10, \n\t\t gs_6_0, gs_6_1, gs_6_2, gs_6_3, gs_6_4, gs_6_5, gs_6_6, gs_6_7, gs_6_8, gs_6_9, gs_6_10, \n\t\t hs_6_0, hs_6_1, hs_6_2, hs_6_3, hs_6_4, hs_6_5, hs_6_6, hs_6_7, hs_6_8, hs_6_9, hs_6_10, \n\t\t ds_6_0, ds_6_1, ds_6_2, ds_6_3, ds_6_4, ds_6_5, ds_6_6, ds_6_7, ds_6_8, ds_6_9, ds_6_10, \n\t\t cs_6_0, cs_6_1, cs_6_2, cs_6_3, cs_6_4, cs_6_5, cs_6_6, cs_6_7, cs_6_8, cs_6_9, cs_6_10, \n\t\t lib_6_1, lib_6_2, lib_6_3, lib_6_4, lib_6_5, lib_6_6, lib_6_7, lib_6_8, lib_6_9, lib_6_10, \n\t\t ms_6_5, ms_6_6, ms_6_7, ms_6_8, ms_6_9, ms_6_10, \n\t\t as_6_5, as_6_6, as_6_7, as_6_8, as_6_9, as_6_10, \n\t\t ">;
// VALRULE-TEXT:END
def entrypoint : JoinedOrSeparate<["-", "/"], "E">, Flags<[CoreOption, RewriteOption]>, Group<hlslcomp_Group>,
def entrypoint : JoinedOrSeparate<["-", "/"], "E">, Flags<[CoreOption, RewriteOption, ReflectOption]>, Group<hlslcomp_Group>,
HelpText<"Entry point name">;
// /I <include> - already defined above
def _vi : Flag<["-", "/"], "Vi">, Alias<H>, Flags<[CoreOption]>, Group<hlslcomp_Group>,
Expand Down Expand Up @@ -489,7 +493,7 @@ def Gis : Flag<["-", "/"], "Gis">, HelpText<"Force IEEE strictness">, Flags<[Cor

def denorm : JoinedOrSeparate<["-", "/"], "denorm">, HelpText<"select denormal value options (any, preserve, ftz). any is the default.">, Flags<[CoreOption]>, Group<hlslcomp_Group>;

def Fo : JoinedOrSeparate<["-", "/"], "Fo">, MetaVarName<"<file>">, HelpText<"Output object file">, Flags<[CoreOption, RewriteOption, DriverOption]>, Group<hlslcomp_Group>;
def Fo : JoinedOrSeparate<["-", "/"], "Fo">, MetaVarName<"<file>">, HelpText<"Output object file">, Flags<[CoreOption, RewriteOption, ReflectOption, DriverOption]>, Group<hlslcomp_Group>;
// def Fl : JoinedOrSeparate<["-", "/"], "Fl">, MetaVarName<"<file>">, HelpText<"Output a library">;
def Fc : JoinedOrSeparate<["-", "/"], "Fc">, MetaVarName<"<file>">, HelpText<"Output assembly code listing file">, Flags<[DriverOption]>, Group<hlslcomp_Group>;
//def Fx : JoinedOrSeparate<["-", "/"], "Fx">, MetaVarName<"<file>">, HelpText<"Output assembly code and hex listing file">;
Expand Down Expand Up @@ -576,6 +580,28 @@ def getprivate : JoinedOrSeparate<["-", "/"], "getprivate">, Flags<[DriverOption
def nologo : Flag<["-", "/"], "nologo">, Group<hlslcore_Group>, Flags<[DriverOption, HelpHidden]>,
HelpText<"Suppress copyright message">;

//////////////////////////////////////////////////////////////////////////////
// Reflector Options

def reflect_basics : Flag<["-", "/"], "reflect-basics">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Reflect HLSL (registers, constants and annotations).">;
def reflect_functions : Flag<["-", "/"], "reflect-functions">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Reflect HLSL functions.">;
def reflect_namespaces : Flag<["-", "/"], "reflect-namespaces">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Reflect HLSL nodes in namespaces rather than only the global namespace.">;
def reflect_user_types : Flag<["-", "/"], "reflect-user-types">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Reflect HLSL user types (typedef, using, struct, enum).">;
def reflect_scopes : Flag<["-", "/"], "reflect-scopes">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Reflect HLSL scopes (variables and structs defined in functions).">;
def reflect_disable_symbols : Flag<["-", "/"], "reflect-disable-symbols">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Reflect HLSL disable symbols.">;

def reflect_show_file_info : Flag<["-", "/"], "reflect-show-file-info">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Show file symbol info in the reflection output json.">;

def reflect_show_raw_data : Flag<["-", "/"], "reflect-show-raw-data">, Group<hlslreflect_Group>, Flags<[ReflectOption]>,
HelpText<"Show raw data without prettifying in the reflection output json.">;

//////////////////////////////////////////////////////////////////////////////
// Rewriter Options

Expand Down
2 changes: 2 additions & 0 deletions include/dxc/Test/DxcTestUtils.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ class FileRunCommandPart {
LPCWSTR dumpName = nullptr);
FileRunCommandResult RunDxc(dxc::DllLoader &DllSupport,
const FileRunCommandResult *Prior);
FileRunCommandResult RunDxReflector(dxc::DllLoader &DllSupport,
const FileRunCommandResult *Prior);
FileRunCommandResult RunDxv(dxc::DllLoader &DllSupport,
const FileRunCommandResult *Prior);
FileRunCommandResult RunOpt(dxc::DllLoader &DllSupport,
Expand Down
1 change: 1 addition & 0 deletions include/dxc/WinAdapter.h
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,7 @@ typedef DWORD *LPDWORD;

typedef uint32_t UINT32;
typedef uint64_t UINT64;
typedef int64_t INT64;

typedef signed char INT8, *PINT8;
typedef signed int INT32, *PINT32;
Expand Down
Loading
Loading