Check cfg during CI and fix feature typos (#12103)

# Objective

- Add the new `-Zcheck-cfg` checks to catch more warnings
- Fixes #12091

## Solution

- Create a new `cfg-check` to the CI that runs `cargo check -Zcheck-cfg
--workspace` using cargo nightly (and fails if there are warnings)
- Fix all warnings generated by the new check

---

## Changelog

- Remove all redundant imports
- Fix cfg wasm32 targets
- Add 3 dead code exceptions (should StandardColor be unused?)
- Convert ios_simulator to a feature (I'm not sure if this is the right
way to do it, but the check complained before)

## Migration Guide

No breaking changes

---------

Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
This commit is contained in:
eri 2024-02-25 16:19:27 +01:00 committed by GitHub
parent c0a52d97e1
commit 5f8f3b532c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
36 changed files with 78 additions and 122 deletions

View File

@ -375,4 +375,26 @@ jobs:
echo " Fix the issue by replacing 'bevy_internal' with 'bevy'" echo " Fix the issue by replacing 'bevy_internal' with 'bevy'"
echo " Example: 'use bevy::sprite::MaterialMesh2dBundle;' instead of 'bevy_internal::sprite::MaterialMesh2dBundle;'" echo " Example: 'use bevy::sprite::MaterialMesh2dBundle;' instead of 'bevy_internal::sprite::MaterialMesh2dBundle;'"
exit 1 exit 1
fi fi
check-cfg:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-check-doc-${{ hashFiles('**/Cargo.toml') }}
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.NIGHTLY_TOOLCHAIN }}
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
- name: Build and check cfg typos
# See tools/ci/src/main.rs for the commands this runs
run: cargo run -p ci -- cfg-check

View File

@ -3,9 +3,8 @@ pub use bevy_derive::AppLabel;
use bevy_ecs::{ use bevy_ecs::{
prelude::*, prelude::*,
schedule::{ schedule::{
apply_state_transition, common_conditions::run_once as run_once_condition, common_conditions::run_once as run_once_condition, run_enter_schedule,
run_enter_schedule, InternedScheduleLabel, IntoSystemConfigs, IntoSystemSetConfigs, InternedScheduleLabel, ScheduleBuildSettings, ScheduleLabel,
ScheduleBuildSettings, ScheduleLabel, StateTransitionEvent,
}, },
}; };
use bevy_utils::{intern::Interned, thiserror::Error, tracing::debug, HashMap, HashSet}; use bevy_utils::{intern::Interned, thiserror::Error, tracing::debug, HashMap, HashSet};

View File

@ -98,6 +98,7 @@ pub use xyza::*;
use bevy_render::color::LegacyColor; use bevy_render::color::LegacyColor;
/// Describes the traits that a color should implement for consistency. /// Describes the traits that a color should implement for consistency.
#[allow(dead_code)] // This is an internal marker trait used to ensure that our color types impl the required traits
pub(crate) trait StandardColor pub(crate) trait StandardColor
where where
Self: core::fmt::Debug, Self: core::fmt::Debug,

View File

@ -5,7 +5,7 @@ mod name;
mod serde; mod serde;
mod task_pool_options; mod task_pool_options;
use bevy_ecs::system::{ResMut, Resource}; use bevy_ecs::system::Resource;
pub use bytemuck::{bytes_of, cast_slice, Pod, Zeroable}; pub use bytemuck::{bytes_of, cast_slice, Pod, Zeroable};
pub use name::*; pub use name::*;
pub use task_pool_options::*; pub use task_pool_options::*;

View File

