Bug 1832451 - Vendor wgpu changes. r=webgpu-reviewers,jgilbert

Depends on D177827

Differential Revision: https://phabricator.services.mozilla.com/D177829
This commit is contained in:
Erich Gubler 2023-05-25 18:01:03 +00:00
parent ccb5e9bf14
commit a435654157
22 changed files with 82 additions and 53 deletions

View File

@ -30,9 +30,9 @@ git = "https://github.com/gfx-rs/naga"
rev = "b99d58ea435090e561377949f428bce2c18451bb"
replace-with = "vendored-sources"
[source."git+https://github.com/gfx-rs/wgpu?rev=25cb9f61e9a6be572ee42536bbe57aa5f759a700"]
[source."git+https://github.com/gfx-rs/wgpu?rev=f71a1bc736fde37509262ca03e91d8f56a13aeb5"]
git = "https://github.com/gfx-rs/wgpu"
rev = "25cb9f61e9a6be572ee42536bbe57aa5f759a700"
rev = "f71a1bc736fde37509262ca03e91d8f56a13aeb5"
replace-with = "vendored-sources"
[source."git+https://github.com/glandium/warp?rev=4af45fae95bc98b0eba1ef0db17e1dac471bb23d"]

View File

@ -27,9 +27,9 @@ void AdapterInfo::GetWgpuName(nsString& s) const {
s = mAboutSupportInfo->name;
}
size_t AdapterInfo::WgpuVendor() const { return mAboutSupportInfo->vendor; }
uint32_t AdapterInfo::WgpuVendor() const { return mAboutSupportInfo->vendor; }
size_t AdapterInfo::WgpuDevice() const { return mAboutSupportInfo->device; }
uint32_t AdapterInfo::WgpuDevice() const { return mAboutSupportInfo->device; }
void AdapterInfo::GetWgpuDeviceType(nsString& s) const {
switch (mAboutSupportInfo->device_type) {

View File

@ -54,8 +54,8 @@ class AdapterInfo final : public dom::NonRefcountedDOMObject {
// Non-standard field getters; see also TODO BUGZILLA LINK
void GetWgpuName(nsString&) const;
size_t WgpuVendor() const;
size_t WgpuDevice() const;
uint32_t WgpuVendor() const;
uint32_t WgpuDevice() const;
void GetWgpuDeviceType(nsString&) const;
void GetWgpuDriver(nsString&) const;
void GetWgpuDriverInfo(nsString&) const;

View File

@ -100,8 +100,8 @@ pub struct AdapterInformation<S> {
limits: wgt::Limits,
features: wgt::Features,
name: S,
vendor: usize,
device: usize,
vendor: u32,
device: u32,
device_type: wgt::DeviceType,
driver: S,
driver_info: S,

View File

@ -1 +1 @@
{"files":{"Cargo.toml":"75edd4854ae0d6fabafa12ef625163a4c49d7546556b0d38bb667fcccbe52087","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/binding_model.rs":"23c7d38da27e3ea7f5ebac001fe480306fdbc98563051f3c041e71db7114b652","src/command/bind.rs":"88ca2bedfcd8392efc960f39ca8506024af495dcf1852cf16ae28fbadbdf748d","src/command/bundle.rs":"d57193931844a503091d6ac9df2c89f99e0d085a71b5d53cb80a19f615aa9197","src/command/clear.rs":"324ad776e89321d364e091cab915194fd2e9ffea75ef21bbf7eea637059bfcb7","src/command/compute.rs":"c29444b9c66ee14f3a387942c635a5348f55f4114ff2863ed8fc73a89a12f611","src/command/draw.rs":"3faf125163efe665b8820af21f2b167c68acd3008c372c2a9330ecfd832f3326","src/command/memory_init.rs":"347117a84f35927de91e7ab4cc69d19b5b4507a942596c0c725f27b50c428b1e","src/command/mod.rs":"50d5e476fc00e157f6afc1b40d461165b0d1e2e895abd20624dadf7959c06009","src/command/query.rs":"59adc6efaf01c037b6ba5f2b29b7a0063ced1f0334349b812a9611da77cfd078","src/command/render.rs":"b6f828d3acd151765bddce2d24dde74eebf5e97dedfe733a50e57003a6b00e4d","src/command/transfer.rs":"9873536468a220ba9d4f20dc2e89782fa0715af711dbac6919e515b868e5cc0b","src/conv.rs":"9654736318f9efdf15695eacaf64218febf01cb945b764ce6a966cbd41345a79","src/device/life.rs":"00575c6c8c4d32304c76f1bdbf9b705603b275ffe9d7dad9838d4c47e118f5d6","src/device/mod.rs":"a2ec036ec9aee283afa76b7726a1e237cccd1b73949e93f5ba5ac1e345b8f025","src/device/queue.rs":"cad4e1165a5b3366e0d939b0bd20cefc485332c2061bdcd1130c8416136ae0f4","src/device/trace.rs":"f69aa6af36a6defcf391ddb6cf12a56e37e00b4595e95c284cd7fd400394349c","src/error.rs":"48bc91197cfe254559b305c3954db6afa6441f120cb9fedeb7da96a140df6e2b","src/hub.rs":"1afc5d19f1afd132f43aa9b0d4f4f750f88ca18936974e2ae5fd50cb8763569a","src/id.rs":"10e101272faf04495b25e37284b0c7620392bb8ee7f2a82247d8e0a858087d04","src/init_tracker/buffer.rs":"a0ebf54a1e6d269c7b4aa0ac7bb8b04fd2cea3221a1d058ff33cb683b2aea3e9","src/init_tracker/mod.rs":"0867f79f83555390d0982d1dc6dcf0d4340e10cb89aa633d3c3ecc45deb3c78c","src/init_tracker/texture.rs":"37b6584aaca11c407d91f77002dcbb48d8a4876e27edd1b71b7929ef966f901d","src/instance.rs":"da4ba40a8e2db89bf31f3c8c0874c152ea1ed07169dfc12f8e6b15b5f044372f","src/lib.rs":"a40fc046ae2b3cca1f8f5e4e462c07bb51e56dbb17bf7a5736fef6f122c48e9c","src/pipeline.rs":"1d1a25da8e5ba585a79d38e5972413db83deada2f1704789144d28bca8cf1a1c","src/present.rs":"cf7a4a093087953fb16d1c6a45b85649a3971fa6dc56a9f3f424a478dcb84270","src/resource.rs":"ab0232eeb05da5aa71fad8f114c193be8d0713876cf3f506b398dfe1fa5191b3","src/track/buffer.rs":"0b7a8c6acfe55e3f45dd1e7ef1b3ee8bd4844f61bbabf62aa4f0c391b822803c","src/track/metadata.rs":"9565f700661e81fd534a751a0e3d26022238ad8784cc868333da7030b3571473","src/track/mod.rs":"118f97d34c6af35641b6f1901efe16cd0bf3d9b6c0e4d4dfc63a23c94e69ae13","src/track/range.rs":"5bbfed6e103b3234d9de8e42057022da6d628c2cc1db6bb51b88f87f2d8adf8b","src/track/stateless.rs":"34942ecdf81b05b75892c891c87e065329870459ff8edfca1f99ec9533c334aa","src/track/texture.rs":"7d38b2f4e0cdb3e56ce1e777d8bca4d73ef40e21c56e11fedd69dc27e789256d","src/validation.rs":"dd761dfc717ab62d36311c277d26f4741b297f5dbb1bd1f1e6b6eff9c6cbc57c"},"package":null}
{"files":{"Cargo.toml":"75edd4854ae0d6fabafa12ef625163a4c49d7546556b0d38bb667fcccbe52087","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/binding_model.rs":"984e05f8527ae6d2c72d3f141a006f8365da7c5f95afd24601ed0fe6c98b62b2","src/command/bind.rs":"88ca2bedfcd8392efc960f39ca8506024af495dcf1852cf16ae28fbadbdf748d","src/command/bundle.rs":"74e50b87c003ca3647f65409be9a9d05f81f770fa72a9019898f8741b965a66e","src/command/clear.rs":"324ad776e89321d364e091cab915194fd2e9ffea75ef21bbf7eea637059bfcb7","src/command/compute.rs":"d9c754f7f2ef4cde2b202365337eed2feb995993603c3f0cf4acf32a0ed4f54b","src/command/draw.rs":"14a0319da47e4995c2ad97f1102998b0d4beb2f6d07df8a0cb6f08023185ce7a","src/command/memory_init.rs":"347117a84f35927de91e7ab4cc69d19b5b4507a942596c0c725f27b50c428b1e","src/command/mod.rs":"50d5e476fc00e157f6afc1b40d461165b0d1e2e895abd20624dadf7959c06009","src/command/query.rs":"59adc6efaf01c037b6ba5f2b29b7a0063ced1f0334349b812a9611da77cfd078","src/command/render.rs":"a4c8d79f8c26cbfb1907bcdc009543fb4c4a7a63a779423a54b9de2d61416cdf","src/command/transfer.rs":"9873536468a220ba9d4f20dc2e89782fa0715af711dbac6919e515b868e5cc0b","src/conv.rs":"9654736318f9efdf15695eacaf64218febf01cb945b764ce6a966cbd41345a79","src/device/life.rs":"00575c6c8c4d32304c76f1bdbf9b705603b275ffe9d7dad9838d4c47e118f5d6","src/device/mod.rs":"2799305eb6969bef45d7d757482674dfd106956fec933ce54766b9e52a8230a3","src/device/queue.rs":"cad4e1165a5b3366e0d939b0bd20cefc485332c2061bdcd1130c8416136ae0f4","src/device/trace.rs":"f69aa6af36a6defcf391ddb6cf12a56e37e00b4595e95c284cd7fd400394349c","src/error.rs":"48bc91197cfe254559b305c3954db6afa6441f120cb9fedeb7da96a140df6e2b","src/hub.rs":"1afc5d19f1afd132f43aa9b0d4f4f750f88ca18936974e2ae5fd50cb8763569a","src/id.rs":"10e101272faf04495b25e37284b0c7620392bb8ee7f2a82247d8e0a858087d04","src/init_tracker/buffer.rs":"a0ebf54a1e6d269c7b4aa0ac7bb8b04fd2cea3221a1d058ff33cb683b2aea3e9","src/init_tracker/mod.rs":"0867f79f83555390d0982d1dc6dcf0d4340e10cb89aa633d3c3ecc45deb3c78c","src/init_tracker/texture.rs":"37b6584aaca11c407d91f77002dcbb48d8a4876e27edd1b71b7929ef966f901d","src/instance.rs":"da4ba40a8e2db89bf31f3c8c0874c152ea1ed07169dfc12f8e6b15b5f044372f","src/lib.rs":"a40fc046ae2b3cca1f8f5e4e462c07bb51e56dbb17bf7a5736fef6f122c48e9c","src/pipeline.rs":"1d1a25da8e5ba585a79d38e5972413db83deada2f1704789144d28bca8cf1a1c","src/present.rs":"cf7a4a093087953fb16d1c6a45b85649a3971fa6dc56a9f3f424a478dcb84270","src/resource.rs":"1dedb1eaabad43d87d7c6ea5ecc522a0f64972b9348a699bbafc49238b0748e1","src/track/buffer.rs":"0b7a8c6acfe55e3f45dd1e7ef1b3ee8bd4844f61bbabf62aa4f0c391b822803c","src/track/metadata.rs":"9565f700661e81fd534a751a0e3d26022238ad8784cc868333da7030b3571473","src/track/mod.rs":"1ce1fe9a2d2cee35a2b8ec58c52b1ed633481fab4fef7308cfb980a73eaa5928","src/track/range.rs":"5bbfed6e103b3234d9de8e42057022da6d628c2cc1db6bb51b88f87f2d8adf8b","src/track/stateless.rs":"34942ecdf81b05b75892c891c87e065329870459ff8edfca1f99ec9533c334aa","src/track/texture.rs":"7d38b2f4e0cdb3e56ce1e777d8bca4d73ef40e21c56e11fedd69dc27e789256d","src/validation.rs":"dd761dfc717ab62d36311c277d26f4741b297f5dbb1bd1f1e6b6eff9c6cbc57c"},"package":null}

View File

@ -697,7 +697,7 @@ pub enum BindError {
s1 = if *.actual >= 2 { "s" } else { "" },
)]
MismatchedDynamicOffsetCount {
group: u8,
group: u32,
actual: usize,
expected: usize,
},
@ -706,7 +706,7 @@ pub enum BindError {
)]
UnalignedDynamicBinding {
idx: usize,
group: u8,
group: u32,
binding: u32,
offset: u32,
alignment: u32,
@ -718,7 +718,7 @@ pub enum BindError {
)]
DynamicBindingOutOfBounds {
idx: usize,
group: u8,
group: u32,
binding: u32,
offset: u32,
buffer_size: wgt::BufferAddress,
@ -780,7 +780,7 @@ pub struct BindGroup<A: HalApi> {
impl<A: HalApi> BindGroup<A> {
pub(crate) fn validate_dynamic_bindings(
&self,
bind_group_index: u8,
bind_group_index: u32,
offsets: &[wgt::DynamicOffset],
limits: &wgt::Limits,
) -> Result<(), BindError> {

View File

@ -302,7 +302,7 @@ impl RenderBundleEncoder {
.map_pass_err(scope)?;
let max_bind_groups = device.limits.max_bind_groups;
if (index as u32) >= max_bind_groups {
if index >= max_bind_groups {
return Err(RenderCommandError::BindGroupIndexOutOfRange {
index,
max: max_bind_groups,
@ -784,7 +784,7 @@ impl<A: HalApi> RenderBundle<A> {
unsafe {
raw.set_bind_group(
&pipeline_layout_guard[pipeline_layout_id.unwrap()].raw,
index as u32,
index,
&bind_group.raw,
&offsets[..num_dynamic_offsets as usize],
)
@ -1222,7 +1222,7 @@ impl<A: HalApi> State<A> {
fn set_bind_group(
&mut self,
slot: u8,
slot: u32,
bind_group_id: id::BindGroupId,
layout_id: id::Valid<id::BindGroupLayoutId>,
dynamic_offsets: Range<usize>,
@ -1365,7 +1365,7 @@ impl<A: HalApi> State<A> {
contents.is_dirty = false;
let offsets = &contents.dynamic_offsets;
return Some(RenderCommand::SetBindGroup {
index: i as u8,
index: i.try_into().unwrap(),
bind_group_id: contents.bind_group_id,
num_dynamic_offsets: (offsets.end - offsets.start) as u8,
});
@ -1469,7 +1469,7 @@ pub mod bundle_ffi {
}
bundle.base.commands.push(RenderCommand::SetBindGroup {
index: index.try_into().unwrap(),
index,
num_dynamic_offsets: offset_length.try_into().unwrap(),
bind_group_id,
});

View File

@ -38,7 +38,7 @@ use std::{fmt, mem, str};
)]
pub enum ComputeCommand {
SetBindGroup {
index: u8,
index: u32,
num_dynamic_offsets: u8,
bind_group_id: id::BindGroupId,
},
@ -163,7 +163,7 @@ pub enum ComputePassErrorInner {
#[error("Bind group {0:?} is invalid")]
InvalidBindGroup(id::BindGroupId),
#[error("Bind group index {index} is greater than the device's requested `max_bind_group` limit {max}")]
BindGroupIndexOutOfRange { index: u8, max: u32 },
BindGroupIndexOutOfRange { index: u32, max: u32 },
#[error("Compute pipeline {0:?} is invalid")]
InvalidPipeline(id::ComputePipelineId),
#[error("QuerySet {0:?} is invalid")]
@ -407,7 +407,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
let scope = PassErrorScope::SetBindGroup(bind_group_id);
let max_bind_groups = cmd_buf.limits.max_bind_groups;
if (index as u32) >= max_bind_groups {
if index >= max_bind_groups {
return Err(ComputePassErrorInner::BindGroupIndexOutOfRange {
index,
max: max_bind_groups,
@ -464,7 +464,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
unsafe {
raw.set_bind_group(
pipeline_layout,
index as u32 + i as u32,
index + i as u32,
raw_bg,
&e.dynamic_offsets,
);
@ -816,7 +816,7 @@ pub mod compute_ffi {
}
pass.base.commands.push(ComputeCommand::SetBindGroup {
index: index.try_into().unwrap(),
index,
num_dynamic_offsets: offset_length.try_into().unwrap(),
bind_group_id,
});

View File

@ -66,7 +66,7 @@ pub enum RenderCommandError {
#[error("Render bundle {0:?} is invalid")]
InvalidRenderBundle(id::RenderBundleId),
#[error("Bind group index {index} is greater than the device's requested `max_bind_group` limit {max}")]
BindGroupIndexOutOfRange { index: u8, max: u32 },
BindGroupIndexOutOfRange { index: u32, max: u32 },
#[error("Dynamic buffer offset {0} does not respect device's requested `{1}` limit {2}")]
UnalignedBufferOffset(u64, &'static str, u32),
#[error("Number of buffer offsets ({actual}) does not match the number of dynamic bindings ({expected})")]
@ -148,7 +148,7 @@ pub struct Rect<T> {
)]
pub enum RenderCommand {
SetBindGroup {
index: u8,
index: u32,
num_dynamic_offsets: u8,
bind_group_id: id::BindGroupId,
},

View File

@ -1305,7 +1305,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
} => {
let scope = PassErrorScope::SetBindGroup(bind_group_id);
let max_bind_groups = device.limits.max_bind_groups;
if (index as u32) >= max_bind_groups {
if index >= max_bind_groups {
return Err(RenderCommandError::BindGroupIndexOutOfRange {
index,
max: max_bind_groups,
@ -1372,7 +1372,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
unsafe {
raw.set_bind_group(
pipeline_layout,
index as u32 + i as u32,
index + i as u32,
raw_bg,
&e.dynamic_offsets,
);
@ -2225,7 +2225,7 @@ pub mod render_ffi {
}
pass.base.commands.push(RenderCommand::SetBindGroup {
index: index.try_into().unwrap(),
index,
num_dynamic_offsets: offset_length.try_into().unwrap(),
bind_group_id,
});

View File

@ -3704,6 +3704,18 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
let mut token = Token::root();
let fid = hub.buffers.prepare(id_in);
fid.assign_error(label.borrow_or_default(), &mut token);
}
pub fn create_render_bundle_error<A: HalApi>(
&self,
id_in: Input<G, id::RenderBundleId>,
label: Label,
) {
let hub = A::hub(self);
let mut token = Token::root();
let fid = hub.render_bundles.prepare(id_in);
let (_, mut token) = hub.devices.read(&mut token);
fid.assign_error(label.borrow_or_default(), &mut token);
}
@ -3716,7 +3728,6 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
let mut token = Token::root();
let fid = hub.textures.prepare(id_in);
let (_, mut token) = hub.devices.read(&mut token);
fid.assign_error(label.borrow_or_default(), &mut token);
}
@ -5485,7 +5496,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
if !caps.formats.contains(&config.format) {
break 'outer E::UnsupportedFormat {
requested: config.format,
available: caps.formats.clone(),
available: caps.formats,
};
}
if config.format.remove_srgb_suffix() != format.remove_srgb_suffix() {

View File

@ -523,7 +523,7 @@ pub enum CreateTextureError {
InvalidSampleCount(u32, wgt::TextureFormat),
#[error("Multisampled textures must have RENDER_ATTACHMENT usage")]
MultisampledNotRenderAttachment,
#[error("Texture format {0:?} can't be used due to missing features.")]
#[error("Texture format {0:?} can't be used due to missing features")]
MissingFeatures(wgt::TextureFormat, #[source] MissingFeatures),
#[error(transparent)]
MissingDownlevelFlags(#[from] MissingDownlevelFlags),

View File

@ -301,7 +301,7 @@ impl<T: ResourceUses> fmt::Display for InvalidUse<T> {
write!(
f,
"conflicting usages. Current usage {current:?} and new usage {new:?}. \
{exclusive:?} is an exclusive usage and cannot be used with any other\
{exclusive:?} is an exclusive usage and cannot be used with any other \
usages within the usage scope (renderpass or compute dispatch)"
)
}

File diff suppressed because one or more lines are too long

View File

@ -181,7 +181,7 @@ features = ["dynamic"]
optional = true
[target."cfg(not(target_arch = \"wasm32\"))".dependencies.libloading]
version = "0.7"
version = ">=0.7,<0.9"
optional = true
[target."cfg(not(target_arch = \"wasm32\"))".dependencies.renderdoc-sys]
@ -207,7 +207,7 @@ features = [
]
[target."cfg(target_os = \"emscripten\")".dependencies.libloading]
version = "0.7"
version = ">=0.7,<0.9"
optional = true
[target."cfg(unix)".dependencies]

View File

@ -115,8 +115,8 @@ impl super::Adapter {
let info = wgt::AdapterInfo {
backend: wgt::Backend::Dx12,
name: device_name,
vendor: desc.VendorId as usize,
device: desc.DeviceId as usize,
vendor: desc.VendorId,
device: desc.DeviceId,
device_type: if (desc.Flags & dxgi::DXGI_ADAPTER_FLAG_SOFTWARE) != 0 {
workarounds.avoid_cpu_descriptor_overwrites = true;
wgt::DeviceType::Cpu

View File

@ -170,7 +170,7 @@ impl super::Adapter {
wgt::AdapterInfo {
name: renderer_orig,
vendor: vendor_id as usize,
vendor: vendor_id,
device: 0,
device_type: inferred_device_type,
driver: String::new(),

View File

@ -393,7 +393,7 @@ impl AdapterContext {
pub unsafe fn get_without_egl_lock(&self) -> MutexGuard<glow::Context> {
self.glow
.try_lock_for(Duration::from_secs(CONTEXT_LOCK_TIMEOUT_SECS))
.expect("Could not lock adapter context. This is most-likely a deadlcok.")
.expect("Could not lock adapter context. This is most-likely a deadlock.")
}
/// Obtain a lock to the EGL context and get handle to the [`glow::Context`] that can be used to
@ -405,7 +405,7 @@ impl AdapterContext {
// Don't lock forever. If it takes longer than 1 second to get the lock we've got a
// deadlock and should panic to show where we got stuck
.try_lock_for(Duration::from_secs(CONTEXT_LOCK_TIMEOUT_SECS))
.expect("Could not lock adapter context. This is most-likely a deadlcok.");
.expect("Could not lock adapter context. This is most-likely a deadlock.");
let egl = self.egl.as_ref().map(|egl| {
egl.make_current();

View File

@ -961,8 +961,8 @@ impl super::Instance {
.unwrap_or("?")
.to_owned()
},
vendor: phd_capabilities.properties.vendor_id as usize,
device: phd_capabilities.properties.device_id as usize,
vendor: phd_capabilities.properties.vendor_id,
device: phd_capabilities.properties.device_id,
device_type: match phd_capabilities.properties.device_type {
ash::vk::PhysicalDeviceType::OTHER => wgt::DeviceType::Other,
ash::vk::PhysicalDeviceType::INTEGRATED_GPU => wgt::DeviceType::IntegratedGpu,

View File

@ -691,12 +691,12 @@ impl crate::Instance<super::Api> for super::Instance {
// Detect if it's an Intel + NVidia configuration with Optimus
let has_nvidia_dgpu = exposed_adapters.iter().any(|exposed| {
exposed.info.device_type == wgt::DeviceType::DiscreteGpu
&& exposed.info.vendor == db::nvidia::VENDOR as usize
&& exposed.info.vendor == db::nvidia::VENDOR
});
if cfg!(target_os = "linux") && has_nvidia_dgpu && self.shared.has_nv_optimus {
for exposed in exposed_adapters.iter_mut() {
if exposed.info.device_type == wgt::DeviceType::IntegratedGpu
&& exposed.info.vendor == db::intel::VENDOR as usize
&& exposed.info.vendor == db::intel::VENDOR
{
// See https://gitlab.freedesktop.org/mesa/mesa/-/issues/4688
log::warn!(

View File

@ -1 +1 @@
{"files":{"Cargo.toml":"d7e3d65db826d7d01aa7cc071e6d6a08a77cc9dfc9b9b95607fe7df6e53c3c35","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/assertions.rs":"3fe98027aa73970c8ab7874a3e13dbfd6faa87df2081beb5c83aeec4c60f372f","src/lib.rs":"50e497cbc05be839854a0932777c401ddf9b8a25a00e09592509de8d1a062cb4","src/math.rs":"4d03039736dd6926feb139bc68734cb59df34ede310427bbf059e5c925e0af3b"},"package":null}
{"files":{"Cargo.toml":"d7e3d65db826d7d01aa7cc071e6d6a08a77cc9dfc9b9b95607fe7df6e53c3c35","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/assertions.rs":"3fe98027aa73970c8ab7874a3e13dbfd6faa87df2081beb5c83aeec4c60f372f","src/lib.rs":"e7022ccb7c678ccc727821138398788c33fc483147bec2332bbd90900663200f","src/math.rs":"4d03039736dd6926feb139bc68734cb59df34ede310427bbf059e5c925e0af3b"},"package":null}

View File

@ -270,7 +270,7 @@ bitflags::bitflags! {
/// Allows shaders to acquire the FP16 ability
///
/// Note: this is not supported in naga yetonly through spir-v passthrough right now.
/// Note: this is not supported in `naga` yetonly through `spirv-passthrough` right now.
///
/// Supported Platforms:
/// - Vulkan
@ -728,7 +728,7 @@ bitflags::bitflags! {
///
/// This is a native only feature.
const SHADER_F64 = 1 << 59;
/// Allows shaders to use i16. Not currently supported in naga, only available through `spirv-passthrough`.
/// Allows shaders to use i16. Not currently supported in `naga`, only available through `spirv-passthrough`.
///
/// Supported platforms:
/// - Vulkan
@ -1303,13 +1303,29 @@ pub enum DeviceType {
pub struct AdapterInfo {
/// Adapter name
pub name: String,
/// Vendor PCI id of the adapter
/// [`Backend`]-specific vendor ID of the adapter
///
/// If the vendor has no PCI id, then this value will be the backend's vendor id equivalent. On Vulkan,
/// Mesa would have a vendor id equivalent to it's `VkVendorId` value.
pub vendor: usize,
/// PCI id of the adapter
pub device: usize,
/// This generally is a 16-bit PCI vendor ID in the least significant bytes of this field.
/// However, more significant bytes may be non-zero if the backend uses a different
/// representation.
///
/// * For [`Backend::Vulkan`], the [`VkPhysicalDeviceProperties::vendorID`] is used, which is
/// a superset of PCI IDs.
///
/// [`VkPhysicalDeviceProperties::vendorID`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties.html
pub vendor: u32,
/// [`Backend`]-specific device ID of the adapter
///
///
/// This generally is a 16-bit PCI device ID in the least significant bytes of this field.
/// However, more significant bytes may be non-zero if the backend uses a different
/// representation.
///
/// * For [`Backend::Vulkan`], the [`VkPhysicalDeviceProperties::deviceID`] is used, which is
/// a superset of PCI IDs.
///
/// [`VkPhysicalDeviceProperties::deviceID`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties.html
pub device: u32,
/// Type of device
pub device_type: DeviceType,
/// Driver name
@ -2025,6 +2041,8 @@ pub enum TextureFormat {
/// Special depth format with 32 bit floating point depth.
Depth32Float,
/// Special depth/stencil format with 32 bit floating point depth and 8 bits integer stencil.
///
/// [`Features::DEPTH32FLOAT_STENCIL8`] must be enabled to use this texture format.
Depth32FloatStencil8,
// Compressed textures usable with `TEXTURE_COMPRESSION_BC` feature.