QA/Games

From MozillaWiki
< QA
Jump to navigation Jump to search

Intro

The Games Project is the driving effort for asm.js and emscripten projects. If the web can run your favorite games in a browser with out a plugin, we can run almost anything.

Get Involved!

If you are not yet and active Mozilla Contributor, please visit our How to Get Involved page to see how to contact us.

If you are an active Mozillian or just want dive right in and would like to get involved in the Games QA project you can start by reading through the section on how we are approaching the games testing and then checking out the public demos listed below and give them a try. Due to the large number of graphics and audio drivers and chip sets out there, we need as many different hardware/software combinations as possible to test on.

Requirements

Many of the games will require use of WebGL. The easiest way to verify that your hardware supports this is to type "about:support" into your awesome bar and scroll down the Graphics section. There should be an entry WebGL if it lists manufacture Example:

 WebGL Renderer	NVIDIA Corporation -- NVIDIA GeForce GT 650M OpenGL Engine

If your systems does not support WebGL you will see:

 WebGL Renderer	Blocked for your graphics driver or version.

If you see this, you may only see a black screen or the game may fail to load if it requires WebGL.

Testing Approach

For games we are approaching the testing of each =each game as an End to End test case. Play the game/demo and watch for Audio/Video and game play anomalies.

Examples of things to watch for.

  • Graphics
    • Graphics tiling - blocky update of the graphics
    • Black squares - failed drawing up dates will often result in black squares appearing
    • "Janky" scrolling - animation is not smooth and fluid. Things move across the screen in fits and burts or have noticeable pauses during execution
    • Slow updates - Graphic are slow to redraw or lag behind the action
    • No Graphics - Black screen
    • Slow frame rate: Using either the pref to enable frame rate display in the browser or any built in FPS displays in the game, watch for regressions in average frame rate or areas that have significant slow down in the FPS.
  • Audio
    • Audio looping - sound effects start playing and continue in a loop in the background, each new trigger for a sound can add a new layer to the background loops
    • Audio Clipping - Sounds either exhibit pauses or hiccups during playback. Often caused by the triggering of another sound effect.
    • Garbled Audio - Sound play back is distorted in some manner.
    • No Audio - Some or all sounds do not play
    • Audio tracks continue after game end.
    • Proper stereo channels - sounds that should be audio left/right are in the correct channel
    • USB Headphones - different headphones will have different audio drivers with them and we have seen occasional bugs in this area.
    • Changing audio output devices mid stream - swap from headphones to speakers and back or swap headphones and check for any changes in audio playback.
  • Other
    • Game fails to load or crashes
    • Lags on input from keyboard/mouse/touch
    • Memory leaks - does the game slow down the longer you play?
    • Check about:memory for to see if the memory usage continues to rise or is fairly consistent.

Filing Bugs

When filing a bug for a games related issue please be sure to include "[games]" in the Whiteboard field. This will make sure the bug is included in the Games team's bug queries

Public Demos

These are some of the publicly available demos from our partners. These games should be checked once a week on nightly to verify we have not regressed or done anything that would affect their game play.

Internal Demos

For items that have not yet been publicly shared we have an internal server with copies of the work in progress we can use for testing. These will require a Mozilla LDAP or VPN login to access

One and Done Tasks

  • Tasks on this page can be tracked in our One and Done system under Games

Moztrap Tests

Related Prefs

Turn on frame rate counter in upper left hand corner of browser:

  • layers.acceleration.draw-fps - Default False

Related Features

Game Pad API.

Benchmarking

Game Focused Benchmarking

Triage Unconfirmed bugs

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Check for qawanted whiteboard tag

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


check fixed bugs for verifyme tag

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Fixed bug triage

These are games bugs marked as RESOLVED FIXED, that don't yet have a qa-related tag in the QA Whiteboard field.

  • Mark fixed bugs [qa+] or [qa-] (sort by severity/priority)
