Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Houdek 0047ea8852 Merge pull request #2501 from sigmabeta/android-kill-old-ui
Android: Remove the old UI, and remove support for pre-5.0 devices.
2015-06-09 03:57:47 -04:00
Ryan Houdek ffe085f5ea [AArch64] Implement CRC32 texture hashing.
In a particular hashing heavy scene in Crazy Taxi the Murmur3 hash used 3.11% CPU time.
The new CRC32 hash in the same scene used 1.86%
This was tested on a Nvidia SHIELD Android TV with Cortex-A57s.

This will be a bit slower on the Nexus 9, the Denver CPU core is a bit slower with CRC32 texture hashing than Murmur3 texture hashing.
2015-06-08 19:16:50 -05:00
Ryan Houdek a91c152b86 Merge pull request #2572 from sigmabeta/android-show-version
Android: Show the version name as a subtitle in the GameGridActivity.
2015-06-08 19:37:33 -04:00
Ryan Houdek 2282be3265 Merge pull request #2573 from sigmabeta/android-show-filenames
Android: Show filenames for games with an empty title.
2015-06-08 19:35:17 -04:00
Ryan Houdek 881f6db2ab Merge pull request #2509 from comex/fix-ar-codes
Fix subdialogs of the ISO props dialog... sort of
2015-06-08 04:13:16 -04:00
Ryan Houdek 21b1d143bc Merge pull request #2566 from sigmabeta/android-tv-back
Android TV: Show the in-game menu when back button is pushed.
2015-06-08 04:02:22 -04:00
Ryan Houdek 3a3b782f3c [AArch64] Detect AES/SHA1/SHA2/CRC32 in CPUDetect. 2015-06-08 01:20:24 -05:00
Ryan Houdek 1b6969ca67 Merge pull request #2567 from Sonicadvance1/remove_armv7
Remove ARMv7 support.
2015-06-08 02:19:11 -04:00
Ryan Houdek 59e2225f7d Remove ARMv7 support. 2015-06-07 22:44:13 -05:00
Ryan Houdek 499478bcad Merge pull request #2550 from Armada651/d3d-pokes
D3D: Implement Z pokes.
2015-06-07 23:25:16 -04:00
Ryan Houdek 9969273994 Merge pull request #2557 from AdmiralCurtiss/gc-sram-checksum
GameCube SRAM: Recalculate checksums after setting language.
2015-06-07 23:24:06 -04:00
Ryan Houdek e8ae0f8c3c Merge pull request #2562 from Sonicadvance1/aarch64_optimize_gatherpipe
[AArch64] Optimize gatherpipe stores
2015-06-07 23:23:11 -04:00
Ryan Houdek 8c2e5e2860 Merge pull request #2555 from Sonicadvance1/aarch64_rebase_ppsspp_emitter
[AArch64] Upstream PPSSPP's emitter changes.
2015-06-07 23:23:04 -04:00
Ryan Houdek a81d1c250a Merge pull request #2512 from JosJuice/bnr-size-match
VolumeGC: Check that opening.bnr size matches type
2015-06-07 23:20:54 -04:00
Ryan Houdek 51b440fbcf Merge pull request #2449 from sigmabeta/android-decouple-surfaceview
\Android: Decouple SurfaceView initialization and emulation start.
2015-06-07 23:18:56 -04:00
Ryan Houdek 49a0adb2e9 Merge pull request #2506 from comex/enet-build-fixes
ENet fixes (build fixes, upgrade)
2015-06-07 23:16:42 -04:00
Ryan Houdek 9521bc1fc6 Merge pull request #2558 from sigmabeta/android-panic-alerts
Android: Display Panic Alerts on-screen as a Toast message.
2015-06-07 23:14:34 -04:00
Ryan Houdek c79dd40e72 Merge pull request #2529 from JosJuice/ini-skip-bom
Skip reading UTF-8 BOM at the beginning of INI files
2015-06-07 23:13:53 -04:00
Ryan Houdek daf9492072 Merge pull request #2561 from Sonicadvance1/gles_fix
Fix OpenGL ES shader compilation.
2015-06-07 23:12:57 -04:00
Ryan Houdek 444d112df5 Merge pull request #2563 from Sonicadvance1/aarch64_disable_psql
[AArch64] Disable psq_l again.
2015-06-07 23:12:50 -04:00
Ryan Houdek c8068e26fb Merge pull request #2527 from Sonicadvance1/aarch_multi_loadstore
[AArch64] Implement lmw/stmw.
2015-06-07 23:12:42 -04:00
Ryan Houdek d29fd84249 [AArch64] Disable psq_l again.
Still causing issues with games.
Disable it again until I can spend enough time debugging it.
2015-06-07 19:55:27 -05:00
Ryan Houdek 46c3a11d01 [AArch64] Optimize gatherpipe stores
This can be even more optimized in the future when the register cache supports constant caching.
2015-06-07 19:53:40 -05:00
Ryan Houdek 8ae12d8005 [AArch64] Add ASIMD LDR/STR with register offset 2015-06-07 19:53:05 -05:00
Ryan Houdek 05b72c5d31 [AArch64] Upstream PPSSPP's emitter changes.
Requires a minor change to in the JIT to make sure everything still works.
2015-06-07 19:50:21 -05:00
Ryan Houdek 3f46491255 Fix OpenGL ES shader compilation. 2015-06-07 19:44:44 -05:00
Ryan Houdek 588de63f9c Merge pull request #2141 from Tilka/position_cache
zfreeze: cache vertex positions
2015-06-07 16:44:40 -04:00
Ryan Houdek 10bd68936c [AArch64] Implement ZFreeze cache 2015-06-07 12:13:01 +02:00
Ryan Houdek 63f41ce54e Merge pull request #2514 from sigmabeta/android-tv-support
Android TV: Allow the app to be launched from an Android TV launcher.
2015-06-05 18:30:32 -04:00
Ryan Houdek 7b9565c4e6 [AArch64] Implement lmw/stmw. 2015-06-04 23:54:50 -05:00
Ryan Houdek 17e1f644b0 Merge pull request #2504 from ds84182/master
Fix invalid enums on OpenGLES
2015-06-02 12:17:12 -04:00
Ryan Houdek 9407797d16 Merge pull request #2454 from Sonicadvance1/armv7_disable_loadstores
[ARMv7] Extend the life of the JIT Recompiler.
2015-06-02 10:42:06 -04:00
Ryan Houdek 1414221bd4 Merge pull request #2499 from sigmabeta/android-tv-tweaks
Android TV: Make file selector screen usable with d-pads
2015-06-01 16:58:15 -04:00
Ryan Houdek 1d90a1b8a7 Merge pull request #2497 from Sonicadvance1/aarch64_minor_opt
[AArch64] Minor bugfix and optimization.
2015-06-01 16:40:26 -04:00
Ryan Houdek 5ed3a5de22 [AArch64] Minor bugfix and optimization.
Fixes a bug in lfs where I was doing a rev64.16b when I needed to do a rev32.8b.
Change a ld1r.4s to a ld1r.2s.
Fix an issue where a fcvtl2 needed to be a fcvtl.
Re-enabled psq_l, issue with flickering can't be reproduced anymore, so whatever.
2015-05-31 22:03:36 -05:00
Ryan Houdek d0ae3f7d24 Break out the disassembler code from the WXWidgets UI.
This cleans up some of the code between core and UI for disassembling and dumping code blocks.
Should help the QT UI in bringing up its debug UI since it won't have to deal with this garbage now.
2015-05-31 18:16:59 -05:00
Ryan Houdek ac1f3ef099 Merge pull request #2492 from Sonicadvance1/fix_block_sizes
Fix JIT core's block sizes.
2015-05-31 16:49:47 -04:00
Ryan Houdek f9c0932b0c Merge pull request #2493 from Sonicadvance1/aarch64_cant_disable_tw
[AArch64] Don't disable tw{i,}
2015-05-31 16:49:41 -04:00
Ryan Houdek 1723217cc9 [AArch64] Don't disable tw{i,}
It's an endblock instruction, it shouldn't be disabled via the JITDISABLE macro.
2015-05-31 15:37:22 -05:00
Ryan Houdek 6c56cd0c30 Fix JIT core's block sizes.
Was causing disassembled blocks to be cut off by a few instructions at the end.
2015-05-31 14:59:17 -05:00
Ryan Houdek 210d7c4d54 Merge pull request #2486 from Tilka/x86_32
Jit64: drop more x86_32 left-overs
2015-05-31 13:06:19 -04:00
Ryan Houdek cdbdff436b Merge pull request #2478 from degasus/fix_prefetching
HiresTexture: Fix prefetching with broken textures
2015-05-29 01:42:48 -04:00
Ryan Houdek b038b61a29 [ARMv7] Extend the life of the JIT Recompiler.
Until loadstores are fully investigated, let's artificially extend the life of it by disabling all of them.
These instructions break in a very terrible way and eventually all loadstores end up attempting to access memory region (u32)-1.
Disable until someone has enough time to investigate further.
2015-05-25 23:36:28 -05:00
Ryan Houdek a4a8162fb5 Merge pull request #2188 from JosJuice/dol-cleanup
DOL loader cleanup with std::vector and safety checks
2015-05-25 23:51:40 -04:00
Ryan Houdek f4625e6383 Merge pull request #2398 from JosJuice/revert-854f6b8
Attempt at fixing issue 8544 (input recording desyncs)
2015-05-25 23:49:56 -04:00
Ryan Houdek 061848457a Merge pull request #2382 from RisingFog/vfwfix
Fix video dumping incorrect lengths for some games in Windows
2015-05-25 23:46:22 -04:00
Ryan Houdek f706518dc0 Merge pull request #2390 from darkengine-io/new-qt
More miscellaneous Qt fixes
2015-05-25 23:45:21 -04:00
Ryan Houdek 96ef0fce38 Merge pull request #2450 from lioncash/alloc
NetPlayClient: Remove unnecessary array allocation
2015-05-25 23:42:49 -04:00
Ryan Houdek b0b5f4d10d Merge pull request #2326 from JosJuice/isoproperties-config-block
ISOProperties: Don't block when opening default INI in text editor
2015-05-25 23:42:26 -04:00
Ryan Houdek 5911dd528a Merge pull request #2361 from JosJuice/filesystem-read32
Remove CFileSystemGCWii::Read32
2015-05-25 23:40:28 -04:00
Ryan Houdek c88d6c804a Merge pull request #2430 from Sonicadvance1/android_panic_handler
[Android] Add support for panic alerts to the JNI.
2015-05-25 23:37:48 -04:00
Ryan Houdek 4ba430951a Merge pull request #2439 from JosJuice/company-from-id
Use an ID-to-name map when volume has no company string
2015-05-25 23:32:55 -04:00
Ryan Houdek 0c31013622 Merge pull request #2453 from rohit-n/call-me-bob
Fix building with PCH disabled.
2015-05-25 23:28:18 -04:00
Ryan Houdek 1d6375b71f Merge pull request #2339 from JosJuice/fix-wii-fst-size
Fix reading Wii FST size
2015-05-25 23:27:25 -04:00
Ryan Houdek dad5d8e13d Merge pull request #2357 from degasus/ogl_efb_poke_merge
ogl: efb poke merge
2015-05-25 23:26:39 -04:00
Ryan Houdek 3817dd0f91 Merge pull request #2272 from phire/jitil-floatbug
JitIL: Fix a bug in floatpoint load/store instructions.
2015-05-25 23:17:56 -04:00
Ryan Houdek d789d8d75f [Android] Add support for panic alerts to the JNI. 2015-05-25 22:13:00 -05:00
Ryan Houdek 7c04c76a26 Merge pull request #2421 from Tilka/jit_stuff
Jit64: fixes + less code
2015-05-25 23:08:24 -04:00
Ryan Houdek 0c5f5c4519 Merge pull request #2394 from Sonicadvance1/android_block_profiling_api
[Android] Block profiling JNI interface
2015-05-25 23:06:37 -04:00
Ryan Houdek 95f9096068 Merge pull request #2396 from Sonicadvance1/fix_racing_cpu_core
Fix a race condition when pausing the CPU core.
2015-05-25 23:06:18 -04:00
Ryan Houdek 99d9161e49 Merge pull request #2429 from Sonicadvance1/aarch64_block_profile
[AArch64] Implement block profiling.
2015-05-25 23:05:54 -04:00
Ryan Houdek 69963dc4b0 Merge pull request #2274 from degasus/disable_bbox
Disable bbox
2015-05-25 08:46:12 -04:00
Ryan Houdek eb94e742f1 [AArch64] Implement block profiling.
This is time based block profiling unlike the ARMv7 core.
I would like to add cycle counter based block profiling like the ARMv7 core, but it first requires writing a kernel module to enable the counters to userland applications
2015-05-20 22:23:59 -05:00
Ryan Houdek 42cc48f929 Merge pull request #2407 from sigmabeta/master
Android: Put GCPadNew.ini back into the repository.
2015-05-12 19:24:05 -04:00
Ryan Houdek 0533ecde23 Merge pull request #2397 from Sonicadvance1/aarch64_disable_psq_l
[AArch64] Disable psq_l.
2015-05-11 19:21:53 -04:00
Ryan Houdek 5bbaa85f25 Merge pull request #2389 from sigmabeta/lollipop-ui-tweaks
Android: Add file browser screen to new UI, and several tweaks.
2015-05-11 11:35:51 -04:00
Ryan Houdek 2d47a159ab [AArch64] Disable psq_l.
Causes flickering in games ever since PR #2172.
No idea why
2015-05-11 00:11:40 -05:00
Ryan Houdek af305aa168 Fix a race condition when pausing the CPU core.
This affects enabling and disabling block profiling on the fly.
The block profiling pauses the CPU cores and then flushes the JIT's block cache and enables block profile.
The issue with this is that when we pause the CPU core, we don't have a way to tell if the JIT recompiler has actually left.
So if the secondary thread that is clearing the JIT block cache is too quick, it will clear the cache as a recompiler is still running that block that
has been cleared.
2015-05-10 21:00:54 -05:00
Ryan Houdek 379f9feebd Fix non-PCH build. 2015-05-10 20:16:05 -05:00
Ryan Houdek a36dc19d9b Add JNI interface for enabling writing block profile results. 2015-05-10 20:03:34 -05:00
Ryan Houdek 0da086e389 Make sure the JitInterface's WriteProfileResults instruction pauses and resumes the CPU core. 2015-05-10 20:02:25 -05:00
Ryan Houdek 80fe5e0a55 Merge pull request #2370 from sigmabeta/native-libs-task-removal
Remove the "nativeLibsToJar" gradle task.
2015-05-06 09:16:43 -04:00
Ryan Houdek f9dc8a39c0 Merge pull request #2350 from sigmabeta/master
Convert the Android source code to Gradle.
2015-05-03 22:01:02 -04:00
Ryan Houdek 5dbfebcd30 Merge pull request #2216 from Sonicadvance1/aarch64_dirty_dirty
[AArch64] Implement dirty register tracking.
2015-03-22 11:32:43 -05:00
Ryan Houdek 27619e613f Merge pull request #2231 from Sonicadvance1/fix_wii_config
Fix Wii configuration path being incorrect.
2015-03-17 22:42:07 -05:00
Ryan Houdek 297012ddd7 Fix Wii configuration path being incorrect.
On loading the NANDRoot from the config, if it isn't set it will still attempt to be set.
So on the invalid empty path, just don't set it.
2015-03-17 21:27:40 -05:00
Ryan Houdek 3e946b1bf7 [AArch64] Implement dirty register tracking.
Using BindToRegister from the register caches causes the register bound to be marked dirty.
Using the regular R() function from the register caches loads the registers without being dirty.

