Gekkio/imgui-rs 1051
Rust bindings for Dear ImGui
gfx-rs/rspirv 309
Rust implementation of SPIR-V module processing functionalities
UI framework harvested from krryn project and updated slightly
Rust voxelization library
Backups / storage of settings files
startedchristopherbatty/SDFGen
started time in 7 days
startedBinomialLLC/bc7e
started time in 9 days
push eventTraverse-Research/hassle-rs
commit sha a0ca5f6ee555b8d862ae2998ffc8e8622a30b55e
macOS support (#8) * Add macOS support
push time in 11 days
PR merged Traverse-Research/hassle-rs
It's quite early days still, but this helps to get everything moving.
pr closed time in 11 days
startedsharksforarms/deku
started time in 11 days
pull request commentretep998/winapi-rs
Update d3d12 to SDK 10.0.18362.0
Since this is marked as waiting on review, is there anything we can do to help review this? We'd love to use these changes in production. Potentially @DBouma and I can take a look.
comment created time in 13 days
issue closedgfx-rs/rspirv
`Assemble::assemble(&self) -> Vec<u32>` always allocate heap memory
closed time in 13 days
liigoissue commentgfx-rs/rspirv
`Assemble::assemble(&self) -> Vec<u32>` always allocate heap memory
I think #165 fixes this.
comment created time in 13 days
pull request commentgfx-rs/rspirv
This PR has been stale for about a year, mind if we close it?
comment created time in 13 days
issue commentEmbarkStudios/rust-ecosystem
- [x]
rspirvRemove num-derive crate dependency - [x]
rspirvUpdate SPIR-V to 1.4.1 - [x]
rspirvUpdate to upstream SPIR-V 1.5.2 - [x]
rspirvAllow Builder to modify modules - [x]
rspirvAdd TypeRayQueryProvisionalKHR - [x]
rspirvPass in which instruction got detached - [x]
rspirvAdd OpFunctionCall explicitly - [x]
rspirvOperandExceeded when using specialization constants in work group size - [x]
rspirvPointer should have ty: Token<Type> instead of ty: Word - [x]
rspirvAdd methods for iterating over all instructions in the module - [x]
rspirvRemove a lot ofvec!macro invocations from Assemble
comment created time in 13 days
Pull request review commentgfx-rs/rspirv
Perf: Don't allocate as much in Decoder::string
impl<'a> Decoder<'a> { /// null character (`\0`), or reaching the limit or end of the stream /// and erroring out. pub fn string(&mut self) -> Result<String> {- let start_offset = self.offset;- let mut bytes = vec![];- loop {- let word = self.word()?;- bytes.extend(&word.to_le_bytes());- if bytes.last() == Some(&0) {- break;- }- }- while !bytes.is_empty() && bytes.last() == Some(&0) {- bytes.pop();+ // If we have a limit, then don't search further than we need to.+ let slice = match self.limit {+ Some(limit) => &self.bytes[self.offset..(self.offset + limit * WORD_NUM_BYTES)],+ None => &self.bytes[self.offset..],+ };+ // Find the null terminator.+ let first_null_byte =+ slice+ .iter()+ .position(|&c| c == 0)+ .ok_or_else(|| match self.limit {+ Some(_) => Error::LimitReached(self.offset + slice.len()),+ None => Error::StreamExpected(self.offset),
Shouldn't this also be self.offset + slice.len() since previously this would only happen scanning one of the last words in the slice?
comment created time in 13 days
issue commentKhronosGroup/SPIRV-Tools
spirv-opt ssa-rewrite produces code that fails the validator
@dnovillo you did the original implementation, maybe you can provide us with some clues how to fix this?
comment created time in 14 days
push eventTraverse-Research/rspirv-reflect
commit sha c6a8917c44ae753ceed0ee1e914327a6150ddae4
tests: Validate simple bindings extracted from a HLSL shader
commit sha 270d216f3ec2ead85b61e73de16ae9aa2a7a6ccc
tests: Use PartialEq on DescriptorInfo
commit sha bcc314bb35cfa1d986bd8420163f77b7a674e4e1
GH Actions: Run cargo test
commit sha 58913b51f443d258e7130bf72db7d5ceb76a0214
GH Actions: Run check job on Windows as well
commit sha 594a7d7723d02d1342e2f826df4124f44932b2fd
Merge pull request #3 from Traverse-Research/tests Add test cases for some simple descriptor types
push time in 18 days
PR merged Traverse-Research/rspirv-reflect
Include simple test cases to validate common HLSL types.
This adds an (optional) dependency on hassle-rs and dxcompiler.dll to compile the test shader; by default (cargo test) it is unused, and will only be (re)compiled with cargo test --features test-compile-shaders. Unfortunately cargo doesn't support optional dependencies in dev-dependencies, nor is there a dev-features section.
pr closed time in 18 days
startedscality/elmerfs
started time in 19 days
pull request commentgfx-rs/rspirv
impl trait is cooler than generics, use it
I think this is fine - always good to have productivity improvements.
Would be good to get some extra eyes on since this is indeed a backcompat breaking change.
comment created time in a month
startedkeijiro/KinoBloom
started time in a month
push eventTraverse-Research/ultraviolet
commit sha 7093bdfc4e5297ca1f89807c71ed97dbdd3dde69
Add CI
push time in a month
push eventTraverse-Research/ultraviolet
commit sha e49af088bce30f225b987d8a7eed32522519380d
Remove `mul_add` calls in several places (#67) * Vec2, 3, 4 * mat.rs * int.rs * bivec.rs * interp.rs
commit sha 5281a77c1949498d6f6d8fe223d9b00bdf5533e2
optimize normalize slightly and update changelog
push time in a month
pull request commenttermhn/ultraviolet
Remove `mul_add` calls in a lot of places
Addressed all feedback :-)
comment created time in a month
push eventTraverse-Research/ultraviolet
commit sha a60c5ae8c6938c6f1f5a7d8ff43fbc16e1d4e860
Add back explicit mul-add where requested
commit sha 6ba5ace44c3c1a3978734692f945b648600514f0
Remove double neg
push time in a month
PR opened termhn/ultraviolet
Since mul_add only gets turned into FMA3 in haswell and up, and because typically FMA3 doesn't provide a lot of speedups even on newer machines, I've replaced a lot of calls to mul_add.
Similarly, rustc doesn't assume that FMA3 is available by default (it's quite pessimistic in it's world view) by default these calls end up in libc's fma which is quite a slowdown.
Was planning on doing these by regex but ran into a lot of issues, so this batch has manually replaced them.
pr created time in a month
push eventgfx-rs/rspirv
commit sha 17c0f123a82500baf32564ec30de86d1dbca8241
binary: parser: Make ConsumerError contain dyn Error + Send (#166) In one of our projects we propagate errors out of a thread using thiserror to nest them recursively. The enum `State` ends up in that error type too, hence needs to be Send. Fortunately only StringError seems to be stored in this field currently.
push time in a month
PR merged gfx-rs/rspirv
In one of our projects we propagate errors out of a thread using thiserror to nest them recursively. The enum State ends up in that error type too, hence needs to be Send. Fortunately only StringError seems to be stored in this field currently.
pr closed time in a month
push eventgfx-rs/rspirv
commit sha 1addc7d33ae1460ffa683e2e6311e466ac876c23
Remove a lot of `vec!` macro invocations from Assemble instead opting to push to a Vec to save some heap traffic (#165)
push time in a month
PR merged gfx-rs/rspirv
This adds a assemble_into which just produces SPIR-V into a Vec<u32> instead of making lots and lots of new ones, this should reduce the assemble functions heap traffic quite a bit. This should address #96 and help me out at the same time.
pr closed time in a month
startedddiakopoulos/libnyquist
started time in a month
pull request commentgfx-rs/rspirv
Remove a lot of `vec!` macro invocations from Assemble
I thought of that - but io::Write (or io::Cursor) mostly operates on bytes so we'd just be doing a bunch of back and forth between u32 and u8's. Since SPIR-V is naturally expressed as u32's, this seemed like the easier / more ergonomic option.
comment created time in a month
PR opened gfx-rs/rspirv
This adds a assemble_into which just produces SPIR-V into a Vec<u32> instead of making lots and lots of new ones, this should reduce the assemble functions heap traffic quite a bit. This should address #96 and help me out at the same time.
pr created time in a month
created taggfx-rs/rspirv
Rust implementation of SPIR-V module processing functionalities
created time in a month
startedTom94/practical-path-guiding
started time in a month
startedericjang/awesome-graphics
started time in a month
startedmattdesl/graphics-resources
started time in a month
created tagTraverse-Research/rspirv-reflect
Minimal SPIR-V reflection library.
created time in a month
created tagTraverse-Research/rspirv-reflect
Minimal SPIR-V reflection library.
created time in a month
push eventTraverse-Research/rspirv-reflect
commit sha 6d6c18ead8d56918004bfc112f007831cb0f12fc
Bump patch version after fix
push time in a month
push eventTraverse-Research/rspirv-reflect
commit sha 41e5555a89f7639fe78942da1a9219d971904bdb
Not all decoration annotations have a third operand Annotations such as `[IdRef(x), Decoration(NonWritable)]` will match the `if let Decoration` clause and attempt to unpack the third operand as `LiteralInt32` even if it doesn't exist, resulting in an `index out of bounds` panic.
commit sha 33b9ae15c1407625739606b22b79c39e81881ca2
Merge pull request #4 from Traverse-Research/fix-out-of-bounds-panic Not all decoration annotations have a third operand
push time in a month
PR merged Traverse-Research/rspirv-reflect
Annotations such as [IdRef(x), Decoration(NonWritable)] will match the if let Decoration clause and attempt to unpack the third operand as LiteralInt32 even if it doesn't exist, resulting in an index out of bounds panic.
pr closed time in a month
startedazhirnov/FrameGraph
started time in a month
startedemoon/evfs
started time in a month
startedflutter-rs/flutter-rs
started time in a month
pull request commentbytecodealliance/wasmtime
Closing this issue because we chose to peruse the same goal through different means.
comment created time in a month
PR closed bytecodealliance/wasmtime
As discussed on Zulip, we're starting to ramp up our efforts on providing the SPIR-V backend, so I thought it might be a good time to provide some insights into the project to the wasmtime team.
I figure it's easier for everybody if we engage early on rather then submit a giant PR in the end, this way we can take it together and one step at a time.
We'll most likely have some changes incoming for internal cranelift datastructures etc to be able to deal with SPIR-V properly but they're not part of this PR yet, we'll try and contribute those as smaller improvements.
Right now the PR is a draft because we'd like to get initial feedback on our approach, because it still contains some debug code and because I need to rebase this on top of master.
pr closed time in a month
push eventgfx-rs/rspirv
commit sha 7a36c2f16749b8e7ab76b3b51be8d2b22d33d98d
Add support for 64-bit OpSwitch (#161) * Add support for 64-bit OpSwitch SR support is omitted for now. * Update some comments from PR feedback
push time in 2 months
PR merged gfx-rs/rspirv
SR support is omitted for now.
I'm not 100% the parser is fully working, I couldn't figure out how to write tests - but the emitter works (which is the easy side).
pr closed time in 2 months
Pull request review commentgfx-rs/rspirv
Add support for 64-bit OpSwitch
pub fn gen_operand_parse_methods(grammar: &Vec<structs::OperandKind>) -> TokenSt // Logic operands that expand to concrete operand pairs, // that is, those operand kinds with 'Pair' name prefix. // We only have three cases. So hard code it.- let pair_kinds = vec![- ("LiteralInteger", "IdRef"),- ("IdRef", "LiteralInteger"),- ("IdRef", "IdRef"),- ];+ let pair_kinds = vec![("IdRef", "LiteralInteger"), ("IdRef", "IdRef")];
Comment should be updated.
comment created time in 2 months
pull request commentrust-gamedev/rust-gamedev.github.io
Newsletter 13: A little section about rspirv-reflect
Thanks for the feedback @17cupsofcoffee, does conform to the guidelines better?
comment created time in 2 months
push eventTraverse-Research/rust-gamedev.github.io
commit sha 17eadd7ac94bd0319f8f56a0104ba7e71900ef91
Update index.md
push time in 2 months
push eventgfx-rs/rspirv
commit sha 2e8ef6938c641bf05cdf4c95a2f9dc682d899ada
Move builder's version into the module, and add module_mut (#159)
push time in 2 months
PR merged gfx-rs/rspirv
Clients may want to do some truly bizarre shenanigans to the module being built, doing some things that definitely shouldn't be "official" methods in rspirv. So, allow an "escape hatch" to let the client write their own weird methods to directly modify the module.
(The bizarre client is me.)
Also move the builder's version field into the module being built, it was bothering me that it was duplicated.
pr closed time in 2 months
push eventgfx-rs/rspirv
commit sha c7be163bbd10b57b1b134efd990076cbcb9970df
Add methods for iterating over all instructions in the module (#158) * Add methods for iterating over all instructions in the module
push time in 2 months
PR merged gfx-rs/rspirv
Fixes incorrect doc comments left over from previous refactor in https://github.com/gfx-rs/rspirv/commit/a4d9cdd5a21a774051e30cba13da6612396859a1. Added a few more helper methods to iterate over / list all Instruction's in a `Module.
pr closed time in 2 months
Pull request review commentgfx-rs/rspirv
Add methods for iterating over all instructions in the module
impl Module { .chain(&self.annotations) .chain(&self.types_global_values) }++ /// Returns a mut iterator over all global instructions.+ pub fn global_inst_iter_mut(&mut self) -> impl Iterator<Item = &mut Instruction> {+ self.capabilities+ .iter_mut()+ .chain(&mut self.extensions)+ .chain(&mut self.ext_inst_imports)+ .chain(&mut self.memory_model)+ .chain(&mut self.entry_points)+ .chain(&mut self.execution_modes)+ .chain(&mut self.debugs)+ .chain(&mut self.annotations)+ .chain(&mut self.types_global_values)+ }++ /// Returns a iterator over all instructions.+ pub fn all_inst_iter(&self) -> impl Iterator<Item = &Instruction> {+ self.capabilities+ .iter()+ .chain(&self.extensions)+ .chain(&self.ext_inst_imports)+ .chain(&self.memory_model)+ .chain(&self.entry_points)+ .chain(&self.execution_modes)+ .chain(&self.debugs)+ .chain(&self.annotations)+ .chain(&self.types_global_values)
I kept it duplicated because I think it's easier to keep them in sync that way - rather then having to have a special mut version.
comment created time in 2 months
Pull request review commentgfx-rs/rspirv
Add methods for iterating over all instructions in the module
impl Module { .chain(&self.annotations) .chain(&self.types_global_values) }++ /// Returns a mut iterator over all global instructions.+ pub fn global_inst_iter_mut(&mut self) -> impl Iterator<Item = &mut Instruction> {+ self.capabilities+ .iter_mut()+ .chain(&mut self.extensions)+ .chain(&mut self.ext_inst_imports)+ .chain(&mut self.memory_model)+ .chain(&mut self.entry_points)+ .chain(&mut self.execution_modes)+ .chain(&mut self.debugs)+ .chain(&mut self.annotations)+ .chain(&mut self.types_global_values)+ }++ /// Returns a iterator over all instructions.+ pub fn all_inst_iter(&self) -> impl Iterator<Item = &Instruction> {+ self.capabilities+ .iter()+ .chain(&self.extensions)+ .chain(&self.ext_inst_imports)+ .chain(&self.memory_model)+ .chain(&self.entry_points)+ .chain(&self.execution_modes)+ .chain(&self.debugs)+ .chain(&self.annotations)+ .chain(&self.types_global_values)+ .chain(self.functions.iter().flat_map(|f| {+ f.def+ .iter()+ .chain(f.parameters.iter())+ .chain(+ f.blocks+ .iter()+ .flat_map(|b| b.label.iter().chain(b.instructions.iter())),
Yeah it's nice Option can do that, but it's not always intuitive.
comment created time in 2 months
push eventgfx-rs/rspirv
commit sha 1e81a22ce00d734f46280cefeb4be0520f1b8077
Previous cargo fmt was run with different version of fmt then CI
push time in 2 months
PR opened gfx-rs/rspirv
Fixes incorrect doc comments left over from previous refactor in https://github.com/gfx-rs/rspirv/commit/a4d9cdd5a21a774051e30cba13da6612396859a1. Added a few more helper methods to iterate over / list all Instruction's in a `Module.
pr created time in 2 months
pull request commentTraverse-Research/hassle-rs
Depends on https://github.com/microsoft/DirectXShaderCompiler/pull/3062
comment created time in 2 months
push eventTraverse-Research/hassle-rs
commit sha 1faee143b1d21c2ad8299bd32e00836bc53434e1
Test linux
push time in 2 months
PR opened Traverse-Research/hassle-rs
It's quite early days still, but this helps to get everything moving.
pr created time in 2 months
push eventTraverse-Research/hassle-rs
commit sha 2047b8a312c96a76044d1e53a7f6e6a192ed5043
README.md
push time in 2 months
push eventgfx-rs/rspirv
commit sha 7b22c0ca9f1ebd4229b9a1062ab3dfe582c62091
Fix typo in type_struct_id (#157)
push time in 2 months
PR merged gfx-rs/rspirv
Problem was introduced in https://github.com/gfx-rs/rspirv/pull/156 when copying the type_pointer method and missing this.
pr closed time in 2 months
push eventTraverse-Research/rspirv-reflect
commit sha 5186c422ca5608c0a50b7223ada1756c55ea3c7a
Added list of alternative libraries
push time in 2 months
startedinteract-rs/interact
started time in 2 months
startedAudranDoublet/opr
started time in 2 months
PR opened rust-gamedev/rust-gamedev.github.io
As mentioned in #232, I wrote a small section on rspirv-reflect.
pr created time in 2 months
push eventTraverse-Research/rust-gamedev.github.io
commit sha 3eaa3e5cad2b1f56497813947317beb7121353b7
Add banner image
push time in 2 months
push eventTraverse-Research/rust-gamedev.github.io
commit sha c92b7af12e3d980e991db5f759e0a1f94109bcff
Newsletter 13: rpsirv-reflect
push time in 2 months
issue commentrust-gamedev/rust-gamedev.github.io
I just saw I got mentioned here for rspirv-reflect, I can definitely write something about that, thanks!
comment created time in 2 months
startedWAVM/WAVM
started time in 2 months
push eventgfx-rs/rspirv
commit sha 91cd33f65aa2195da40f77d2a543e8e7f0661b01
Add type_struct_id function (#156) The type_struct function always dedupes, which is bad if the user wants to use OpMemberDecorate - the same struct might need to be emitted multiple times, with different OpMemberDecorates.
push time in 2 months
PR merged gfx-rs/rspirv
The type_struct function always dedupes, which is bad if the user wants to use OpMemberDecorate - the same struct might need to be emitted multiple times, with different OpMemberDecorates.
An alternative is to introduce a breaking change for type_struct to add the result_id parameter. Let me know if that's preferable.
pr closed time in 2 months
push eventTraverse-Research/rspirv-reflect
commit sha 1896564a0028bdc0e6bce971ed133628207ccedf
Bump patch version
push time in 2 months
push eventTraverse-Research/rspirv-reflect
commit sha 25d70d72595a2165ee0e9faf3dc0fd7b41d3773c
Update readme
push time in 2 months
push eventTraverse-Research/rspirv-reflect
commit sha e4c3f8e2af54fbe13e2c43bb82331e0cce0f52a2
Typo
push time in 2 months
push eventTraverse-Research/rspirv-reflect
commit sha 7d384e885bd4429e8ddc9b0547962af07146be58
Update README.md
push time in 2 months
push eventgfx-rs/rspirv
commit sha 16265b8b61b71872bc0d7a1dac916070ac3c7611
Make ZeroOrMore take Iterator instead of AsRef<[T]> (#149) * ZeroOrMore takes Iterator instead of AsRef<[T]> This is useful if the user has an iterator instead of a slice/vec, it saves an allocation.
push time in 2 months
PR merged gfx-rs/rspirv
This is useful if the user has an iterator instead of a slice/vec, it saves an allocation.
I think this is a breaking change due to ref differences, not sure if we're okay with that.
(For review, the only file changed is dr.rs, the rest are generated)
pr closed time in 2 months