Build and dependencies updates - #9020
Conversation
|
provider: playwright({
capabilities: process.env.CI
? {
'goog:chromeOptions': {
args: [
'--no-sandbox',
'--headless=new',
'--enable-unsafe-webgpu',
'--use-vulkan=swiftshader',
'--use-webgpu-adapter=swiftshader',
'--use-angle=vulkan'
]
}
}
: undefined
}),So CI renders text through SwiftShader while a local run uses whatever hardware-accelerated backend is on the machine. The 3 failing baselines were captured on the hardware path and were never regenerated for SwiftShader. that's the mismatch, not anything about the Rolldown/Playwright migration itself. Ruled out a couple of alternatives before landing on that: (context: pixelmatch algo )
Plan: The screenshots should be regenerated because in order to incorporate the build updates, we either have to update the thresholds in the matching algo cc @davepagurek |
|
For the SwiftShader flag, I think it should either not be used or only be used in CI. Typical users don't run their browsers with that flag enabled and us testing with it enabled can potentially cause false positives, it is currently there guarded behind the CI flag because it's needed to run on the GitHub Actions image since there's no GPU attached to the images. The screenshots of what's rendered vs what can be seen locally is a bit concerning as well though. |
Vaivaswat2244
left a comment
There was a problem hiding this comment.
After some more digging, and some more runs using CI = true I think this has nothing to do with SwiftShader. Playwright is using chromium which drives its own Chromium, This browser difference in baselines and these images are causing the failures. This is a headless vs headed browser problem. Making browser and channel as chrome, all the tests are passing.
| } : undefined | ||
| provider: playwright({ | ||
| capabilities: process.env.CI | ||
| ? { |
There was a problem hiding this comment.
adding channel: chrome and browser : chrome should fix this
provider: playwright({
launchOptions: process.env.CI
? {
channel: 'chrome',
args: [
'--headless=new',
'--no-sandbox',
'--enable-webgl',
'--use-gl=angle',
'--use-angle=swiftshader-webgl',
'--enable-unsafe-swiftshader'
]
}
: { channel: 'chrome' }
})There was a problem hiding this comment.
Seems to have cleared it now. It won't be possible to use browser: 'chrome' as that is not a supported browser and it requires contributors to have Chrome installed which not everyone may want to. Using channel: 'chromium' seems to be the recommendation from Playwright and Google Chrome team regarding something closest to real Chrome in a headless environment.
Still need to fix strands transpiler
| @@ -346,6 +352,8 @@ function transformBinaryOrLogical(node, state, ancestors) { | |||
| }, | |||
| }; | |||
| node.arguments = [node.right]; | |||
There was a problem hiding this comment.
@davepagurek Almost every part once migrated over to zimmerframe seems to be working except this part which causes some kind of NaN problem. Can you have a look when you are able? I'm not super familiar with how to debug strands and shaders.
|
@limzykenneth — since this swaps WebdriverIO for Playwright, it also clears the |
This updates various build and dependencies with major points listed below (these may change over time and will be updated, see edit history for previous versions):
Please do test out any latest build with the continuous release CDN link below and report any issues with build, test, or bugs.