Struct Options
pub struct Options<'a> {Show 13 fields
pub lang_version: (u8, u8),
pub flags: WriterFlags,
pub fake_missing_bindings: bool,
pub binding_map: BTreeMap<ResourceBinding, BindingInfo>,
pub capabilities: Option<HashSet<Capability, BuildHasherDefault<FxHasher>>>,
pub bounds_check_policies: BoundsCheckPolicies,
pub zero_initialize_workgroup_memory: ZeroInitializeWorkgroupMemoryMode,
pub force_loop_bounding: bool,
pub ray_query_initialization_tracking: bool,
pub use_storage_input_output_16: bool,
pub debug_info: Option<DebugInfo<'a>>,
pub task_dispatch_limits: Option<TaskDispatchLimits>,
pub mesh_shader_primitive_indices_clamp: bool,
}Fields§
§lang_version: (u8, u8)(Major, Minor) target version of the SPIR-V.
flags: WriterFlagsConfiguration flags for the writer.
fake_missing_bindings: boolDon’t panic on missing bindings. Instead use fake values for Binding
and DescriptorSet decorations. This may result in invalid SPIR-V.
binding_map: BTreeMap<ResourceBinding, BindingInfo>Map of resources to information about the binding.
capabilities: Option<HashSet<Capability, BuildHasherDefault<FxHasher>>>If given, the set of capabilities modules are allowed to use. Code that requires capabilities beyond these is rejected with an error.
If this is None, all capabilities are permitted.
bounds_check_policies: BoundsCheckPoliciesHow should generate code handle array, vector, matrix, or image texel indices that are out of range?
zero_initialize_workgroup_memory: ZeroInitializeWorkgroupMemoryModeDictates the way workgroup variables should be zero initialized
force_loop_bounding: boolIf set, loops will have code injected into them, forcing the compiler to think the number of iterations is bounded.
ray_query_initialization_tracking: boolif set, ray queries will get a variable to track their state to prevent misuse.
use_storage_input_output_16: boolWhether to use the StorageInputOutput16 capability for f16 shader I/O.
When false, f16 I/O is polyfilled using f32 types with conversions.
debug_info: Option<DebugInfo<'a>>§task_dispatch_limits: Option<TaskDispatchLimits>§mesh_shader_primitive_indices_clamp: boolTrait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Options<'a>
impl<'a> RefUnwindSafe for Options<'a>
impl<'a> Send for Options<'a>
impl<'a> Sync for Options<'a>
impl<'a> Unpin for Options<'a>
impl<'a> UnsafeUnpin for Options<'a>
impl<'a> UnwindSafe for Options<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more