Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Examples app bundle optimizations #6588

Merged
merged 11 commits into from
May 23, 2024
Merged

Examples app bundle optimizations #6588

merged 11 commits into from
May 23, 2024

Conversation

kpal81xd
Copy link
Contributor

Fixes #6368

Minimised app bundle sizes:

  • None: 3998454B
  • Treeshake smallest: 2240229B
  • No reference to playcanvas : 2349782B

Copy link

vercel bot commented May 22, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
engine ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 23, 2024 10:11am

@kungfooman
Copy link
Collaborator

Does this still parse the entirety of PlayCanvas and add 3s for each Ctrl+S during npm run develop?

@mvaligursky
Copy link
Contributor

Does this still parse the entirety of PlayCanvas and add 3s for each Ctrl+S during npm run develop?

For last few weeks, the rebuild is under 1s on M1.

@kungfooman
Copy link
Collaborator

For last few weeks, the rebuild is under 1s on M1.

I see random times from 4-8s during development, so it definitely still affects people. It's nice that it's fast on M1 and the Apple file system, but I'm using e.g. ZFS for specific file system abilities.

@kpal81xd
Copy link
Contributor Author

For last few weeks, the rebuild is under 1s on M1.

I see random times from 4-8s during development, so it definitely still affects people. It's nice that it's fast on M1 and the Apple file system, but I'm using e.g. ZFS for specific file system abilities.

What system can you repro is this on?

@kungfooman
Copy link
Collaborator

What system can you repro is this on?

On Linux + ZFS, did a clean checkout: gh pr checkout 6588

image

The <2s is from manually updating code to:

const DEVICETYPE_NULL = 'null';
const DEVICETYPE_WEBGL2 = 'webgl2';
const DEVICETYPE_WEBGPU = 'webgpu';

(back and forth to test timing (made a mistake hence the error), so we are still wasting all the CPU/IO for nothing basically)

@kpal81xd
Copy link
Contributor Author

What system can you repro is this on?

On Linux + ZFS, did a clean checkout: gh pr checkout 6588

image

The <2s is from manually updating code to:

const DEVICETYPE_NULL = 'null';
const DEVICETYPE_WEBGL2 = 'webgl2';
const DEVICETYPE_WEBGPU = 'webgpu';

(back and forth to test timing (made a mistake hence the error), so we are still wasting all the CPU/IO for nothing basically)

Hmm okay replacing with just the constants might acc be better since on first build you dont need to wait to build the engine anymore just the types

@kpal81xd kpal81xd merged commit 9c07c3e into main May 23, 2024
9 checks passed
@kpal81xd kpal81xd deleted the examples-app-bundle branch May 23, 2024 10:13
@kungfooman
Copy link
Collaborator

Nice work, just tested and it's way faster now 🚀

@kpal81xd kpal81xd mentioned this pull request May 23, 2024
marklundin pushed a commit that referenced this pull request May 31, 2024
* treeshake smallest enabled

* ignore playcanvas PCUI from being treeshaken

* treeshake ignore only pcui

* added device type constants directly (no playcanvas dependency)

* format rollup

* word wrap fix

* Updated PCUI

* removed PCUI aliasing
marklundin added a commit that referenced this pull request Jun 18, 2024
* refactored script type

* removed attribute check on esm scripts

* linting fixes

* Delete redundant scripts

* Remove engines field from package-lock.json

* Fix event name in ScriptType class

* Add export to rawToValue function and update script schema in ScriptHandler

* linting

* Update script attribute assignment in ScriptComponent

* Fix script initialization and enablement

* Fix missing semicolon in ScriptRegistry class

* Refactor script component and handler

