Enum GlFenceBehavior
pub enum GlFenceBehavior {
Normal,
AutoFinish,
}
unstable-wgpu-26
only.Expand description
Dictate the behavior of fences in OpenGL.
Variants§
Normal
Fences in OpenGL behave normally. If you don’t know what to pick, this is what you want.
AutoFinish
Fences in OpenGL are short-circuited to always return true
immediately.
This solves a very specific issue that arose due to a bug in wgpu-core that made
many WebGL programs work when they “shouldn’t” have. If you have code that is trying
to call device.poll(wgpu::PollType::Wait)
on WebGL, you need to enable this option
for the “Wait” to behave how you would expect.
Previously all poll(Wait)
acted like the OpenGL fences were signalled even if they weren’t.
See https://github.com/gfx-rs/wgpu/issues/4589 for more information.
When this is set Queue::on_completed_work_done
will always return the next time the device
is maintained, not when the work is actually done on the GPU.
Implementations§
§impl GlFenceBehavior
impl GlFenceBehavior
pub fn is_auto_finish(&self) -> bool
pub fn is_auto_finish(&self) -> bool
Returns true if the fence behavior is AutoFinish
.
pub fn from_env() -> Option<GlFenceBehavior>
pub fn from_env() -> Option<GlFenceBehavior>
Choose which minor OpenGL ES version to use from the environment variable WGPU_GL_FENCE_BEHAVIOR
.
Possible values are Normal
or AutoFinish
. Case insensitive.
Use with unwrap_or_default()
to get the default value if the environment variable is not set.
pub fn with_env(self) -> GlFenceBehavior
pub fn with_env(self) -> GlFenceBehavior
Takes the given compiler, modifies it based on the WGPU_GL_FENCE_BEHAVIOR
environment variable, and returns the result.
See from_env
for more information.
Trait Implementations§
§impl Clone for GlFenceBehavior
impl Clone for GlFenceBehavior
§fn clone(&self) -> GlFenceBehavior
fn clone(&self) -> GlFenceBehavior
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for GlFenceBehavior
impl Debug for GlFenceBehavior
§impl Default for GlFenceBehavior
impl Default for GlFenceBehavior
§fn default() -> GlFenceBehavior
fn default() -> GlFenceBehavior
§impl PartialEq for GlFenceBehavior
impl PartialEq for GlFenceBehavior
impl Copy for GlFenceBehavior
impl Eq for GlFenceBehavior
impl StructuralPartialEq for GlFenceBehavior
Auto Trait Implementations§
impl Freeze for GlFenceBehavior
impl RefUnwindSafe for GlFenceBehavior
impl Send for GlFenceBehavior
impl Sync for GlFenceBehavior
impl Unpin for GlFenceBehavior
impl UnwindSafe for GlFenceBehavior
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.