Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Houdek 7ce4c3138e [AArch64] Optimize cases when an FPR is only used for non-paired ops. 2015-08-20 23:36:29 -05:00
Ryan Houdek 3f1055de94 Fix a memory leak in the EGL GLInterface. 2015-08-18 08:26:45 -05:00
Ryan Houdek 4baaa3755e Merge pull request #2840 from zeroZshadow/master
Ignore all writes to BBA_TXFIFOCNT
2015-08-17 10:38:00 -05:00
Ryan Houdek 909ab23df5 Merge pull request #2853 from degasus/arm
JitArm64: Fix jit clearing
2015-08-15 13:50:36 -05:00
Ryan Houdek 3bc5505272 Merge pull request #2814 from Sonicadvance1/aarch64_faster_fastmem
[AArch64] Banish slowmem operations to farcode.
2015-08-14 12:03:46 -05:00
Ryan Houdek f76a30c9fd Merge pull request #2845 from degasus/arm
JitArm64: Implement dcbt
2015-08-14 12:03:25 -05:00
Ryan Houdek c80e3089c8 [GLES] Fix real XFB.
GLES doesn't support the BGRA texture format type, just use RGBA.
2015-08-12 17:32:05 -05:00
Ryan Houdek bb39ba1f3a [AArch64] Banish slowmem operations to farcode.
This improves performance pretty much across the board for games.
The increase in performance is mainly from removing some code from the main JIT blocks of code (pushing and popping millions of registers) and
throwing them in farcode where it doesn't pollute the icache.
2015-08-12 13:57:09 -05:00
Ryan Houdek d5c99a5b48 Add support for a CodeBlock holding a child.
This is required to make sure two code spaces are relatively close to one another.
In this case I need the AArch64 JIT codespace and its farcode space to be within 128MB of one another for branches.
2015-08-12 12:57:06 -05:00
Ryan Houdek cf22d32d0c [AArch64] Don't do an unnecessary 128bit REV64 operation.
We are only using the lower 64bits here, no need to do the full quad register.
2015-08-09 14:56:52 -05:00
Ryan Houdek 922d476dab [AArch64] Fix FCMGE instruction encoding.
Fixes a crash when ps_sel is used (PSO 1&2 intro movies).
2015-08-09 14:54:55 -05:00
Ryan Houdek 14a0b01854 Merge pull request #2812 from Tilka/typos
Gekko: fix typos in HID2
2015-08-07 10:56:22 -05:00
Ryan Houdek 0326bf7164 On unknown_instruction dump the full guest GPR state. 2015-08-07 02:45:05 -05:00
Ryan Houdek d9037d6c4a Remove perf_dir Dolphin WX option.
Move the option for the directory to the Dolphin.ini
This way more than DolphinWX can take advantage of it.
2015-08-07 01:59:29 -05:00
Ryan Houdek c5a7243eb2 [AArch64] Add support for JitRegister to the dispatcher and paired loadstores 2015-08-07 01:58:40 -05:00
Ryan Houdek eefe710571 Merge pull request #2806 from sigmabeta/android-ui-quickfixes
Android: Prevent MainActivity toolbar from rendering behind status bar.
2015-08-06 16:00:06 -05:00
Ryan Houdek c1fcb23b03 Merge pull request #2783 from degasus/arm
JitArm64: fix lfd
2015-07-27 17:18:02 -05:00
Ryan Houdek 6cd8ee9e4e Merge pull request #2782 from degasus/arm
JitArm64: fix stfsux
2015-07-27 16:10:03 -05:00
Ryan Houdek e805e05ff5 Merge pull request #2773 from sigmabeta/android_wiimote_main
Android: Add Wiimote support, including configuration UI.
2015-07-26 16:54:45 -05:00
Ryan Houdek 0ba970008f Merge pull request #2758 from sigmabeta/android-tv-game-picker
Android TV: Implement new UI for Main Activity.
2015-07-26 16:54:27 -05:00
Ryan Houdek e264df0fd4 Merge pull request #2779 from sigmabeta/android-sys-rq
Android: Add system requirements to Readme.md
2015-07-25 22:59:26 -05:00
Ryan Houdek 8bd108426e Merge pull request #2759 from Sonicadvance1/pvr_workaround2
Work around PowerVR's shader compiler.
2015-07-22 16:51:48 -05:00
Ryan Houdek 6ee5ce32cf Merge pull request #2757 from Sonicadvance1/pvr_workaround
Work around slow glBufferSubData on PowerVR.
2015-07-22 16:48:40 -05:00
Ryan Houdek c81bd32720 Merge pull request #2764 from Sonicadvance1/pvr_workaround3
Work around devices that choose to only return the default EGL_RENDERABLE_TYPE
2015-07-22 16:47:11 -05:00
Ryan Houdek c4f0515141 Work around devices that choose to only return the default EGL_RENDERABLE_TYPE
The default EGL_RENDERABLE_TYPE is GLES1, so vendors have the ability to choose between returning only the bits requested, or all of the bits
supported in addition to the one requested.
PowerVR chose to take the route where they only return the bits requested, everyone else returns all of the bits supported.
Instead of letting the vendor have control of this, let's incrementally go through each renderable type and make sure it supports everything we want.
This will cover all devices for now, and for the future.
2015-07-22 11:11:23 -05:00
Ryan Houdek a8227ad9b1 Add Wiimote support to the Android backend.
Not actually wired up to the Android UI for configuration.
2015-07-21 21:33:23 -05:00
Ryan Houdek 03f45fd3f5 Merge pull request #2763 from endrift/update-gtest
Externals: Update gtest to r733
2015-07-21 21:16:50 -05:00
Ryan Houdek c8d1824eb0 Merge pull request #2754 from sigmabeta/readme-reword
Change "Installation' headers to say 'Building' in Readme.md
2015-07-21 12:56:30 -05:00
Ryan Houdek 3163602157 Merge pull request #2688 from sigmabeta/android-tv-ingame-menu
Android TV: Replace toolbar on EmulationActivity with a full-screen menu
2015-07-21 12:52:21 -05:00
Ryan Houdek 53bc147b45 Merge pull request #2756 from Sonicadvance1/fix_glextensions
Fix an oversight in GLExtensions
2015-07-21 10:30:06 -05:00
Ryan Houdek c1df6d7b4e Work around PowerVR's shader compiler.
This bug has been reported to IMGTec at https://pvrsupport.imgtec.com/ticket/472

