Commit Graph

76 Commits

Author SHA1 Message Date
9b149bae65 spirv bindings: split out common materials vs cpu materials 2022-07-22 16:24:59 -07:00
4a6a43fb31 plumb the R type parameter through spirv code 2022-07-22 16:21:03 -07:00
847b95f036 replace the FullyGenericMaterial in spirv with an analog type from coremem_types
this represents the last spirv-specific material.
next steps are to start removing the materials from `coremem` itself
(i.e. re-exporting more from `coremem_types::mat`).
2022-07-22 02:56:00 -07:00
f8fccd957a coremem_types: IsomorphicConductor, AnisomorphicConductor are now used by both spirv and cpu impls 2022-07-19 02:08:22 -07:00
22db2e5a1b use coremem_types::mat::Ferroxcube3R1MH *everywhere*
the old `mat/mh_ferromagnet.rs` files is completely removed,
unifying the Ferroxcube3R1MH type all the way through the stack.
2022-07-18 15:43:01 -07:00
716e0e12b4 move Ferroxcube3R1MH from spirv_bindings to coremem_types::mat 2022-07-18 15:33:47 -07:00
d005256459 move MBPgram, MHPgram out of spirv_backend into coremem_types::mat
later this can be shared with CPU backend.
2022-07-18 15:27:31 -07:00
7d2a3baadc spirv: migrate Material trait to types, and parameterize by R 2022-07-18 14:33:09 -07:00
35251f5a7f coremem_types: move Vec3u under the vec:: namespace
it's conceivable that Vec3u could be merged with Vec3 someday.
best to keep them in the same namespace, to make any such effort easier.
2022-07-18 14:23:35 -07:00
536a09f7b8 spirv_bindings: remove custom Material trait
ffi version is now compatible with main coremem library without
conversion
2022-07-18 13:57:25 -07:00
19f00c9076 spirv_backend: remove Vec3Std and use coremem_types::Vec3 everywhere 2022-07-18 13:51:11 -07:00
d7d8be62d1 spirv_backend: remove UVec3Std in favor of Vec3u 2022-07-18 13:39:15 -07:00
d92089ae23 coremem_types: add a 'fmt' feature, so Real/Vec/friends can be used in fmt-less spirv 2022-07-18 01:31:00 -07:00
97c2813c9d coremem_types: hide Serialize/Deserialize behind a serde feature flag
- this flag is disabled in spirv_backend.
- spirv_backend currently errors in core::fmt stuff. may try hiding fmt
  behind a feature_flag.
2022-07-17 23:44:14 -07:00
19849c2428 fix test compilation failures from vec migration 2022-07-17 22:41:39 -07:00
8c3a26e798 move vec, vecu into coremem_types
- this will allow it to be used from within the spirv code.
- had to change some coremem code which was previously peering into
  privates or now-unrestricted constraints.
- may need to put the serde stuff behind a feature flag (or force
  nostd?)
2022-07-17 21:50:38 -07:00
866aa2882b real: remove some, but not all, decorum stuff 2022-07-17 18:18:09 -07:00
9d102e0152 split real out into its own crate
this is a move toward reusing some of the coremem helper types in the
spirv backend.
2022-07-17 17:32:35 -07:00
ac3895c432 fix broken doctest. it's a diagram, and shouldn't be run :| 2022-07-17 16:40:02 -07:00
a2d35782a1 lift the post-processing tools (viewer, csv, decimate) into their own crate
- these tools shouldn't need access to coremem internals.
- lifting them out reduces some dependencies in coremem-the-library.
- separation allows faster iteration in the coremem library while
  temporarily breaking the post-processing tools (specifically,
  those tools could take deps on a specific coremem version and thereby
  we split the update process into two, smaller steps).
2022-07-17 15:47:39 -07:00
ccbaa39fcf lib: add init_debug to configure better debugging defaults (e.g. parallelism) 2022-07-17 13:58:16 -07:00
99e7306ae9 make all the examples be their own binary crates
this achieves a few things:
- trivial way to get these shipped as the default nix package
- better dependency management
- ability to split large applications into multiple files

the README probably needs some updating.
2022-07-06 01:30:31 -07:00
4dce151e9c remove spirv_backend_lib
this was a hack from earlier where we needed a different lib types
based on whethere we were targeting the native host or the spirv
backend.

at some point we no longer needed different lib types. so the _lib piece
is unnecessary.
2022-07-06 00:26:54 -07:00
791e465dd8 sim/spirv: remove unused import 2022-07-06 00:22:20 -07:00
721fea4866 update benches
this is mostly to verify that the rustc and nix updates are actually
working.
2022-07-06 00:14:23 -07:00
5b99d30cda restructure this multi-crate project to use Cargo's "workspace" feature
this solves an issue in the Nix build, where managing multiple
Cargo.lock files is otherwise tricky. it causes (or fails to fix?) an adjacent issue where
the spirv builder doesn't seem to have everything it needs vendored.
2022-07-05 17:34:21 -07:00