Full Query
ID Summary Component Op sys Priority Severity Qa whiteboard
157681 [DHTML]We reflow when we should just move Layout All P2 major
347010 KeyUp for the Alt-key isn't always fired Widget: Win32 Windows XP -- normal
380637 Should web pages be restricted from being able to override the browser's keyboard shortcuts? DOM: UI Events & Focus Handling All -- normal
504553 WebSocket in Workers DOM: Workers All -- normal
598873 Tracking: Off-main-thread compositing Graphics All -- normal
604039 Prototype DOM Gamepad (Joystick) API DOM: Events All -- normal
619558 [meta] Implement generational garbage collection JavaScript Engine All -- normal
641025 Incremental GC JavaScript Engine All -- normal
654787 Looping <audio> files should be seamless Audio/Video: Playback macOS P3 normal
668449 Need to be able to play independent sounds with low latency Audio/Video Windows 7 -- normal
676138 WebGL performance regression tests Graphics: CanvasWebGL All -- major
690446 Emit GNAME ops in strict mode code JavaScript Engine All -- normal
701634 IndexedDB: Support database access from worker threads Storage: IndexedDB All -- normal
709490 Run WebGL on Web Worker with commit() Graphics All -- normal
716859 Streaming WebGL Buffers (Double-buffering, etc) Graphics: CanvasWebGL All P1 normal
720083 Workers: add support for transferable objects from HTML5 spec DOM: Core & HTML All -- normal
728017 Implement WEBGL_compressed_texture_s3tc Graphics: CanvasWebGL All -- normal
728524 OMTC: Implement WebGL OGL texture sharing Graphics: Layers Android P3 normal
730424 window.applicationCache.status not getting updated when resources finish loading DOM: Core & HTML All -- normal
731974 requestAnimationFrame generates too short/long frames, especially at the beginning of animation XPCOM Linux -- normal
732660 Efficient drawElements validation on subarray and/or dynamically updated array Graphics: CanvasWebGL All -- normal
735099 Re-enable incremental GC on desktop platforms JavaScript Engine All -- normal
737100 Extend Pointer Lock (Mouse Lock) for non-fullscreen elements DOM: Core & HTML All -- normal
738869 Implement WebGL OES_vertex_array_object extension Graphics: CanvasWebGL All -- normal
749678 GLContext optimization: avoid calling slow getCurrentContext functions, instead use some TLS and use the fact that we dont share GLContexts across threads Graphics All -- S3
749721 Kilimanjaro: Hardware Acceleration Tracker Graphics: CanvasWebGL All -- normal
750862 Implement WEBGL_compressed_texture_pvrtc Graphics: CanvasWebGL All -- normal
753184 Emscripten logo Design macOS -- normal
753453 requestAnimationFrame callback should return DOMHighResTimeStamp DOM: Core & HTML All -- normal
756936 Incorrect MouseEvent.mozMovement{X,Y} values when pointer locked on secondary monitor DOM: Core & HTML All -- normal
757408 Opening debugger hangs completely on large scripts Debugger All P2 normal
757483 Score Rush gets more choppy w/ igc JavaScript Engine All -- normal
760642 IonMonkey: Refactor IonAssemblyBuffer JavaScript Engine Linux -- normal
764188 Use a better event for trigger java screenshots General macOS -- normal
765435 Make JS heap growth factor depend on the heap size after a GC and GC frequency JavaScript Engine Windows 7 -- normal
767064 WebGL should prefer 565 (or native) on mobile for alpha-less contexts Graphics: CanvasWebGL Android -- normal
769150 Pointer lock doesn't work in web apps DOM: Core & HTML All -- normal
772434 Blob support for Zip file contents DOM: Core & HTML Linux -- normal
774364 IonMonkey: Inline Math.random(). JavaScript Engine All -- normal
777967 Optimize WebGLContext::ValidateBuffers Graphics: CanvasWebGL All -- normal
778006 mochitest content/canvas/test/webgl/test_webgl_conformance_test_suite.html disabled on android Mochitest Android -- normal
778724 Allow purging analysis-temporary while retaining jitcode JavaScript Engine macOS -- normal
779297 Implement and ship Web Audio Web Audio All -- normal
782777 mousemove events are dispatched with movementX and movementY both set to 0 every other time DOM: Core & HTML macOS -- normal
790712 Implement WEBGL_compressed_texture_atc Graphics: CanvasWebGL All -- critical
799523 Crash on entering full screen mode in OS X (Retina HiDPI) Widget: Cocoa macOS -- critical
820583 Compile very large functions JavaScript Engine All -- normal
829747 Do Async Canvas layers update Graphics: Layers All -- normal
846558 [HiDPI] Banana Bread is unplayable, player keeps staring at ground Widget: Cocoa macOS -- normal
850102 [Buri][Cut the rope] Landscape only apps show weird transition and snapshot in task switcher Gaia Gonk (Firefox OS) P1 normal
851642 lockOrientation stops working, lets homescreen/apps freely rotate DOM: Core & HTML Gonk (Firefox OS) -- critical
852421 Slow performance in JSIL Vector3 test case JavaScript Engine Windows 7 -- normal
865516 Asm.js: optimize heap access when the index and length range are known. JavaScript Engine All -- normal
866787 Support orientation property in manfiest for packaged apps Web Apps (PWAs) Android P1 normal
868914 Prevent a background app/page to call mozLockOrientation General Gonk (Firefox OS) -- critical
880204 Odinmonkey: Add support for constant variables. JavaScript Engine All -- normal
880538 OdinMonkey: avoid parse node memory spike by LifoAlloc::release()ing after every function JavaScript Engine All -- normal
886889 bananabread multiplayer demo has stopped working Demo Studio / Dev Derby Other -- critical
886966 Odin ARM issue with many-argument FFI call JavaScript Engine All -- normal
889977 [meta] WebGL2 Support Graphics: CanvasWebGL All P3 normal
893363 Ionmonkey: improve support for the Linux perf performance tool JavaScript Engine Linux -- normal
900120 [meta] Float32 support in Spidermonkey JavaScript Engine All -- S3
900669 OdinMonkey: serialization/deserialization of AsmJSModule JavaScript Engine All -- normal
900756 Ionmonkey (ARM): add float32 support JavaScript Engine All -- normal
902506 OdinMonkey: make "use asm" compatible with off-thread compilation JavaScript Engine All -- normal
904503 Pointer-lock feature confirmation changes keyboard focus and breaks keyboard arrow keys controls DOM: Events All -- S3
906371 Use off thread JS parsing when loading <script async> scripts from HTML documents JavaScript Engine macOS -- normal
911254 Odinmonkey: (ARM) use the 'compare immediate' instruction for bounds checks JavaScript Engine All -- normal
912196 Add support for ANGLE D3D11 path Graphics: CanvasWebGL Windows 7 -- normal
916413 Odinmonkey: disable attempts to hoist bounds checks when compiling asm.js code as it is not applicable JavaScript Engine All -- normal
917568 We need a way to launch apps from adb/command line General Gonk (Firefox OS) -- normal
919040 all Turublenz demos fail with r.gain is not defined Site Reports Windows 8 -- normal
919958 Ionmonkey: correct instruction numbering in alias analysis and re-enable heap load movement. JavaScript Engine All -- normal
922875 Stencil test fails even if there is no stencil buffer in the current FBO. Graphics: CanvasWebGL Windows 7 -- normal
924264 webgl glUniform*fv() on a location pointing to a nonzero array index of an uniform array fails. Graphics: CanvasWebGL Windows 8 -- normal
924574 Packaged app transfer time is slow WebIDE All P1 normal
925025 CSS blur filter is order of magnitude slower than Chrome Graphics All -- normal
927625 requestAnimationFrame-based WebGL animation periodically stutters in Firefox. General Windows 7 -- normal
929595 crackling when walking in Goo Technologies Web Audio Demo Web Audio Windows 8 -- major
931864 can we remove the activeGCInAtomsZone limitation in JS::CanCompileOffThread? JavaScript Engine All -- normal
932398 Add portable version of msync/FlushViewOfFile NSPR All P1 normal
935229 Can't connect app manager to LG d300 (timeout) WebIDE All P1 normal
936236 Notify memory-pressure observers when allocating a large ArrayBuffer fails JavaScript Engine All -- normal
948917 Add support for packaged app deployment automation from command-line. General All -- normal
953221 Rendering to a depth-only FBO does not work. Graphics: CanvasWebGL Windows 7 -- normal
964561 Use the size of structured clone data to choose whether it will be stored in the database or in the filesystem Storage: IndexedDB All -- normal
966493 Cannot request fullscreen when inside a touchstart event. DOM: Core & HTML Android -- normal
968272 use less conservative temporary storage policy in QuotaManager DOM: Core & HTML All -- normal
973625 WebGL glDrawArrays and glClear spend excessive time in validating framebuffer completeness. Graphics: CanvasWebGL macOS -- normal
987828 WebGL backend does FakeVertexAttrib0-machinery when targeting pure GLES2 devices, but it shouln't need to. Graphics: CanvasWebGL Android -- normal
987845 WebGL context MakeCurrent always unconditionally calls into eglGetError(). Graphics: CanvasWebGL Android -- normal
1000640 Support fast WebGL compositing for new-layers D3D11 OMTC Graphics: Layers All -- normal
1001417 Forward fence objects in SharedSurfaceGralloc to Compositor Graphics: Layers Gonk (Firefox OS) -- normal
1008216 WebGL rendering is not performed fully parallel to JavaScript execution. Graphics: CanvasWebGL All -- normal
1008453 support for navigator.hardwareConcurrency DOM: Core & HTML All -- normal
1011017 Certain WebGL operations take disproportionally long time compared to other platforms. Graphics: CanvasWebGL Gonk (Firefox OS) -- normal
1013647 WebGL operation still calls to eglGetError() after almost each operation. Graphics: CanvasWebGL Android -- normal
1062849 Implement AudioWorklets for Web Audio API Web Audio All P2 normal
1071275 [meta] Enable Silk on Other platforms Performance All P2 normal
1083852 Humble Bundle games get QuotaExceededError at 50mb, no UI prompt Storage: IndexedDB Linux -- normal
1121406 Enable WebSocket-in-Workers by default in release builds DOM: Core & HTML All -- normal
1127188 Web Audio stuff on reloaded page is keeping the page alive due to ICC Web Audio Linux -- normal
1147821 Only disable IndexedDB in third-party windows when the third-party cookie preference is set Storage: IndexedDB macOS -- normal
1161913 Handle preserveDrawingBuffer: false when capturing to a stream Graphics: CanvasWebGL Unspecified -- normal
1175510 Crash when running the DT2 demo Audio/Video Unspecified -- critical
1176157 WebGL exiting fullscreen when not using esc key causing a residual image to stay around in Unity products Graphics: CanvasWebGL Unspecified -- normal
1182987 IndexedDB ends with onabort(event.target.error === QuotaExceededError) while processing deletion requests Storage: IndexedDB Unspecified -- normal
1186205 Oortonline.gl has wrong results on the rain test with D3D11 ANGLE Graphics: CanvasWebGL Unspecified -- normal
1188259 [meta] WebAssembly JavaScript: WebAssembly Unspecified P3 S4
1202067 Size limit on IndexedDB Blob storing Storage: IndexedDB Unspecified P5 normal
1232205 wasm: Baseline JIT JavaScript Engine: JIT Unspecified -- normal
1241485 Increase the limit for workers per-origin DOM: Workers Unspecified -- normal
1271478 Implement webglcontextcreationerror Graphics: CanvasWebGL Unspecified -- normal

