Commit graph

10021 commits

Author SHA1 Message Date
comex
33ee04626d Don't define __rdtsc if x86intrin.h already does. 2013-10-19 12:40:21 -04:00
Lioncash
81964517d6 Remove a redundant assignment in Init() within PowerPC.cpp. We already assign zero to ppcState.dtlb_last. 2013-10-17 20:38:49 -04:00
Lioncash
b8a947ce0a Fix a filter in the VS project file for JitILCommon-related files. 2013-10-17 06:36:32 -04:00
comex
de1773affb Basic precompiled header support for Linux/OS X. Shaves 20-30% off full rebuild time on my system. 2013-10-17 00:07:35 -04:00
comex
cffe6ba3fd Fix TextureEncoder.h 2013-10-16 23:20:51 -04:00
comex
e1f3a4d7b3 Fix out-of-tree build on OS X. 2013-10-16 23:15:21 -04:00
Tillmann Karras
e4a81f32d4 Document some UGeckoInstruction fields 2013-10-17 04:59:13 +02:00
Rachel Bryk
f605ea9eeb [Netplay] Allow a spectator to leave without affecting players. 2013-10-16 21:44:49 -04:00
degasus
5a212a8fe0 jit64: enable faddsx again
It was disabled because of issue 182, but as this game depeneds on FPRF, it was just 'fixed' because of the fallback to interpreter (which implements FPRF by default).
Also enables FPRF for this game via GameIni, so that the issue is still workaround.

If there are any regressions because of this commit, please try to enable FPRF in GameIni.
2013-10-17 01:43:16 +02:00
degasus
f850d283d1 ogl: only use bufferdata if buffersubdata is broken
Else nvidia fallback would be slower than needed
2013-10-16 15:46:58 +02: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
Tillmann Karras
c234dc97c0 Jit64: optimize floating-point/paired-single arith
The "else if (b != d)" branch was dead code and only works if b == d. Now
the last else block with two temporary XMM registers is not needed anymore.
2013-10-16 00:52:21 +02:00
skidau
b4513313bb Increase the trampoline cache size to cater for fastmem writes.
Fixes issue 6722.
2013-10-16 09:26:08 +11:00
Rachel Bryk
6eb216fc77 (Netplay) Disable record input checkbox while a game is running.
Fixes issue 6734.
2013-10-15 17:28:01 -04:00
comex
b11cf1fa10 Fix config file saving on Windows. 2013-10-15 17:20:00 -04:00
degasus
b1afb32188 ShaderGen: fix for commit bd80de14f4 2013-10-15 14:48:40 +02:00
degasus
bd80de14f4 ShaderGen: drop PerPixelLighting + 8Texcoord hack
D3D9 only supports 8 texcoords. But we need a new one for ppl, so we just store it in the first 4 texcoords in the free 4th component.

This isn't needed for both d3d11 and ogl3, so just remove it.
2013-10-15 14:38:26 +02:00
degasus
f62579761c ShaderGen: remove nonsense for() if() {} 2013-10-15 14:31:02 +02:00
comex
72c1e143f3 Try to atomically save config files. 2013-10-15 02:59:25 -04:00
Lioncash
f3af8ee0f0 Revert "Remove some unnecessary includes."
Turns out this explodes on Linux.

This reverts commit c4696568cc.
2013-10-14 04:05:38 -04:00
Lioncash
c4696568cc Remove some unnecessary includes. 2013-10-14 04:01:57 -04:00
Lioncash
2015cd0928 [Android] Implement OnSharedPreferenceChangeListener within PrefsActivity.java. This allows us to immediately save to the ini config when a preference in the front-end is changed, rather than waiting for the settings window to close. This also allows us to remove handling for preferences from CPUSettingsFragment.java and VideoSettingsFragment.java. 2013-10-13 22:20:34 -04:00
comex
390760bd75 Perf: Use unordered_map instead of map in very slightly hot function.
Incrementing an unordered_map's iterator is a bit faster.
2013-10-13 15:31:42 -04:00
comex
1570558789 Remove unused variable waitingForPEInterruptDisable. 2013-10-13 14:00:38 -04:00
NeoBrainX
59ae93d04e PixelShaderGen: Refine the comment from revision 3fbe1b1ccd. 2013-10-13 14:59:59 +00:00
degasus
3fbe1b1ccd VideoCommon: Update FastDepth's comment 2013-10-13 16:14:30 +02:00
degasus
6798a4763e VideoCommon: revert the ViewPort changes
xfregs isn't written when calling this function, so we have to use such an invalid flag :-(
2013-10-13 15:41:11 +02:00
degasus
2754c1132e VideoCommon: reimplement Dirty() in PixelShaderManager
This isn't needed in VertexShaderManager as it's still in the old dirty flag way.

