@@ -9700,9 +9700,9 @@ function builtin_glsl_function(opts)
97009700 };
97019701 } else {
97029702 obj.element_is_constant = function(i) {
9703- if (this.guid === 489) {
9704- debugger;
9705- }
9703+ // if (this.guid === 489) {
9704+ // debugger;
9705+ // }
97069706 return this.element(i).is_constant();
97079707 };
97089708 }
@@ -10074,8 +10074,8 @@ var cross = builtin_glsl_function({
1007410074 return vec3.cross(exp.parents[0].evaluate(cache),
1007510075 exp.parents[1].evaluate(cache));
1007610076 }, element_function: function (exp, i) {
10077- var v1 = exp.parents[0].length ;
10078- var v2 = exp.parents[1].length ;
10077+ var v1 = exp.parents[0];
10078+ var v2 = exp.parents[1];
1007910079 if (i === 0) { return v1.at(1).mul(v2.at(2)).sub(v1.at(2).mul(v2.at(1)));
1008010080 } else if (i === 1) { return v1.at(2).mul(v2.at(0)).sub(v1.at(0).mul(v2.at(2)));
1008110081 } else if (i === 2) { return v1.at(0).mul(v2.at(1)).sub(v1.at(1).mul(v2.at(0)));
@@ -10868,23 +10868,24 @@ Shade.program = function(program_obj)
1086810868
1086910869 var common_sequence = [
1087010870 [Shade.Optimizer.is_times_zero, Shade.Optimizer.replace_with_zero,
10871- "v * 0", true],
10872- [Shade.Optimizer.is_times_one, Shade.Optimizer.replace_with_notone,
10873- "v * 1", true],
10874- [Shade.Optimizer.is_plus_zero, Shade.Optimizer.replace_with_nonzero,
10875- "v + 0", true],
10876- [Shade.Optimizer.is_never_discarding,
10877- Shade.Optimizer.remove_discard, "discard_if(false)"],
10878- [Shade.Optimizer.is_known_branch,
10879- Shade.Optimizer.prune_ifelse_branch, "constant?a:b", true],
10880- [Shade.Optimizer.vec_at_constant_index,
10881- Shade.Optimizer.replace_vec_at_constant_with_swizzle, "vec[constant_ix]"],
10882- [Shade.Optimizer.is_constant,
10883- Shade.Optimizer.replace_with_constant, "constant folding"],
10884- [Shade.Optimizer.is_logical_or_with_constant,
10885- Shade.Optimizer.replace_logical_or_with_constant, "constant||v", true],
10886- [Shade.Optimizer.is_logical_and_with_constant,
10887- Shade.Optimizer.replace_logical_and_with_constant, "constant&&v", true]];
10871+ "v * 0", true]
10872+ ,[Shade.Optimizer.is_times_one, Shade.Optimizer.replace_with_notone,
10873+ "v * 1", true]
10874+ ,[Shade.Optimizer.is_plus_zero, Shade.Optimizer.replace_with_nonzero,
10875+ "v + 0", true]
10876+ ,[Shade.Optimizer.is_never_discarding,
10877+ Shade.Optimizer.remove_discard, "discard_if(false)"]
10878+ ,[Shade.Optimizer.is_known_branch,
10879+ Shade.Optimizer.prune_ifelse_branch, "constant?a:b", true]
10880+ ,[Shade.Optimizer.vec_at_constant_index,
10881+ Shade.Optimizer.replace_vec_at_constant_with_swizzle, "vec[constant_ix]"]
10882+ ,[Shade.Optimizer.is_constant,
10883+ Shade.Optimizer.replace_with_constant, "constant folding"]
10884+ ,[Shade.Optimizer.is_logical_or_with_constant,
10885+ Shade.Optimizer.replace_logical_or_with_constant, "constant||v", true]
10886+ ,[Shade.Optimizer.is_logical_and_with_constant,
10887+ Shade.Optimizer.replace_logical_and_with_constant, "constant&&v", true]
10888+ ];
1088810889
1088910890 // explicit per-vertex hoisting must happen before is_attribute hoisting,
1089010891 // otherwise we might end up reading from a varying in the vertex program,
0 commit comments