When implementing new instructions make sure to BindToRegister registers that become dirty.
2015-03-15 20:09:30 -05:00
Ryan Houdek 5e0b9179db Merge pull request #2186 from Sonicadvance1/aarch64_optimize_paired_slowmem
[AArch64] Optimize slowmem paired stores.
2015-03-15 14:37:21 -05:00
Ryan Houdek bcc434095d Merge pull request #2212 from Sonicadvance1/fix_user_paths
Fix user directories at times doing stupid things.
2015-03-15 09:45:02 -05:00
Ryan Houdek aaf04aeaca Fix user directories at times doing stupid things.
With my previous changes Dolphin would fail to create the user directory if it didn't exist, and would dump all the configuration options in to the cwdir.
This was a bit more complicated to fix in a clean fashion, so I took to moving around code concerning user directories.
Instead of having GetUserPath serve a dual purpose of both getting and setting our user directories, break out to a new SetUserPath function.

GetUserPath will know only get the configured user path.
SetUserPath will set our user paths and setup the internal user path state.

This ending up being a lot cleaner overall, which is nice. Also less mind bending when attempting to read the code.

So now we won't dump all of our configuration in to the cwdir if ~/.dolphin-emu isn't found.

Fixes issue 8371.
2015-03-15 09:19:48 -05:00
Ryan Houdek b267e5147c Merge pull request #2203 from alucryd/findx11
Include the FindX11 module
2015-03-15 07:40:20 -05:00
Ryan Houdek 5e6d49d96b Merge pull request #2209 from magumagu/remove-hle-opcode
Remove remnants of old fake opcodes.
2015-03-15 07:13:07 -05:00
Ryan Houdek d6c6d36e87 Merge pull request #2191 from magumagu/mmio-typo
Fix typo in usage of IsOptimizableMMIOAccess.
2015-03-08 18:40:24 -05:00
Ryan Houdek 7f50cc0873 [AArch64] Optimize slowmem paired stores.
This came up from the discussion we were having prior about dumping half of a kilobyte of VFP registers to the stack is insanity.
This was due to me basically copying exactly what I did on ARMv7's paired loadstores, where the impact is less since we only use the bottom 64bits of
the VFP registers.