But it's very importend for PixelShaderManager as some float4s aren't initialized as 0.0f
2013-10-12 20:31:59 +02:00
degasus
50c404ce4a VideoCommon: fix dstAlpha 2013-10-12 20:31:59 +02:00
degasus
0b2fb548c3 VideoCommon: remove SetVSConstant4f 2013-10-12 20:31:59 +02:00
degasus
5de7ac4791 OGL: update ubo workaround 2013-10-12 20:31:59 +02:00
degasus
cc6c454898 VideoCommon: refactor PixelShaderManager setters
The old way was to use a dirty flag per setter. Now we just update the const buffer per setter directly.
The old optimization isn't needed any more as the setters don't call the backend any more.

The follow parts are rewritten:

Alpha

ZTextureType

zbias

FogParam

FogColor

Color

TexDim

IndMatrix

MaterialColor

FogRangeAdjust

Lights
2013-10-12 20:31:25 +02:00
degasus
15ed0ea9cf videoCommon: remove not supported constant types
I'm pretty sure GPUs can read u8 values, but this isn't exported by the API.

But hey, see unpackSnorm4x8 :-)
2013-10-12 20:29:56 +02:00
degasus
6e2fe72b8f D3D: also uses VideoCommon constant buffer handling
As now both backends uses the VideoCommon one, the old setting API was removed.
2013-10-12 20:29:56 +02:00
degasus
7c14463d11 ogl: implement useful constant buffer upload
this will remove the additional memcpy introduced in my last commit
2013-10-12 20:29:56 +02:00
degasus
4377618438 VideoCommon: keep a copy of the const buffer in VideoCommon
The upload in the backend isn't done, it's just pushed by the mostly removed SetMulti*SConstant4fv.
Also no optimizations was done on VideoCommon side, but I can start now :-)

Sorry for the hacky way, but I think this is a nice (working) snapshot for a much bigger change.
2013-10-12 20:29:56 +02:00
degasus
0753ce5bda ogl: use GL_RGBA instead of GL_RGBA8
8 bit per pixel is _everywhere_ the default, so we don't need to define it explicitly.
Also we don't rely on exact 8 bit resolution.
2013-10-12 16:34:06 +02: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
lioncash
615bac7ebc [Android] Replace the getter for the adapter backing the GameListFragment with a function that simply clears the array adapter. Maintains encapsulation this way. Simplified the actual setting of the backing ArrayAdapter for GameListFragment; this allows us to make a class variable a method variable now.
Also fixed up the Javadoc for the OnGameListZeroListener.
2013-10-10 17:08:46 -04:00
Lioncash
511de71736 [Android] Actually show the currently selected CPU core and video backend within the settings screen. 2013-10-10 11:57:18 -04:00
Lioncash
8b6ff7a358 Revert "{Android] Eliminate need for even using a byte array when copying assets over."
Turns out Android devs decided to opt for one of the most retarded ways of handling assets. Assets with some specific extensions are not compressed (png, jpeg, etc), and anything else is compressed. The AssetManager is so revolutionary, that you actually can't retrieve valid FileChannel descriptors from these compressed files! To add to this revolutionary system, they actually didn't give you a straightforward way of disabling this compression. Now using FileChannels are not possible, and thus we must use the much slower way of copying everything over. Thank you Android devs. Godforbid someone would like to use a non-array based way of copying things that's actually efficient, considering DMA access is possible with FileChannels.

This reverts commit 0dd32986b8.
2013-10-10 00:11:33 -04:00
comex
78a4dbced8 Remove more unused stuff. 2013-10-09 21:37:29 -04:00
comex
8962b9606b One shudders to imagine what inhuman thoughts lie behind that code.
(Read_Opcode_JIT and Write_Opcode_JIT read/write from unrelated memory
areas.*  Rename the latter and refactor.)

*except at the one specific exception handler where it doesn't.  I
have no idea what this is supposed to do, but it probably doesn't do
it correctly.  For now, remove the exception.
2013-10-09 21:37:29 -04:00
comex
2e32f11f03 Remove "deprecated" and unused function Read_Opcode_JIT_LC. 2013-10-09 21:37:28 -04:00
comex
5847e26d34 Minor JitCache cleanup. 2013-10-09 21:37:28 -04:00
comex
86f2e1734a Make JIT_UNLIMITED_ICACHE always on.
(1) The alternative doesn't compile.
(2) Despite "unlimited" sounding like a hack, it's actually
    significantly more correct then the alternative, which is no
    emulated icache.
