Commit Graph

15793 Commits

Author SHA1 Message Date
Fiora
e7a49ae5f3 Eliminate some spammy log messages in MMU mode
dcbz: just don't use GetPointer, that can't be right anyways
ppcanalyst: don't print "instruction hex 0" messages in MMU mode, where ISIs
are expected.
2014-12-21 12:41:44 -08:00
Fiora
3b7d7da1ac JIT: Fix redundant MOVs in x86 trampolines
Fixes spammy log messages about redundant MOVs.
2014-12-21 12:06:07 -08:00
FenrisulfrX
46e74782a7 AR: Fix Memory Copy Without Pointer Support
Fix a bug when using AR codes with "Memory Copy Without Pointer Support"
code type which would write more data than it should.
2014-12-21 16:45:50 -02:00
Jules Blok
737bc0e7ad PixelShaderCache: Support stereoscopic EFB format changes. 2014-12-21 15:46:12 +01:00
Jules Blok
ba242d27c8 FramebufferManager: Support stereoscopic EFB format changes. 2014-12-21 15:25:58 +01:00
degasus
1efd00227d VertexLoader: Skip vertices with position index = -1 2014-12-21 14:29:44 +01:00
degasus
325e8e370e VertexLoader: Merge dummy functions 2014-12-21 14:13:04 +01:00
degasus
7c486a8c24 VertexLoader: Add a VertexLoader pointer to each function call 2014-12-21 14:13:04 +01:00
degasus
7edf6ec4e4 VertexLoader: Add a test loader which compares two vertex loaders 2014-12-21 14:13:04 +01:00
degasus
809117102e VideoCommon: split VertexLoaderBase from VertexLoader 2014-12-21 14:12:43 +01:00
degasus
a71c8158d9 VertexLoader: remove inlined getters
They just blow up the code.
2014-12-21 13:47:43 +01:00
degasus
6e3b2712d2 VideoCommon: Move NativeVertexFormat cache to VertexLoaderManager 2014-12-21 13:47:43 +01:00
degasus
1281798992 VertexLoaderUid: remove operator<
Not needed for unordered map.
2014-12-21 13:47:43 +01:00
degasus
ec28a80e00 VideoLoader: remove VAT_*_FRACBITS
They are used to remove the flush amounts, but as we don't
flush anymore on vertex loader changes (only on native
vertex format right now), this optimization is now unneeded.

This will allow us to hard code the frac factors within the
vertex loaders.
2014-12-21 13:47:42 +01:00
degasus
7e12fec7c3 VideoCommon: Make GPU syncing hack optional
This hack is there for quite a long time, and lots of games crashes if it's disabled.
But it's still a hack, so it shouldn't be enabled hard coded. This commit create a new
ini option for this hack which is enabled by default.
Maybe some games does still run very fine without this hack.
2014-12-21 11:54:53 +01:00
Ryan Houdek
9b2909357b Merge pull request #1731 from Sonicadvance1/ARMv7-minor-optimization
[ARMv7] Minor integer fastmem optimization.
2014-12-20 23:38:41 -06:00
Ryan Houdek
8ea6c62943 Merge pull request #1705 from Sonicadvance1/AArch64_emitter_fixes
[AArch64] Improvements to the AArch64 emitter.
2014-12-20 23:27:59 -06:00
Ryan Houdek
59e1a8a1a0 Merge pull request #1736 from degasus/osd
OSD
2014-12-20 23:21:24 -06:00
Benjamin Przybocki
fba3c48ec4 Update Outdated Google Code References 2014-12-20 21:17:51 -06:00
Ryan Houdek
ab2b499fa6 [ARMv7] Minor integer fastmem optimization.
This is a one instruction optimization for integer loadstores.
Makes sure to enable nop padding in some cases where a fault can still happen and cause us to overwrite other instructions that aren't meant to be.
2014-12-20 19:41:33 -06:00
Ryan Houdek
c22e750f74 [AArch64] Add partial support for cmp* instructions.
This support is as far as ARMv7's support for these instructions.
Requires PR #1728 prior to merging.
2014-12-20 19:41:04 -06:00
Ryan Houdek
6f0fbac68f [AArch64] Adds support for BindToRegister to the integer instructions.
This requires PR #1723 prior to merging.
2014-12-20 19:40:14 -06:00
Ryan Houdek
73542ce93e [AArch64] Flush registers from register cache if they won't be used again.
This requires PR #1705 and #1723 prior to merging.
2014-12-20 19:38:34 -06:00
Ryan Houdek
360cf761d2 [AArch64] Optimization in the dispatcher.
Align our dispatcher to a page so we can jump to it with a ADRP+BR pair instead of ADRP+ADD+BR.
Also make sure to save /all/ of our callee saved registers that we are supposed to save.
Requires PR #1705 prior to merging.
2014-12-20 19:37:45 -06:00
Ryan Houdek
13b70c2fbd [AArch64] Add an exception exit function with the exit location already in PC.
This will be used with idle skipping later.
2014-12-20 19:36:48 -06:00
Ryan Houdek
32eb0a9d68 [AArch64] Removes CODE_SIZE variable.
This is in a global location now which conflicts with this one.
2014-12-20 19:36:48 -06:00
Ryan Houdek
edfbb6ab9a [ARM] Adds a ArmCommon folder.
Moves the backpatch flags and struct to a common location for ARM.
I'm sure there will be more things that use this common ARM location in the future.
2014-12-20 19:36:48 -06:00
Ryan Houdek
eaf17b7d7b [AArch64] Register cache improvements.
Adds the ability to flush the cache and maintain state.
Adds the BindToRegister ability.
Sorts register usage as callee saved used first, reduces dumping pressure when jumping to external routines/interpreter.
Adds a function to store a register, for use when flushing a register that won't be used during the rest of a block.
2014-12-20 19:36:48 -06:00
Ryan Houdek
5eb8876bac [AArch64] Removes ARMv8 as a generic target.
Generic flag disables the ability to have backpatching supporting.
Also compiles Dolphin with CRC instructions enabled.
2014-12-20 19:36:48 -06:00
Ryan Houdek
d3c2e8fb0a [AArch64] Improvements to the AArch64 emitter.
Fixes issues with negative offsets in loadstore instructions.
Adds ADRP/ADR instructions.
Optimizes MOVI2R function to take advantage of ADRP on pointers, can change a 3 instruction operation down to one.
Adds GPR push/pop operations for ABI related things.
2014-12-20 19:35:52 -06:00
Matthew Parlane
f4ab1443fa Merge pull request #1725 from Sonicadvance1/update_gradle
Updates the gradle build file to the latest needed for Android Studio.
2014-12-21 14:31:05 +13:00
Ryan Houdek
b47cf7e70e Updates the gradle build file to the latest needed for Android Studio.
This may require the buildbot to be updated.
2014-12-20 19:01:40 -06:00
Pierre Bourdon
f2a07e43d1 Merge pull request #1638 from Stevoisiak/DSP-to-Audio
Rename DSP settings to Audio settings
2014-12-21 01:57:39 +01:00
Stevoisiak
91aeb7510f Changed config DSP references to config audio 2014-12-20 19:46:59 -05:00
Lioncash
0735aaf208 Merge pull request #1741 from Sonicadvance1/android_stop_pretending
[Android] Raise requirements to Android 4.3 and OpenGL ES 3.0
2014-12-20 17:03:41 -05:00
Ryan Houdek
3b332f7270 [Android] Raise requirements to Android 4.3 and OpenGL ES 3.0
We need to stop pretending that we "support" GLES 2.0 devices.
We are a high performance application that requires GLES 3.0, which was officially supported in Android 4.3.
The few Android phones that released with Android 4.2 and supported OpenGL ES 3.0 have already been updated to a later Android version.
2014-12-20 15:43:51 -06:00
Ryan Houdek
829132d465 Merge pull request #1732 from Sonicadvance1/stupid_android_garbage
Work around broken Android garbage.
2014-12-20 15:29:38 -06:00
Ryan Houdek
f2d998c938 Work around broken Android garbage.
This fixes running Dolphin on the Nexus 9.

