HLSL: Fix #2037: Integer dot used incorrect input for adds.

This commit is contained in:
John Kessenich 2019-12-26 10:56:54 -07:00
parent bd97b6f9f2
commit 5de15a256e
2 changed files with 7 additions and 7 deletions

View File

@ -7482,7 +7482,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
id = builder.createCompositeExtract(mulOp, typeId, 0); id = builder.createCompositeExtract(mulOp, typeId, 0);
for (int i = 1; i < componentCount; ++i) { for (int i = 1; i < componentCount; ++i) {
builder.setPrecision(id, precision); builder.setPrecision(id, precision);
id = builder.createBinOp(spv::OpIAdd, typeId, id, builder.createCompositeExtract(operands[0], typeId, i)); id = builder.createBinOp(spv::OpIAdd, typeId, id, builder.createCompositeExtract(mulOp, typeId, i));
} }
} else { } else {
switch (consumedOperands) { switch (consumedOperands) {

View File

@ -295,7 +295,7 @@ gl_FragCoord origin is upper left
39: 17(ivec2) Load 19(i3) 39: 17(ivec2) Load 19(i3)
40: 17(ivec2) IMul 38 39 40: 17(ivec2) IMul 38 39
41: 11(int) CompositeExtract 40 0 41: 11(int) CompositeExtract 40 0
42: 11(int) CompositeExtract 38 1 42: 11(int) CompositeExtract 40 1
43: 11(int) IAdd 41 42 43: 11(int) IAdd 41 42
44: 17(ivec2) CompositeConstruct 43 43 44: 17(ivec2) CompositeConstruct 43 43
Store 19(i3) 44 Store 19(i3) 44
@ -303,9 +303,9 @@ gl_FragCoord origin is upper left
46: 22(ivec3) Load 24(i4) 46: 22(ivec3) Load 24(i4)
47: 22(ivec3) IMul 45 46 47: 22(ivec3) IMul 45 46
48: 11(int) CompositeExtract 47 0 48: 11(int) CompositeExtract 47 0
49: 11(int) CompositeExtract 45 1 49: 11(int) CompositeExtract 47 1
50: 11(int) IAdd 48 49 50: 11(int) IAdd 48 49
51: 11(int) CompositeExtract 45 2 51: 11(int) CompositeExtract 47 2
52: 11(int) IAdd 50 51 52: 11(int) IAdd 50 51
53: 22(ivec3) CompositeConstruct 52 52 52 53: 22(ivec3) CompositeConstruct 52 52 52
Store 24(i4) 53 Store 24(i4) 53
@ -313,11 +313,11 @@ gl_FragCoord origin is upper left
55: 27(ivec4) Load 29(i5) 55: 27(ivec4) Load 29(i5)
56: 27(ivec4) IMul 54 55 56: 27(ivec4) IMul 54 55
57: 11(int) CompositeExtract 56 0 57: 11(int) CompositeExtract 56 0
58: 11(int) CompositeExtract 54 1 58: 11(int) CompositeExtract 56 1
59: 11(int) IAdd 57 58 59: 11(int) IAdd 57 58
60: 11(int) CompositeExtract 54 2 60: 11(int) CompositeExtract 56 2
61: 11(int) IAdd 59 60 61: 11(int) IAdd 59 60
62: 11(int) CompositeExtract 54 3 62: 11(int) CompositeExtract 56 3
63: 11(int) IAdd 61 62 63: 11(int) IAdd 61 62
64: 27(ivec4) CompositeConstruct 63 63 63 63 64: 27(ivec4) CompositeConstruct 63 63 63 63
Store 29(i5) 64 Store 29(i5) 64