summaryrefslogtreecommitdiffstats
path: root/third_party/rust/wgpu-core/src/binding_model.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
commit40a355a42d4a9444dc753c04c6608dade2f06a23 (patch)
tree871fc667d2de662f171103ce5ec067014ef85e61 /third_party/rust/wgpu-core/src/binding_model.rs
parentAdding upstream version 124.0.1. (diff)
downloadfirefox-adbda400be353e676059e335c3c0aaf99e719475.tar.xz
firefox-adbda400be353e676059e335c3c0aaf99e719475.zip
Adding upstream version 125.0.1.upstream/125.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/wgpu-core/src/binding_model.rs')
-rw-r--r--third_party/rust/wgpu-core/src/binding_model.rs26
1 files changed, 25 insertions, 1 deletions
diff --git a/third_party/rust/wgpu-core/src/binding_model.rs b/third_party/rust/wgpu-core/src/binding_model.rs
index d7b54ad5a5..8689af2ac1 100644
--- a/third_party/rust/wgpu-core/src/binding_model.rs
+++ b/third_party/rust/wgpu-core/src/binding_model.rs
@@ -38,6 +38,8 @@ pub enum BindGroupLayoutEntryError {
ArrayUnsupported,
#[error("Multisampled binding with sample type `TextureSampleType::Float` must have filterable set to false.")]
SampleTypeFloatFilterableBindingMultisampled,
+ #[error("Multisampled texture binding view dimension must be 2d, got {0:?}")]
+ Non2DMultisampled(wgt::TextureViewDimension),
#[error(transparent)]
MissingFeatures(#[from] MissingFeatures),
#[error(transparent)]
@@ -219,7 +221,7 @@ pub enum BindingZone {
}
#[derive(Clone, Debug, Error)]
-#[error("Too many bindings of type {kind:?} in {zone}, limit is {limit}, count was {count}")]
+#[error("Too many bindings of type {kind:?} in {zone}, limit is {limit}, count was {count}. Check the limit `{}` passed to `Adapter::request_device`", .kind.to_config_str())]
pub struct BindingTypeMaxCountError {
pub kind: BindingTypeMaxCountErrorKind,
pub zone: BindingZone,
@@ -238,6 +240,28 @@ pub enum BindingTypeMaxCountErrorKind {
UniformBuffers,
}
+impl BindingTypeMaxCountErrorKind {
+ fn to_config_str(&self) -> &'static str {
+ match self {
+ BindingTypeMaxCountErrorKind::DynamicUniformBuffers => {
+ "max_dynamic_uniform_buffers_per_pipeline_layout"
+ }
+ BindingTypeMaxCountErrorKind::DynamicStorageBuffers => {
+ "max_dynamic_storage_buffers_per_pipeline_layout"
+ }
+ BindingTypeMaxCountErrorKind::SampledTextures => {
+ "max_sampled_textures_per_shader_stage"
+ }
+ BindingTypeMaxCountErrorKind::Samplers => "max_samplers_per_shader_stage",
+ BindingTypeMaxCountErrorKind::StorageBuffers => "max_storage_buffers_per_shader_stage",
+ BindingTypeMaxCountErrorKind::StorageTextures => {
+ "max_storage_textures_per_shader_stage"
+ }
+ BindingTypeMaxCountErrorKind::UniformBuffers => "max_uniform_buffers_per_shader_stage",
+ }
+ }
+}
+
#[derive(Debug, Default)]
pub(crate) struct PerStageBindingTypeCounter {
vertex: u32,