1f0dc9cd1b
Previously, coercion between a signed type and an unsigned type was treated as "no cost" because these types shared the exact same priority. This meant that we couldn't choose the proper overload with function calls that only differed in signed-ness, like: void fn(int4 x); void fn(uint4 x); So we would always choose the int4 version since we encountered it first. Now, we can choose the correct overload; signed types now have a slightly elevated priority over unsigned types, allowing coercion costs to work normally. Also added some comments to `determineFinalTypes` while trying to see if that needed some improvements as well, but this turned out to be a red herring--it didn't need any functional changes. Change-Id: I334debae9ad0e9b290109658d2fde8f6526770a2 Bug: skia:10999 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344017 Commit-Queue: John Stiles <johnstiles@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
9 lines
141 B
GLSL
9 lines
141 B
GLSL
|
|
out vec4 sk_FragColor;
|
|
in int a;
|
|
in uint b;
|
|
void main() {
|
|
sk_FragColor.x = float(findLSB(a));
|
|
sk_FragColor.y = float(findLSB(b));
|
|
}
|