Fix warnings and 2D compilation when parallelism is ON but SIMD is OFF.
This commit is contained in:
@@ -50,24 +50,6 @@ pub(crate) enum AnyJointPositionConstraint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl AnyJointPositionConstraint {
|
impl AnyJointPositionConstraint {
|
||||||
#[cfg(feature = "parallel")]
|
|
||||||
pub fn num_active_constraints(joint: &Joint, grouped: bool) -> usize {
|
|
||||||
#[cfg(feature = "simd-is-enabled")]
|
|
||||||
if !grouped {
|
|
||||||
1
|
|
||||||
} else {
|
|
||||||
match &joint.params {
|
|
||||||
JointParams::BallJoint(_) => 1,
|
|
||||||
_ => SIMD_WIDTH, // For joints that don't support SIMD position constraints yet.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(not(feature = "simd-is-enabled"))]
|
|
||||||
{
|
|
||||||
1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn from_joint(joint: &Joint, bodies: &RigidBodySet) -> Self {
|
pub fn from_joint(joint: &Joint, bodies: &RigidBodySet) -> Self {
|
||||||
let rb1 = &bodies[joint.body1];
|
let rb1 = &bodies[joint.body1];
|
||||||
let rb2 = &bodies[joint.body2];
|
let rb2 = &bodies[joint.body2];
|
||||||
|
|||||||
@@ -1,29 +1,11 @@
|
|||||||
use super::ParallelInteractionGroups;
|
|
||||||
use super::{AnyJointPositionConstraint, AnyPositionConstraint, ThreadContext};
|
use super::{AnyJointPositionConstraint, AnyPositionConstraint, ThreadContext};
|
||||||
use crate::dynamics::solver::categorization::categorize_joints;
|
|
||||||
use crate::dynamics::solver::{
|
use crate::dynamics::solver::{
|
||||||
AnyJointVelocityConstraint, AnyVelocityConstraint, InteractionGroups,
|
AnyJointVelocityConstraint, AnyVelocityConstraint, ParallelSolverConstraints,
|
||||||
ParallelSolverConstraints, PositionConstraint, PositionGroundConstraint,
|
|
||||||
};
|
};
|
||||||
use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet};
|
use crate::dynamics::IntegrationParameters;
|
||||||
use crate::geometry::ContactManifold;
|
|
||||||
use crate::math::{Isometry, Real};
|
use crate::math::{Isometry, Real};
|
||||||
#[cfg(feature = "simd-is-enabled")]
|
|
||||||
use crate::{
|
|
||||||
dynamics::solver::{WPositionConstraint, WPositionGroundConstraint},
|
|
||||||
math::SIMD_WIDTH,
|
|
||||||
};
|
|
||||||
use std::sync::atomic::Ordering;
|
use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
pub(crate) enum PositionConstraintDesc {
|
|
||||||
NongroundNongrouped(usize),
|
|
||||||
GroundNongrouped(usize),
|
|
||||||
#[cfg(feature = "simd-is-enabled")]
|
|
||||||
NongroundGrouped([usize; SIMD_WIDTH]),
|
|
||||||
#[cfg(feature = "simd-is-enabled")]
|
|
||||||
GroundGrouped([usize; SIMD_WIDTH]),
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) struct ParallelPositionSolver;
|
pub(crate) struct ParallelPositionSolver;
|
||||||
|
|
||||||
impl ParallelPositionSolver {
|
impl ParallelPositionSolver {
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
use super::ParallelInteractionGroups;
|
use super::ParallelInteractionGroups;
|
||||||
use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, DeltaVel, ThreadContext};
|
use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, ThreadContext};
|
||||||
use crate::dynamics::solver::categorization::{categorize_contacts, categorize_joints};
|
use crate::dynamics::solver::categorization::{categorize_contacts, categorize_joints};
|
||||||
use crate::dynamics::solver::{
|
use crate::dynamics::solver::{
|
||||||
AnyJointPositionConstraint, AnyPositionConstraint, InteractionGroups, PositionConstraint,
|
AnyJointPositionConstraint, AnyPositionConstraint, InteractionGroups, PositionConstraint,
|
||||||
PositionGroundConstraint, VelocityConstraint, VelocityGroundConstraint, WPositionConstraint,
|
PositionGroundConstraint, VelocityConstraint, VelocityGroundConstraint,
|
||||||
WPositionGroundConstraint,
|
|
||||||
};
|
};
|
||||||
use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet};
|
use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet};
|
||||||
use crate::geometry::ContactManifold;
|
use crate::geometry::ContactManifold;
|
||||||
#[cfg(feature = "simd-is-enabled")]
|
#[cfg(feature = "simd-is-enabled")]
|
||||||
use crate::{
|
use crate::{
|
||||||
dynamics::solver::{WVelocityConstraint, WVelocityGroundConstraint},
|
dynamics::solver::{
|
||||||
math::{Real, SIMD_WIDTH},
|
WPositionConstraint, WPositionGroundConstraint, WVelocityConstraint,
|
||||||
|
WVelocityGroundConstraint,
|
||||||
|
},
|
||||||
|
math::SIMD_WIDTH,
|
||||||
};
|
};
|
||||||
use std::sync::atomic::Ordering;
|
use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,10 @@
|
|||||||
use super::ParallelInteractionGroups;
|
|
||||||
use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, DeltaVel, ThreadContext};
|
use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, DeltaVel, ThreadContext};
|
||||||
use crate::dynamics::solver::categorization::{categorize_contacts, categorize_joints};
|
|
||||||
use crate::dynamics::solver::parallel_solver_constraints::ConstraintDesc;
|
|
||||||
use crate::dynamics::solver::{
|
use crate::dynamics::solver::{
|
||||||
AnyJointPositionConstraint, AnyPositionConstraint, InteractionGroups,
|
AnyJointPositionConstraint, AnyPositionConstraint, ParallelSolverConstraints,
|
||||||
ParallelSolverConstraints, VelocityConstraint, VelocityGroundConstraint,
|
|
||||||
};
|
};
|
||||||
use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet};
|
use crate::dynamics::{IntegrationParameters, JointGraphEdge};
|
||||||
use crate::geometry::ContactManifold;
|
use crate::geometry::ContactManifold;
|
||||||
#[cfg(feature = "simd-is-enabled")]
|
use crate::math::Real;
|
||||||
use crate::{
|
|
||||||
dynamics::solver::{WVelocityConstraint, WVelocityGroundConstraint},
|
|
||||||
math::{Real, SIMD_WIDTH},
|
|
||||||
};
|
|
||||||
use std::sync::atomic::Ordering;
|
use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
pub(crate) struct ParallelVelocitySolver {}
|
pub(crate) struct ParallelVelocitySolver {}
|
||||||
|
|||||||
@@ -51,12 +51,6 @@ pub(crate) struct PositionConstraint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl PositionConstraint {
|
impl PositionConstraint {
|
||||||
#[cfg(feature = "parallel")]
|
|
||||||
pub fn num_active_constraints(manifold: &ContactManifold) -> usize {
|
|
||||||
let rest = manifold.data.solver_contacts.len() % MAX_MANIFOLD_POINTS != 0;
|
|
||||||
manifold.data.solver_contacts.len() / MAX_MANIFOLD_POINTS + rest as usize
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn generate(
|
pub fn generate(
|
||||||
params: &IntegrationParameters,
|
params: &IntegrationParameters,
|
||||||
manifold: &ContactManifold,
|
manifold: &ContactManifold,
|
||||||
|
|||||||
@@ -25,8 +25,6 @@ pub extern crate nalgebra as na;
|
|||||||
#[cfg(feature = "serde")]
|
#[cfg(feature = "serde")]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
#[macro_use]
|
|
||||||
extern crate approx;
|
|
||||||
extern crate num_traits as num;
|
extern crate num_traits as num;
|
||||||
// #[macro_use]
|
// #[macro_use]
|
||||||
// extern crate array_macro;
|
// extern crate array_macro;
|
||||||
@@ -51,6 +49,7 @@ macro_rules! enable_flush_to_zero(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
#[cfg(feature = "simd-is-enabled")]
|
||||||
macro_rules! array(
|
macro_rules! array(
|
||||||
($callback: expr; SIMD_WIDTH) => {
|
($callback: expr; SIMD_WIDTH) => {
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -67,9 +67,6 @@ type Callbacks = Vec<
|
|||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
impl Harness {
|
impl Harness {
|
||||||
pub fn new_empty() -> Self {
|
pub fn new_empty() -> Self {
|
||||||
#[cfg(feature = "parallel")]
|
|
||||||
let num_threads = num_cpus::get_physical();
|
|
||||||
|
|
||||||
let contact_channel = crossbeam::channel::unbounded();
|
let contact_channel = crossbeam::channel::unbounded();
|
||||||
let proximity_channel = crossbeam::channel::unbounded();
|
let proximity_channel = crossbeam::channel::unbounded();
|
||||||
let event_handler = ChannelEventCollector::new(proximity_channel.0, contact_channel.0);
|
let event_handler = ChannelEventCollector::new(proximity_channel.0, contact_channel.0);
|
||||||
|
|||||||
Reference in New Issue
Block a user