Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump version to spirq v1.1.3 #133

Merged
merged 2 commits into from
Mar 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Change Log

## v1.1.2

- Fixed compatibility with `spirv` v0.3. (#130)
- Properly support mesh shader reflection. (#127)
- From this version SPIR-Q is renamed to spirq (all lower case).

## v1.1.1

- Better readme.
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SPIR-Q
# spirq

[![Crate](https://img.shields.io/crates/v/spirq)](https://crates.io/crates/spirq)
[![Documentation](https://docs.rs/spirq/badge.svg)](https://docs.rs/spirq)

SPIR-Q is a family of crates to help you process SPIR-V binary and assembly for Vulkan.
`spirq` is a family of crates to help you process SPIR-V binary and assembly for Vulkan.

| Crate | Purpose |
|-|-|
Expand All @@ -21,11 +21,11 @@ Commandline (CLI) tools are also provided for general use.

## What's different from other crates?

A lot of my works stand in an overlapping field of compilers and graphics systems, so I often have to work with weird or even corrupted SPIR-V binaries. Obviously, existing tools like `rspirv` and `spirv-reflect` are not designed for this. I then decided to develop my own toolkit, which is now the SPIR-Q family.
A lot of my works stand in an overlapping field of compilers and graphics systems, so I often have to work with weird or even corrupted SPIR-V binaries. Obviously, existing tools like `rspirv` and `spirv-reflect` are not designed for this. I then decided to develop my own toolkit, which is now the spirq family.

Compared with SPIR-Q, `rspirv` has more strict requirements on SPIR-V physical layout, which makes it impossible to process bad test cases for other projects. `spirv-reflect` is a broadly used reflection tool and it's a wrapper crate of Khronos' official [SPIRV-Reflect](https://github.com/KhronosGroup/SPIRV-Reflect) tool. `SPIRV-Reflect`, however, was developed in pretty early days and it has some legacy bad designs (like a limit of 16 descriptors). [SPIRV-Tools](https://github.com/KhronosGroup/SPIRV-Reflect) provides Khronos' official assembler and disassembler, while it's hard to be integrated to other Rust projects.
Compared with spirq, `rspirv` has more strict requirements on SPIR-V physical layout, which makes it impossible to process bad test cases for other projects. `spirv-reflect` is a broadly used reflection tool and it's a wrapper crate of Khronos' official [SPIRV-Reflect](https://github.com/KhronosGroup/SPIRV-Reflect) tool. `SPIRV-Reflect`, however, was developed in pretty early days and it has some legacy bad designs (like a limit of 16 descriptors). [SPIRV-Tools](https://github.com/KhronosGroup/SPIRV-Reflect) provides Khronos' official assembler and disassembler, while it's hard to be integrated to other Rust projects.

On the other hand, the tools in SPIR-Q are more tolerant of the input quality. They don't check the semantics strictly to the spec. They won't stop processing unless there is a fatal structural problem making the input totally indecipherable. As a result, you might have to be familiar with the SPIR-V specification so that it serves you well, if you are developing other tools based on SPIR-Q.
On the other hand, the tools in spirq are more tolerant of the input quality. They don't check the semantics strictly to the spec. They won't stop processing unless there is a fatal structural problem making the input totally indecipherable. As a result, you might have to be familiar with the SPIR-V specification so that it serves you well, if you are developing other tools based on spirq.

## License

Expand Down
4 changes: 2 additions & 2 deletions shader-reflect/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "shader-reflect"
version = "0.2.5"
version = "0.2.6"
authors = ["PENGUINLIONG <[email protected]>"]
edition = "2018"
license = "MIT OR Apache-2.0"
Expand All @@ -18,7 +18,7 @@ maintenance = { status = "actively-developed" }
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
spirq = { version = "1.1.2", path = "../spirq" }
spirq = { version = "1.1.3", path = "../spirq" }
clap = { version = "4.0.6", features = ["derive"] }
serde = "1.0"
serde_json = { version = "1.0", features = ["preserve_order"] }
Expand Down
2 changes: 1 addition & 1 deletion spirq-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ maintenance = { status = "actively-developed" }

[dependencies]
fnv = "1.0.7"
spirv = ">=0.3"
spirv = "0.3"
anyhow = "1.0"
ordered-float = "3.4"
num-traits = "0.2"
Expand Down
2 changes: 1 addition & 1 deletion spirq-spvasm/src/generated/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ mod print_operand;

pub use decorate_parameter_enum_type::decorate_parameter_enum_type;
pub use enum_from_str::enum_from_str;
pub use enum_to_str::enum_to_str;
//pub use enum_to_str::enum_to_str;
pub use op_from_str::op_from_str;
pub use op_has_result_id::op_has_result_id;
pub use op_has_result_type_id::op_has_result_type_id;
Expand Down
2 changes: 1 addition & 1 deletion spirq/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spirq"
version = "1.1.2"
version = "1.1.3"
authors = ["PENGUINLIONG <[email protected]>"]
edition = "2018"
license = "MIT OR Apache-2.0"
Expand Down
Loading