@ -2,7 +2,6 @@ use std::sync::Mutex;
use crate::contrast_adaptive_sharpening::ViewCASPipeline; use crate::contrast_adaptive_sharpening::ViewCASPipeline;
use bevy_ecs::prelude::*; use bevy_ecs::prelude::*;
use bevy_ecs::query::QueryState;
use bevy_render::{ use bevy_render::{
extract_component::{ComponentUniforms, DynamicUniformIndex}, extract_component::{ComponentUniforms, DynamicUniformIndex},
render_graph::{Node, NodeRunError, RenderGraphContext}, render_graph::{Node, NodeRunError, RenderGraphContext},

View File

@ -18,7 +18,6 @@ use bevy_render::{
use bevy_ecs::query::QueryItem; use bevy_ecs::query::QueryItem;
use bevy_render::{ use bevy_render::{
render_graph::{NodeRunError, RenderGraphContext, ViewNode}, render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_resource::{Operations, PipelineCache, RenderPassDescriptor},
renderer::RenderContext, renderer::RenderContext,
}; };

View File

@ -9,7 +9,6 @@ use bevy_render::{
camera::ExtractedCamera, camera::ExtractedCamera,
color::LegacyColor, color::LegacyColor,
render_graph::{Node, NodeRunError, RenderGraphApp, RenderGraphContext}, render_graph::{Node, NodeRunError, RenderGraphApp, RenderGraphContext},
render_resource::BindGroupEntries,
renderer::RenderContext, renderer::RenderContext,
view::{Msaa, ViewTarget}, view::{Msaa, ViewTarget},
Render, RenderSet, Render, RenderSet,

View File

@ -56,7 +56,7 @@ use crate::{
storage::{SparseSetIndex, TableId, TableRow}, storage::{SparseSetIndex, TableId, TableRow},
}; };
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::{convert::TryFrom, fmt, hash::Hash, mem, num::NonZeroU32, sync::atomic::Ordering}; use std::{fmt, hash::Hash, mem, num::NonZeroU32, sync::atomic::Ordering};
#[cfg(target_has_atomic = "64")] #[cfg(target_has_atomic = "64")]
use std::sync::atomic::AtomicI64 as AtomicIdCursor; use std::sync::atomic::AtomicI64 as AtomicIdCursor;

View File

@ -49,7 +49,7 @@ impl<'w, 's, D: QueryData, F: QueryFilter> QueryIter<'w, 's, D, F> {
/// - `table` must match D and F /// - `table` must match D and F
/// - Both `D::IS_DENSE` and `F::IS_DENSE` must be true. /// - Both `D::IS_DENSE` and `F::IS_DENSE` must be true.
#[inline] #[inline]
#[cfg(all(not(target = "wasm32"), feature = "multi-threaded"))] #[cfg(all(not(target_arch = "wasm32"), feature = "multi-threaded"))]
pub(super) unsafe fn for_each_in_table_range<Func>( pub(super) unsafe fn for_each_in_table_range<Func>(
&mut self, &mut self,
func: &mut Func, func: &mut Func,
@ -73,7 +73,7 @@ impl<'w, 's, D: QueryData, F: QueryFilter> QueryIter<'w, 's, D, F> {
/// - `archetype` must match D and F /// - `archetype` must match D and F
/// - Either `D::IS_DENSE` or `F::IS_DENSE` must be false. /// - Either `D::IS_DENSE` or `F::IS_DENSE` must be false.
#[inline] #[inline]
#[cfg(all(not(target = "wasm32"), feature = "multi-threaded"))] #[cfg(all(not(target_arch = "wasm32"), feature = "multi-threaded"))]
pub(super) unsafe fn for_each_in_archetype_range<Func>( pub(super) unsafe fn for_each_in_archetype_range<Func>(
&mut self, &mut self,
func: &mut Func, func: &mut Func,

View File

@ -109,7 +109,7 @@ impl<'w, 's, D: QueryData, F: QueryFilter> QueryParIter<'w, 's, D, F> {
/// [`ComputeTaskPool`]: bevy_tasks::ComputeTaskPool /// [`ComputeTaskPool`]: bevy_tasks::ComputeTaskPool
#[inline] #[inline]
pub fn for_each<FN: Fn(QueryItem<'w, D>) + Send + Sync + Clone>(self, func: FN) { pub fn for_each<FN: Fn(QueryItem<'w, D>) + Send + Sync + Clone>(self, func: FN) {
#[cfg(any(target = "wasm32", not(feature = "multi-threaded")))] #[cfg(any(target_arch = "wasm32", not(feature = "multi-threaded")))]
{ {
// SAFETY: // SAFETY:
// This method can only be called once per instance of QueryParIter, // This method can only be called once per instance of QueryParIter,
@ -123,7 +123,7 @@ impl<'w, 's, D: QueryData, F: QueryFilter> QueryParIter<'w, 's, D, F> {
.for_each(func); .for_each(func);
} }
} }
#[cfg(all(not(target = "wasm32"), feature = "multi-threaded"))] #[cfg(all(not(target_arch = "wasm32"), feature = "multi-threaded"))]
{ {
let thread_count = bevy_tasks::ComputeTaskPool::get().thread_num(); let thread_count = bevy_tasks::ComputeTaskPool::get().thread_num();
if thread_count <= 1 { if thread_count <= 1 {
@ -150,7 +150,7 @@ impl<'w, 's, D: QueryData, F: QueryFilter> QueryParIter<'w, 's, D, F> {
} }
} }
#[cfg(all(not(target = "wasm32"), feature = "multi-threaded"))] #[cfg(all(not(target_arch = "wasm32"), feature = "multi-threaded"))]
fn get_batch_size(&self, thread_count: usize) -> usize { fn get_batch_size(&self, thread_count: usize) -> usize {
if self.batching_strategy.batch_size_limits.is_empty() { if self.batching_strategy.batch_size_limits.is_empty() {
return self.batching_strategy.batch_size_limits.start; return self.batching_strategy.batch_size_limits.start;

View File

@ -1117,7 +1117,7 @@ impl<D: QueryData, F: QueryFilter> QueryState<D, F> {
/// with a mismatched [`WorldId`] is unsound. /// with a mismatched [`WorldId`] is unsound.
/// ///
/// [`ComputeTaskPool`]: bevy_tasks::ComputeTaskPool /// [`ComputeTaskPool`]: bevy_tasks::ComputeTaskPool
#[cfg(all(not(target = "wasm32"), feature = "multi-threaded"))] #[cfg(all(not(target_arch = "wasm32"), feature = "multi-threaded"))]
pub(crate) unsafe fn par_for_each_unchecked_manual< pub(crate) unsafe fn par_for_each_unchecked_manual<
'w, 'w,
FN: Fn(D::Item<'w>) + Send + Sync + Clone, FN: Fn(D::Item<'w>) + Send + Sync + Clone,

View File

@ -1,7 +1,6 @@
use std::{ use std::{
collections::BTreeSet, collections::BTreeSet,
fmt::{Debug, Write}, fmt::{Debug, Write},
result::Result,
}; };
#[cfg(feature = "trace")] #[cfg(feature = "trace")]

View File

@ -12,6 +12,9 @@ keywords = ["bevy"]
webgl = [] webgl = []
webgpu = [] webgpu = []
pbr_transmission_textures = [] pbr_transmission_textures = []
shader_format_glsl = ["bevy_render/shader_format_glsl"]
trace = ["bevy_render/trace"]
ios_simulator = ["bevy_render/ios_simulator"]
[dependencies] [dependencies]
# bevy # bevy

View File

@ -1,4 +1,3 @@
use crate::ReflectComponent;
use bevy_ecs::prelude::*; use bevy_ecs::prelude::*;
use bevy_math::Vec3; use bevy_math::Vec3;
use bevy_reflect::{std_traits::ReflectDefault, Reflect}; use bevy_reflect::{std_traits::ReflectDefault, Reflect};

View File

@ -8,7 +8,6 @@ use bevy_math::{
use bevy_reflect::prelude::*; use bevy_reflect::prelude::*;
use bevy_render::{ use bevy_render::{
camera::{Camera, CameraProjection}, camera::{Camera, CameraProjection},
color::LegacyColor,
extract_component::ExtractComponent, extract_component::ExtractComponent,
extract_resource::ExtractResource, extract_resource::ExtractResource,
primitives::{Aabb, CascadesFrusta, CubemapFrusta, Frustum, HalfSpace, Sphere}, primitives::{Aabb, CascadesFrusta, CubemapFrusta, Frustum, HalfSpace, Sphere},

View File

@ -1,6 +1,5 @@
use crate::*; use crate::*;
use bevy_app::{App, Plugin}; use bevy_asset::{Asset, AssetEvent, AssetId, AssetServer};
use bevy_asset::{Asset, AssetApp, AssetEvent, AssetId, AssetServer, Assets, Handle};
use bevy_core_pipeline::{ use bevy_core_pipeline::{
core_3d::{ core_3d::{
AlphaMask3d, Camera3d, Opaque3d, ScreenSpaceTransmissionQuality, Transmissive3d, AlphaMask3d, Camera3d, Opaque3d, ScreenSpaceTransmissionQuality, Transmissive3d,
@ -16,19 +15,17 @@ use bevy_ecs::{
}; };
use bevy_reflect::Reflect; use bevy_reflect::Reflect;
use bevy_render::{ use bevy_render::{
camera::Projection,
camera::TemporalJitter, camera::TemporalJitter,
extract_instances::{ExtractInstancesPlugin, ExtractedInstances}, extract_instances::{ExtractInstancesPlugin, ExtractedInstances},
extract_resource::ExtractResource, extract_resource::ExtractResource,
mesh::{Mesh, MeshVertexBufferLayout}, mesh::{Mesh, MeshVertexBufferLayout},
prelude::Image, render_asset::RenderAssets,
render_asset::{prepare_assets, RenderAssets},
render_phase::*, render_phase::*,
render_resource::*, render_resource::*,
renderer::RenderDevice, renderer::RenderDevice,
texture::FallbackImage, texture::FallbackImage,
view::{ExtractedView, Msaa, VisibleEntities}, view::{ExtractedView, Msaa, VisibleEntities},
Extract, ExtractSchedule, Render, RenderApp, RenderSet, Extract,
}; };
use bevy_utils::{tracing::error, HashMap, HashSet}; use bevy_utils::{tracing::error, HashMap, HashSet};
use std::marker::PhantomData; use std::marker::PhantomData;

View File

@ -1,10 +1,7 @@
use bevy_asset::{Asset, Handle}; use bevy_asset::Asset;
use bevy_math::{Affine2, Vec2, Vec4}; use bevy_math::{Affine2, Vec2, Vec4};
use bevy_reflect::{std_traits::ReflectDefault, Reflect}; use bevy_reflect::{std_traits::ReflectDefault, Reflect};
use bevy_render::{ use bevy_render::{mesh::MeshVertexBufferLayout, render_asset::RenderAssets, render_resource::*};
color::LegacyColor, mesh::MeshVertexBufferLayout, render_asset::RenderAssets,
render_resource::*, texture::Image,
};
use crate::deferred::DEFAULT_PBR_DEFERRED_LIGHTING_PASS_ID; use crate::deferred::DEFAULT_PBR_DEFERRED_LIGHTING_PASS_ID;
use crate::*; use crate::*;

View File

@ -3,8 +3,7 @@ mod prepass_bindings;
use bevy_render::render_resource::binding_types::uniform_buffer; use bevy_render::render_resource::binding_types::uniform_buffer;
pub use prepass_bindings::*; pub use prepass_bindings::*;
use bevy_app::{Plugin, PreUpdate}; use bevy_asset::{load_internal_asset, AssetServer};
use bevy_asset::{load_internal_asset, AssetServer, Handle};
use bevy_core_pipeline::{core_3d::CORE_3D_DEPTH_FORMAT, prelude::Camera3d}; use bevy_core_pipeline::{core_3d::CORE_3D_DEPTH_FORMAT, prelude::Camera3d};
use bevy_core_pipeline::{deferred::*, prepass::*}; use bevy_core_pipeline::{deferred::*, prepass::*};
use bevy_ecs::{ use bevy_ecs::{
@ -25,7 +24,7 @@ use bevy_render::{
render_resource::*, render_resource::*,
renderer::{RenderDevice, RenderQueue}, renderer::{RenderDevice, RenderQueue},
view::{ExtractedView, Msaa, ViewUniform, ViewUniformOffset, ViewUniforms, VisibleEntities}, view::{ExtractedView, Msaa, ViewUniform, ViewUniformOffset, ViewUniforms, VisibleEntities},
Extract, ExtractSchedule, Render, RenderApp, RenderSet, Extract,
}; };
use bevy_transform::prelude::GlobalTransform; use bevy_transform::prelude::GlobalTransform;
use bevy_utils::tracing::error; use bevy_utils::tracing::error;

View File

@ -4,7 +4,6 @@ use bevy_ecs::prelude::*;
use bevy_math::{Mat4, UVec3, UVec4, Vec2, Vec3, Vec3Swizzles, Vec4, Vec4Swizzles}; use bevy_math::{Mat4, UVec3, UVec4, Vec2, Vec3, Vec3Swizzles, Vec4, Vec4Swizzles};
use bevy_render::{ use bevy_render::{
camera::Camera, camera::Camera,
color::LegacyColor,
mesh::Mesh, mesh::Mesh,
primitives::{CascadesFrusta, CubemapFrusta, Frustum}, primitives::{CascadesFrusta, CubemapFrusta, Frustum},
render_asset::RenderAssets, render_asset::RenderAssets,
@ -1213,7 +1212,7 @@ pub fn prepare_lights(
// NOTE: iOS Simulator is missing CubeArray support so we use Cube instead. // NOTE: iOS Simulator is missing CubeArray support so we use Cube instead.
// See https://github.com/bevyengine/bevy/pull/12052 - remove if support is added. // See https://github.com/bevyengine/bevy/pull/12052 - remove if support is added.
#[cfg(all( #[cfg(all(
not(ios_simulator), not(feature = "ios_simulator"),
any( any(
not(feature = "webgl"), not(feature = "webgl"),
not(target_arch = "wasm32"), not(target_arch = "wasm32"),
@ -1222,7 +1221,7 @@ pub fn prepare_lights(
))] ))]
dimension: Some(TextureViewDimension::CubeArray), dimension: Some(TextureViewDimension::CubeArray),
#[cfg(any( #[cfg(any(
ios_simulator, feature = "ios_simulator",
all(feature = "webgl", target_arch = "wasm32", not(feature = "webgpu")) all(feature = "webgl", target_arch = "wasm32", not(feature = "webgpu"))
))] ))]
dimension: Some(TextureViewDimension::Cube), dimension: Some(TextureViewDimension::Cube),

View File

@ -1,11 +1,4 @@
use crate::{ use bevy_asset::{load_internal_asset, AssetId};
AtomicMaterialBindGroupId, MaterialBindGroupId, NotShadowCaster, NotShadowReceiver,
PreviousGlobalTransform, Shadow, ViewFogUniformOffset, ViewLightProbesUniformOffset,
ViewLightsUniformOffset, CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT, MAX_CASCADES_PER_LIGHT,
MAX_DIRECTIONAL_LIGHTS,
};
use bevy_app::{Plugin, PostUpdate};
use bevy_asset::{load_internal_asset, AssetId, Handle};
use bevy_core_pipeline::{ use bevy_core_pipeline::{
core_3d::{AlphaMask3d, Opaque3d, Transmissive3d, Transparent3d, CORE_3D_DEPTH_FORMAT}, core_3d::{AlphaMask3d, Opaque3d, Transmissive3d, Transparent3d, CORE_3D_DEPTH_FORMAT},
deferred::{AlphaMask3dDeferred, Opaque3dDeferred}, deferred::{AlphaMask3dDeferred, Opaque3dDeferred},
@ -28,11 +21,9 @@ use bevy_render::{
render_phase::{PhaseItem, RenderCommand, RenderCommandResult, TrackedRenderPass}, render_phase::{PhaseItem, RenderCommand, RenderCommandResult, TrackedRenderPass},
render_resource::*, render_resource::*,
renderer::{RenderDevice, RenderQueue}, renderer::{RenderDevice, RenderQueue},
texture::{ texture::{BevyDefault, DefaultImageSampler, GpuImage, ImageSampler, TextureFormatPixelInfo},
BevyDefault, DefaultImageSampler, GpuImage, Image, ImageSampler, TextureFormatPixelInfo,
},
view::{ViewTarget, ViewUniformOffset, ViewVisibility}, view::{ViewTarget, ViewUniformOffset, ViewVisibility},
Extract, ExtractSchedule, Render, RenderApp, RenderSet, Extract,
}; };
use bevy_transform::components::GlobalTransform; use bevy_transform::components::GlobalTransform;
use bevy_utils::{tracing::error, Entry, HashMap, Hashed}; use bevy_utils::{tracing::error, Entry, HashMap, Hashed};
@ -46,8 +37,7 @@ use crate::render::{
morph::{ morph::{
extract_morphs, no_automatic_morph_batching, prepare_morphs, MorphIndices, MorphUniform, extract_morphs, no_automatic_morph_batching, prepare_morphs, MorphIndices, MorphUniform,
}, },
skin::{extract_skins, no_automatic_skin_batching, prepare_skins, SkinUniform}, skin::no_automatic_skin_batching,
MeshLayouts,
}; };
use crate::*; use crate::*;

View File

@ -23,12 +23,6 @@ use bevy_render::{
#[cfg(all(feature = "webgl", target_arch = "wasm32", not(feature = "webgpu")))] #[cfg(all(feature = "webgl", target_arch = "wasm32", not(feature = "webgpu")))]
use bevy_render::render_resource::binding_types::texture_cube; use bevy_render::render_resource::binding_types::texture_cube;
#[cfg(any(
not(feature = "webgl"),
not(target_arch = "wasm32"),
feature = "webgpu"
))]
use bevy_render::render_resource::binding_types::{texture_2d_array, texture_cube_array};
use environment_map::EnvironmentMapLight; use environment_map::EnvironmentMapLight;
use crate::{ use crate::{
@ -192,7 +186,7 @@ fn layout_entries(
( (
2, 2,
#[cfg(all( #[cfg(all(
not(ios_simulator), not(feature = "ios_simulator"),
any( any(
not(feature = "webgl"), not(feature = "webgl"),
not(target_arch = "wasm32"), not(target_arch = "wasm32"),
@ -201,7 +195,7 @@ fn layout_entries(
))] ))]
texture_cube_array(TextureSampleType::Depth), texture_cube_array(TextureSampleType::Depth),
#[cfg(any( #[cfg(any(
ios_simulator, feature = "ios_simulator",
all(feature = "webgl", target_arch = "wasm32", not(feature = "webgpu")) all(feature = "webgl", target_arch = "wasm32", not(feature = "webgpu"))
))] ))]
texture_cube(TextureSampleType::Depth), texture_cube(TextureSampleType::Depth),

View File

@ -4,11 +4,7 @@ use bevy_asset::{load_internal_asset, Asset, Assets, Handle};
use bevy_ecs::prelude::*; use bevy_ecs::prelude::*;
use bevy_reflect::{std_traits::ReflectDefault, Reflect, TypePath}; use bevy_reflect::{std_traits::ReflectDefault, Reflect, TypePath};
use bevy_render::{ use bevy_render::{
color::LegacyColor, extract_resource::ExtractResource, mesh::MeshVertexBufferLayout, prelude::*, render_resource::*,
extract_resource::ExtractResource,
mesh::{Mesh, MeshVertexBufferLayout},
prelude::*,
render_resource::*,
}; };
pub const WIREFRAME_SHADER_HANDLE: Handle<Shader> = Handle::weak_from_u128(192598014480025766); pub const WIREFRAME_SHADER_HANDLE: Handle<Shader> = Handle::weak_from_u128(192598014480025766);

View File

@ -3,7 +3,7 @@ use crate::{
ArrayInfo, DynamicArray, DynamicEnum, DynamicList, DynamicMap, DynamicStruct, DynamicTuple, ArrayInfo, DynamicArray, DynamicEnum, DynamicList, DynamicMap, DynamicStruct, DynamicTuple,
DynamicTupleStruct, DynamicVariant, EnumInfo, ListInfo, Map, MapInfo, NamedField, Reflect, DynamicTupleStruct, DynamicVariant, EnumInfo, ListInfo, Map, MapInfo, NamedField, Reflect,
ReflectDeserialize, StructInfo, StructVariantInfo, TupleInfo, TupleStructInfo, ReflectDeserialize, StructInfo, StructVariantInfo, TupleInfo, TupleStructInfo,
TupleVariantInfo, TypeInfo, TypeRegistration, TypeRegistry, UnnamedField, VariantInfo, TupleVariantInfo, TypeInfo, TypeRegistration, TypeRegistry, VariantInfo,
}; };
use erased_serde::Deserializer; use erased_serde::Deserializer;
use serde::de::{ use serde::de::{
@ -23,7 +23,6 @@ pub trait DeserializeValue {
} }
trait StructLikeInfo { trait StructLikeInfo {
fn get_path(&self) -> &str;
fn get_field(&self, name: &str) -> Option<&NamedField>; fn get_field(&self, name: &str) -> Option<&NamedField>;
fn field_at(&self, index: usize) -> Option<&NamedField>; fn field_at(&self, index: usize) -> Option<&NamedField>;
fn get_field_len(&self) -> usize; fn get_field_len(&self) -> usize;
@ -31,8 +30,6 @@ trait StructLikeInfo {
} }
trait TupleLikeInfo { trait TupleLikeInfo {
fn get_path(&self) -> &str;
fn get_field(&self, index: usize) -> Option<&UnnamedField>;
fn get_field_len(&self) -> usize; fn get_field_len(&self) -> usize;
} }
@ -45,10 +42,6 @@ trait Container {
} }
impl StructLikeInfo for StructInfo { impl StructLikeInfo for StructInfo {
fn get_path(&self) -> &str {
self.type_path()
}
fn get_field(&self, name: &str) -> Option<&NamedField> { fn get_field(&self, name: &str) -> Option<&NamedField> {
self.field(name) self.field(name)
} }
@ -84,10 +77,6 @@ impl Container for StructInfo {
} }
impl StructLikeInfo for StructVariantInfo { impl StructLikeInfo for StructVariantInfo {
fn get_path(&self) -> &str {
self.name()
}
fn get_field(&self, name: &str) -> Option<&NamedField> { fn get_field(&self, name: &str) -> Option<&NamedField> {
self.field(name) self.field(name)
} }
@ -123,14 +112,6 @@ impl Container for StructVariantInfo {
} }
impl TupleLikeInfo for TupleInfo { impl TupleLikeInfo for TupleInfo {
fn get_path(&self) -> &str {
self.type_path()
}
fn get_field(&self, index: usize) -> Option<&UnnamedField> {
self.field_at(index)
}
fn get_field_len(&self) -> usize { fn get_field_len(&self) -> usize {
self.field_len() self.field_len()
} }
@ -154,14 +135,6 @@ impl Container for TupleInfo {
} }
impl TupleLikeInfo for TupleStructInfo { impl TupleLikeInfo for TupleStructInfo {
fn get_path(&self) -> &str {
self.type_path()
}
fn get_field(&self, index: usize) -> Option<&UnnamedField> {
self.field_at(index)
}
fn get_field_len(&self) -> usize { fn get_field_len(&self) -> usize {
self.field_len() self.field_len()
} }
@ -185,14 +158,6 @@ impl Container for TupleStructInfo {
} }
impl TupleLikeInfo for TupleVariantInfo { impl TupleLikeInfo for TupleVariantInfo {
fn get_path(&self) -> &str {
self.name()
}
fn get_field(&self, index: usize) -> Option<&UnnamedField> {
self.field_at(index)
}
fn get_field_len(&self) -> usize { fn get_field_len(&self) -> usize {
self.field_len() self.field_len()
} }

View File

@ -34,6 +34,7 @@ wgpu_trace = ["wgpu/trace"]
ci_limits = [] ci_limits = []
webgl = ["wgpu/webgl"] webgl = ["wgpu/webgl"]
webgpu = ["wgpu/webgpu"] webgpu = ["wgpu/webgpu"]
ios_simulator = []
[dependencies] [dependencies]
# bevy # bevy

View File

@ -3,7 +3,7 @@ use std::ops::{Div, DivAssign, Mul, MulAssign};
use crate::primitives::Frustum; use crate::primitives::Frustum;
use bevy_app::{App, Plugin, PostStartup, PostUpdate}; use bevy_app::{App, Plugin, PostStartup, PostUpdate};
use bevy_ecs::{prelude::*, reflect::ReflectComponent}; use bevy_ecs::prelude::*;
use bevy_math::{AspectRatio, Mat4, Rect, Vec2, Vec3A}; use bevy_math::{AspectRatio, Mat4, Rect, Vec2, Vec3A};
use bevy_reflect::{ use bevy_reflect::{
std_traits::ReflectDefault, GetTypeRegistration, Reflect, ReflectDeserialize, ReflectSerialize, std_traits::ReflectDefault, GetTypeRegistration, Reflect, ReflectDeserialize, ReflectSerialize,

View File

@ -354,7 +354,7 @@ pub mod binding_types {
}; };
use encase::ShaderType; use encase::ShaderType;
use std::num::NonZeroU64; use std::num::NonZeroU64;
use wgpu::{BindingType, StorageTextureAccess, TextureFormat}; use wgpu::{StorageTextureAccess, TextureFormat};
use super::*; use super::*;

View File

@ -21,10 +21,7 @@ use std::{
use thiserror::Error; use thiserror::Error;
#[cfg(feature = "shader_format_spirv")] #[cfg(feature = "shader_format_spirv")]
use wgpu::util::make_spirv; use wgpu::util::make_spirv;
use wgpu::{ use wgpu::{DownlevelFlags, Features, VertexBufferLayout as RawVertexBufferLayout};
DownlevelFlags, Features, PipelineLayoutDescriptor, PushConstantRange, ShaderModuleDescriptor,
VertexBufferLayout as RawVertexBufferLayout,
};
use crate::render_resource::resource_macros::*; use crate::render_resource::resource_macros::*;
@ -288,7 +285,7 @@ impl ShaderCache {
shader_defs.push("SIXTEEN_BYTE_ALIGNMENT".into()); shader_defs.push("SIXTEEN_BYTE_ALIGNMENT".into());
} }
if cfg!(ios_simulator) { if cfg!(feature = "ios_simulator") {
shader_defs.push("NO_CUBE_ARRAY_TEXTURES_SUPPORT".into()); shader_defs.push("NO_CUBE_ARRAY_TEXTURES_SUPPORT".into());
} }

View File

@ -277,7 +277,7 @@ impl<T: ShaderType + WriteInto> DynamicUniformBuffer<T> {
device: &RenderDevice, device: &RenderDevice,
queue: &'a RenderQueue, queue: &'a RenderQueue,
) -> Option<DynamicUniformBufferWriter<'a, T>> { ) -> Option<DynamicUniformBufferWriter<'a, T>> {
let alignment = if cfg!(ios_simulator) { let alignment = if cfg!(feature = "ios_simulator") {
// On iOS simulator on silicon macs, metal validation check that the host OS alignment // On iOS simulator on silicon macs, metal validation check that the host OS alignment
// is respected, but the device reports the correct value for iOS, which is smaller. // is respected, but the device reports the correct value for iOS, which is smaller.
// Use the larger value. // Use the larger value.

View File

@ -5,7 +5,6 @@ use bevy_ecs::{
system::{Resource, SystemParam}, system::{Resource, SystemParam},
}; };
use bevy_utils::HashMap; use bevy_utils::HashMap;
use wgpu::{Extent3d, TextureFormat};
use crate::{ use crate::{
prelude::Image, prelude::Image,

View File

@ -4,8 +4,7 @@ use bevy_asset::{load_internal_asset, Asset, AssetApp, Assets, Handle};
use bevy_math::Vec4; use bevy_math::Vec4;
use bevy_reflect::prelude::*; use bevy_reflect::prelude::*;
use bevy_render::{ use bevy_render::{
color::LegacyColor, prelude::Shader, render_asset::RenderAssets, render_resource::*, color::LegacyColor, render_asset::RenderAssets, render_resource::*, texture::Image,
texture::Image,
}; };
pub const COLOR_MATERIAL_SHADER_HANDLE: Handle<Shader> = pub const COLOR_MATERIAL_SHADER_HANDLE: Handle<Shader> =

View File

@ -24,7 +24,7 @@ use bevy_render::{
}, },
render_resource::{ render_resource::{
binding_types::{sampler, texture_2d, uniform_buffer}, binding_types::{sampler, texture_2d, uniform_buffer},
BindGroupEntries, *, *,
}, },
renderer::{RenderDevice, RenderQueue}, renderer::{RenderDevice, RenderQueue},
texture::{ texture::{

View File

@ -6,10 +6,7 @@ use bevy_core_pipeline::core_2d::graph::{Core2d, Node2d};
use bevy_core_pipeline::core_3d::graph::{Core3d, Node3d}; use bevy_core_pipeline::core_3d::graph::{Core3d, Node3d};
use bevy_core_pipeline::{core_2d::Camera2d, core_3d::Camera3d}; use bevy_core_pipeline::{core_2d::Camera2d, core_3d::Camera3d};
use bevy_hierarchy::Parent; use bevy_hierarchy::Parent;
use bevy_render::{ use bevy_render::{render_phase::PhaseItem, view::ViewVisibility, ExtractSchedule, Render};
render_phase::PhaseItem, render_resource::BindGroupEntries, view::ViewVisibility,
ExtractSchedule, Render,
};
use bevy_sprite::{SpriteAssetEvents, TextureAtlas}; use bevy_sprite::{SpriteAssetEvents, TextureAtlas};
pub use pipeline::*; pub use pipeline::*;
pub use render_pass::*; pub use render_pass::*;

View File

@ -1,16 +1,13 @@
use std::{hash::Hash, marker::PhantomData, ops::Range}; use std::{hash::Hash, marker::PhantomData, ops::Range};
use bevy_app::{App, Plugin};
use bevy_asset::*; use bevy_asset::*;
use bevy_derive::{Deref, DerefMut}; use bevy_derive::{Deref, DerefMut};
use bevy_ecs::{ use bevy_ecs::{
prelude::{Component, Entity, EventReader}, prelude::Component,
query::{ROQueryItem, With}, query::ROQueryItem,
schedule::IntoSystemConfigs,
storage::SparseSet, storage::SparseSet,
system::lifetimeless::{Read, SRes}, system::lifetimeless::{Read, SRes},
system::*, system::*,
world::{FromWorld, World},
}; };
use bevy_math::{Mat4, Rect, Vec2, Vec4Swizzles}; use bevy_math::{Mat4, Rect, Vec2, Vec4Swizzles};
use bevy_render::{ use bevy_render::{
@ -22,7 +19,7 @@ use bevy_render::{
renderer::{RenderDevice, RenderQueue}, renderer::{RenderDevice, RenderQueue},
texture::{BevyDefault, FallbackImage, Image}, texture::{BevyDefault, FallbackImage, Image},
view::*, view::*,
Extract, ExtractSchedule, Render, RenderApp, RenderSet, Extract, ExtractSchedule, Render, RenderSet,
}; };
use bevy_transform::prelude::GlobalTransform; use bevy_transform::prelude::GlobalTransform;
use bevy_utils::{FloatOrd, HashMap, HashSet}; use bevy_utils::{FloatOrd, HashMap, HashSet};

View File

@ -20,7 +20,7 @@ pub use winit_config::*;
pub use winit_windows::*; pub use winit_windows::*;
use bevy_app::{App, AppExit, Last, Plugin, PluginsState}; use bevy_app::{App, AppExit, Last, Plugin, PluginsState};
use bevy_ecs::event::{Events, ManualEventReader}; use bevy_ecs::event::ManualEventReader;
use bevy_ecs::prelude::*; use bevy_ecs::prelude::*;
use bevy_ecs::system::SystemState; use bevy_ecs::system::SystemState;
use bevy_input::{ use bevy_input::{

View File

@ -2,4 +2,4 @@
# This needs some workarounds for now # This needs some workarounds for now
# See https://github.com/bevyengine/bevy/pull/10178 - remove if it's not needed anymore. # See https://github.com/bevyengine/bevy/pull/10178 - remove if it's not needed anymore.
[target.aarch64-apple-ios-sim] [target.aarch64-apple-ios-sim]
rustflags = ["--cfg=ios_simulator"] features = ["bevy_render/ios_simulator"]

View File

@ -16,6 +16,7 @@ bitflags! {
const BENCH_CHECK = 0b01000000; const BENCH_CHECK = 0b01000000;
const EXAMPLE_CHECK = 0b10000000; const EXAMPLE_CHECK = 0b10000000;
const COMPILE_CHECK = 0b100000000; const COMPILE_CHECK = 0b100000000;
const CFG_CHECK = 0b1000000000;
} }
} }
@ -38,6 +39,7 @@ fn main() {
("compile-fail", Check::COMPILE_FAIL), ("compile-fail", Check::COMPILE_FAIL),
("bench-check", Check::BENCH_CHECK), ("bench-check", Check::BENCH_CHECK),
("example-check", Check::EXAMPLE_CHECK), ("example-check", Check::EXAMPLE_CHECK),
("cfg-check", Check::CFG_CHECK),
("doc-check", Check::DOC_CHECK), ("doc-check", Check::DOC_CHECK),
("doc-test", Check::DOC_TEST), ("doc-test", Check::DOC_TEST),
]; ];
@ -155,4 +157,12 @@ fn main() {
.run() .run()
.expect("Please fix compiler errors in output above."); .expect("Please fix compiler errors in output above.");
} }
if what_to_run.contains(Check::CFG_CHECK) {
// Check cfg and imports
std::env::set_var("RUSTFLAGS", "-D warnings");
cmd!(sh, "cargo check -Zcheck-cfg --workspace")
.run()
.expect("Please fix failing cfg checks in output above.");
}
} }