* GS reorder fix (#6410)

* USDZ / GLTF exporter supports exposing of compressed textures on WebGPU (#6394)

* Support for Picker on WebGPU

* Gizmos example on webgpu

* USDZ / GLTF exporter supports exposing of compressed textures on WebGPU

* tiny comment update

---------

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* restore default color when setting axis shape disable to false (#6587)

* [Fix] Add missing exposure handling from the Neutral tonemapping (#6592)

* SSAO engine example (#6586)

* SSAO engine example

* lint

* draco + texture resize: 17MB -> 6MB

---------

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* [BREAKING] Removed backwards compatibility for few functions (#6408)

* [BREAKING] Removed backwards compatibility for few functions

* lint

---------

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* Examples app bundle optimizations (#6588)

* treeshake smallest enabled

* ignore playcanvas PCUI from being treeshaken

* treeshake ignore only pcui

* added device type constants directly (no playcanvas dependency)

* format rollup

* word wrap fix

* Updated PCUI

* removed PCUI aliasing

* Fix to just submitted AO example to disabled baked in occlusion maps (#6593)

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* added publint to ci; removed build:publish (#6363)

* Fix types for calcAabb functions (#6596)

* vercel setup (#6600)

* replaces slashes for windows (#6601)

* fixed using query params with iframe example (#6604)

* New texture formats: R8 and RG8 (#6602)

* New texture formats: R8 and RG8

* Apply suggestions from code review

Co-authored-by: Will Eastcott <will@playcanvas.com>

* deprecate the old constants

---------

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>
Co-authored-by: Will Eastcott <will@playcanvas.com>

* Added orthogonal facing translation to gizmo (#6607)

* set shader chunk type to record (#6621)

* Gizmo example update (#6622)

* separated out grid code

* split out selector and disabled deselection on orbiting

* added type for observer set callback

* fixed example page

* Exports and types fixes (#6623)

* cleaned up ts and js config; adds debug and profiler to exports

* set module resolution to node

* added package json for linting of example modules and renamed @examples to examples

* PR commit (#6626)

* fixed fallback options (#6628)

* fixed example types (#6634)

* fixed selection bug (#6637)

* Fix URL handling in ScriptHandler (#6639)

* Fix mesh collider creation (#6630)

* Docs update (#6631)

* docs update

* Update README.md

---------

Co-authored-by: Will Eastcott <willeastcott@gmail.com>

* Update script component to use getSchema method instead of tSchema

* Refactor script component attribute initialization

* merge fix

* linting

* Update import statement in script.js

* Refactor script attribute assignment

* linting

* Refactor script component initialization

* Refactor script component and script handler

* linting + comments

* Fix the definition of sheenTint Standard Material property (#6665)

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* Update to skybox shader to map it closer to the infinity (#6664)

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* [Fix] Particle system handle different IB formats of incoming mesh (#6662)

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* [BREAKING] Remove deprecated AudioSourceComponent component (#6407)

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* Cubemap fix for webgpu (#6669)

* [BREAKING] Remove support for legacy scripts (#6584)

* [BREAKING] Remove support for legaxy scripts

* removed pc.script.attribute

---------

Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>

* Fix shader chunk error for tonemapped compressed GS (#6670)

* Remove support for legacy scripts

* Remove legacy script system

* Add getScriptName function and toLowerCamelCase utility function

* jsdoc improvements

* Update src/framework/script/script.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Update src/framework/script/script-attributes.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* linting + feedback

* Update src/framework/script/script.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* removed redundant error link

* Update src/framework/script/script.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Update src/framework/script/script.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Update src/framework/script/script.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Update src/framework/script/script-attributes.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Update src/framework/script/script-type.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Update src/framework/components/script/component.js

Co-authored-by: Will Eastcott <will@playcanvas.com>

* Refactor attributeToValue function

---------

Co-authored-by: Donovan Hutchence <slimbuck7@gmail.com>
Co-authored-by: Martin Valigursky <59932779+mvaligursky@users.noreply.github.com>
Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>
Co-authored-by: KPal <48248865+kpal81xd@users.noreply.github.com>
Co-authored-by: Will Eastcott <will@playcanvas.com>
Co-authored-by: kpal81xd <kpal81xd@gmail.com>
Co-authored-by: Alex <LeXXik@users.noreply.github.com>
Co-authored-by: Will Eastcott <willeastcott@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Examples] npm run develop slower/bigger than it has to be
4 participants