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 more