Summary: | SNES is too slow | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Oliver Hunt <oliver> | ||||||
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | aroben, darin, jon, loki | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | PC | ||||||||
OS: | OS X 10.5 | ||||||||
URL: | http://benfirshman.com/projects/jsnes/ | ||||||||
Attachments: |
|
Description
Oliver Hunt
2009-09-20 21:13:26 PDT
Created attachment 39839 [details]
Patch v1
Comment on attachment 39839 [details]
Patch v1
Idea looks good, but there are some errors where it does isCachedDictionary() where a cacheable non-dictionary should be allowed too. Discussed w/ oliver, waiting for new patch
Created attachment 39840 [details]
Patch v1
Comment on attachment 39840 [details]
Patch v1
r=me
While this patch improved performance on my Quad G5 running 10.5.8, only from 4fps to ~6fps running Super Mario. I take it this fix mostly helped Intel machines? The landed patch breaks Qt-linux port in Debug mode on x86 and ARM as well. In Release there is not any regression. $> WebKitBuild/Debug/JavaScriptCore/jsc JavaScriptCore/tests/mozilla/ecma/shell.js JavaScriptCore/tests/mozilla/ecma/Array/15.4-1.js ASSERTION FAILED: !structure->isDictionary() (../../../JavaScriptCore/runtime/Structure.cpp:559 static WTF::PassRefPtr<JSC::Structure> JSC::Structure::toDictionaryTransition(JSC::Structure*, JSC::Structure::DictionaryKind)) Comment on attachment 39840 [details] Patch v1 I reverted this patch in r48580, as it caused many assertion failures (see comment 7 and bug 29554). *** Bug 29554 has been marked as a duplicate of this bug. *** Relanded in r48582 (In reply to comment #6) > While this patch improved performance on my Quad G5 running 10.5.8, only from > 4fps to ~6fps running Super Mario. I take it this fix mostly helped Intel > machines? Yes, helps machines with the JIT turned on a lot more than machines where the interpreter is used. The JIR is on for Intel but also ARM, for example. |