Platform/Games: Difference between revisions
(44 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
=Platform Games= | =Platform Games= | ||
The platform games initiative is made up of a core team whose | The platform games initiative is made up of a core team whose work is primarily focused on making the Gecko platform, Firefox Desktop, and Firefox for Android the best it can possibly be at running games. The core team is ready to help coordinate with other groups in the community who are working on features or optimization that are important to game developers and provide assistance when needed. Platform development continues to focus on games and we hope you are as excited as we are to make HTML5 rock on the web! | ||
= | ==Games Platform High-Level Status== | ||
== | Please visit this [https://wiki.mozilla.org/Platform/Games/StatusUpdate page] to view the high-level status of the web games program. | ||
==Mozilla Games Technology MVP Requirements== | |||
===Allow developers to better exploit hardware parallelism=== | ===Allow developers to better exploit hardware parallelism=== | ||
Developers are struggling to get multi-threaded games running efficiently on the Web:<br> | Developers are struggling to get multi-threaded games running efficiently on the Web:<br> | ||
*Standardize, implement and ship SharedArrayBuffer [1,2]<br> | *Standardize, implement and ship SharedArrayBuffer [https://blog.mozilla.org/javascript/2015/02/26/the-path-to-parallel-javascript/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1054841 2]<br> | ||
*Add pthreads support to Emscripten [1,2]<br> | *DONE - Add pthreads support to Emscripten [https://groups.google.com/forum/#!msg/emscripten-discuss/gQQRjajQ6iY/DcYQpQyPQmIJ 1],[https://github.com/kripken/emscripten/blob/incoming/site/source/docs/porting/pthreads.rst 2]<br> | ||
*Expose performance-sensitive Web APIs to Web Workers: WebGL, WebSockets, IndexedDB, WebAudio, WebRTC, WebVR<br> | *Expose performance-sensitive Web APIs to Web Workers: [https://bugzilla.mozilla.org/show_bug.cgi?id=709490 WebGL], [https://bugzilla.mozilla.org/show_bug.cgi?id=1121406 WebSockets], [https://bugzilla.mozilla.org/show_bug.cgi?id=701634 IndexedDB], [https://bugzilla.mozilla.org/show_bug.cgi?id=1062849 WebAudio], [https://bugzilla.mozilla.org/show_bug.cgi?id=922363 WebRTC], [https://bugzilla.mozilla.org/show_bug.cgi?id=1036600 WebVR]<br> | ||
*Share compiled code (asm.js and WebAssembly) between workers [1] <br> | *Share compiled code (asm.js and WebAssembly) between workers [https://bugzilla.mozilla.org/show_bug.cgi?id=1168981 1] <br> | ||
*Developers want to take advantage of SIMD hardware to optimize their code:<br> | *Developers want to take advantage of SIMD hardware to optimize their code:<br> | ||
**Standardize, implement and ship SIMD.js [1,2].<br> | **Standardize, implement and ship SIMD.js [https://hacks.mozilla.org/2014/10/introducing-simd-js/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=894105 2].<br> | ||
**Include SIMD in WebAssembly [1].<br> | **Include SIMD in WebAssembly [https://github.com/WebAssembly/design/blob/master/PostMVP.md#fixed-width-simd 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1188259 2].<br> | ||
**Add SIMD support to Emscripten [1]. | **DONE - Add SIMD support to Emscripten [https://github.com/kripken/emscripten/labels/SIMD 1]. | ||
===Improve cold load time of large compiled codebases | |||
<bugzilla> | |||
{ | |||
"bug_id":"1054841,709490,1121406,701634,1062849,922363,1036600,894105", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
===Improve cold load time of large compiled codebases=== | |||
Developers want to see reduced download, compilation and startup time for multi-million line compiled codebases. | Developers want to see reduced download, compilation and startup time for multi-million line compiled codebases. | ||
*WebAssembly will provide significant download size reductions (even before native support, through the polyfill) [1]. | *WebAssembly will provide significant download size reductions (even before native support, through the polyfill) [https://github.com/WebAssembly/design/blob/master/FAQ.md#can-the-polyfill-really-be-efficient 1]. | ||
*Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js [1]. | *Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js [https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#why-a-binary-encoding-instead-of-a-text-only-representation 1]. | ||
*Add a fast WebAssembly/asm.js compiler that allows an app to start quickly while a fully-optimizing compilation proceeds in a background thread [1]. | *Add a fast WebAssembly/asm.js compiler that allows an app to start quickly while a fully-optimizing compilation proceeds in a background thread [https://bugzilla.mozilla.org/show_bug.cgi?id=1232205 1]. | ||
*Off-main-thread, streaming parsing/compilation [1]. | *Off-main-thread, streaming parsing/compilation [https://bugzilla.mozilla.org/show_bug.cgi?id=1154987 1]. | ||
*Developers want to avoid depending on HTTP Content-Encoding:gzip for generic compression. | *Developers want to avoid depending on HTTP Content-Encoding:gzip for generic compression. | ||
**Add Emscripten support to perform decompression in asm.js / WebAssembly while downloading (allowing more aggressive algorithms than gzip). | **Add Emscripten support to perform decompression in asm.js / WebAssembly while downloading (allowing more aggressive algorithms than gzip). | ||
===Improve browser storage capabilities | |||
*Developers seeking to avoid the permission prompt associated with persistent storage hit limitations of temporary storage as currently implemented in browsers. | <bugzilla> | ||
*Improve temporary quota limits to take into account factors like frecency. | { | ||
*Provide more information on quota usage and allowance [1]. | "f1": "blocked", | ||
*Propose, standardize and implement finer-granularity units of evictable storage [1]. | "o1": "anywords", | ||
*Allow cross-origin storage usage [1]. | "v1": "1188259", | ||
"resolution": "---", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
===Improve browser storage capabilities=== | |||
*Developers seeking to avoid the [https://storage.spec.whatwg.org/#dom-storagemanager-requestpersistent permission prompt] associated with persistent storage hit limitations of temporary storage as currently implemented in browsers. | |||
*Improve temporary quota limits to take into account factors like [https://en.wikipedia.org/wiki/Frecency frecency]. | |||
*Provide more information on quota usage and allowance [https://storage.spec.whatwg.org/#dom-storagemanager-estimate 1]. | |||
*Propose, standardize and implement finer-granularity units of evictable storage [https://storage.spec.whatwg.org/#boxes 1]. | |||
*Allow cross-origin storage usage [https://bugzilla.mozilla.org/show_bug.cgi?id=1147821 1]. | |||
*Developers that need persistent storage guarantees hit limitations of persistent storage as currently implemented in browsers. | *Developers that need persistent storage guarantees hit limitations of persistent storage as currently implemented in browsers. | ||
**Standardize persistent storage so that other browsers implement [1]. | **Standardize persistent storage so that other browsers implement [https://storage.spec.whatwg.org/ 1]. | ||
**Reduce UI friction associated with the persistent permission prompt [1]. | **Reduce UI friction associated with the persistent permission prompt [http://people.mozilla.org/~mverdi/projects/fullscreen/ 1]. | ||
**Improve storage management/eviction UI for browser users. | **Improve storage management/eviction UI for browser users. | ||
===Improve browser graphics capabilities | |||
*Ship WebGL2 [1]. | <bugzilla> | ||
*Standardize and implement streaming WebGL canvas via WebRTC [1,2]. | { | ||
"bug_id":"933398,1202067,1202072,1182987,1147821,1212882", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
===Improve browser graphics capabilities=== | |||
*Ship WebGL2 [https://bugzilla.mozilla.org/show_bug.cgi?id=889977 1]. | |||
*Standardize and implement streaming WebGL canvas via WebRTC [https://w3c.github.io/mediacapture-fromelement/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1161913 2]. | |||
*Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus). | *Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus). | ||
<bugzilla> | |||
{ | |||
"bug_id":"1281250,1161913,1271478,1136734,1169000,1184283,863316", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
===Allow developers to better avoid 32-bit browser Out-of-Memory conditions.=== | ===Allow developers to better avoid 32-bit browser Out-of-Memory conditions.=== | ||
*Ship 64-bit Firefox on 64-bit Windows. | *Ship 64-bit Firefox on 64-bit Windows. | ||
*Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and FileReaderSync to provide synchronous file I/O in workers. | *Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and [https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync FileReaderSync] to provide synchronous file I/O in workers. | ||
===Continue investment in performance across the platform | |||
*Significantly optimize WebAudio performance [1]. | ===Continue investment in performance across the platform=== | ||
*Reduce WebGL shader compile times [1,2]. | *Significantly optimize WebAudio performance [https://bugzilla.mozilla.org/show_bug.cgi?id=webaudioperf 1]. | ||
*Reduce latency and jitter in the browser’s rendering pipeline [1,2,3,4]. | *Reduce WebGL shader compile times [https://bugzilla.mozilla.org/show_bug.cgi?id=918941 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=863316 2]. | ||
*Reduce latency and jitter in the browser’s rendering pipeline [https://bugzilla.mozilla.org/show_bug.cgi?id=1071275 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1136734 2],[https://bugzilla.mozilla.org/show_bug.cgi?id=1169000 3],[https://bugzilla.mozilla.org/show_bug.cgi?id=1057530 4]. | |||
*Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc. | *Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc. | ||
===Continue investment in Emscripten | |||
<bugzilla> | |||
{ | |||
"bug_id":"1169293,918941,863316,1071275,1057530,1136734,1169000", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
===Continue investment in Emscripten=== | |||
*Add support for pthreads, SIMD, and WebAssembly, as mentioned above. | *Add support for pthreads, SIMD, and WebAssembly, as mentioned above. | ||
*Further improve compilation speed. | *Further improve compilation speed. | ||
== Under Consideration== | ===Continue investment in Firefox developer tooling to better support game developers=== | ||
*Improve Web Worker support [https://bugzilla.mozilla.org/show_bug.cgi?id=1003097 1]. | |||
*Allow developers to break on various asm.js/WebAssembly error conditions [https://bugzilla.mozilla.org/show_bug.cgi?id=1088655 1]. | |||
<bugzilla> | |||
{ | |||
"bug_id":"1003097,1088655,1008453,1241485,912562", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
===Continue implementation of Service Workers to support offline=== | |||
*Ship Service Workers and dependent features [https://bugzilla.mozilla.org/show_bug.cgi?id=903441 1]. | |||
<bugzilla> | |||
{ | |||
"f1": "blocked", | |||
"o1": "anywords", | |||
"v1": "903441", | |||
"resolution": "---", | |||
"include_fields":"id, summary, status, component, assigned_to, target_milestone", | |||
"order": "bug_status" | |||
} | |||
</bugzilla> | |||
== Under Consideration== | |||
*Developers are having trouble identifying how many Web Workers they should create to distribute their workload. Benchmarking methods often prove unreliable. | *Developers are having trouble identifying how many Web Workers they should create to distribute their workload. Benchmarking methods often prove unreliable. | ||
*Developers are hitting the 20-per-origin limit on web workers in Firefox and are requesting a much higher limit. | *Developers are hitting the 20-per-origin limit on web workers in Firefox and are requesting a much higher limit. | ||
*Leverage multi-process browser architecture to guarantee a fresh address space for games with large contiguous heaps allocated early in process startup. | *Leverage multi-process browser architecture to guarantee a fresh address space for games with large contiguous heaps allocated early in process startup. | ||
*Investigate Out-of-Memory error reporting mechanism to send safe/sanitized triage information back to Web app developers. | *Investigate Out-of-Memory error reporting mechanism to send safe/sanitized triage information back to Web app developers. | ||
*Collaborate on new standards to improve IME capabilities [1,2]. | *Collaborate on new standards to improve IME capabilities [http://www.w3.org/TR/ime-api/1],[https://github.com/w3c/editing 2]. | ||
*Add hardware cursor API [1]. | *Add hardware cursor API [https://bugzilla.mozilla.org/show_bug.cgi?id=1136675 1]. | ||
*Improve Gamepad API [1]. | *Improve Gamepad API [https://bugzilla.mozilla.org/show_bug.cgi?id=855364 1]. | ||
*Add Pointer Clipping extension to Pointer Lock API [1]. | *Add Pointer Clipping extension to Pointer Lock API [https://www.w3.org/wiki/Webapps/PointerLockFeatures 1]. | ||
*Add Emscripten tooling for memory use/leak debugging. | *Add Emscripten tooling for memory use/leak debugging. | ||
*Standardize (as part of WebAssembly or more generally) a more scalable form of source maps suitable for large compiled codes. | *Standardize (as part of WebAssembly or more generally) a more scalable form of source maps suitable for large compiled codes. | ||
==Related Projects== | ==Related Projects== | ||
Line 77: | Line 148: | ||
* [https://wiki.mozilla.org/HTML5_Games/BananaBread#Milestone_Two BananaBread Multi-player (using WebRTC)] | * [https://wiki.mozilla.org/HTML5_Games/BananaBread#Milestone_Two BananaBread Multi-player (using WebRTC)] | ||
=== | ===Helpful Links=== | ||
*[https://github.com/dherman/asm.js ASM.js] | *[https://github.com/dherman/asm.js ASM.js] | ||
*[http://www.arewefastyet.com/#machine=11&view=breakdown&suite=asmjs-apps Performance Tracking] | *[http://www.arewefastyet.com/#machine=11&view=breakdown&suite=asmjs-apps Performance Tracking] | ||
Line 97: | Line 168: | ||
* [http://bit.ly/UuUlyf P2] [games:p2] | * [http://bit.ly/UuUlyf P2] [games:p2] | ||
* [http://bit.ly/QdDOQE P3] [games:p3] | * [http://bit.ly/QdDOQE P3] [games:p3] | ||
==Communication== | ==Communication== | ||
Line 109: | Line 173: | ||
{| class="wikitable fullwidth-table" | {| class="wikitable fullwidth-table" | ||
| Project Team Meeting | | Project Team Meeting | ||
|| | || Thursdays at 9:00 AM Pacific for 60 mins | ||
* Vidyo Room: Games's Vidyo Room | * Vidyo Room: Games's Vidyo Room | ||
* Invitation: Contact | * Invitation: Contact avaughn@mozilla.com (:avaughn) to get added to the meeting invite list. | ||
|- | |||
| IRC | | IRC | ||
|| | || | ||
Line 123: | Line 186: | ||
'''Games Platform & Research''' | '''Games Platform & Research''' | ||
* | * Andre Vrignaud - <avrignaud@mozilla.com> | ||
* Martin Best - <mbest | * Martin Best - <mbest@mozilla.com> | ||
* Alon Zakai - <azakai@mozilla.com> | * Alon Zakai - <azakai@mozilla.com> | ||
* Jeffrey Gilbert - <jgilbert@mozilla.com> | * Jeffrey Gilbert - <jgilbert@mozilla.com> | ||
* Jukka Jylänki - <jjylanki@mozilla.com> | * Jukka Jylänki - <jjylanki@mozilla.com> | ||
* Luke Wagner | * Luke Wagner - <lwagner@mozilla.com> | ||
* | * Naveed Ihsanullah - <nihsanullah@mozilla.com> | ||
* Milan Sreckovic - <msreckovic@mozilla.com> | * Milan Sreckovic - <msreckovic@mozilla.com> | ||
* | * Vladimir Vukicevic - <vladimir@mozilla.com> | ||
* Maire Reavy - <mreavy@mozilla.com> | * Maire Reavy - <mreavy@mozilla.com> | ||
* Peter Chang - <pchang@mozilla.com> | * Peter Chang - <pchang@mozilla.com> | ||
==References== | ==References== |
Latest revision as of 22:00, 27 October 2016
Platform Games
The platform games initiative is made up of a core team whose work is primarily focused on making the Gecko platform, Firefox Desktop, and Firefox for Android the best it can possibly be at running games. The core team is ready to help coordinate with other groups in the community who are working on features or optimization that are important to game developers and provide assistance when needed. Platform development continues to focus on games and we hope you are as excited as we are to make HTML5 rock on the web!
Games Platform High-Level Status
Please visit this page to view the high-level status of the web games program.
Mozilla Games Technology MVP Requirements
Allow developers to better exploit hardware parallelism
Developers are struggling to get multi-threaded games running efficiently on the Web:
- Standardize, implement and ship SharedArrayBuffer 1,2
- DONE - Add pthreads support to Emscripten 1,2
- Expose performance-sensitive Web APIs to Web Workers: WebGL, WebSockets, IndexedDB, WebAudio, WebRTC, WebVR
- Share compiled code (asm.js and WebAssembly) between workers 1
- Developers want to take advantage of SIMD hardware to optimize their code:
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
922363 | Add support for WebRTC (DataChannels) on WebWorkers (SharedWorkers and ServiceWorkers) | NEW | WebRTC: Networking | --- | |
1054841 | [meta] Shared memory for web workers | NEW | JavaScript Engine | mozilla55 | |
701634 | IndexedDB: Support database access from worker threads | RESOLVED | Storage: IndexedDB | Ben Turner (not reading bugmail, use the needinfo flag!) | mozilla37 |
709490 | Run WebGL on Web Worker with commit() | RESOLVED | Graphics | Morris Tseng [:mtseng] [:Morris] (Inactive) | FxOS-S8 (02Oct) |
894105 | Add SIMD support for JavaScript | RESOLVED | JavaScript Engine | --- | |
1036600 | Add VR rendering and sensing support to platform | RESOLVED | DOM: Core & HTML | Vladimir Vukicevic [:vlad] [:vladv] (needinfo me, slow to respond) | --- |
1062849 | Implement AudioWorklets for Web Audio API | RESOLVED | Web Audio | Karl Tomlinson (:karlt) | mozilla77 |
1121406 | Enable WebSocket-in-Workers by default in release builds | RESOLVED | DOM: Core & HTML | Andrea Marchesini [:baku] | mozilla38 |
8 Total; 2 Open (25%); 6 Resolved (75%); 0 Verified (0%);
Improve cold load time of large compiled codebases
Developers want to see reduced download, compilation and startup time for multi-million line compiled codebases.
- WebAssembly will provide significant download size reductions (even before native support, through the polyfill) 1.
- Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js 1.
- Add a fast WebAssembly/asm.js compiler that allows an app to start quickly while a fully-optimizing compilation proceeds in a background thread 1.
- Off-main-thread, streaming parsing/compilation 1.
- Developers want to avoid depending on HTTP Content-Encoding:gzip for generic compression.
- Add Emscripten support to perform decompression in asm.js / WebAssembly while downloading (allowing more aggressive algorithms than gzip).
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
1232009 | [meta] WebAssembly Debugging | NEW | General | --- | |
1308157 | [meta] Wasm optimizations to explore | NEW | JavaScript: WebAssembly | --- | |
1424537 | Web assembly linker errors don't appear when instantiated from web workers | NEW | Console | --- | |
1920594 | Broken frame pointer unwinding in wasm "builtin thunks" on aarch64 | NEW | JavaScript: WebAssembly | --- |
4 Total; 4 Open (100%); 0 Resolved (0%); 0 Verified (0%);
Improve browser storage capabilities
- Developers seeking to avoid the permission prompt associated with persistent storage hit limitations of temporary storage as currently implemented in browsers.
- Improve temporary quota limits to take into account factors like frecency.
- Provide more information on quota usage and allowance 1.
- Propose, standardize and implement finer-granularity units of evictable storage 1.
- Allow cross-origin storage usage 1.
- Developers that need persistent storage guarantees hit limitations of persistent storage as currently implemented in browsers.
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
933398 | avoid full copies when loading/storing large objects | RESOLVED | Storage: IndexedDB | --- | |
1147821 | Only disable IndexedDB in third-party windows when the third-party cookie preference is set | RESOLVED | Storage: IndexedDB | Nika Layzell [:nika] (ni? for response) | mozilla43 |
1182987 | IndexedDB ends with onabort(event.target.error === QuotaExceededError) while processing deletion requests | RESOLVED | Storage: IndexedDB | Jan Varga [:janv] | mozilla48 |
1202067 | Size limit on IndexedDB Blob storing | RESOLVED | Storage: IndexedDB | --- | |
1202072 | Crash when reading too much using FileReaderSync | RESOLVED | Storage: IndexedDB | --- | |
1212882 | [meta] Implement foreign fetch | RESOLVED | DOM: Service Workers | --- |
6 Total; 0 Open (0%); 6 Resolved (100%); 0 Verified (0%);
Improve browser graphics capabilities
- Ship WebGL2 1.
- Standardize and implement streaming WebGL canvas via WebRTC 1,2.
- Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus).
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
1136734 | Bypass compositor for WebGL canvas elements in fullscreen mode. | NEW | Graphics: CanvasWebGL | --- | |
1169000 | Render, Composite, and Present within 1 vsync interval | NEW | Graphics | --- | |
1184283 | support multiple vsync sources (for different rates and special situations) | NEW | Graphics | --- | |
863316 | ANGLE should call D3DCompile off the main thread | RESOLVED | Graphics: CanvasWebGL | --- | |
1161913 | Handle preserveDrawingBuffer: false when capturing to a stream | RESOLVED | Graphics: CanvasWebGL | Andreas Pehrson [:pehrsons] | mozilla43 |
1271478 | Implement webglcontextcreationerror | RESOLVED | Graphics: CanvasWebGL | Kelsey Gilbert [:jgilbert] | mozilla49 |
1281250 | [meta] WebGL 2 blockers | RESOLVED | Graphics: CanvasWebGL | Kelsey Gilbert [:jgilbert] | --- |
7 Total; 3 Open (42.86%); 4 Resolved (57.14%); 0 Verified (0%);
Allow developers to better avoid 32-bit browser Out-of-Memory conditions.
- Ship 64-bit Firefox on 64-bit Windows.
- Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and FileReaderSync to provide synchronous file I/O in workers.
Continue investment in performance across the platform
- Significantly optimize WebAudio performance 1.
- Reduce WebGL shader compile times 1,2.
- Reduce latency and jitter in the browser’s rendering pipeline 1,2,3,4.
- Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc.
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
918941 | cache results of shader compilation | NEW | Graphics: CanvasWebGL | --- | |
1057530 | [meta] Reduce our GC max-pause | NEW | JavaScript: GC | --- | |
1136734 | Bypass compositor for WebGL canvas elements in fullscreen mode. | NEW | Graphics: CanvasWebGL | --- | |
1169000 | Render, Composite, and Present within 1 vsync interval | NEW | Graphics | --- | |
1169293 | [meta] Improve overall Web Audio API performance | NEW | Web Audio | --- | |
863316 | ANGLE should call D3DCompile off the main thread | RESOLVED | Graphics: CanvasWebGL | --- | |
1071275 | [meta] Enable Silk on Other platforms | RESOLVED | Performance | Mason Chang [Inactive] [:mchang] | 2.2 S11 (1may) |
7 Total; 5 Open (71.43%); 2 Resolved (28.57%); 0 Verified (0%);
Continue investment in Emscripten
- Add support for pthreads, SIMD, and WebAssembly, as mentioned above.
- Further improve compilation speed.
Continue investment in Firefox developer tooling to better support game developers
- Improve Web Worker support 1.
- Allow developers to break on various asm.js/WebAssembly error conditions 1.
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
1003097 | [meta] Worker debugging | NEW | Debugger | --- | |
912562 | Add UI that allows user to browse, change prefs for all IndexedDB databases in their profile | RESOLVED | Storage Inspector | --- | |
1008453 | support for navigator.hardwareConcurrency | RESOLVED | DOM: Core & HTML | Boris Zbarsky [:bzbarsky] | mozilla48 |
1088655 | OdinMonkey: add a pref that throws (with stack trace) on unaligned or null heap access | RESOLVED | JavaScript Engine: JIT | Luke Wagner [:luke] | --- |
1241485 | Increase the limit for workers per-origin | RESOLVED | DOM: Workers | Olli Pettay [:smaug][bugs@pettay.fi] | mozilla47 |
5 Total; 1 Open (20%); 4 Resolved (80%); 0 Verified (0%);
Continue implementation of Service Workers to support offline
- Ship Service Workers and dependent features 1.
ID | Summary | Status | Component | Assigned to | Target milestone |
---|---|---|---|---|---|
1226983 | [meta] Service Worker spec compatibility issues | NEW | DOM: Service Workers | --- | |
1231208 | [meta] Service worker e10s redesign | NEW | DOM: Service Workers | Andrew Sutherland [:asuth] (he/him) | --- |
1262699 | [meta] Service Workers Developer Tooling | NEW | General | --- | |
1283191 | [meta] Service worker streaming | NEW | DOM: Service Workers | --- | |
1328391 | [meta] Service Worker Data Collection | NEW | DOM: Service Workers | --- | |
1328614 | [meta] Service Workers Tests | NEW | DOM: Service Workers | --- | |
1328622 | [meta] Service Worker Performance | NEW | DOM: Service Workers | --- |
7 Total; 7 Open (100%); 0 Resolved (0%); 0 Verified (0%);
Under Consideration
- Developers are having trouble identifying how many Web Workers they should create to distribute their workload. Benchmarking methods often prove unreliable.
- Developers are hitting the 20-per-origin limit on web workers in Firefox and are requesting a much higher limit.
- Leverage multi-process browser architecture to guarantee a fresh address space for games with large contiguous heaps allocated early in process startup.
- Investigate Out-of-Memory error reporting mechanism to send safe/sanitized triage information back to Web app developers.
- Collaborate on new standards to improve IME capabilities [1],2.
- Add hardware cursor API 1.
- Improve Gamepad API 1.
- Add Pointer Clipping extension to Pointer Lock API 1.
- Add Emscripten tooling for memory use/leak debugging.
- Standardize (as part of WebAssembly or more generally) a more scalable form of source maps suitable for large compiled codes.
Related Projects
- Game Focused Benchmarking
- WebAudio Conformance Tests
- IndexedDB File System (posix-like API)
- WebAudio API Rollout Status
- JSIL Porting Tool
- BananaBread Mobile
- BananaBread Multi-player (using WebRTC)
Helpful Links
Tracking
- WebGL
- asm.js
- Emscripten
- P1, P2, P3
Bugzilla Queries
Priority
- Awaiting Triage [games:p? or blocks gecko-games]
- No Priority [games]
- P1 [games:p1]
- P2 [games:p2]
- P3 [games:p3]
Communication
Project Team Meeting | Thursdays at 9:00 AM Pacific for 60 mins
|
IRC |
|
People
Games Platform & Research
- Andre Vrignaud - <avrignaud@mozilla.com>
- Martin Best - <mbest@mozilla.com>
- Alon Zakai - <azakai@mozilla.com>
- Jeffrey Gilbert - <jgilbert@mozilla.com>
- Jukka Jylänki - <jjylanki@mozilla.com>
- Luke Wagner - <lwagner@mozilla.com>
- Naveed Ihsanullah - <nihsanullah@mozilla.com>
- Milan Sreckovic - <msreckovic@mozilla.com>
- Vladimir Vukicevic - <vladimir@mozilla.com>
- Maire Reavy - <mreavy@mozilla.com>
- Peter Chang - <pchang@mozilla.com>