Add HLSL memory barrier intrinsics, fix dst, add lit & EvaluateAttributeSnapped

This commit is contained in:
LoopDawg
2016-06-15 09:50:24 -06:00
parent 19b92fff7e
commit 6e72fddaa2
18 changed files with 1170 additions and 466 deletions

View File

@@ -638,7 +638,7 @@ gl_FragCoord origin is upper left
0:281 dot-product (global float)
0:281 'inF0' (in 4-component vector of float)
0:281 'inF1' (in 4-component vector of float)
0:282 Construct vec4 (temp float)
0:282 Construct vec4 (temp 4-component vector of float)
0:282 Constant:
0:282 1.000000
0:282 component-wise multiply (temp float)
@@ -2088,7 +2088,7 @@ gl_FragCoord origin is upper left
0:281 dot-product (global float)
0:281 'inF0' (in 4-component vector of float)
0:281 'inF1' (in 4-component vector of float)
0:282 Construct vec4 (temp float)
0:282 Construct vec4 (temp 4-component vector of float)
0:282 Constant:
0:282 1.000000
0:282 component-wise multiply (temp float)
@@ -2897,13 +2897,13 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 1264
// Id's are bound by 1265
Capability Shader
Capability DerivativeControl
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 718 732 747 856 870 885 997 1011 1026
EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 719 733 748 857 871 886 998 1012 1027
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
@@ -2947,58 +2947,58 @@ gl_FragCoord origin is upper left
Name 557 "inU0"
Name 563 "inF1"
Name 570 "inF2"
Name 634 "ResType"
Name 718 "inF0"
Name 732 "inF1"
Name 747 "inF2"
Name 790 "ResType"
Name 856 "inF0"
Name 870 "inF1"
Name 885 "inF2"
Name 931 "ResType"
Name 997 "inF0"
Name 1011 "inF1"
Name 1026 "inF2"
Name 1075 "ResType"
Name 1140 "r0"
Name 1144 "r1"
Name 1148 "r2"
Name 1152 "r3"
Name 1156 "r4"
Name 1160 "r5"
Name 1164 "r6"
Name 1168 "r7"
Name 1172 "r8"
Name 1176 "r0"
Name 1180 "r1"
Name 1184 "r2"
Name 1188 "r3"
Name 1192 "r4"
Name 1196 "r5"
Name 1200 "r6"
Name 1204 "r7"
Name 1208 "r8"
Name 1212 "r0"
Name 1216 "r1"
Name 1220 "r2"
Name 1224 "r3"
Name 1228 "r4"
Name 1232 "r5"
Name 1236 "r6"
Name 1240 "r7"
Name 1244 "r8"
Name 1249 "gs_ua"
Name 1250 "gs_ub"
Name 1251 "gs_uc"
Name 1253 "gs_ua2"
Name 1254 "gs_ub2"
Name 1255 "gs_uc2"
Name 1257 "gs_ua3"
Name 1258 "gs_ub3"
Name 1259 "gs_uc3"
Name 1261 "gs_ua4"
Name 1262 "gs_ub4"
Name 1263 "gs_uc4"
Name 635 "ResType"
Name 719 "inF0"
Name 733 "inF1"
Name 748 "inF2"
Name 791 "ResType"
Name 857 "inF0"
Name 871 "inF1"
Name 886 "inF2"
Name 932 "ResType"
Name 998 "inF0"
Name 1012 "inF1"
Name 1027 "inF2"
Name 1076 "ResType"
Name 1141 "r0"
Name 1145 "r1"
Name 1149 "r2"
Name 1153 "r3"
Name 1157 "r4"
Name 1161 "r5"
Name 1165 "r6"
Name 1169 "r7"
Name 1173 "r8"
Name 1177 "r0"
Name 1181 "r1"
Name 1185 "r2"
Name 1189 "r3"
Name 1193 "r4"
Name 1197 "r5"
Name 1201 "r6"
Name 1205 "r7"
Name 1209 "r8"
Name 1213 "r0"
Name 1217 "r1"
Name 1221 "r2"
Name 1225 "r3"
Name 1229 "r4"
Name 1233 "r5"
Name 1237 "r6"
Name 1241 "r7"
Name 1245 "r8"
Name 1250 "gs_ua"
Name 1251 "gs_ub"
Name 1252 "gs_uc"
Name 1254 "gs_ua2"
Name 1255 "gs_ub2"
Name 1256 "gs_uc2"
Name 1258 "gs_ua3"
Name 1259 "gs_ub3"
Name 1260 "gs_uc3"
Name 1262 "gs_ua4"
Name 1263 "gs_ub4"
Name 1264 "gs_uc4"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -3078,42 +3078,42 @@ gl_FragCoord origin is upper left
574: 34(fvec4) ConstantComposite 84 84 84 84
575: TypeVector 50(bool) 4
585: 554(ivec4) ConstantComposite 93 241 412 159
634(ResType): TypeStruct 34(fvec4) 551(ivec4)
678: 64(int) Constant 4
679: 554(ivec4) ConstantComposite 327 159 241 678
714: 6(float) Constant 1082130432
715: 34(fvec4) ConstantComposite 156 325 535 714
717: TypePointer Input 10
718(inF0): 717(ptr) Variable Input
732(inF1): 717(ptr) Variable Input
738: 10 ConstantComposite 230 230
739: TypeMatrix 231(bvec2) 2
747(inF2): 717(ptr) Variable Input
790(ResType): TypeStruct 10 207(ivec2)
852: 8(fvec2) ConstantComposite 325 325
853: 10 ConstantComposite 852 852
855: TypePointer Input 23
856(inF0): 855(ptr) Variable Input
870(inF1): 855(ptr) Variable Input
876: 23 ConstantComposite 401 401 401
877: TypeMatrix 402(bvec3) 3
885(inF2): 855(ptr) Variable Input
931(ResType): TypeStruct 23 378(ivec3)
993: 21(fvec3) ConstantComposite 535 535 535
994: 23 ConstantComposite 993 993 993
996: TypePointer Input 36
997(inF0): 996(ptr) Variable Input
1011(inF1): 996(ptr) Variable Input
1017: 36 ConstantComposite 574 574 574 574
1018: TypeMatrix 575(bvec4) 4
1026(inF2): 996(ptr) Variable Input
1075(ResType): TypeStruct 36 551(ivec4)
1137: 34(fvec4) ConstantComposite 714 714 714 714
1138: 36 ConstantComposite 1137 1137 1137 1137
1248: TypePointer Function 64(int)
1252: TypePointer Function 210(ivec2)
1256: TypePointer Function 381(ivec3)
1260: TypePointer Function 554(ivec4)
635(ResType): TypeStruct 34(fvec4) 551(ivec4)
679: 64(int) Constant 4
680: 554(ivec4) ConstantComposite 327 159 241 679
715: 6(float) Constant 1082130432
716: 34(fvec4) ConstantComposite 156 325 535 715
718: TypePointer Input 10
719(inF0): 718(ptr) Variable Input
733(inF1): 718(ptr) Variable Input
739: 10 ConstantComposite 230 230
740: TypeMatrix 231(bvec2) 2
748(inF2): 718(ptr) Variable Input
791(ResType): TypeStruct 10 207(ivec2)
853: 8(fvec2) ConstantComposite 325 325
854: 10 ConstantComposite 853 853
856: TypePointer Input 23
857(inF0): 856(ptr) Variable Input
871(inF1): 856(ptr) Variable Input
877: 23 ConstantComposite 401 401 401
878: TypeMatrix 402(bvec3) 3
886(inF2): 856(ptr) Variable Input
932(ResType): TypeStruct 23 378(ivec3)
994: 21(fvec3) ConstantComposite 535 535 535
995: 23 ConstantComposite 994 994 994
997: TypePointer Input 36
998(inF0): 997(ptr) Variable Input
1012(inF1): 997(ptr) Variable Input
1018: 36 ConstantComposite 574 574 574 574
1019: TypeMatrix 575(bvec4) 4
1027(inF2): 997(ptr) Variable Input
1076(ResType): TypeStruct 36 551(ivec4)
1138: 34(fvec4) ConstantComposite 715 715 715 715
1139: 36 ConstantComposite 1138 1138 1138 1138
1249: TypePointer Function 64(int)
1253: TypePointer Function 210(ivec2)
1257: TypePointer Function 381(ivec3)
1261: TypePointer Function 554(ivec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
49: 6(float) Load 48(inF0)
@@ -3260,51 +3260,51 @@ gl_FragCoord origin is upper left
17(inFM0): 11(ptr) FunctionParameter
18(inFM1): 11(ptr) FunctionParameter
20: Label
1140(r0): 7(ptr) Variable Function
1144(r1): 9(ptr) Variable Function
1148(r2): 9(ptr) Variable Function
1152(r3): 7(ptr) Variable Function
1156(r4): 9(ptr) Variable Function
1160(r5): 9(ptr) Variable Function
1164(r6): 11(ptr) Variable Function
1168(r7): 11(ptr) Variable Function
1172(r8): 11(ptr) Variable Function
1141: 6(float) Load 13(inF0)
1142: 6(float) Load 14(inF1)
1143: 6(float) FMul 1141 1142
Store 1140(r0) 1143
1145: 8(fvec2) Load 15(inFV0)
1146: 6(float) Load 13(inF0)
1147: 8(fvec2) VectorTimesScalar 1145 1146
Store 1144(r1) 1147
1149: 6(float) Load 13(inF0)
1150: 8(fvec2) Load 15(inFV0)
1151: 8(fvec2) VectorTimesScalar 1150 1149
Store 1148(r2) 1151
1153: 8(fvec2) Load 15(inFV0)
1154: 8(fvec2) Load 16(inFV1)
1155: 6(float) Dot 1153 1154
Store 1152(r3) 1155
1157: 10 Load 17(inFM0)
1158: 8(fvec2) Load 15(inFV0)
1159: 8(fvec2) MatrixTimesVector 1157 1158
Store 1156(r4) 1159
1161: 8(fvec2) Load 15(inFV0)
1162: 10 Load 17(inFM0)
1163: 8(fvec2) VectorTimesMatrix 1161 1162
Store 1160(r5) 1163
1165: 10 Load 17(inFM0)
1166: 6(float) Load 13(inF0)
1167: 10 MatrixTimesScalar 1165 1166
Store 1164(r6) 1167
1169: 6(float) Load 13(inF0)
1170: 10 Load 17(inFM0)
1171: 10 MatrixTimesScalar 1170 1169
Store 1168(r7) 1171
1173: 10 Load 17(inFM0)
1174: 10 Load 18(inFM1)
1175: 10 MatrixTimesMatrix 1173 1174
Store 1172(r8) 1175
1141(r0): 7(ptr) Variable Function
1145(r1): 9(ptr) Variable Function
1149(r2): 9(ptr) Variable Function
1153(r3): 7(ptr) Variable Function
1157(r4): 9(ptr) Variable Function
1161(r5): 9(ptr) Variable Function
1165(r6): 11(ptr) Variable Function
1169(r7): 11(ptr) Variable Function
1173(r8): 11(ptr) Variable Function
1142: 6(float) Load 13(inF0)
1143: 6(float) Load 14(inF1)
1144: 6(float) FMul 1142 1143
Store 1141(r0) 1144
1146: 8(fvec2) Load 15(inFV0)
1147: 6(float) Load 13(inF0)
1148: 8(fvec2) VectorTimesScalar 1146 1147
Store 1145(r1) 1148
1150: 6(float) Load 13(inF0)
1151: 8(fvec2) Load 15(inFV0)
1152: 8(fvec2) VectorTimesScalar 1151 1150
Store 1149(r2) 1152
1154: 8(fvec2) Load 15(inFV0)
1155: 8(fvec2) Load 16(inFV1)
1156: 6(float) Dot 1154 1155
Store 1153(r3) 1156
1158: 10 Load 17(inFM0)
1159: 8(fvec2) Load 15(inFV0)
1160: 8(fvec2) MatrixTimesVector 1158 1159
Store 1157(r4) 1160
1162: 8(fvec2) Load 15(inFV0)
1163: 10 Load 17(inFM0)
1164: 8(fvec2) VectorTimesMatrix 1162 1163
Store 1161(r5) 1164
1166: 10 Load 17(inFM0)
1167: 6(float) Load 13(inF0)
1168: 10 MatrixTimesScalar 1166 1167
Store 1165(r6) 1168
1170: 6(float) Load 13(inF0)
1171: 10 Load 17(inFM0)
1172: 10 MatrixTimesScalar 1171 1170
Store 1169(r7) 1172
1174: 10 Load 17(inFM0)
1175: 10 Load 18(inFM1)
1176: 10 MatrixTimesMatrix 1174 1175
Store 1173(r8) 1176
Return
FunctionEnd
32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
@@ -3315,51 +3315,51 @@ gl_FragCoord origin is upper left
30(inFM0): 24(ptr) FunctionParameter
31(inFM1): 24(ptr) FunctionParameter
33: Label
1176(r0): 7(ptr) Variable Function
1180(r1): 22(ptr) Variable Function
1184(r2): 22(ptr) Variable Function
1188(r3): 7(ptr) Variable Function
1192(r4): 22(ptr) Variable Function
1196(r5): 22(ptr) Variable Function
1200(r6): 24(ptr) Variable Function
1204(r7): 24(ptr) Variable Function
1208(r8): 24(ptr) Variable Function
1177: 6(float) Load 26(inF0)
1178: 6(float) Load 27(inF1)
1179: 6(float) FMul 1177 1178
Store 1176(r0) 1179
1181: 21(fvec3) Load 28(inFV0)
1182: 6(float) Load 26(inF0)
1183: 21(fvec3) VectorTimesScalar 1181 1182
Store 1180(r1) 1183
1185: 6(float) Load 26(inF0)
1186: 21(fvec3) Load 28(inFV0)
1187: 21(fvec3) VectorTimesScalar 1186 1185
Store 1184(r2) 1187
1189: 21(fvec3) Load 28(inFV0)
1190: 21(fvec3) Load 29(inFV1)
1191: 6(float) Dot 1189 1190
Store 1188(r3) 1191
1193: 23 Load 30(inFM0)
1194: 21(fvec3) Load 28(inFV0)
1195: 21(fvec3) MatrixTimesVector 1193 1194
Store 1192(r4) 1195
1197: 21(fvec3) Load 28(inFV0)
1198: 23 Load 30(inFM0)
1199: 21(fvec3) VectorTimesMatrix 1197 1198
Store 1196(r5) 1199
1201: 23 Load 30(inFM0)
1202: 6(float) Load 26(inF0)
1203: 23 MatrixTimesScalar 1201 1202
Store 1200(r6) 1203
1205: 6(float) Load 26(inF0)
1206: 23 Load 30(inFM0)
1207: 23 MatrixTimesScalar 1206 1205
Store 1204(r7) 1207
1209: 23 Load 30(inFM0)
1210: 23 Load 31(inFM1)
1211: 23 MatrixTimesMatrix 1209 1210
Store 1208(r8) 1211
1177(r0): 7(ptr) Variable Function
1181(r1): 22(ptr) Variable Function
1185(r2): 22(ptr) Variable Function
1189(r3): 7(ptr) Variable Function
1193(r4): 22(ptr) Variable Function
1197(r5): 22(ptr) Variable Function
1201(r6): 24(ptr) Variable Function
1205(r7): 24(ptr) Variable Function
1209(r8): 24(ptr) Variable Function
1178: 6(float) Load 26(inF0)
1179: 6(float) Load 27(inF1)
1180: 6(float) FMul 1178 1179
Store 1177(r0) 1180
1182: 21(fvec3) Load 28(inFV0)
1183: 6(float) Load 26(inF0)
1184: 21(fvec3) VectorTimesScalar 1182 1183
Store 1181(r1) 1184
1186: 6(float) Load 26(inF0)
1187: 21(fvec3) Load 28(inFV0)
1188: 21(fvec3) VectorTimesScalar 1187 1186
Store 1185(r2) 1188
1190: 21(fvec3) Load 28(inFV0)
1191: 21(fvec3) Load 29(inFV1)
1192: 6(float) Dot 1190 1191
Store 1189(r3) 1192
1194: 23 Load 30(inFM0)
1195: 21(fvec3) Load 28(inFV0)
1196: 21(fvec3) MatrixTimesVector 1194 1195
Store 1193(r4) 1196
1198: 21(fvec3) Load 28(inFV0)
1199: 23 Load 30(inFM0)
1200: 21(fvec3) VectorTimesMatrix 1198 1199
Store 1197(r5) 1200
1202: 23 Load 30(inFM0)
1203: 6(float) Load 26(inF0)
1204: 23 MatrixTimesScalar 1202 1203
Store 1201(r6) 1204
1206: 6(float) Load 26(inF0)
1207: 23 Load 30(inFM0)
1208: 23 MatrixTimesScalar 1207 1206
Store 1205(r7) 1208
1210: 23 Load 30(inFM0)
1211: 23 Load 31(inFM1)
1212: 23 MatrixTimesMatrix 1210 1211
Store 1209(r8) 1212
Return
FunctionEnd
45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
@@ -3370,62 +3370,62 @@ gl_FragCoord origin is upper left
43(inFM0): 37(ptr) FunctionParameter
44(inFM1): 37(ptr) FunctionParameter
46: Label
1212(r0): 7(ptr) Variable Function
1216(r1): 35(ptr) Variable Function
1220(r2): 35(ptr) Variable Function
1224(r3): 7(ptr) Variable Function
1228(r4): 35(ptr) Variable Function
1232(r5): 35(ptr) Variable Function
1236(r6): 37(ptr) Variable Function
1240(r7): 37(ptr) Variable Function
1244(r8): 37(ptr) Variable Function
1249(gs_ua): 1248(ptr) Variable Function
1250(gs_ub): 1248(ptr) Variable Function
1251(gs_uc): 1248(ptr) Variable Function
1253(gs_ua2): 1252(ptr) Variable Function
1254(gs_ub2): 1252(ptr) Variable Function
1255(gs_uc2): 1252(ptr) Variable Function
1257(gs_ua3): 1256(ptr) Variable Function
1258(gs_ub3): 1256(ptr) Variable Function
1259(gs_uc3): 1256(ptr) Variable Function
1261(gs_ua4): 1260(ptr) Variable Function
1262(gs_ub4): 1260(ptr) Variable Function
1263(gs_uc4): 1260(ptr) Variable Function
1213: 6(float) Load 39(inF0)
1214: 6(float) Load 40(inF1)
1215: 6(float) FMul 1213 1214
Store 1212(r0) 1215
1217: 34(fvec4) Load 41(inFV0)
1218: 6(float) Load 39(inF0)
1219: 34(fvec4) VectorTimesScalar 1217 1218
Store 1216(r1) 1219
1221: 6(float) Load 39(inF0)
1222: 34(fvec4) Load 41(inFV0)
1223: 34(fvec4) VectorTimesScalar 1222 1221
Store 1220(r2) 1223
1225: 34(fvec4) Load 41(inFV0)
1226: 34(fvec4) Load 42(inFV1)
1227: 6(float) Dot 1225 1226
Store 1224(r3) 1227
1229: 36 Load 43(inFM0)
1230: 34(fvec4) Load 41(inFV0)
1231: 34(fvec4) MatrixTimesVector 1229 1230
Store 1228(r4) 1231
1233: 34(fvec4) Load 41(inFV0)
1234: 36 Load 43(inFM0)
1235: 34(fvec4) VectorTimesMatrix 1233 1234
Store 1232(r5) 1235
1237: 36 Load 43(inFM0)
1238: 6(float) Load 39(inF0)
1239: 36 MatrixTimesScalar 1237 1238
Store 1236(r6) 1239
1241: 6(float) Load 39(inF0)
1242: 36 Load 43(inFM0)
1243: 36 MatrixTimesScalar 1242 1241
Store 1240(r7) 1243
1245: 36 Load 43(inFM0)
1246: 36 Load 44(inFM1)
1247: 36 MatrixTimesMatrix 1245 1246
Store 1244(r8) 1247
1213(r0): 7(ptr) Variable Function
1217(r1): 35(ptr) Variable Function
1221(r2): 35(ptr) Variable Function
1225(r3): 7(ptr) Variable Function
1229(r4): 35(ptr) Variable Function
1233(r5): 35(ptr) Variable Function
1237(r6): 37(ptr) Variable Function
1241(r7): 37(ptr) Variable Function
1245(r8): 37(ptr) Variable Function
1250(gs_ua): 1249(ptr) Variable Function
1251(gs_ub): 1249(ptr) Variable Function
1252(gs_uc): 1249(ptr) Variable Function
1254(gs_ua2): 1253(ptr) Variable Function
1255(gs_ub2): 1253(ptr) Variable Function
1256(gs_uc2): 1253(ptr) Variable Function
1258(gs_ua3): 1257(ptr) Variable Function
1259(gs_ub3): 1257(ptr) Variable Function
1260(gs_uc3): 1257(ptr) Variable Function
1262(gs_ua4): 1261(ptr) Variable Function
1263(gs_ub4): 1261(ptr) Variable Function
1264(gs_uc4): 1261(ptr) Variable Function
1214: 6(float) Load 39(inF0)
1215: 6(float) Load 40(inF1)
1216: 6(float) FMul 1214 1215
Store 1213(r0) 1216
1218: 34(fvec4) Load 41(inFV0)
1219: 6(float) Load 39(inF0)
1220: 34(fvec4) VectorTimesScalar 1218 1219
Store 1217(r1) 1220
1222: 6(float) Load 39(inF0)
1223: 34(fvec4) Load 41(inFV0)
1224: 34(fvec4) VectorTimesScalar 1223 1222
Store 1221(r2) 1224
1226: 34(fvec4) Load 41(inFV0)
1227: 34(fvec4) Load 42(inFV1)
1228: 6(float) Dot 1226 1227
Store 1225(r3) 1228
1230: 36 Load 43(inFM0)
1231: 34(fvec4) Load 41(inFV0)
1232: 34(fvec4) MatrixTimesVector 1230 1231
Store 1229(r4) 1232
1234: 34(fvec4) Load 41(inFV0)
1235: 36 Load 43(inFM0)
1236: 34(fvec4) VectorTimesMatrix 1234 1235
Store 1233(r5) 1236
1238: 36 Load 43(inFM0)
1239: 6(float) Load 39(inF0)
1240: 36 MatrixTimesScalar 1238 1239
Store 1237(r6) 1240
1242: 6(float) Load 39(inF0)
1243: 36 Load 43(inFM0)
1244: 36 MatrixTimesScalar 1243 1242
Store 1241(r7) 1244
1246: 36 Load 43(inFM0)
1247: 36 Load 44(inFM1)
1248: 36 MatrixTimesMatrix 1246 1247
Store 1245(r8) 1248
Return
FunctionEnd