Commit Graph

16210 Commits

Author SHA1 Message Date
Ryan Houdek 67f2ff2e18 [AArch64] Move the 64bit floating point instructions to scalar.
Instead of doing vector operations and throwing away the top 64bits of each operation, let's instead use scalar operations.
On Cortex-A57 this saves us three cycles per vector operation changed to scalar, so this saves 3-9cycles per instruction emulated.
Also puts one less micro-op in to the vector pipeline there.
On the Nvidia Denver I couldn't see any noticeable performance difference, but it's a quirky architecture so it may be noticing we are throwing away
the top bits anyway and optimizing it. The world may never know what's truly happening there.
2015-01-20 16:35:08 -06:00
Ryan Houdek 217c2c9d6a [AArch64] Add some more scalar VFP ops to the emitter. 2015-01-20 16:34:32 -06:00
Ryan Houdek 7f68a357ad Merge pull request #1914 from Sonicadvance1/AArch64_minor_improvements
[AArch64] Minor Improvements and bug fix.
2015-01-20 16:33:17 -06:00
Ryan Houdek cb967a6ff2 Merge pull request #1911 from Sonicadvance1/AArch64_paired_loadstores
[AArch64] Implements paired loadstores
2015-01-20 16:33:08 -06:00
Jules Blok f40cd04a29 PixelShaderGen: Fix uninitialized variables. 2015-01-20 23:15:01 +01:00
Ryan Houdek 714697faaf Merge pull request #1909 from Sonicadvance1/GLExtensions_additions
Add support for two new OpenGL ES extensions.
2015-01-20 14:51:54 -06:00
degasus b1206ffbad Externals: add xxhash
Files are copied unmodified from https://code.google.com/p/xxhash/
2015-01-20 21:19:27 +01:00
Ryan Houdek 4262d2199a [AArch64] Implements paired loadstores. 2015-01-20 13:57:14 -06:00
Ryan Houdek bb042fe10f Merge pull request #1908 from Sonicadvance1/Android_aspect_ratio
[Android] Expose aspect ratio to the video settings.
2015-01-20 13:07:20 -06:00
Markus Wick 49352cfcb9 Merge pull request #1928 from rohit-n/build-pch
Fix building with PCH disabled.
2015-01-20 18:23:18 +01:00
Rohit Nirmal e35766cbcd Fix building with PCH disabled. 2015-01-20 17:01:37 +00:00
skidau 84848b52e0 Fixed the emulated wiimote speaker's ADPCM sample rate. Patch by hk.konpie. 2015-01-21 00:11:54 +11:00
Markus Wick 8ff1dc9c87 Merge pull request #1925 from Tilka/vertex_loader_jit
VertexLoaderX64: fix alpha of indirect 8888 colors
2015-01-20 09:40:46 +01:00
Tillmann Karras 1dcf49237b VertexLoaderX64: support VAT.ByteDequant=0 2015-01-20 09:23:15 +01:00
Tillmann Karras 46ab5d63d6 VertexLoader: never reset alpha in 8888 colors
Fixes the opening menu of Xenoblade Chronicles.
2015-01-20 09:22:55 +01:00
skidau 6f61f90dab Merge pull request #1777 from JosJuice/filemonitor-volumedirectory
Add FileMonitor support for VolumeDirectory
2015-01-20 12:32:42 +11:00
Tillmann Karras 80617ec6bd VertexLoader: remove weird line 2015-01-20 01:53:52 +01:00
Tillmann Karras 873902b4a3 VertexLoader: remove non-JIT SSE code 2015-01-20 01:51:07 +01:00
Ryan Houdek 38cb9bbfae Merge pull request #1889 from magumagu/remove-hle-end
Remove HLE_HOOK_END.
2015-01-19 18:16:47 -06:00
Markus Wick 0d0f7ec662 Merge pull request #1894 from Armada651/exclusive-fix
D3D: Fix Dolphin immediately exiting exclusive fullscreen.
2015-01-19 23:29:43 +01:00
Ryan Houdek 817abdd579 Remove an assumption in SDL.
We can compile with haptic support, and then not initialize due to haptics not being available.
So if we are compiling with haptics, test initializing with haptics and if that fails attempt to initialize without haptics before bailing out.
2015-01-19 16:07:28 -06:00
Jules Blok 332d5888eb VideoConfig: Add exclusive mode flag.
Allows the UI to easily check the current exclusive mode state.
This simplifies a few checks and prevents the user from ever getting stuck in fullscreen.
2015-01-19 22:55:21 +01:00
Ryan Houdek 7376956c92 Merge pull request #1912 from Sonicadvance1/Android_remove_workaround
[Android] Remove posix_memalign workaround.
2015-01-19 15:36:17 -06:00
jefflongo 6b64c309df Update NetPlayServer.cpp
Update NetPlayServer.cpp
2015-01-19 12:13:23 -08:00
CarlKenner 4768d0f0a8 This fixes stereoscopic 3D with XFB enabled, for example in the intro in Animal Crossing GameCube NTSC.
The maths appears to give crazy impossible answers without this fix, but the cause is all the ints being "promoted" to unsigned because of the single unsigned division at the end.
2015-01-20 03:42:58 +10:30
Markus Wick 7454297820 Merge pull request #1922 from Tilka/vertex_loader_jit
VertexLoader: fix position offset bug
2015-01-19 17:53:50 +01:00
Tillmann Karras 804341d4fe VertexLoader: fix position offset bug 2015-01-19 17:38:40 +01:00
Tillmann Karras 4b323096ec VertexLoader_Position: remove old JIT ideas 2015-01-19 17:36:24 +01:00
Ryan Houdek 92189c03e9 Merge pull request #1921 from Sonicadvance1/loadstore_fix
Minor fix with psq_st{u,}x disassembly.
2015-01-19 10:17:43 -06:00
Ryan Houdek dc95ea2ce6 Minor fix with psq_st{u,}x disassembly. 2015-01-19 10:12:23 -06:00
Linktothepast d499eee2b7 Additional gameini updates.
Removes speedhacks from metroid prime 1 and 2, and fire emblem series
and update old notes for metroid prime. Capitalize dolphin in the few
inis that weren't from the previous commit.
2015-01-19 16:05:51 +02:00
Adam D. Moss 05d2bf6060 Audio: Drop the LFE/subwoofer channel from the decoded surround
DPL2Decode still doesn't decode 5.1 properly, leaving bass in all channels, but its 5.0 is pretty good, so leave it at that.
2015-01-19 10:24:44 +00:00
Ryan Houdek 4551bb6ce6 Add support for two new OpenGL ES extensions.
This adds support for OES_draw_elements_base_vertex and EXT_buffer_storage.
2015-01-18 23:01:43 -06:00
Lioncash ed58b1fd5b Merge pull request #1913 from Sonicadvance1/fix_paired_store_disassembly
Fixes disassembly of paired store instructions.
2015-01-18 23:27:34 -05:00
skidau 6b0431e80a Merge pull request #1888 from john-peterson/padclamp
Fix the input zone drawing in input settings
2015-01-19 15:22:08 +11:00
Ryan Houdek 7e64869185 Merge pull request #1887 from Tilka/vertex_loader_jit
VertexLoader: rewrite x64 JIT
2015-01-18 19:48:14 -06:00
mimimi085181 0d3343d093 Make efb to texture less broken for paletted textures that are efb copies
Don't change the texID depending on the tlut_hash for paletted textures that are efb copies and don't have an entry in the cache for texID ^ tlut_hash. This makes those textures less broken when using efb to texture.