So I decided to think about how to improve upon this since I got called out on my terrible code.
The solution I have come up with is instead of jumping to the common ASM routine and having that check if it needs to take the fastmem or slowmem
routes, just inline the check in to the JIT block and jump to either a fastmem or slowmem handler.
Fairly simple, and this allows us to only flush the registers that are required when doing so. Should give a reasonable increase in performance for
games that use the slowmem path quite a lot.
2015-03-08 16:12:49 -05:00
Ryan Houdek f6511c3ba5 [AArch64] Add an assert to SMOV in the emitter.
SMOV doesn't have an encoding for moving a 32bit element to a 32bit GPR.
One should use UMOV if they want that.
2015-03-08 12:29:45 -05:00
Ryan Houdek d34e908c4e Merge pull request #2185 from degasus/master
GLX: fix memory leak
2015-03-08 11:54:50 -05:00
Ryan Houdek b0f61201c3 Merge pull request #2142 from Sonicadvance1/fix_gles31_non_nvidia
Fix OpenGL ES 3.1 on non-Nvidia devices.
2015-03-08 09:03:05 -05:00
Ryan Houdek a9622c247b Merge pull request #2146 from Sonicadvance1/aarch64_optimize_fpr_push_pop
[AArch64] Optimize FPR pushing and popping.
2015-03-08 08:51:45 -05:00
Ryan Houdek a984b2476a Merge pull request #2144 from Sonicadvance1/android_autostart
[Android] Support arguments from Activity Monitor.
2015-03-08 08:50:27 -05:00
Ryan Houdek 3c5e99c777 Fix OpenGL ES 3.1 on non-Nvidia devices.
We are declaring we require ARB_shader_image_load_store in the shader, this isn't an extension on GLES because it is part of the GLSL ES 3.1 spec.
If we are running as GLES then just not put it in the shaders.
2015-03-08 08:49:53 -05:00
Ryan Houdek 70977fd6b1 Merge pull request #2092 from Sonicadvance1/gles_occlusion_queries
Implement full occlusion queries for the Nexus 9.
2015-03-08 08:44:15 -05:00
Ryan Houdek c2b2e03f73 [Android] Support arguments from Activity Monitor.
Activity Monitor can start activities by using adb to invoke it.
This will allow us to set the user directory and autostart file from adb.

