Skip to main content

CompilerOptions

Struct CompilerOptions 

Source
#[non_exhaustive]
pub struct CompilerOptions {
Show 23 fields pub platform: Platform, pub version: Version, pub vertex: CompilerVertexOptions, pub swizzle_buffer_index: u32, pub indirect_params_buffer_index: u32, pub output_buffer_index: u32, pub patch_output_buffer_index: u32, pub tessellation_factor_buffer_index: u32, pub buffer_size_buffer_index: u32, pub enable_point_size_builtin: bool, pub enable_rasterization: bool, pub capture_output_to_buffer: bool, pub swizzle_texture_samples: bool, pub tessellation_domain_origin_lower_left: bool, pub enable_argument_buffers: bool, pub pad_fragment_output_components: bool, pub resource_binding_overrides: BTreeMap<ResourceBindingLocation, ResourceBinding>, pub vertex_attribute_overrides: BTreeMap<VertexAttributeLocation, VertexAttribute>, pub const_samplers: BTreeMap<SamplerLocation, SamplerData>, pub force_native_arrays: bool, pub force_zero_initialized_variables: bool, pub force_active_argument_buffer_resources: bool, pub entry_point: Option<(String, ExecutionModel)>,
}
Expand description

MSL compiler options.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§platform: Platform

The target platform.

§version: Version

The target MSL version.

§vertex: CompilerVertexOptions

Vertex compiler options.

§swizzle_buffer_index: u32

The buffer index to use for swizzle.

§indirect_params_buffer_index: u32§output_buffer_index: u32

The buffer index to use for output.

§patch_output_buffer_index: u32

The buffer index to use for patch output.

§tessellation_factor_buffer_index: u32

The buffer index to use for tessellation factor.

§buffer_size_buffer_index: u32

The buffer index to use for buffer size.

§enable_point_size_builtin: bool

Whether the built-in point size should be enabled.

§enable_rasterization: bool

Whether rasterization should be enabled.

§capture_output_to_buffer: bool

Whether to capture output to buffer.

§swizzle_texture_samples: bool

Whether to swizzle texture samples.

§tessellation_domain_origin_lower_left: bool

Whether to place the origin of tessellation domain shaders in the lower left.

§enable_argument_buffers: bool

Whether to enable use of argument buffers (only compatible with MSL 2.0).

§pad_fragment_output_components: bool

Whether to pad fragment output to have at least the number of components as the render pass.

§resource_binding_overrides: BTreeMap<ResourceBindingLocation, ResourceBinding>

MSL resource bindings overrides.

§vertex_attribute_overrides: BTreeMap<VertexAttributeLocation, VertexAttribute>

MSL vertex attribute overrides.

§const_samplers: BTreeMap<SamplerLocation, SamplerData>

MSL const sampler mappings.

§force_native_arrays: bool

Whether to force native arrays (useful to workaround issues on some hardware).

§force_zero_initialized_variables: bool

Whether to force all uninitialized variables to be initialized to zero.

§force_active_argument_buffer_resources: bool

Whether to force always emit resources which are part of argument buffers

§entry_point: Option<(String, ExecutionModel)>

The name and execution model of the entry point to use. If no entry point is specified, then the first entry point found will be used.

Trait Implementations§

Source§

impl Clone for CompilerOptions

Source§

fn clone(&self) -> CompilerOptions

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CompilerOptions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for CompilerOptions

Source§

fn default() -> CompilerOptions

Returns the “default value” for a type. Read more
Source§

impl Eq for CompilerOptions

Source§

impl Hash for CompilerOptions

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for CompilerOptions

Source§

fn eq(&self, other: &CompilerOptions) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for CompilerOptions

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.