Bug 29534 - SNES is too slow
Summary: SNES is too slow
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: Nobody
URL: http://benfirshman.com/projects/jsnes/
Keywords: InRadar
: 29554 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-09-20 21:13 PDT by Oliver Hunt
Modified: 2009-09-21 14:53 PDT (History)
4 users (show)

See Also:


Attachments
Patch v1 (17.30 KB, patch)
2009-09-20 21:36 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff
Patch v1 (17.24 KB, patch)
2009-09-20 22:15 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Hunt 2009-09-20 21:13:26 PDT
The SNES emulator at http://benfirshman.com/projects/jsnes/ runs to slowly for me to play games instead of working.

rdar://7231790
Comment 1 Oliver Hunt 2009-09-20 21:36:53 PDT
Created attachment 39839 [details]
Patch v1
Comment 2 Maciej Stachowiak 2009-09-20 21:57:13 PDT
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
Comment 3 Oliver Hunt 2009-09-20 22:15:23 PDT
Created attachment 39840 [details]
Patch v1
Comment 4 Maciej Stachowiak 2009-09-20 22:36:07 PDT
Comment on attachment 39840 [details]
Patch v1

r=me
Comment 5 Oliver Hunt 2009-09-20 22:42:40 PDT
Committed r48573
Comment 6 Jon 2009-09-21 02:22:04 PDT
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?
Comment 7 Gabor Loki 2009-09-21 06:08:55 PDT
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 8 Adam Roben (:aroben) 2009-09-21 07:45:49 PDT
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).
Comment 9 Adam Roben (:aroben) 2009-09-21 07:46:10 PDT
*** Bug 29554 has been marked as a duplicate of this bug. ***
Comment 10 Oliver Hunt 2009-09-21 09:57:59 PDT
Relanded in r48582
Comment 11 Darin Adler 2009-09-21 14:53:20 PDT
(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.