adb shell am start -n org.dolphinemu.dolphinemu/.gamelist.GameListActivity -e AutoStartFile /sdcard/AC.gcz -e UserDir /sdcard/dolphin-emu2/

This allows more automated testing to be done with Dolphin on Android.
2015-03-08 08:43:25 -05:00
Ryan Houdek fbdee7b15f [AArch64] Handle FPR island registers in a less dumb way. 2015-03-03 00:30:05 -06:00
Ryan Houdek 81242dd4a7 [AArch64] Allow the other FPR push/pop routines to use a temporary register. 2015-03-02 21:38:09 -06:00
Ryan Houdek f1a9db9bdc [AArch64] Stop violating the AAPCS64 so much. 2015-03-02 11:21:15 -06:00
Ryan Houdek fad46729b0 [AArch64] Implemented paired pushing/popping for the VFP.
A bit more efficient if we are only pushing two VFP registers.
We can probably be a bit more efficient in the future by mixing paired loadstores in to the other paths as well.
2015-03-02 06:27:47 -06:00
Ryan Houdek 39e357d62d [AArch64] Implement VFP loadstore paired in the emitter. 2015-03-02 06:27:17 -06:00
Ryan Houdek 8b8310d28c [AArch64] Optimize FPR pushing and popping.
Previously on FPR pushing and popping we would do a single STR/LDR per quad FPR we wanted to push/pop.
In most of our cases when we are pushing and popping VFP registers they will be consecutive registers that will save more efficiently using the NEON
loadstores that can do up to four quad registers.
So this can potentially cutting instructions down to ~1/4th the amount of instructions if the registers are all consecutive.

On the Cortex-A57 this is basically just an icache improvement, but on the Nvidia Denver this may be optimized to be more efficient. Either way it's a
win.
2015-03-02 06:27:13 -06:00
Ryan Houdek d3c9701eb6 Merge pull request #2156 from Stevoisiak/EFB-Copies-To-Texture
VideoConfigDiag: Rename EFB Copies to RAM option
2015-02-28 22:28:11 -06:00
Ryan Houdek d6fcd85110 Merge pull request #2127 from lioncash/aui
DolphinWX: Relocate the address search into the code window
2015-02-25 10:36:07 -06:00