113 Total; 0 Open (0%); 113 Resolved (100%); 0 Verified (0%);


Open Bugs

Full Query
ID Status Summary Component Op sys Priority Severity Qa whiteboard
710398 NEW [meta] Tracking bug for making Gecko ready as a games platform General All -- --
730113 NEW Coordinate requestAnimationFrame and Incremental GC Layout All -- S3
750947 NEW IonMonkey: Optimize Uint32 values JavaScript Engine All -- S3
764498 NEW movementX and movementY have the wrong value for mousedown and mouseup DOM: Events All P5 S3
765363 NEW WebGL: Schedule GC while frame resolving Graphics All -- S3
783052 NEW nsBufferedAudioStream::Init fails intermittently Audio/Video: Playback Windows 7 P3 S3
808136 NEW fullscreen window.innerHeight broken on OSX DOM: Core & HTML macOS P5 S4
813530 NEW Add low memory event for JS content DOM: Core & HTML All -- S3
813540 NEW Add 'critical memory event' in addition to current 'memory pressure event's Graphics: CanvasWebGL All P3 S3
824613 NEW Expose finer-grained mouse coords General All -- S3
831926 NEW can't create a peer connection on without network connection WebRTC: Networking Linux P3 S3
846323 NEW Watchpoints for typed arrays Debugger macOS P5 S3
917628 NEW Reduce blocklisting of depth_texture to Mac+NV <=10.8.2 Graphics: CanvasWebGL macOS P3 S3
918941 NEW cache results of shader compilation Graphics: CanvasWebGL All P3 S3
921332 NEW Epic Demo unable to select weapons or enter console commands General macOS -- S3
922363 NEW Add support for WebRTC (DataChannels) on WebWorkers (SharedWorkers and ServiceWorkers) WebRTC: Networking All P4 S3
924254 NEW PointerLock loses mouse ownership when alt-tabbing in windows 8 Widget: Win32 Windows 8 P3 S3
930711 NEW Cannot get events for 4th and 5th mouse button. DOM: Events All -- S3
937957 NEW OOM Error "Sound Decoding Error" will display sometimes when loading the Songs of Diridum Web Audo Demo from Goo Web Audio All P3 S3
941794 NEW Enable incremental GC for DOM workers JavaScript: GC All -- S3
956574 NEW update MSG main thread state on first query in task - Emscripten-based SDL audio playback against Web Audio gives continuous static noise. Web Audio All P3 S3
997523 NEW Sample all system key + mouse combinations [games] DOM: UI Events & Focus Handling macOS -- S3
997530 NEW Capture Shift + Right Click in Desktop DOM: Events macOS P5 S3
997534 NEW Polling API for the keyboard and mouse state General macOS -- S3
997548 NEW requestFullScreen mode shows menu bar when cursor moves to top of screen on OSX DOM: Core & HTML macOS P5 S3
999878 NEW Don't immediately force-lose WebGL contexts on backgrounding of app/page/process Graphics: CanvasWebGL All P3 S3
1003097 NEW [meta] Worker debugging Debugger macOS P3 S3
1008571 NEW WebGL D3D11 Compositor has lower framerate than in Chrome when GPU bound Graphics: CanvasWebGL Windows 7 P3 S3
1024566 NEW Provide an API to decode image data synchronously DOM: Workers All P5 S3
1030456 NEW Audio stuttering/looping in Unity DT2 demo Web Audio Windows 8 P5 S3
1054841 NEW [meta] Shared Array Buffers JavaScript Engine All P3 N/A
1057530 NEW [meta] Reduce our GC max-pause JavaScript: GC All P3 S3 qa-not-actionable
1065417 NEW OOM crash under WebAudioUtils::SpeexResamplerProcess Web Audio Android P3 S3
1066674 NEW Figure out how to clear ADDR_COMPAT_LAYOUT to win 1GB Android Studio and Gradle Integration Android -- S3
1136675 NEW Support for hardware cursors on WebGL contexts General All -- S3
1136734 NEW Bypass compositor for WebGL canvas elements in fullscreen mode. Graphics: CanvasWebGL All P3 S3
1154987 NEW [Meta] Move JS parsing off of main thread and enable incremental parsing JavaScript Engine Windows 8.1 -- S3
1169000 NEW Render, Composite, and Present within 1 vsync interval Graphics Unspecified P3 S3
1169293 NEW [meta] Improve overall Web Audio API performance Web Audio Unspecified -- S3
1184283 NEW support multiple vsync sources (for different rates and special situations) Graphics Unspecified P3 S3
1257692 NEW [meta] Improve WebGL success rates Graphics Unspecified P3 S3
1452873 NEW performance issue with javascript game emulation Graphics All P3 S3

42 Total; 42 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Nightly Sign-offs