Android's EGL stack has internal arrays that they use for tracking OpenGL function usage. Probably has something to do with their OpenGL profiling
garbage that used to be in ADT.

Android has three of these arrays, each statically allocated.
One array is for all GLES 1.x functions
One array is for all GLES 2.0/3.0/3.1 and a couple of extensions they deem worthy of being in this array.
The last array is for all function pointers grabbed via eglGetProcAddress that isn't in the other two arrays.

The last array is the issue that we are having problems with. This array is 256 members in length.
So if you are pulling more than 256 function pointers that Google doesn't track in their internal array, the function will return NULL and yell at you
in logcat.

The Nvidia Shield Tablet gets around this by replacing part of the EGL stack with their own implementation that doesn't have this garbage.
The Nexus 9 on the other hand doesn't get away with this. So we pull >100 more function pointers than the array can handle, and some of those we need
to use.

The workaround for this is to grab OpenGL 1.1 functions last because we won't actually be using those functions, so we get away with not grabbing the
function pointers.
2014-12-20 15:15:57 -06:00
Dolphin Bot
f978d141c8 Merge pull request #1720 from Armada651/stereo-msaa
FramebufferManager: Support resolving a multi-layered EFB
2014-12-20 20:35:36 +01:00
Markus Wick
f8bf938f37 Merge pull request #1738 from degasus/master
OGL: Fix OGL3 with stereo enabled
2014-12-20 19:57:27 +01:00
degasus
a858db1d27 OGL: move osd warning for not supported stereo mode into config validation 2014-12-20 19:54:00 +01:00
degasus
ed9c14e0d5 OGL: Fix OGL3 with stereo enabled 2014-12-20 19:13:34 +01:00
Markus Wick
9122c868fe Merge pull request #1734 from Armada651/stereo-fixes
GeometryShaderManager: Set stereo parameters in a SetConstants() call.
2014-12-20 17:48:31 +01:00
Pierre Bourdon
dad7911214 Merge pull request #1486 from rohit-n/goto
Remove some gotos.
2014-12-20 16:47:55 +01:00
Pierre Bourdon
cee4a85a12 Merge pull request #1633 from JosJuice/dvd-speed-tweak
DVDInterface: Tweak speeds
2014-12-20 16:46:22 +01:00
Pierre Bourdon
24a2ca4d28 Merge pull request #1703 from FioraAeterna/saveregs
JIT: free up a register by eliminating RCODE_POINTERS
2014-12-20 16:45:08 +01:00
Pierre Bourdon
e7eb4c06e2 Merge pull request #1634 from JosJuice/disc-drive-unification-lite
Make WII_IPC_HLE_Device_DI call DVDInterface
2014-12-20 16:41:52 +01:00
Jules Blok
d37b65c117 FramebufferManager: Support resolving a multi-layered EFB in OGL. 2014-12-20 16:08:00 +01:00
Pierre Bourdon
9fb7091f36 Merge pull request #1737 from degasus/master
OGL: don't clear the stencil buffer
2014-12-20 15:34:39 +01:00
degasus
3322c55484 OGL: don't clear the stencil buffer
We don't have one. This should remove some spamming of the nvidia driver.
2014-12-20 15:17:20 +01:00