1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright (c) 2017 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- #ifndef SOURCE_SPIRV_VALIDATOR_OPTIONS_H_
- #define SOURCE_SPIRV_VALIDATOR_OPTIONS_H_
- #include "spirv-tools/libspirv.h"
- // Return true if the command line option for the validator limit is valid (Also
- // returns the Enum for option in this case). Returns false otherwise.
- bool spvParseUniversalLimitsOptions(const char* s, spv_validator_limit* limit);
- // Default initialization of this structure is to the default Universal Limits
- // described in the SPIR-V Spec.
- 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};
- };
- // Manages command line options passed to the SPIR-V Validator. New struct
- // members may be added for any new option.
- 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),
- skip_block_layout(false),
- before_hlsl_legalization(false) {}
- 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 skip_block_layout;
- bool before_hlsl_legalization;
- };
- #endif // SOURCE_SPIRV_VALIDATOR_OPTIONS_H_
|