This is not really fixing those textures, but it's a step forward. The mini map in Twilight Princess for example is in grayscales with this and is more or less usable.
2015-01-19 01:31:41 +01:00
Markus Wick 5357b9c95f Merge pull request #1899 from degasus/texcache
Texture Pool
2015-01-19 00:12:22 +01:00
Ryan Houdek 98d99a9eef [AArch64] Optimize loadstores address calculation.
For offsets that fit in the instruction encoding then we should just put it in the instruction encoding.
Saves an instruction in a large amount of loadstores.
2015-01-18 16:45:42 -06:00
Ryan Houdek cfd4348b7a [AArch64] Fully implement cmpl and cmpli. 2015-01-18 16:45:00 -06:00
Ryan Houdek 4547b64959 [AArch64] Fixe a bug in constant propagated ComputeRC.
Must not have been thinking, we do want to sign extend when the highest bit is set.
2015-01-18 16:44:33 -06:00
Ryan Houdek 596d3fd5f2 Fixes disassembly of paired store instructions.
Someone thought it would be a good idea to have the location as the first argument on the instruction.
Changed it to how it is supposed to be disassembled.
2015-01-18 16:37:43 -06:00
Ryan Houdek 08e50ec6dd [Android] Remove posix_memalign workaround.
Google fixed the issue of posix_memalign not being available. It now works fine in r10d of the NDK.
2015-01-18 16:34:42 -06:00
Ryan Houdek 8d5947efac [AArch64] Emitter improvements.
Adds a bunch of new instructions to the emitter.
2015-01-18 16:25:40 -06:00
Tillmann Karras d3f49097c5 VertexLoaderX64: register symbol for code page 2015-01-18 23:20:44 +01:00
Ryan Houdek 44405e2ec2 Expose the JIT quantize and dequantize arrays to all the JITs.
Removes the ARMv7 arrays that were being used, and lets it use the common one instead.
2015-01-18 16:20:26 -06:00
Ryan Houdek 95ac48d605 Improve the LLVM disassembler in the debug window.
There are a couple things in this PR.
Fixes a bug where if we hit an invalid instruction we would infinite loop.
Fixes an issue where on AArch64 it would show invalid instructions for all NEON instructions.
This was due to asimd and crc being optional extensions and LLVM not enabling them by default.
So we have to specify a CPU which has the feature. LLVM 3.6 will let us select by features instead of CPUs, but we don't have a release of that quite
yet.

If we are on an architecture that has a known instruction size, we will continue onward after hitting the invalid instruction. If we don't have a
known instruction size like on x86, we will instead just dump the rest of the block.
2015-01-18 15:31:40 -06:00
Ryan Houdek 864969f300 [Android] Expose aspect ratio to the video settings. 2015-01-18 15:21:40 -06:00
Linktothepast 89dd5e4aac Additional gameini updates.
Capitalizes LLE audio and changes star wars rogue leader and rebel
strike emulation state, addition of Rabbids Go Home and Bad Boys II in
the database, and enables mmu in Need for speed most wanted (gc) to
avoid crashes during loading a stage.
2015-01-18 21:10:32 +02:00
degasus 9f13a77799 TexCache: don't try to aggressive reuse the entry
As we pool them now, freeing and reallocating them is quite fast.
2015-01-18 19:58:33 +01:00