(3) Easier to wrap my head around.
2013-10-09 21:37:28 -04: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
Rachel Bryk
cc05f66ba1 Don't prepend file:// in wxUtils::Explore() on windows. Wxw will just remove it, and/or blow up trying to remove it, if the path isn't ascii.
Fixes issue 6721.
2013-10-09 16:18:33 -04:00
Rachel Bryk
99c89ae109 Fix unicode support for File::Rename() on windows.
Partial fix of issue 6721.
2013-10-09 15:33:21 -04:00
comex
d5e40bfb01 Don't waste time looking up the block if enableBlocklink is off anyway. 2013-10-09 15:01:55 -04:00
Lioncash
0dd32986b8 {Android] Eliminate need for even using a byte array when copying assets over. 2013-10-09 12:35:12 -04:00
Matthew Parlane
414ed6ef63 C.K. should fix his website before throwing stones at obsolete xml. 2013-10-09 23:56:16 +13:00
Matthew Parlane
fbcc41c18e Fix references for OGL, SW and D3D. 2013-10-09 23:49:00 +13:00
Matthew Parlane
935ed814ea Missed a accept error handler.
Init instead of memset.
2013-10-09 23:35:29 +13:00
Matthew Parlane
f811dbb575 Fix accept() bug, which was using the wrong isRW for error conversion.
Also fixed a debug issue where local_name is used uninitialised.
2013-10-09 22:16:04 +13: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
Lioncash
a317391e3d [Android] Change the names of the functions responsible for loading/saving config values in UserPreferences.java. Makes readability better, since they have names that actually go with each other now. LoadIniToPrefs() and SavePrefsToIni(). 2013-10-08 19:08:06 -04:00
Lioncash
efac4bc608 [Android] Rephrase a comment in VideoSettingsFragment.java. 2013-10-08 18:45:10 -04: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
Matthew Parlane
4a0745799f Missed OGL includes apparently. 2013-10-08 18:03:33 +13:00
Matthew Parlane
eb480a406c Fix Windows vcxproj files. 2013-10-08 17:52:18 +13:00
Lioncash
fb4cc76b11 [Android] Remove unnecessary equals comparison in VideoSettingsFragment.java in function SupportsGLES3(). contains() can handle this situation. 2013-10-07 19:50:50 -04:00
Ryan Houdek
0236ba3f86 [ARM-JITARMIL] CMP optimization. Int3 IR. DownCount added. 2013-10-07 23:25:13 +00:00
Jasper St. Pierre
9920362581 Fix MSVC project files
yay relative paths
2013-10-07 18:50:21 -04:00
Jasper St. Pierre
a7c7208103 Put Plugins/ in Core/, rename to VideoBackends 2013-10-07 10:37:01 -04: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
comex
d6f0ecebb4 Fix updating the register even if an exception occurred in MMU mode. 2013-10-07 02:34:38 -04:00
comex
a9908fdf09 Fix build issues on OS X i386. 2013-10-07 02:16:51 -04: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
Lioncash
cf1b634c33 [Android] Remove unnecessary attributes from the ViewPager layout XML file. 2013-10-06 20:04:53 -04:00
Lioncash
5bee29c7c2 [Android] Reflect the string change in the Tegra 4 support commit with the JP strings as well. 2013-10-06 10:45:05 -04:00
Tony Wasserka
ed88cf6cad Removing more references to D3D9. 2013-10-06 13:37:10 +02:00
Tony Wasserka
5de6726658 Remove another D3D9 reference. 2013-10-06 13:30:59 +02:00
Tony Wasserka
d198fee21b Remove more references to D3D9... 2013-10-06 13:30:59 +02:00
Tony Wasserka
61ed40749f Shader generators: Remove any references to D3D9 and cleanup the affected code. 2013-10-06 13:30:56 +02:00
Tony Wasserka
0e2e71e483 Remove some now unused VideoConfig settings. 2013-10-06 13:28:46 +02:00
Tony Wasserka
755b280c3b Rename the Direct3D11 backend to Direct3D. The new short name is D3D. 2013-10-06 13:28:45 +02:00
Tony Wasserka
3b188b0481 VideoConfigDiag: Update video backend description to reflect the D3D9 removal. 2013-10-06 13:28:45 +02:00
Lioncash
0d4df39e1f Remove D3D9 related files.
Cf. issue 6167 for a list of shortcomings that made us decide on removing the backend.
2013-10-06 13:28:41 +02: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
skidau
2b08172a45 Corrected the XMM0 processing for pairedStoreQuantized in the x86 build.
Updated the PC for the fifo writes processing in the less common case.
2013-10-06 16:31:34 +11:00
Matthew Parlane
8722b9cfb5 Missing break for IOCTL_ES_DELETETITLECONTENT 2013-10-06 16:22:44 +13:00
Lioncash
a7d073b0da [Core] Simplify a loop within function Run() in Interpreter.cpp. The increment variable for the for loop is never used at all, so it's sensible to replace it with a while loop. 2013-10-05 14:38:21 -04:00
skidau
2d00c3a4f8 Added code to update the PC before doing a fastmem write. Fixes games with freezing and FIFO errors since r2a339c926e43c11f7b9acc8d3af202f0be54e2b0. 2013-10-05 23:23:49 +10:00
comex
6498a77362 Fix storeSingleFloat stack alignment. 2013-10-05 07:56:57 -04:00
comex
21a114ec28 ...Forgot the XMM regs for x86. 2013-10-05 01:17:34 -04:00
comex
144d7e5500 Fix build-breaking typo. 2013-10-05 01:08:08 -04:00