Jelajahi Sumber

Puppeteer E2E test: Regenerate high-differenсe screenshots and decrease threshold (#25403)

* Puppeteer: Regenerate high-differene screenshots

* Update exceptions

* Fix
Levi Pesin 2 tahun lalu
induk
melakukan
780feac0f3
63 mengubah file dengan 22 tambahan dan 7 penghapusan
  1. TEMPAT SAMPAH
      examples/screenshots/css3d_periodictable.jpg
  2. TEMPAT SAMPAH
      examples/screenshots/misc_boxselection.jpg
  3. TEMPAT SAMPAH
      examples/screenshots/misc_controls_pointerlock.jpg
  4. TEMPAT SAMPAH
      examples/screenshots/misc_uv_tests.jpg
  5. TEMPAT SAMPAH
      examples/screenshots/webgl2_multisampled_renderbuffers.jpg
  6. TEMPAT SAMPAH
      examples/screenshots/webgl2_ubo.jpg
  7. TEMPAT SAMPAH
      examples/screenshots/webgl_animation_skinning_blending.jpg
  8. TEMPAT SAMPAH
      examples/screenshots/webgl_buffergeometry_compression.jpg
  9. TEMPAT SAMPAH
      examples/screenshots/webgl_buffergeometry_drawrange.jpg
  10. TEMPAT SAMPAH
      examples/screenshots/webgl_camera.jpg
  11. TEMPAT SAMPAH
      examples/screenshots/webgl_camera_logarithmicdepthbuffer.jpg
  12. TEMPAT SAMPAH
      examples/screenshots/webgl_clipping_advanced.jpg
  13. TEMPAT SAMPAH
      examples/screenshots/webgl_custom_attributes_lines.jpg
  14. TEMPAT SAMPAH
      examples/screenshots/webgl_custom_attributes_points2.jpg
  15. TEMPAT SAMPAH
      examples/screenshots/webgl_custom_attributes_points3.jpg
  16. TEMPAT SAMPAH
      examples/screenshots/webgl_framebuffer_texture.jpg
  17. TEMPAT SAMPAH
      examples/screenshots/webgl_geometry_extrude_splines.jpg
  18. TEMPAT SAMPAH
      examples/screenshots/webgl_gpgpu_birds_gltf.jpg
  19. TEMPAT SAMPAH
      examples/screenshots/webgl_gpgpu_protoplanet.jpg
  20. TEMPAT SAMPAH
      examples/screenshots/webgl_helpers.jpg
  21. TEMPAT SAMPAH
      examples/screenshots/webgl_interactive_raycasting_points.jpg
  22. TEMPAT SAMPAH
      examples/screenshots/webgl_lightningstrike.jpg
  23. TEMPAT SAMPAH
      examples/screenshots/webgl_lights_pointlights.jpg
  24. TEMPAT SAMPAH
      examples/screenshots/webgl_lights_spotlights.jpg
  25. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_collada_kinematics.jpg
  26. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_gcode.jpg
  27. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_gltf_transmission.jpg
  28. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_ldraw.jpg
  29. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_md2.jpg
  30. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_mmd_audio.jpg
  31. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_mmd_pose.jpg
  32. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_pcd.jpg
  33. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_pdb.jpg
  34. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_svg.jpg
  35. TEMPAT SAMPAH
      examples/screenshots/webgl_loader_tilt.jpg
  36. TEMPAT SAMPAH
      examples/screenshots/webgl_lod.jpg
  37. TEMPAT SAMPAH
      examples/screenshots/webgl_marchingcubes.jpg
  38. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_blending.jpg
  39. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_blending_custom.jpg
  40. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_variations_lambert.jpg
  41. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_variations_phong.jpg
  42. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_variations_physical.jpg
  43. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_variations_standard.jpg
  44. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_variations_toon.jpg
  45. TEMPAT SAMPAH
      examples/screenshots/webgl_materials_wireframe.jpg
  46. TEMPAT SAMPAH
      examples/screenshots/webgl_multiple_canvases_circle.jpg
  47. TEMPAT SAMPAH
      examples/screenshots/webgl_multiple_elements_text.jpg
  48. TEMPAT SAMPAH
      examples/screenshots/webgl_nodes_loader_materialx.jpg
  49. TEMPAT SAMPAH
      examples/screenshots/webgl_nodes_materials_instance_uniform.jpg
  50. TEMPAT SAMPAH
      examples/screenshots/webgl_nodes_playground.jpg
  51. TEMPAT SAMPAH
      examples/screenshots/webgl_points_dynamic.jpg
  52. TEMPAT SAMPAH
      examples/screenshots/webgl_postprocessing_advanced.jpg
  53. TEMPAT SAMPAH
      examples/screenshots/webgl_postprocessing_fxaa.jpg
  54. TEMPAT SAMPAH
      examples/screenshots/webgl_postprocessing_pixel.jpg
  55. TEMPAT SAMPAH
      examples/screenshots/webgl_postprocessing_ssr.jpg
  56. TEMPAT SAMPAH
      examples/screenshots/webgl_raycaster_bvh.jpg
  57. TEMPAT SAMPAH
      examples/screenshots/webgl_shaders_tonemapping.jpg
  58. TEMPAT SAMPAH
      examples/screenshots/webgl_shadowmap_performance.jpg
  59. TEMPAT SAMPAH
      examples/screenshots/webgpu_nodes_playground.jpg
  60. TEMPAT SAMPAH
      examples/screenshots/webxr_vr_layers.jpg
  61. TEMPAT SAMPAH
      examples/screenshots/webxr_vr_sandbox.jpg
  62. TEMPAT SAMPAH
      examples/screenshots/webxr_vr_video.jpg
  63. 22 7
      test/e2e/puppeteer.js

TEMPAT SAMPAH
examples/screenshots/css3d_periodictable.jpg


TEMPAT SAMPAH
examples/screenshots/misc_boxselection.jpg


TEMPAT SAMPAH
examples/screenshots/misc_controls_pointerlock.jpg


TEMPAT SAMPAH
examples/screenshots/misc_uv_tests.jpg


TEMPAT SAMPAH
examples/screenshots/webgl2_multisampled_renderbuffers.jpg


TEMPAT SAMPAH
examples/screenshots/webgl2_ubo.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_animation_skinning_blending.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_buffergeometry_compression.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_buffergeometry_drawrange.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_camera.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_camera_logarithmicdepthbuffer.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_clipping_advanced.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_custom_attributes_lines.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_custom_attributes_points2.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_custom_attributes_points3.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_framebuffer_texture.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_geometry_extrude_splines.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_gpgpu_birds_gltf.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_gpgpu_protoplanet.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_helpers.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_interactive_raycasting_points.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_lightningstrike.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_lights_pointlights.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_lights_spotlights.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_collada_kinematics.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_gcode.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_gltf_transmission.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_ldraw.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_md2.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_mmd_audio.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_mmd_pose.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_pcd.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_pdb.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_svg.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_loader_tilt.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_lod.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_marchingcubes.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_blending.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_blending_custom.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_variations_lambert.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_variations_phong.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_variations_physical.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_variations_standard.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_variations_toon.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_materials_wireframe.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_multiple_canvases_circle.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_multiple_elements_text.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_nodes_loader_materialx.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_nodes_materials_instance_uniform.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_nodes_playground.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_points_dynamic.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_postprocessing_advanced.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_postprocessing_fxaa.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_postprocessing_pixel.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_postprocessing_ssr.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_raycaster_bvh.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_shaders_tonemapping.jpg


TEMPAT SAMPAH
examples/screenshots/webgl_shadowmap_performance.jpg


TEMPAT SAMPAH
examples/screenshots/webgpu_nodes_playground.jpg


TEMPAT SAMPAH
examples/screenshots/webxr_vr_layers.jpg


TEMPAT SAMPAH
examples/screenshots/webxr_vr_sandbox.jpg


TEMPAT SAMPAH
examples/screenshots/webxr_vr_video.jpg


+ 22 - 7
test/e2e/puppeteer.js

@@ -18,21 +18,38 @@ const exceptionList = [
 	'css3d_youtube',
 	'webgl_video_kinect',
 	'webgl_video_panorama_equirectangular',
+	'webxr_vr_video',
 
 	'webaudio_visualizer', // audio can't be analyzed without proper audio hook
 
-	'webgl_effects_ascii', // blink renders text differently in every platform
-
 	'webxr_ar_lighting', // webxr
 
 	'webgl_worker_offscreencanvas', // in a worker, not robust
 
+	// Windows-Linux text rendering differences
+	// TODO: Fix these by setting a font in Puppeteer -- this can also fix a bunch of 0.1%-0.2% examples
+	'css3d_periodictable',
+	'misc_controls_pointerlock',
+	'misc_uv_tests',
+	'webgl_camera_logarithmicdepthbuffer',
+	'webgl_effects_ascii',
+	'webgl_loader_pdb',
+	'webgl_multiple_canvases_circle',
+	'webgl_multiple_elements_text',
+	'webgl_nodes_playground',
+	'webgl_shaders_tonemapping',
+	'webgpu_nodes_playground',
+
+	// Unknown
 	// TODO: most of these can be fixed just by increasing idleTime and parseTime
+	'webgl_clipping_advanced',
 	'webgl_lensflares',
 	'webgl_lines_sphere',
+	'webgl_lights_spotlights',
 	'webgl_loader_imagebitmap',
 	'webgl_loader_texture_lottie',
 	'webgl_loader_texture_pvrtc',
+	'webgl_materials_blending',
 	'webgl_morphtargets_face',
 	'webgl_nodes_materials_standard',
 	'webgl_postprocessing_crossfade',
@@ -59,7 +76,7 @@ const chromiumChannel = 'stable'; // stable -> beta -> dev -> canary (Mac and Wi
 
 const port = 1234;
 const pixelThreshold = 0.1; // threshold error in one pixel
-const maxDifferentPixels = 0.05; // at most 5% different pixels
+const maxDifferentPixels = 0.3; // at most 0.3% different pixels
 
 const networkTimeout = 90; // 90 seconds, set to 0 to disable
 const renderTimeout = 4.5; // 4.5 seconds, set to 0 to disable
@@ -464,13 +481,11 @@ async function makeAttempt( page, failedScreenshots, cleanPage, isMakeScreenshot
 
 			}
 
-			numDifferentPixels /= actual.width * actual.height;
-
 			/* Print results */
 
-			const differentPixels = 100 * numDifferentPixels;
+			const differentPixels = numDifferentPixels / ( actual.width * actual.height ) * 100;
 
-			if ( numDifferentPixels < maxDifferentPixels ) {
+			if ( differentPixels < maxDifferentPixels ) {
 
 				console.green( `Diff ${ differentPixels.toFixed( 1 ) }% in file: ${ file }` );