Struct wgpu_hal::vulkan::PrivateCapabilities
source · struct PrivateCapabilities {Show 15 fields
flip_y_requires_shift: bool,
imageless_framebuffers: bool,
image_view_usage: bool,
timeline_semaphores: bool,
texture_d24: bool,
texture_d24_s8: bool,
texture_s8: bool,
can_present: bool,
non_coherent_map_mask: BufferAddress,
robust_buffer_access: bool,
robust_image_access: bool,
robust_buffer_access2: bool,
robust_image_access2: bool,
zero_initialize_workgroup_memory: bool,
image_format_list: bool,
}
Expand description
Set of internal capabilities, which don’t show up in the exposed device geometry, but affect the code paths taken internally.
Fields§
§flip_y_requires_shift: bool
Y-flipping is implemented with either VK_AMD_negative_viewport_height
or VK_KHR_maintenance1
/1.1+. The AMD extension for negative viewport height does not require a Y shift.
This flag is true
if the device has VK_KHR_maintenance1
/1.1+ and false
otherwise (i.e. in the case of VK_AMD_negative_viewport_height
).
imageless_framebuffers: bool
§image_view_usage: bool
§timeline_semaphores: bool
§texture_d24: bool
§texture_d24_s8: bool
§texture_s8: bool
§can_present: bool
Ability to present contents to any screen. Only needed to work around broken platform configurations.
non_coherent_map_mask: BufferAddress
§robust_buffer_access: bool
True if this adapter advertises the robustBufferAccess
feature.
Note that Vulkan’s robustBufferAccess
is not sufficient to implement
wgpu_hal
’s guarantee that shaders will not access buffer contents via
a given bindgroup binding outside that binding’s accessible
region. Enabling robustBufferAccess
does ensure that
out-of-bounds reads and writes are not undefined behavior (that’s good),
but still permits out-of-bounds reads to return data from anywhere
within the buffer, not just the accessible region.
robust_image_access: bool
§robust_buffer_access2: bool
True if this adapter supports the VK_EXT_robustness2
extension’s
robustBufferAccess2
feature.
This is sufficient to implement wgpu_hal
’s required bounds-checking of
shader accesses to buffer contents. If this feature is not available,
this backend must have Naga inject bounds checks in the generated
SPIR-V.
robust_image_access2: bool
§zero_initialize_workgroup_memory: bool
§image_format_list: bool
Implementations§
source§impl PrivateCapabilities
impl PrivateCapabilities
pub fn map_texture_format(&self, format: TextureFormat) -> Format
Trait Implementations§
source§impl Clone for PrivateCapabilities
impl Clone for PrivateCapabilities
source§fn clone(&self) -> PrivateCapabilities
fn clone(&self) -> PrivateCapabilities
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for PrivateCapabilities
impl RefUnwindSafe for PrivateCapabilities
impl Send for PrivateCapabilities
impl Sync for PrivateCapabilities
impl Unpin for PrivateCapabilities
impl UnwindSafe for PrivateCapabilities
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)