The basic idea of the bug is that if you're doing a bitwise and  of a constant value vector with a constant scalar value, this causes PowerVR's shader
compiler to fail out with a very non-descriptive message.
Working around the issue by making the value a vector that it is being masked by.
2015-07-20 22:04:16 -05:00
Ryan Houdek 012a9afdb6 Work around slow glBufferSubData on PowerVR.
As with all tiled renderers, glBufferSubData is terribly slow.
Use glBufferData as typical.
2015-07-20 22:02:58 -05:00
Ryan Houdek dc46ae0380 Fix an oversight in GLExtensions
I only wanted to erase the first character in the string, not the entire thing.
Fixes Qualcomm and PowerVR devices crashing out immediately.
2015-07-20 22:01:23 -05:00
Ryan Houdek cd95a53ff4 Merge pull request #2737 from sigmabeta/android-how-to
Android: Improve build instructions, fix bugs in build scripts.
2015-07-20 12:39:33 -05:00
Ryan Houdek c0f80ca524 Merge pull request #2736 from degasus/farcache
JitArm64: Farcache
2015-07-15 08:41:58 -05:00
Ryan Houdek 7b7d1b0dcf Merge pull request #2718 from phire/1way-icache
Interpreter: Fix bug with icache emulation.
2015-07-08 07:29:46 -05:00
Ryan Houdek 48ac522b5c Merge pull request #2715 from degasus/aarch64
JitArm64: Implement EXCEPTION_FPU_UNAVAILABLE support.
2015-07-06 21:43:56 -05:00
Ryan Houdek e9921044b5 Merge pull request #2671 from degasus/jitarmbranch
JitArm64: branching fallbacks
2015-07-01 11:40:07 -05:00
Ryan Houdek b174f99b17 Merge pull request #2662 from Tilka/interpreter
Interpreter: turn SNaNs into QNaNs
2015-07-01 01:09:43 -05:00
Ryan Houdek 68d8d784ee Merge pull request #2670 from endrift/dolphinbar-osx
WiimoteReal: Add IOHIDDevice support for OS X
2015-06-30 23:33:13 -05:00
Ryan Houdek 605ce3788d Merge pull request #2664 from sigmabeta/android-load-animation
Android: Show transition animations on game start / end.
2015-06-30 22:19:25 -05:00
Ryan Houdek a0f5bd51f1 Merge pull request #2678 from Sonicadvance1/aarch64_implement_rlwimix
[Aarch64] implement rlwimix.
2015-06-30 22:18:00 -05:00
Ryan Houdek 2cddaa09f0 [AArch64] Implement rlwimix. 2015-06-30 19:49:10 -05:00
Ryan Houdek afc3d30f5c [AArch64] Implement BFI & UBFIZ in the emitter.
Also fixes a bug in the UBFX instruction emitter. Naughty Naughty PPSSPP, not testing emitter functions you add.
2015-06-29 19:00:22 -05:00
Ryan Houdek 6818f2e092 Merge pull request #2661 from Sonicadvance1/aarch64_slwx
[AArch64] Implement slwx in the recompiler.
2015-06-26 01:28:06 -05:00
Ryan Houdek 63a2180c1f [AArch64] Implement slwx in the recompiler.
I streamed this implementation earlier today to get people to have a feel for implementing instructions in the AArch64 recompiler.
This one was a fairly simple one to implement.
2015-06-26 00:51:06 -05:00
Ryan Houdek 521f6e89c3 Merge pull request #2624 from sigmabeta/android-save-screenshot
Android: Save screenshot at end of an emulation session.
2015-06-24 21:39:47 -05:00
Ryan Houdek 3c5122e963 Merge pull request #2654 from Tilka/assert
Logging: trigger _assert_() in release builds
2015-06-24 11:14:08 -05:00
Ryan Houdek 2cea910431 Merge pull request #2644 from sigmabeta/android-material-design
Android: Numerous Material Design additions to the UI.
2015-06-23 21:00:35 -05:00
Ryan Houdek bb89a81053 Merge pull request #2635 from sigmabeta/android-seriously-now
Android: Remove Low and Medium DPI versions of all images.
2015-06-23 20:47:16 -05:00
Ryan Houdek 52aa9c05bd Merge pull request #2633 from sigmabeta/android-emulation-menu
Android: Add Quicksave/Load functionality, and cleanup in-game menu.
2015-06-23 20:47:10 -05:00
Ryan Houdek c9a0e7d35b Merge pull request #2650 from Tilka/fix_warnings
Fix some warnings
2015-06-23 20:41:58 -05:00
Ryan Houdek 3f0f3c36fa Merge pull request #2627 from sigmabeta/android-non-games
Android: Have non-games use their filename as a Game ID.
2015-06-21 15:06:49 -05:00
Ryan Houdek b0bc60d58a Merge pull request #2638 from Sonicadvance1/aarch64_fix_vertexloader_colour
[AArch64] Fix a couple of bugs in the vertex loader
2015-06-21 12:52:36 -05:00
Ryan Houdek a811370329 [AArch64] Fix a couple of bugs in the vertex loader
In particular this fixes the 6666 colour format
We were loading from the wrong location and it was causing /terrible/ colour changes.

