#ifndef SOURCE_SPIRV_VALIDATOR_OPTIONS_H_
#define SOURCE_SPIRV_VALIDATOR_OPTIONS_H_
#include "spirv-tools/libspirv.h"
bool spvParseUniversalLimitsOptions(const char* s, spv_validator_limit* limit);
struct validator_universal_limits_t {
uint32_t max_struct_members{16383};
uint32_t max_struct_depth{255};
uint32_t max_local_variables{524287};
uint32_t max_global_variables{65535};
uint32_t max_switch_branches{16383};
uint32_t max_function_args{255};
uint32_t max_control_flow_nesting_depth{1023};
uint32_t max_access_chain_indexes{255};
uint32_t max_id_bound{0x3FFFFF};
};
struct spv_validator_options_t {
spv_validator_options_t()
: universal_limits_(),
relax_struct_store(false),
relax_logical_pointer(false),
relax_block_layout(false),
uniform_buffer_standard_layout(false),
scalar_block_layout(false),
workgroup_scalar_block_layout(false),
skip_block_layout(false),
allow_localsizeid(false),
before_hlsl_legalization(false),
use_friendly_names(true) {}
validator_universal_limits_t universal_limits_;
bool relax_struct_store;
bool relax_logical_pointer;
bool relax_block_layout;
bool uniform_buffer_standard_layout;
bool scalar_block_layout;
bool workgroup_scalar_block_layout;
bool skip_block_layout;
bool allow_localsizeid;
bool before_hlsl_legalization;
bool use_friendly_names;
};
#endif