Struct CompilerMSL::Options

Nested Relationships

This struct is a nested type of Class CompilerMSL.

Struct Documentation

struct Options

Public Types

enum Platform

Values:

enumerator iOS
enumerator macOS
enum class ArgumentBuffersTier

Values:

enumerator Tier1
enumerator Tier2
enum class IndexType

Values:

enumerator None
enumerator UInt16
enumerator UInt32

Public Functions

inline bool is_ios() const
inline bool is_macos() const
inline bool use_quadgroup_operation() const
inline void set_msl_version(uint32_t major, uint32_t minor = 0, uint32_t patch = 0)
inline bool supports_msl_version(uint32_t major, uint32_t minor = 0, uint32_t patch = 0) const

Public Members

Platform platform = macOS
uint32_t msl_version = make_msl_version(1, 2)
uint32_t texel_buffer_texture_width = 4096
uint32_t r32ui_linear_texture_alignment = 4
uint32_t r32ui_alignment_constant_id = 65535
uint32_t swizzle_buffer_index = 30
uint32_t indirect_params_buffer_index = 29
uint32_t shader_output_buffer_index = 28
uint32_t shader_patch_output_buffer_index = 27
uint32_t shader_tess_factor_buffer_index = 26
uint32_t buffer_size_buffer_index = 25
uint32_t view_mask_buffer_index = 24
uint32_t dynamic_offsets_buffer_index = 23
uint32_t shader_input_buffer_index = 22
uint32_t shader_index_buffer_index = 21
uint32_t shader_patch_input_buffer_index = 20
uint32_t shader_input_wg_index = 0
uint32_t device_index = 0
uint32_t enable_frag_output_mask = 0xffffffff
uint32_t additional_fixed_sample_mask = 0xffffffff
bool enable_point_size_builtin = true
bool enable_frag_depth_builtin = true
bool enable_frag_stencil_ref_builtin = true
bool disable_rasterization = false
bool capture_output_to_buffer = false
bool swizzle_texture_samples = false
bool tess_domain_origin_lower_left = false
bool multiview = false
bool multiview_layered_rendering = true
bool view_index_from_device_index = false
bool dispatch_base = false
bool texture_1D_as_2D = false
bool argument_buffers = false
ArgumentBuffersTier argument_buffers_tier = ArgumentBuffersTier::Tier1
bool runtime_array_rich_descriptor = false
bool enable_base_index_zero = false
bool pad_fragment_output_components = false
bool ios_support_base_vertex_instance = false
bool use_framebuffer_fetch_subpasses = false
bool invariant_float_math = false
bool emulate_cube_array = false
bool enable_decoration_binding = false
bool texture_buffer_native = false
bool force_active_argument_buffer_resources = false
bool pad_argument_buffer_resources = false
bool force_native_arrays = false
bool enable_clip_distance_user_varying = true
bool multi_patch_workgroup = false
bool raw_buffer_tese_input = false
bool vertex_for_tessellation = false
bool arrayed_subpass_input = false
bool ios_use_simdgroup_functions = false
bool emulate_subgroups = false
uint32_t fixed_subgroup_size = 0
IndexType vertex_index_type = IndexType::None
bool force_sample_rate_shading = false
bool manual_helper_invocation_updates = true
bool check_discarded_frag_stores = false
bool sample_dref_lod_array_as_grad = false
bool readwrite_texture_fences = true
bool replace_recursive_inputs = false
bool agx_manual_cube_grad_fixup = false
bool force_fragment_with_side_effects_execution = false
bool input_attachment_is_ds_attachment = false

Public Static Functions

static inline uint32_t make_msl_version(uint32_t major, uint32_t minor = 0, uint32_t patch = 0)