Comments (5)
that is because I compiled it with fixed memory size for efficiency reasons and the fixed mem/stackmem is too small
I just changed mem settings to mem=1280MB and stack=256MB and now this hdf boots ..
pushed it to the uat
from vamigaweb.
Great, works fine now, many thanks!
from vamigaweb.
Hm in an older firefox version 78 it gives me this
Uncaught (in promise) RuntimeError: Aborted(CompileError: wasm validation error: at offset 24835: initial memory size too big). Build with -s ASSERTIONS=1 for more info.
I think older browser have some sort of a limit ... maybe 1GB ? Unfortunately vAmigaWeb wants for the the system.hdf which counts 209Mb in the provided link exactly 1042MB only a bit above the limit ...
BTW: why is this hdf soo big? Where is the upper limit ? I set the stacksize to 256Mb now...
Also strange that the stacksize has to be exactly the size of the hdf... maybe I did something wrong here some sort of passing the big file via the stack ?
extern "C" const char* wasm_loadFile(char* name, Uint8 *blob, long len)
{
...
if (HDFFile::isCompatible(filename)) {
printf("is hdf\n");
wrapper->amiga->powerOff();
HDFFile hdf{blob, len};
wrapper->amiga->configure(OPT_HDC_CONNECT,/*hd drive*/ 0, /*enable*/true);
wrapper->amiga->hd0.init(hdf);
wrapper->amiga->powerOn();
return "";
}
@dirkwhoffmann did I maybe screwed it up here in my code above so that it passes the big hdf via stack ?
I just pushed a new version to uat which starts at 512MB heapsize and automatically grows memory when needed. Reducing the memory footprint for smaller disks ... Unfortunately stacksize can not auto grow...
this wasm auto grow feature is said to have a performance impact ... I will test a little bit and report back here
from vamigaweb.
UPDATE: auto grow has no noticable impact on performance
Then I think the best is to stick with 512Mb initial memory and allow it to grow when more is needed... the stack unfortunately does not grow ... so I go with a fixed 256Mb stack which means HDFs bigger than 256 will run in the error again...
Maybe @dirkwhoffmann knows more on how to avoid the stack usage when inserting a hdf file. Then when avoiding is possible even larger hdfs would be possible and at the same time we can leave the memory consumption when using no hdf at a minimum of 256Mb...
from vamigaweb.
We reworked memory and avoided stack usage. Now mem footprint is down to 320 mb. Stack is reduced to 32Mb probably could be set even to a lower value now. But lets stick it to 32 mb for now.
Memory grows as needed no upper boundary anymore i.e. no boundaries on hdf size anymore
from vamigaweb.
Related Issues (20)
- directly boot from local storage via URL/JSON parameters HOT 4
- vamigaweb.github.io no longer boots certain ROMs after 3-4 update HOT 2
- BT Mouse - RMB (Secondary Button) Not Work iPadOS [FIXED: Update iPadOS to 16.5] HOT 5
- Incorrect Filename Save DF0 or DH0 If Both Mounted HOT 2
- LMB / Fire Btn Stuck On When Switch Between Apps
- 'Error: undefined' if a second HDF is mounted HOT 16
- Dark Bottom Bar not activated on launch... HOT 2
- Cannot load vAmigaWeb in iFrame if on same domain (Chromium specific?) HOT 18
- When using a HDF with WB the filedates are wrong HOT 5
- Onscreen Keyboard Issue HOT 3
- iPad Keyboard Issue HOT 9
- iPad Keyboard Issue HOT 1
- next to the INTL virtual keyboard support also the US version HOT 6
- Insert media eg DF0 popup touch also registers as LMB in emu... HOT 5
- vAmigaWeb runs on Apple Vision Pro HOT 13
- Warp button in the bottom player icon bar HOT 1
- action button enhancements HOT 23
- Active mouse and joystick signals stay open when bringing the app to background HOT 2
- add vAmiga activity monitors HOT 5
- Random Cannot Save Snapshot / ADF / HDF HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vamigaweb.