-
Notifications
You must be signed in to change notification settings - Fork 247
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
update rspirv 0.11 to 0.12 #1118
base: main
Are you sure you want to change the base?
Conversation
5dfcd5c
to
2a3dbcb
Compare
While porting, I've noticed that |
19b955b
to
1d67ab5
Compare
9f49ec0
to
ff0d9ae
Compare
Basically ready to merge, apart from |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, I see you got around to fixing up the BaryCoord
stuff before I did, nice!
Leaving this review more as a note that I will check the subtler aspects in more depth (so we don't accidentally merge too soon), but what I've seen looks great, thank you so much for working on this!
(OperandKind::FPDenormMode, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::FPDenormMode(x)), | ||
Err(()) => self.err(format!("unknown FPDenormMode {word}")), | ||
}, | ||
(OperandKind::QuantizationModes, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::QuantizationModes(x)), | ||
Err(()) => self.err(format!("unknown QuantizationModes {word}")), | ||
}, | ||
(OperandKind::FPOperationMode, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::FPOperationMode(x)), | ||
Err(()) => self.err(format!("unknown FPOperationMode {word}")), | ||
}, | ||
(OperandKind::OverflowModes, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::OverflowModes(x)), | ||
Err(()) => self.err(format!("unknown OverflowModes {word}")), | ||
}, | ||
(OperandKind::PackedVectorFormat, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::PackedVectorFormat(x)), | ||
Err(()) => self.err(format!("unknown PackedVectorFormat {word}")), | ||
}, | ||
(OperandKind::HostAccessQualifier, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::HostAccessQualifier(x)), | ||
Err(()) => self.err(format!("unknown HostAccessQualifier {word}")), | ||
}, | ||
(OperandKind::CooperativeMatrixOperands, Some(word)) => { | ||
match parse_bitflags_operand(COOPERATIVE_MATRIX_OPERANDS, word) { | ||
Some(x) => inst | ||
.operands | ||
.push(dr::Operand::CooperativeMatrixOperands(x)), | ||
None => self.err(format!("Unknown CooperativeMatrixOperands {word}")), | ||
} | ||
} | ||
(OperandKind::CooperativeMatrixLayout, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::CooperativeMatrixLayout(x)), | ||
Err(()) => self.err(format!("unknown CooperativeMatrixLayout {word}")), | ||
}, | ||
(OperandKind::CooperativeMatrixUse, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::CooperativeMatrixUse(x)), | ||
Err(()) => self.err(format!("unknown CooperativeMatrixUse {word}")), | ||
}, | ||
(OperandKind::InitializationModeQualifier, Some(word)) => match word.parse() { | ||
Ok(x) => inst | ||
.operands | ||
.push(dr::Operand::InitializationModeQualifier(x)), | ||
Err(()) => self.err(format!("unknown InitializationModeQualifier {word}")), | ||
}, | ||
(OperandKind::LoadCacheControl, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::LoadCacheControl(x)), | ||
Err(()) => self.err(format!("unknown LoadCacheControl {word}")), | ||
}, | ||
(OperandKind::StoreCacheControl, Some(word)) => match word.parse() { | ||
Ok(x) => inst.operands.push(dr::Operand::StoreCacheControl(x)), | ||
Err(()) => self.err(format!("unknown StoreCacheControl {word}")), | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow I didn't realize this was so manual. Longer-term might be worth switching to SPIR-T's view of OperandKind
, which handles immediate operands in a much more dynamic way, and contains a lot of the same information that .parse()
uses in these match
arms (but then I'm not sure you could create the typed rspirv
Operand
value out of that).
0ab6ec1
to
edfc23c
Compare
This comment was marked as resolved.
This comment was marked as resolved.
@Firestar99 #1127 just landed, you'll need to rebase (but I should be able to review concurrently). |
cd0cbf6
to
9bea24f
Compare
9bea24f
to
0acafd5
Compare
The rspirv update is required to get the spirv symbols required for mesh shaders, which will be added in a separate PR.
Original mesh shader PR: #1019