Skip to content

Commit

Permalink
Cast to int during int unpackgin, not uint
Browse files Browse the repository at this point in the history
  • Loading branch information
VlaDexa committed Apr 12, 2024
1 parent 07bdc10 commit 27ecb13
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions naga/src/back/glsl/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3503,12 +3503,12 @@ impl<'a, W: Write> Writer<'a, W> {
// Since bitfieldExtract only sign extends if the value is signed, this
// cast is needed
match fun {
Mf::Unpack4xI8 => self.write_expr(arg, ctx)?,
Mf::Unpack4xU8 => {
Mf::Unpack4xI8 => {
write!(self.out, "int(")?;
self.write_expr(arg, ctx)?;
write!(self.out, ")")?;
}
Mf::Unpack4xU8 => self.write_expr(arg, ctx)?,
_ => unreachable!(),
};
write!(self.out, ", {}, 8)", i * 8)?;
Expand Down
4 changes: 2 additions & 2 deletions naga/tests/out/glsl/bits.main.Compute.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ void main() {
uint _e50 = u;
f2_ = unpackHalf2x16(_e50);
uint _e52 = u;
i4_ = ivec4(bitfieldExtract(_e52, 0, 8), bitfieldExtract(_e52, 8, 8), bitfieldExtract(_e52, 16, 8), bitfieldExtract(_e52, 24, 8));
i4_ = ivec4(bitfieldExtract(int(_e52), 0, 8), bitfieldExtract(int(_e52), 8, 8), bitfieldExtract(int(_e52), 16, 8), bitfieldExtract(int(_e52), 24, 8));
uint _e54 = u;
u4_ = uvec4(bitfieldExtract(int(_e54), 0, 8), bitfieldExtract(int(_e54), 8, 8), bitfieldExtract(int(_e54), 16, 8), bitfieldExtract(int(_e54), 24, 8));
u4_ = uvec4(bitfieldExtract(_e54, 0, 8), bitfieldExtract(_e54, 8, 8), bitfieldExtract(_e54, 16, 8), bitfieldExtract(_e54, 24, 8));
int _e56 = i;
int _e57 = i;
i = bitfieldInsert(_e56, _e57, int(min(5u, 32u)), int(min(10u, 32u - min(5u, 32u))));
Expand Down

0 comments on commit 27ecb13

Please sign in to comment.