This website requires JavaScript.
ReeceSX
Explore
Aurora
Register
Sign In
AuroraMiddleware
/
skia2
Watch
1
Star
0
Fork
0
You've already forked skia2
Code
Issues
Pull Requests
Projects
Releases
Wiki
Activity
2654187396
skia2
/
tests
/
sksl
/
inliner
/
InlineWithUnnecessaryBlocks.glsl
7 lines
86 B
Plaintext
Raw
Normal View
History
Unescape
Escape
Migrate SkSL inliner tests to golden files. Our lack of proper caps-bits controls in skslc affects the outcome of one test: "InlinerWrapsEarlyReturnsWithDoWhileBlock" does not actually emit the do-while block because the standalone caps bits don't enable do-while support. This will be fixed in a followup CL that adds caps-bit support to our tests. A few tests were renamed for consistency, a few were simplified slightly and one test was removed because it was simply redundant (there was a second test that covered the exact same ground as `ForWithReturnInsideCannotBeInlined`). Change-Id: I2e3b97cb3aea331b6d806bdb865aa78c35c7a6b9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316997 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-15 14:10:43 +00:00
Align default values of GrShaderCaps with StandaloneShaderCaps. `fBuiltinFMASupport` is now true on both, and `fUsesPrecisionModifiers` is now false. Other mismatching flags exist, but they are non-trivial to synchronize as they are tied to extension strings. This will help our skslc-based unit tests generate the same results as our C++ unit tests did, but should not affect real-world results as these defaults will all be overwritten in a non-testing scenario. In practice, the `fUsesPrecisionModifiers` change is responsible for all of the diffs below. The other flags did not change the results of any of the currently-ported tests. Change-Id: Ieb056d852b027fa87c56fd89f971a77a10a8a124 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317204 Commit-Queue: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-15 20:09:11 +00:00
out vec4 sk_FragColor;
uniform vec4 color;
Migrate SkSL inliner tests to golden files. Our lack of proper caps-bits controls in skslc affects the outcome of one test: "InlinerWrapsEarlyReturnsWithDoWhileBlock" does not actually emit the do-while block because the standalone caps bits don't enable do-while support. This will be fixed in a followup CL that adds caps-bit support to our tests. A few tests were renamed for consistency, a few were simplified slightly and one test was removed because it was simply redundant (there was a second test that covered the exact same ground as `ForWithReturnInsideCannotBeInlined`). Change-Id: I2e3b97cb3aea331b6d806bdb865aa78c35c7a6b9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316997 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-15 14:10:43 +00:00
void main() {
Elide return expression temp-var in vardecl-less blocks. Previously, a return statement inside a scoped Block would always result in the return expression being assigned to a temporary variable instead of replacing the function-call-expression directly. This was done because there might be variables inside the Block; these would have fallen out of scope when the expression is migrated to the call site, resulting in an invalid expression. We aren't actually examining the return expression so we don't know if it uses variables from an inner scope at all. (Inspecting the return expression for variable usage is certainly possible! But it's a fair amount of code and complexity for a small payoff.) However, we can very easily get most of the benefit here without paying for the complexity. In this CL we now look for variable declarations inside of scoped Blocks. If the code doesn't add any vardecls into scoped Blocks, there's no risk of scope problems, and we don't need to use a temp-var to store our return expressions. If any vardecls are added, we go back to using a temp-var as before. Change-Id: I4c81400dad2f33db06a1c18eb671ba2140232006 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/346499 Commit-Queue: John Stiles <johnstiles@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
2020-12-22 18:47:05 +00:00
sk_FragColor = color;
Migrate SkSL inliner tests to golden files. Our lack of proper caps-bits controls in skslc affects the outcome of one test: "InlinerWrapsEarlyReturnsWithDoWhileBlock" does not actually emit the do-while block because the standalone caps bits don't enable do-while support. This will be fixed in a followup CL that adds caps-bit support to our tests. A few tests were renamed for consistency, a few were simplified slightly and one test was removed because it was simply redundant (there was a second test that covered the exact same ground as `ForWithReturnInsideCannotBeInlined`). Change-Id: I2e3b97cb3aea331b6d806bdb865aa78c35c7a6b9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316997 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-15 14:10:43 +00:00
}
Reference in New Issue
Copy Permalink