Ryan Houdek
e8a4cc0f71
Screenshot capability of Software rasterizer for feature completness.
2013-11-15 22:08:08 -06:00
Ryan Houdek
15bb974224
[Android] Add screenshot nativelibrary function.
2013-11-15 17:32:50 -06:00
Ryan Houdek
0720026dab
[Android] Disable the workaround for Qualcomm devices with driver >= 53 for the rotated framebuffer since it is fixed now.
2013-11-15 16:56:21 -06:00
Ryan Houdek
b9d7bb9012
[Android] Broken UBOs has been fixed in Adreno driver v53, so update the comment in DriverDetails.h. Also enable dynamic UBO array member access with that version since there is a high chance of it being fixed. Dynamic UBO member access is commonly noticed with character models being terrible looking.
2013-11-15 16:51:07 -06:00
Ryan Houdek
0e415467c4
[Android] Spawn a message if someone's phone doesn't support NEON. NEON is a requirement for Dolphin Mobile on ARM, CPU core will crash without it.
2013-11-15 14:17:47 -06:00
Ryan Houdek
3e6e997e8b
Fix OS X wxWidgets complaining.
2013-11-15 01:15:44 +00:00
Ryan Houdek
117bf435b0
Fix GUI-less build. Also potentially OS X. We now require libpng due to our screenshot code relying on it now. WXWidgets links in libpng by itself so it isn't noticed in a wxwidgets build. OS X seems to not have libpng linked in from wxWidgets so just link in libpng at all times.
2013-11-15 01:09:38 +00:00
Ryan Houdek
63a9dff3bb
Windows requires memory to be included to use unique_ptr
2013-11-13 12:51:49 -06:00
Ryan Houdek
652ef24a2e
Remove our two instances of auto_ptr and replace it with unique_ptr. auto_ptr has been deprecated.
2013-11-13 11:44:04 -06:00
Ryan Houdek
39ad5a2f7a
Disable Fastmem on JIT64IL. JIT64IL is completely incompatible with Fastmem and doesn't need it since it has its own way to speed up memory accesses. This fixes the JIT64IL core, which I totally didn't break but was blamed for.
2013-11-12 19:37:09 -06:00
Ryan Houdek
7c1ac441f6
Redo 'Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic.' This time with support for Windows.
2013-11-12 16:34:56 -06:00
Ryan Houdek
a72b3ca20c
[ARM] Don't leave my test code in the JIT core.
2013-11-12 04:22:42 +00:00
Ryan Houdek
56557c845a
[ARM] Fix NEON emitter encodings.
2013-11-12 01:01:54 +00:00
Ryan Houdek
68ba0f7f4e
Add a comment to the magic value reading location.
2013-11-11 17:17:49 +00:00
Ryan Houdek
d1de336879
[ARM] More NEON emitters.
2013-11-11 01:47:05 +00:00
Ryan Houdek
e013a74cdb
[ARM] More NEON emitters.
2013-11-10 05:02:32 +00:00
Ryan Houdek
948ace9546
[ARM] Minor idle skip optimization in bx.
2013-11-05 13:05:39 +00:00
Ryan Houdek
56685c396a
[ARM] Fix an issue with the data offset in LoadStore operations. Thanks to PPSSPP.
2013-11-05 13:05:38 +00:00
Ryan Houdek
0f061e4e7c
[Android] Do /not/ give users the benefit of the doubt that the device supports OpenGL ES 3 when we can't grab an OpenGL context. The only devices that fail to do so is PowerVR5 and we can't run with them anyway.
2013-10-31 07:30:18 -05:00
Ryan Houdek
f18c461fd6
[viewport-float] Fix OpenGL ES 3 build.
2013-10-29 17:10:02 +00:00
Ryan Houdek
c8d7db9767
Fix FXAA shader for OpenGL ES 3.
2013-10-29 07:24:16 +00:00
Ryan Houdek
58d42f43e3
[Android] Fix PCH build. Clean up DolphinWX cmake file a little bit. Modify our android cmake toolchain file to make the default build location not be source root, because that is stupid.
2013-10-28 19:59:03 -05:00
Ryan Houdek
cfa709a1c5
This introduces a FXAA post processing shader for our OpenGL backend. I would like to acredit mudlord for making this possible. He provided the code necessary for making this PP shader possible. Without it, this shader would have still not been done. So a major hats off for doing all the hard work mudlord.
2013-10-27 17:45:53 -05:00
Ryan Houdek
8e73e8ae5f
Wipe all traces of OpenSSL's AES implementation. Use polarssl instead.
2013-10-27 18:27:07 +00:00
Ryan Houdek
1eba4da21a
Revert "Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic."
...
This reverts commit b2c4901b3f .
Breaks Windows build. GCC 4.9 isn't out yet anyway.
2013-10-26 19:21:00 -05:00
Ryan Houdek
b2c4901b3f
Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic.
2013-10-26 19:05:31 -05:00
Ryan Houdek
187827624f
[Android] 0.12 release.
2013-10-21 12:09:15 -05:00
Ryan Houdek
e3febb1603
[Android] Fix MIPS compiling.
2013-10-21 09:52:43 -05:00
Ryan Houdek
887f8e463d
[Android] Fix MIPS compiling.
2013-10-21 09:43:19 -05:00
Ryan Houdek
aa713e11f7
[Android] Fix Build.
2013-10-21 09:36:40 -05:00
Ryan Houdek
f0bf5aa113
Fix rendering on Adreno and Mali. This adds a new DriverDetails bug to know if the bufferstreaming is broken. Thanks degasus for fixing this.
2013-10-16 11:27:58 +00:00
Ryan Houdek
2f0aca2055
[ARM] Fix the JITILArm and JITArm dispatchers from comex's recent changes.
2013-10-12 08:30:26 +00:00
Ryan Houdek
0556193442
Build fix for previous commit.
2013-10-11 21:45:44 -05:00
Ryan Houdek
cf7521dc36
[Android] Make Tegra 4 output graphics that aren't visually appealing.
2013-10-11 21:42:07 -05:00
Ryan Houdek
715d5ae8a7
Merge branch 'JitArmIL'
...
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
Ryan Houdek
7bc4838243
Add the Arm JITIL to DolphinWX.
2013-10-09 23:09:18 +00:00
Ryan Houdek
ba9f2d52e1
Add the JITIL Arm recompiler to the Android settings.
2013-10-09 23:08:12 +00:00
Ryan Houdek
bd79603c66
[ARM-JitArmIL] Enable a bunch of instructions.
2013-10-09 23:03:39 +00:00
Ryan Houdek
f5e1b4659a
[ARM] Clean up LSL, LSR, and ASR emitters, we don't need a separate instruction for each to support registers.
2013-10-09 22:57:31 +00:00
Ryan Houdek
4914665429
[ARM-JITArmIL] Remove the SystemRegisters file.
2013-10-09 20:59:15 +00:00
Ryan Houdek
932586f743
[JitArmIL] Fix Windows build?
2013-10-09 00:55:43 +00:00
Ryan Houdek
4263f062b0
[JITArmIL] Fix JITIL compiling on x86.
2013-10-08 19:16:27 -05:00
Ryan Houdek
ce5dbfe7a7
[ARM-JITArmIL] Begin merging of the two IL cores in to a common source base.
2013-10-08 19:23:37 +00:00
Ryan Houdek
a0f2183424
[ARM-JITArmIL] Provide the necessary instructions to allow the JitArmIL to actually run. Disable branch instructions as well for now since one is wrong somewhere.
2013-10-08 16:42:33 +00:00
Ryan Houdek
7dd8deecec
[ARM] Update the ArmEmitter with a bunch of NEON emitters. This adds around 47 instruction emitters if I counted correctly. None well tested at this point. On going to add all the NEON emitters.
2013-10-08 10:17:01 +00:00
Ryan Houdek
0236ba3f86
[ARM-JITARMIL] CMP optimization. Int3 IR. DownCount added.
2013-10-07 23:25:13 +00:00
Ryan Houdek
a4eab75d15
[ARM] Beginning of JitArmIL JIT recompiler. This code is entirely based off of magumagu's work with the JIT64IL. This puts down the base needed for the recompiler. Starfield actually runs quite a few blocks being mysteriously dying while most other games just exit out due to an instruction not being done yet. A lot of this code can be tidied up and actually shared between the two IL recompilers but isn't yet done.
2013-10-07 14:25:07 +00:00
Ryan Houdek
c054049712
Fix PixelShaderGen from the previous commit.
2013-10-06 21:54:09 -05:00
Ryan Houdek
26c38648ec
[Android] Missed a few things for PowerVR544MP3 'support.' It doesn't actually get any video output on it just like Tegra 4.
2013-10-06 21:51:41 -05:00
Ryan Houdek
a40daac5b1
[Android] Fix an issue where emulation would crash if we couldn't retrieve GPU information. Also if we can't get the graphics information, give them the benefit of the doubt and enable the GLES3 option.
2013-10-06 21:32:05 -05:00
Ryan Houdek
d4bd5fde71
Only emit the texgens if they are used, not every single time do all of them.
2013-10-06 21:32:05 -05:00
Ryan Houdek
6bdcde9dd6
[Android] Tegra 4 'support.' This brings up the OpenGL backend to support Tegra 4 to the point where it will run games but it doesn't have any video output for some reason. This is a large change that doesn't actually change much functionally. Walking through the changes.
...
It changes the string in the Android backend select to just OpenGL ES.
Adds a check in the Android code to check for Tegra 4 and to enable the option to select the OpenGL ES backend.
Adds a DriverDetails bug under BUG_ISTEGRA as a blanket case of Tegra 4 support.
The changes that effects most lines in this change. Removing all float suffixes in the pixel/vertex/util shaders since OpenGL ES 2 doesn't support float suffixes.
Disables the shaders for reinterpreting the EFB format since Tegra 4 doesn't support integers.
Changes GLFunctions.cpp to grab the correct Tegra extension functions.
Readds the GLSL 1.2 'hacks' as GLSLES2 'hacks' since they are required for GLSL ES 2
Adds a GLSLES2 to the GLSL_VERSION enum.
Disable the SamplerCache on Tegra since Tegra doesn't support samplers...
Enable glBufferSubData on Tegra since it is the only mobile GPU to correctly work with it.
Disable glDrawRangeElements on Tegra since it doesn't support it, This uses glDrawElements instead.
2013-10-06 03:12:29 -05:00
Ryan Houdek
fe3d0c9aa2
[ARM] Disable subfic, it prevents Wind Waker from booting into a save game.
2013-10-03 06:43:16 +00:00
Ryan Houdek
3c53f2e5e0
[Android] Fix Fastmem on Android 4.2
2013-09-29 20:53:32 -05:00
Ryan Houdek
e37cb1fc76
Implement CR1 for the intepreter. To be honest I have no idea why this was never done previously, all it is is copying four bits from the FPSCR register to CR1. This fixes issue 2390.
2013-09-26 18:09:25 +00:00
Ryan Houdek
4efc3e6c8f
Quick build fix.
2013-09-26 07:50:24 +00:00
Ryan Houdek
feaf65f2ae
[Android] The dynamic UBO access isn't actually fixed, contrary to what rev cd646d8e236 said. I presumed it fixed with v4x drivers, but I didn't have the LG G2 with me to test 100% at the time. This won't afflict any Adreno device with v4x drivers since UBOs are disabled for them since they are _broken_.
2013-09-26 07:46:56 +00:00
Ryan Houdek
691f76b826
[ARM] Implement CR1 setting for the few floating point instructions that I have setting the flags. For the rest, drop to interpreter if it sets CR1. At that point it'll spam a panic alert. I don't quite understand why Interpreter and JIT64/IL don't do this yet, it's a simple 4 bit copy.
2013-09-25 18:17:05 +00:00
Ryan Houdek
624c92f97e
[ARM] fresx/fnmaddsx/fselx/frsqrtex/fnmaddx implementations.
2013-09-25 03:00:57 +00:00
Ryan Houdek
ae75f92b2a
[ARM] psq_lx/psq_lux/psq_stx/psq_stux implementations. Four more instructions that JIT64 doesn't have.
2013-09-25 02:22:52 +00:00
Ryan Houdek
cd646d89e2
[Android] The issue with the dynamic UBO access on Adreno platforms was fixed with v41 of the video drivers. v41 and above of the video drivers fix the spiky polygon problems that are noticed ingames.
2013-09-25 01:50:02 +00:00
Ryan Houdek
357a7707a6
[ARM] ps_cmpu0/ps_cmpu1/ps_cmpo0/ps_cmpo1 implementations.
2013-09-24 21:13:33 +00:00
Ryan Houdek
74bc855f20
[ARM] ps_res implementation.
2013-09-24 21:00:50 +00:00
Ryan Houdek
3b1b0d3fb5
[ARM] ps_div implementation.
2013-09-24 20:46:57 +00:00
Ryan Houdek
94a731b49d
[ARM] fctiwx implementation.
2013-09-24 20:37:10 +00:00
Ryan Houdek
482170c3ea
[ARM] Implement subfic with optimizations stolen from JIT64.
2013-09-24 19:01:03 +00:00
Ryan Houdek
405aa30cb8
[ARM] Fix fastmem...
2013-09-24 18:03:06 +00:00
Ryan Houdek
8e2e5a4e70
[ARM] Have both fastmem and non-fastmem paths for floating point loadstores because fastmem is completely broken garbage on Android at this point in time.
2013-09-24 17:40:12 +00:00
Ryan Houdek
5866859ff0
Screw you comex, this doesn't even make any damn sense.
2013-09-24 17:25:13 +00:00
Ryan Houdek
eb6ed3e42a
[ARM] Change all floating point loadstores to fastmem implementations except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker.
2013-09-24 05:41:58 +00:00
Ryan Houdek
41ab4a2275
Nevermind the previous commit, SafeLoadToEAX already calls in to UnsafeLoadToEAX if fastmem is enabled. This one just tidys up the code.
2013-09-24 01:40:19 +00:00
Ryan Houdek
aa41978834
Enable fastmem for the lfs instruction for unix and OSX as well.
2013-09-24 01:34:08 +00:00
Ryan Houdek
3fe8134f3b
[ARM] lfsux/lfdx/lfdux/stfsx/stfsux/stfdx/stfdux implementations.
2013-09-24 01:17:24 +00:00
Ryan Houdek
96a77f9feb
[Android] Fix the ability to stop the game and start another.
2013-09-23 01:43:18 -05:00
Ryan Houdek
bab91494d5
Merge branch 'master' into android-core-control
2013-09-23 00:47:57 -05:00
Ryan Houdek
1da6469c62
[Android] Use new 4.0 icon.
2013-09-23 00:25:34 -05:00
Ryan Houdek
bdae5d1027
[Android] Fix typo, FSAA stands for full scene antialiasing.
2013-09-22 11:59:10 -05:00
Ryan Houdek
6340ad68be
Merge branch 'GLES3-FSAA'
2013-09-22 10:00:51 -05:00
Ryan Houdek
81effb8099
[Android] Add in FSAA option.
2013-09-22 09:25:38 -05:00
Ryan Houdek
91619e28b8
Pull in the glRenderbufferStorageMultisample function pointer at run time.
2013-09-22 09:10:47 -05:00
Ryan Houdek
53b93f8cd5
Allow GLES3 hardware to support FSAA. Need a GUI option for this on Android devices.
2013-09-22 13:54:47 +00:00
Ryan Houdek
85f067780a
[ARM] Reenable flush per instruction with FPR cache. Something is still very wrong.
2013-09-19 02:08:20 +00:00
Ryan Houdek
930f997f04
[ARM] Fix and optimize mtcrf.
2013-09-19 02:08:19 +00:00
Ryan Houdek
1b1b5d2100
[ARM] MicroOps in the branching instructions.
2013-09-19 02:08:19 +00:00
Ryan Houdek
5158aea4dc
[ARM] Fix misuse of RBIT in crXXX, meant to use MVN.
2013-09-19 02:08:19 +00:00
Ryan Houdek
452fd84bbd
[ANDROID] Fix ARM JIT. Is due to Android using softfp instead of hardfp.
2013-09-18 17:21:22 -05:00
Ryan Houdek
6fc2117503
[ARM] Enable VMOV to move from double VFP reg to two ARM registers.
2013-09-18 17:21:22 -05:00
Ryan Houdek
24a44ecfb8
[ANDROID] Add two new DriverDetails bugs for Adreno. V45 of the driver has broken shader compilation with UBOs in the shaders, this is most likely fixed with V53 found in the Nexus 5. Add a bug for issue surrounding on screentext and doing a glClear after swap causes screen swizzling and zero frames rendered respectively. On the Java side, pass in the dimensions of the screen swapped since there is an issue with Adreno where it rotates the output 90 degrees for some reason. Disable the GLSL shader cache on Android for now due to the inability to cleanly exit the emulator, this tends to cause the cache to get corrupted. All this together fixes rendering with Adreno 3xx GPUs with driver version v14 and above. In particular my Galaxy S4 still resets with this without the root commands, but my HTC Droid DNA and LG G2 is fine. This must be due to particular 'enhancements' that the Samsung kernel has over the other ones. The speed on Adreno has yet to be optimized, so it will most likely be slow still. Faster than the software rasterizer in any case. The ARMJIT is still broken in at this point, so not much fun can be had.
2013-09-18 02:37:10 -05:00
Ryan Houdek
39a8645ffc
[ARM] Fix the FPR cache to not have to dump registers after every instruction. Add mullwox instruction.
2013-09-17 22:08:23 +00:00
Ryan Houdek
06062d5744
[ARM] Fix VSQRT/VCMP/VCMPE/VCMPE0/VCMP0 emitters when using the high 16 double registers.
2013-09-17 22:08:23 +00:00
Ryan Houdek
302e9c891b
[ARM] crand/crandc/creqv/crnand/crnor/cror/crorc/crxor/mcrf/mfcr/mtcrf/mtsr/mcrxr/mfsr implementations.
2013-09-17 11:00:16 +00:00
Ryan Houdek
dcf74ef2b3
[ARM] Renables load instructions with update.
2013-09-17 11:00:15 +00:00
Ryan Houdek
1529bb48c8
[ARM] Flush the fpr cache between every instruction. Do this until I figure out what is destroying the FPR register states.
2013-09-16 15:44:41 +00:00
Ryan Houdek
7397867b21
[GLES3] Enable support for primitive restart.
2013-09-16 15:43:57 +00:00
Ryan Houdek
9b9526fba2
[ARM] Add dcbt/dcbtst/dcba noops.
2013-09-16 15:13:37 +00:00
Ryan Houdek
98fb4c146e
[ARM] ps_sel implementation.
2013-09-16 14:05:50 +00:00
Ryan Houdek
cba2dd01bc
[ARM] Remove extraneous BKPT from ps_rsqrte.
2013-09-16 13:39:02 +00:00
Ryan Houdek
a0a0c526ae
[ARM] ps_rsqrte implementation.
2013-09-16 12:59:34 +00:00
Ryan Houdek
7d410ec95c
[ARM] VRSQRTE NEON emitter.
2013-09-16 12:58:20 +00:00
Ryan Houdek
5a9cb84ae2
[ARM] ps_nmadd/ps_nmsub implementations.
2013-09-16 12:03:08 +00:00