This also fixes a bug in the all the colour formats(except 888) where the unaligned path was loading in to the wrong register.
2015-06-20 21:12:31 -05:00
Ryan Houdek 7662b30d0b Merge pull request #2616 from sigmabeta/android-whoops-overlay
Android: Fix a bug making Input Overlay config screen only work in debug builds.
2015-06-16 14:49:41 -05:00
Ryan Houdek 22e7024da5 Merge pull request #2614 from endrift/fix-gdbstub-build
PowerPC: Fix GDBStub build
2015-06-16 02:15:21 -05:00
Ryan Houdek 87b45de634 Merge pull request #2606 from Sonicadvance1/aarch64_optimize_psq_st
[AArch64] Optimize paired quantized stores.
2015-06-14 19:03:50 -05:00
Ryan Houdek 73d213142f Merge pull request #2611 from Sonicadvance1/aarch64_fix_register_cache
[AArch64] Fix a few bugs in the FPR cache.
2015-06-14 19:03:40 -05:00
Ryan Houdek 094c6bf5bc Merge pull request #2601 from Sonicadvance1/android_fix_user_directory
[Android] Make sure we are setting the default user directory.
2015-06-14 17:03:55 -05:00
Ryan Houdek 96058c5de1 [AArch64] Reenable psq_l.
The bug was due to issues in the FPR cache.
2015-06-14 04:11:59 -05:00
Ryan Houdek 282282aafc [AArch64] Fix a few bugs in the FPR cache. 2015-06-14 04:11:26 -05:00
Ryan Houdek 5ea66369f8 [AArch64] Optimize paired quantized stores.
Uses {S,U}QXTN to saturate the value to the maximum sizes instead of manually clamping using FMIX + FMAX.
2015-06-13 23:16:56 -05:00
Ryan Houdek 5dc148159f [AArch64] Implement {U, S}QXTN{,2}
Also split out XTN to XTN and XTN2.
2015-06-13 23:16:17 -05:00
Ryan Houdek c981f6407e Merge pull request #2597 from endrift/android-allow-ndk-override
Android: Allow NDK location to be specified manually
2015-06-13 13:56:53 -05:00
Ryan Houdek 1c1282fddc Merge pull request #2604 from lioncash/var
Arm64Emitter: Remove unused variable from EncodeLoadStoreRegisterOffset
2015-06-13 13:33:04 -05:00
Ryan Houdek 7c4e6c7eb9 [Android] Make sure we are setting the default user directory.
This fixes an issue where the settings aren't being saved correctly because the user directory is never set before a run of the game.
2015-06-13 08:37:56 -05:00
Ryan Houdek 467f351f79 [Android] Remove dialog telling individuals that their drivers are terrible.
There aren't any AArch64 devices with v14 Qualcomm drivers. So it is dead code.
2015-06-13 08:18:42 -05:00
Ryan Houdek 0af5bdcf1d [AArch64] Clean up our CPUDetect.
Drops ARMv7 feature detection.
2015-06-13 08:04:23 -05:00
Ryan Houdek bcc8c78e4a Merge pull request #2582 from Sonicadvance1/aarch64_fix_thp_videos
[WIP] [AArch64] Clamp quantized store ranges.
2015-06-12 18:07:24 -05:00
Ryan Houdek 113c2dcd74 [AArch64] Clamp quantized store ranges.
Fixes block dots in THP videos.
Nintendo's THP video uses paired U8 stores to write their THP videos after decoding with floating point operations.
Paired stores clamp the range to the minimum and maximum values(0 - 255 in this case).
In some instances the resulting float will be larger than what a U8 can fit(Typically white) and results in black dots due to how AArch64 handles
quantizing.
2015-06-09 18:11:27 -05:00
Ryan Houdek 3d2b116323 [AArch64] Implement a couple instructions in the emitter.
Implements LD2R.
Implements LD1R/LD2R with post-indexing support.
Implements vector min/max instructions.
2015-06-09 18:10:56 -05:00
Ryan Houdek 7b0a65e295 Merge pull request #2576 from sigmabeta/android-controls
Android: Persist previously-set controller bindings on the Settings menu.
2015-06-09 16:56:34 -05:00
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