Commit Graph

13687 Commits

Author SHA1 Message Date
Fiora 72c96c20d3 JIT: more optimizing of float ops based on known input characteristics
If the inputs are both float singles, and the top half is known to be identical
to the bottom half, we can use packed arithmetic instead of scalar to skip
the movddup.

This is slower on a few rather old CPUs, plus the Atom+Silvermont, so detect
Atom and disable it in that case.

Also avoid PPC_FP on stores if we know that the output came from a float op.
2014-11-29 11:33:11 -08:00
Fiora 4e0591cdf1 JIT: float instruction attribute fixes, fix binding mistakes
These instructions modify only the bottom halves of the output register,
so the output register needs to be treated as an input too.
2014-11-29 11:30:52 -08:00
Fiora 8d039a77af JIT: minor cleanup, avoid MOVSD where MOVAPD will do
Avoids false dependencies.
2014-11-29 11:30:51 -08:00
Fiora 7df50b0710 JIT: skip weird fmul rounding if the input is known to be single precision 2014-11-29 11:30:51 -08:00
Yuriy O'Donnell 36b886cb80 D3D: Viewport min and max depth is now clamped to [0..1] range 2014-11-29 11:42:53 +01:00
Yuriy O'Donnell a886d8a8ee Renamed DEPTHPARAMS to PIXELCENTERCORRECTION
This shader constant was previously used for depth remapping in D3D and for pixel center correction. Now it only serves one purpose and the new name makes it clear.
2014-11-29 11:42:52 +01:00
Yuriy O'Donnell 1fe3d07cbd D3D: Removed somewhat mysterious comment
It would be good to know which games exactly exhibited the issue.
2014-11-29 11:11:28 +01:00
Yuriy O'Donnell cc2227fbc3 D3D: Replaced shader-based depth range remap with viewport
This fixes UI rendering in some games mentioned in https://code.google.com/p/dolphin-emu/issues/detail?id=7785
2014-11-29 11:11:28 +01:00
Ryan Houdek 38dfc970df Fixes OpenGL ES rendering.
sampler2DArray doesn't have a default precision, so we need to set it ourselves.
2014-11-29 01:27:47 -06:00
Ryan Houdek f588a82b9a Merge pull request #1294 from FioraAeterna/noaccuratefcmp
JIT: remove "accurate fcmp" option
2014-11-28 22:48:11 -06:00
Ryan Houdek 1aed2542c7 Merge pull request #1602 from FioraAeterna/fixforce25bitimprecise
JIT: fix Force25BitPrecision with accurate single precision mode off
2014-11-28 22:42:44 -06:00
Ryan Houdek e7daf6b3bc Merge pull request #1606 from FioraAeterna/vertexloadercall
Vertex loader: use ABI_CallFunction
2014-11-28 22:40:06 -06:00
Ryan Houdek 5003618587 Merge pull request #1605 from FioraAeterna/fixcrormerge
JIT: fix fcmp+cror merging bug
2014-11-28 22:39:13 -06:00
Ryan Houdek 1a85df0459 Merge pull request #1603 from FioraAeterna/nofastinterrupts
JIT: remove "fast interrupts" option set and then used nowhere
2014-11-28 22:37:52 -06:00
Ryan Houdek 2d2baec65d Merge pull request #1595 from degasus/master
OGL: require GL version >= 3.0
2014-11-28 22:37:35 -06:00
Fiora 7acd5eba17 Vertex loader: use ABI_CallFunction
Should result in faster/shorter code sequences on platforms where generated
code is close enough to the code segment (e.g. Windows).
2014-11-28 20:26:00 -08:00
Ryan Houdek ec3d6da7b5 [ARM32] Remove conditional execution from store instructions. 2014-11-29 02:44:17 +00:00
Ryan Houdek 6c399ce9ae [ARM32] Removes a block of conditional execution in the dispatcher. 2014-11-29 02:42:30 +00:00
Ryan Houdek e358696d46 [ARM32] Removes conditional execution from ARMv7's Jit function. 2014-11-29 02:42:22 +00:00
Lioncash c2e5715034 Merge pull request #1601 from RachelBryk/wiimote-hotkey2
Fix wiimote connect hotkeys.
2014-11-28 19:50:13 -05:00
Fiora d42305aba0 JIT: fix fcmp+cror merging bug
Destination CR bit needs to be cleared if it's not one of the sources.
2014-11-28 16:11:04 -08:00
Jasper St. Pierre 854f6b8688 HW: Poll system input from system timers
Rather than playing terrible hacks to determine the start of input
frames, just update system input periodically. Specifically, every
60th of a second.
2014-11-28 10:56:11 -08:00
Jasper St. Pierre f3b739341e HW: Remove UpdateOutput
All of the rumble interfaces are now immediate mode.
2014-11-28 10:54:04 -08:00
Jasper St. Pierre 86e4da2c07 ForceFeedback: Apply immediately as well 2014-11-28 10:54:04 -08:00
Jasper St. Pierre 1958a10b6f XInput: Apply immediately as well 2014-11-28 10:54:04 -08:00
Jasper St. Pierre 1b3d0173f5 SDL: Apply updates immediately rather than going through UpdateOutput
We're going to remove UpdateOutput as it's redundant, and horribly
complicates the code.
2014-11-28 10:54:03 -08:00
Jasper St. Pierre 1cee3b8cc6 WiimoteEmu: Hardcode acceleration calibration values
Now we don't have any runtime calibration at all.
2014-11-28 10:51:30 -08:00
Jasper St. Pierre 5f6cfd67b7 Nunchuk: Hardcode Nunchuk accelerometre calibration values as well 2014-11-28 10:51:30 -08:00
Jasper St. Pierre 211eafc130 Nunchuk: Hardcode Nunchuk stick calibration values
The game can never change these, so there's no reason to make it
dynamic. Just put the constants in the code.

While we're at it, take the time to clean up the code and also
and document several of the hacks we're doing inside to make the code
clearer to understand.
2014-11-28 10:51:30 -08:00
Jasper St. Pierre 64014d1dcd Nunchuk: Use the accel_cal struct directly in nu_cal 2014-11-28 10:51:30 -08:00
Jasper St. Pierre cd95002356 WiimoteHid: Remove unused structs 2014-11-28 10:51:30 -08:00
Jasper St. Pierre fca9b491cc WiimoteEmu: Remove Spy method
This is the only use for a lot of unused methods and structs, and it's a
poorly written mess that doesn't even compile. Just remove it so we can
clean up the rest of a lot of code.
2014-11-28 10:51:30 -08:00
Jasper St. Pierre e43ad58a3a GCPad: Clean up Motor/Rumble interfaces
Remove the duplication here and just have one Rumble interface that
takes a single strength parameter.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre f2787f620e ControllerInterface: Make UpdateInput / UpdateOutput return void
The return values here have never been checked, so it doesn't make sense
to return a value to begin with.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre 61fcfc4bf2 ControllerInterface: Remove unused ClearInputState 2014-11-28 10:50:45 -08:00
Jasper St. Pierre 367a42dcfd ControllerInterface: Implement dummy UpdateInput / UpdateOutputs
Make the implementation here a bit easier.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre 0c056c6411 DInput: Remove the unsupported Lights output
The LEDs feature doesn't actually do anything: the SetState method is
entirely commented out.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre b5d4e8d37e ControllerInterface: Remove unused "force" parameter
I'm not sure when this nonsense of forcing locking the mutex when it's
already taken should have ever taken effect, but let's be thankful it
isn't now. That was a badly worded sentence.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre 6aa1a59ee8 SI: Clean up controller-like devices with subclassing
This takes the giant mess of controller-like devices (dance mat and
steering wheel) down to something more manageable, similar to how
the Donkey Konga bongo controller works.

Based-on-a-patch-by: comex <comexk@gmail.com>
2014-11-28 10:50:45 -08:00
Ryan Houdek ce059769f6 Merge pull request #1439 from Armada651/ogl-stereo-3d
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
Fiora 41f5ef3304 JIT: remove "fast interrupts" option set and then used nowhere 2014-11-28 06:42:40 -08:00
Fiora 3e893913dd JIT: fix Force25BitPrecision with accurate single precision mode off
Doesn't affect anything now, but it's more correct (and should make setting
AccurateSinglePrecision to false work properly now).
2014-11-28 06:39:47 -08:00
Rachel Bryk df9ace0985 Fix wiimote connect hotkeys. 2014-11-28 08:55:19 -05:00
Fiora 561e96b080 JIT: clear FIFO write addresses when block cache is cleared
Fixes a spurious FIFO write check which caused a flags locking assert in
Splinter Cell: Double Agent.
2014-11-27 17:15:01 -08:00
Unknown W. Brackets 815b7bec96 DiscIO: Change a memset() to zero initialization. 2014-11-27 11:12:17 -08:00
Unknown W. Brackets f54bf81520 DiscIO: Avoid zeroing buffer when compressing gcz.
This saves 6% time.
2014-11-27 08:58:09 -08:00
Unknown W. Brackets 2635e7d9ea DiscIO: Decompress to file using a larger buffer.
This improves performance by around 20% for me, and the memory use impact
is negligible considering Dolphin is otherwise unusable.
2014-11-27 08:34:44 -08:00
Unknown W. Brackets f2f83a0c60 DolphinWX: Allow cancelling gcz compression. 2014-11-27 07:53:28 -08:00
Jules Blok 6d51455195 VideoConfig: Further optimize convergence and separation values and update their descriptions.
Previous convergence distance was much too large.
2014-11-27 16:19:26 +01:00
Jules Blok b3c6602d06 OGL: Only show the options when stereoscopy was enabled in the INI file.
We'll enable the stereoscopy options globally when it is ready for release.
2014-11-27 16:17:37 +01:00
Augustin Cavalier 74291017e5 SystemInfo: various cleanup.
* Rename the copy slot to match naming convention elsewhere
 * Remove the Mac 10.7/10.8 detection as we don't support it now
2014-11-26 15:40:38 -05:00
Augustin Cavalier 59c4ccfa75 GameGrid: enable uniform item sizes.
Looks much nicer this way.
2014-11-26 15:37:12 -05:00
degasus c63a38088a OGL: require GL version >= 3.0
This "fix" a crash because of glVertexAttribI only available on gl3+ contexts.
2014-11-26 21:33:47 +01:00
Augustin Cavalier 9180257c4a "Gamelist view style" -> "List style"
* Cleaner & more concise.
 * Also add some "Alt" shortcuts
2014-11-26 15:32:55 -05:00
Augustin Cavalier ca8316ac54 Remove note about reusing the render widget.
This is actually not possible due to how Qt manages child widgets...
2014-11-26 15:30:35 -05:00
Rohit Nirmal 84b060d313 Fix building with PCH disabled. 2014-11-26 10:21:04 -06:00
Lioncash 25492f3d70 Merge pull request #1593 from lioncash/arm
Arm(64)Emitter: Make some variables static
2014-11-26 07:56:21 -05:00
Lioncash e9b09a4c9f Arm(64)Emitter: Make some variables static 2014-11-25 23:27:48 -05:00
skidau b806680eac Merge pull request #1522 from jcowgill/sfml-2.1
Update / Port to SFML 2.1
2014-11-26 12:33:03 +11:00
skidau 69bd1562e2 Merge pull request #1561 from comex/10.9
Update OS X Requirement to 10.9 + fixes
2014-11-26 12:31:28 +11:00
Fiora 3be31ca2c8 JIT: remove "accurate fcmp" option
This doesn't seem to be necessary anymore now that FPRF is implemented in the
JIT. Technically, this isn't the same as before, since the JIT doesn't
implement the fcmp exception semantics, but as far as testing has shown, this
doesn't seem necessary.

This should make games that use FPRF a few percent faster (e.g. F-Zero GX)
since fcmpx no longer has to be fallbacked.
2014-11-25 09:54:40 -08:00
Lioncash 4afb85ef33 Merge pull request #1584 from degasus/master
OGL: also show driver warnings on release builds
2014-11-25 12:41:47 -05:00
Lioncash aa92797f93 Merge pull request #1582 from Stevoisiak/newImprovedFormatting
More formatting and consistency fixes
2014-11-25 12:41:32 -05:00
Lioncash dcdd4e51f6 Merge pull request #1589 from lioncash/x11
VideoOGL: Move X11 wxWidgets utilities to DolphinWX
2014-11-25 12:41:00 -05:00
James Cowgill a93f86330e Port dolphin to SFML 2.1 2014-11-25 16:44:38 +00:00
Pringo 217ca9ba2b http -> https for Wiki Seach 2014-11-24 22:06:41 -08:00
comex b36b55cfcb Upgrade AudioUnit API usage.
weird that such a simple change doesn't seem to have any obvious
documentation on Apple's website or elsewhere...
2014-11-25 00:42:21 -05:00
comex 759ea3bce7 Update Main.cpp version checks. 2014-11-25 00:27:13 -05:00
comex e631f68c1b Switch from deprecated Carbon idle tickling to Cocoa power assertions.
Also, this avoids keeping the system awake if a game is not being
played.

Frankly, I don't know what the point of precisely tracking these things
is, but that's how the API works.  Feel free to add analogous
functionality on other platforms.
2014-11-25 00:27:13 -05:00
comex aae234c5d7 Fix name conflict between SoundTouch BOOL and ObjC BOOL. 2014-11-25 00:27:13 -05:00
comex 245ff601b7 Merge pull request #1552 from waddlesplash/dolphin-qt
DolphinQt: GameList!
2014-11-25 00:24:32 -05:00
Lioncash c0fd319295 VideoOGL: Move X11 wxWidgets utilities to DolphinWX 2014-11-24 21:15:52 -05:00
Stevoisiak 6da394a4d0 More formatting and consistency fixes 2014-11-24 17:16:59 -05:00
Rohit Nirmal 4d931c16ad Silence a few "zero as null pointer" warnings. 2014-11-24 12:36:46 -06:00
Jules Blok 145e0cc84c OGL: Display the stereoscopy support warning before the stereo setting is reset.
Previously the message would never display, because stereoscopy would be turned off before the warning.
2014-11-24 15:11:00 +01:00
Jules Blok a04edbcb9a VideoConfig: Add separation and convergence modifiers to the game ini. 2014-11-24 15:10:52 +01:00
Jules Blok f64aadd362 VideoConfig: Limit the StereoMonoEFBDepth option to the game ini and introduce a separate section for it. 2014-11-24 12:25:35 +01:00
Jules Blok 0f4d59f612 VideoConfig: Rename StereoFocalLength to StereoConvergence. 2014-11-24 11:58:38 +01:00
Jules Blok 9b2cd82da5 GeometryShaderGen: Set the properties of the VS_OUTPUT struct in the uid. 2014-11-23 14:30:12 +01:00
degasus ed9f258b27 GeometryShader: Don't read from output variables 2014-11-23 14:30:12 +01:00
Jules Blok 106df04e8e GeometryShaderGen: Declare the vertex array size. 2014-11-23 14:30:12 +01:00
Jules Blok 422125c1a9 GeometryShaderGen: Add comments. 2014-11-23 14:30:12 +01:00
Jules Blok a565317a6a VideoConfigDiag: Update convergence description.
The switch to the Nvidia formula reversed this setting.
2014-11-23 14:30:12 +01:00
Jules Blok 72c01e3083 VideoConfigDiag: Remove value labels. 2014-11-23 14:30:12 +01:00
Jules Blok 24e4de3643 VideoConfig: Move stereoscopy settings to the Enhancements section. 2014-11-23 14:30:12 +01:00
Jules Blok 6e62dd3415 Add stereoscopy hotkeys. 2014-11-23 14:30:12 +01:00
Jules Blok 21eabc1b9d OGL: Add warning message when stereoscopic 3D is enabled but unsupported. 2014-11-23 14:27:40 +01:00
Jules Blok 0f63186371 TextureCache: Add "Mono EFB Depth Copy" stereoscopy option. 2014-11-23 14:27:40 +01:00
Jules Blok 9994ccb342 PostProcessing: Invalidate shader when anaglyph stereoscopy is toggled. 2014-11-23 14:27:40 +01:00
Jules Blok f3ddf37d07 VideoCommon: Switch to Nvidia stereoscopy offset formula. 2014-11-23 14:27:40 +01:00
Jules Blok 8210b9c915 TextureCache: Ensure that all render target textures have as many layers as the frame buffer.
Also fixes a case where the D3D code path did not initialize num_layers leading to undefined behaviour.
2014-11-23 14:27:40 +01:00
Jules Blok 02ad1a36ea VideoConfigDiag: Update descriptions.
Since we cannot accurately calculate the eye seperation or the focal length without headtracking these values are purely virtual.
2014-11-23 14:27:40 +01:00
Jules Blok 27f3f804a0 ShaderGen: Only pass VS_OUTPUT between shaders if stereo 3D is enabled.
GLSL130 doesn't support passing structs between shaders.
This is not a problem for stereo 3D which has a GLSL150 requirement.
2014-11-23 14:27:40 +01:00
Jules Blok 51a4d6a4be GeometryShader: Adjust positions after projection.
By adjusting the positions in clip space we can avoid the re-projection.
2014-11-23 14:27:40 +01:00
Jules Blok ee76c03160 TextureCache: Recompile EFB2Tex shaders when stereo 3D is toggled. 2014-11-23 14:27:40 +01:00
Jules Blok 4d075c2efb ProgramShaderCache: Abort shader compilation if geometry shader failed to compile. 2014-11-23 14:27:40 +01:00
Jules Blok 6642af2404 OGL: Remove Virtual XFB SBS support. 2014-11-23 14:27:40 +01:00
Jules Blok acc65ee608 GeometryShader: Replicate missing position manipulations from vertex shader. 2014-11-23 14:27:40 +01:00
Jules Blok ab76cf8b5e PostProcessing: Apply color correction to the anaglyph shader.
The eyes were accidentally swapped, the left filter only allows red to pass so the left eye texture should be used in the red channel.
2014-11-23 14:27:39 +01:00
Jules Blok 081212b765 TextureCache: Force mono copies of the depth buffer.
Fixes stereoscopic stencil shadows in some games.
2014-11-23 14:27:39 +01:00
Jules Blok 3baa01fc73 VideoConfig: Use a smaller focal length default. 2014-11-23 14:27:39 +01:00
Jules Blok 6b2261deca VideoConfigDiag: Update descriptions of stereoscopy settings. 2014-11-23 14:27:39 +01:00
Jules Blok 2cb2290910 TextureCache: Fix invalid cast. 2014-11-23 14:27:39 +01:00
Jules Blok c0a5ae1746 OGL: Also redefine glFramebufferTexture on OpenGL ES. 2014-11-23 14:27:39 +01:00
Jules Blok aa57feb9a8 ProgramShaderCache: Don't call glAttachShader if no geometry shader was compiled. 2014-11-23 14:27:39 +01:00
Jules Blok f74d1b16ed OGL: Add Top-and-Bottom stereoscopy mode. 2014-11-23 14:27:39 +01:00
Jules Blok 1261bd02ca VertexShaderManager: Add stereoscopy options to swap the left and right eye. 2014-11-23 14:27:39 +01:00
Jules Blok c3ad6e7820 PostProcessing: Add support for anaglyph stereoscopy mode. 2014-11-23 14:27:39 +01:00
Jules Blok 6c8f3fa861 VideoConfig: Add StereoMode enumeration. 2014-11-23 14:27:39 +01:00
Jules Blok 0eb0c47eba Render: Improve SBS presentation.
New calculation properly takes pillar boxing into account.
2014-11-23 14:27:39 +01:00
Jules Blok d7804a4d3e Cosmetics. 2014-11-23 14:27:39 +01:00
Jules Blok 9b22e15180 VideoConfigDiag: Add stereoscopy options group. 2014-11-23 14:27:38 +01:00
Jules Blok 4d9589b35f Cosmetics. 2014-11-23 14:27:38 +01:00
Jules Blok 9b4185ffdf ShaderGen: Make use of padding to store the stereo flag. 2014-11-23 14:27:38 +01:00
Jules Blok 35342664e3 OGL: Disable stereoscopy if the GPU does not support geometry shaders. 2014-11-23 14:27:38 +01:00
Jules Blok f370cb386c ProgramShaderCache: Always generate a geometry shader UID, even if stereoscopy is disabled. 2014-11-23 14:27:38 +01:00
Jules Blok 6cacfad010 GeometryShader: Transform the projection within the geometry shader.
Reduces the amount of data transferred through uniforms.
The shearing transformation is reduced to a single multiplication/addition for optimization.
2014-11-23 14:27:38 +01:00
Jules Blok 4fd943aedd VideoConfig: Limit the Stereo 3D option to the OpenGL backend. 2014-11-23 14:27:38 +01:00
Jules Blok 284be96cd5 OGL: Recreate the framebuffers when the stereo setting changes. 2014-11-23 14:26:56 +01:00
Jules Blok 63b37e29d1 ShaderGen: Rename "eye" to "layer".
Keeping things generic.
2014-11-23 14:26:56 +01:00
Jules Blok d583720a59 GeometryShaderGen: Support stereoscopy on GPUs without support for instancing. 2014-11-23 14:26:56 +01:00
Jules Blok 176191dc16 ShaderGenCommon: Move uniforms into a common static string. 2014-11-23 14:24:09 +01:00
Jules Blok 0a72cf94cb TextureCache: Ignore the geometry shader if stereoscopy is disabled. 2014-11-23 14:24:09 +01:00
Jules Blok fa32f751d3 ShaderGen: Handle ShaderCode objects directly.
ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.
2014-11-23 14:24:09 +01:00
Jules Blok b236c363de ShaderGen: Add a stereoscopy flag in the UID data. 2014-11-23 14:23:42 +01:00
Jules Blok 4fe9ceeee2 TextureCache: Set proper vertex limit in geometry shader.
Without instancing 6 vertices are output instead of 3.
2014-11-23 14:23:42 +01:00
Jules Blok 5944d15021 TextureCache: Check the number of layers before reusing a texture. 2014-11-23 14:23:42 +01:00
Jules Blok 272ea90ca5 GeometryShaderGen: Allow stereoscopy to be disabled.
Will facilitate future use of this generator for other purposes.
2014-11-23 14:23:41 +01:00
Jules Blok 80616c6e9e TextureCache: Implement layered framebuffer support.
Stereoscopic EFB2Tex is now supported.
2014-11-23 14:23:41 +01:00
Jules Blok d9e280e338 PixelShaderGen: Sample the correct texture layer. 2014-11-23 14:23:41 +01:00
Jules Blok f6ea293027 VertexShaderManager: Compute stereoscopy projection matrices. 2014-11-23 14:23:41 +01:00
Jules Blok c64486075d PostProcessing: Add layered stereoscopy support. 2014-11-23 14:23:41 +01:00
Jules Blok 81e9004679 VideoConfigDiag: Add Stereo 3D option. 2014-11-23 14:23:41 +01:00
Jules Blok 2d8ec62beb Pass VS_OUTPUT structs between shaders. 2014-11-23 14:23:41 +01:00
Jules Blok b005f61a2e Add geometry shader generator for stereo 3D. 2014-11-23 14:22:55 +01:00
degasus 6670cacddc use GL_TEXTURE_2D_ARRAY for most of our textures 2014-11-23 14:22:22 +01:00
Lioncash 60e9301f40 Merge pull request #1586 from lioncash/ar
DolphinWX: Fix button handling for AR codes and ISO patch removal.
2014-11-22 17:42:21 -05:00
Lioncash f73b6abdf5 DolphinWX: Fix patch removal 2014-11-22 17:25:14 -05:00
Lioncash be2331b6f1 DolphinWX: Fix button handling for AR codes 2014-11-22 16:44:31 -05:00
degasus 6f3e20ac42 OGL: disable bbox writes if not supported 2014-11-22 15:17:57 +01:00
degasus 36fe8ccf46 OGL: also show driver warnings on release builds 2014-11-22 15:07:52 +01:00
Ryan Houdek 2fdeefb65b Adds support for OpenGL ES draw_elements_base_vertex.
This is the same extension that we all know and love but under a different name with some different requirements.
In regular OpenGL fashion, you can't just move a desktop OpenGL extension to OpenGL ES without ratifying a new extension, which is why this falls
under a EXT extension, which in turn causes it to have suffixes attached to their function names.

This is the first step in our way towards conquering all mobile GPUs that don't support desktop OpenGL, hopefully we also can add support for
buffer_storage to OpenGL ES as well so we can make full use of this extension.
2014-11-21 18:57:32 -06:00
Augustin Cavalier 1e17bbce0f DolphinQt: GameList! 2014-11-21 18:36:49 -05:00
Ryan Houdek e84999386b Merge pull request #1579 from Sonicadvance1/armv7-fastmem-rewrite
Rewrites ARMv7 fastmem entirely.
2014-11-21 14:54:05 -06:00
Ryan Houdek bfbbddd76f Rewrites ARMv7 fastmem entirely.
This is a fairly lengthy change that can't be separated out to multiple commits well due to the nature of fastmem being a bit of an intertangled mess.
This makes my life easier for maintaining fastmem on ARMv7 because I now don't have to do any terrible instruction counting and NOP padding. Really
makes my brain stop hurting when working with it.

This enables fastmem for a whole bunch of new instructions, which basically means that all instructions now have fastmem working for them. This also
rewrites the floating point loadstores again because the last implementation was pretty crap when it comes to performance, even if they were the
cleanest implementation from my point of view.

This initially started with me rewriting the fastmem routines to work just like the previous/current implementation of floating loadstores. That was
when I noticed that the performance tanked and decided to rewrite all of it.

This also happens to implement gatherpipe optimizations alongside constant address optimization.

Overall this comment brings a fairly large speedboost when using fastmem.
2014-11-21 05:21:57 -06:00
Matthew Parlane 1f7dbbef07 Merge pull request #1567 from comex/remove-android-ndk-hack
Remove Android <ucontext.h> hack.
2014-11-21 19:56:28 +13:00
Matthew Parlane 4ef0ab2731 Merge pull request #1534 from FioraAeterna/fixd3dtex1x1
D3D: fix issues with multi-level 1x1 textures on D3D
2014-11-21 19:12:58 +13:00
Matthew Parlane 21e4e035cc Merge pull request #1281 from Stevoisiak/RenameEuRGB60
Renamed EuRGB to PAL60
2014-11-21 19:09:42 +13:00
Lioncash 2ef4a939dc Merge pull request #1529 from FioraAeterna/ssevertex
Vertex loader: more vector code
2014-11-20 22:33:29 -05:00
skidau 15e7a8c247 Merge pull request #1573 from kamiyo/fix-wiimote-speaker
Fix wiimotespeaker emulation affecting real wiimote
2014-11-21 13:13:21 +11:00
comex aa452f4fe8 Merge pull request #1576 from comex/osx-qt-build-fixes
OS X Qt build fixes
2014-11-20 12:11:43 -05:00
Lioncash 6d0faced59 Merge pull request #1580 from lioncash/android
InputConfigFragment: Use a StringBuilder for string concatenation
2014-11-20 11:19:35 -05:00
Lioncash d4a8e51e71 AboutFragmentItem: Remove incorrect javadoc tag 2014-11-20 09:23:27 -05:00
Lioncash feb038bec3 InputConfigFragment: Use a StringBuilder for string concatenation
This is the recommended way to join strings, since it doesn't destroy and recreate the string repeatedly.
2014-11-20 09:18:30 -05:00
Fiora 3ddf82a318 Vertex Loader: SSE implementations of more position/texcoord/normal formats
~35-45% faster NFS:HP2, possibly other vertex-bound games.
2014-11-20 02:13:19 -08:00
skidau 2968cb138c Fixed the fast disc speed option (immediately service the interrupt instead of going through the scheduler). 2014-11-20 18:23:05 +11:00
skidau ba1a8d2ef3 Merge pull request #1517 from JosJuice/cav-disc-drive
DVDInterface: Timing accuracy improvements
2014-11-20 13:30:02 +11:00
comex fb50cb6d99 Merge pull request #1550 from degasus/bbox
OGL: implement bounding box support with ssbo
2014-11-19 20:25:23 -05:00
comex ba4a763410 Move library aggregation into common CMakeLists.txt; add missing libs to DolphinQt.
Fixes DolphinQt build (on OS X, anyway) when libav is enabled.
2014-11-19 20:09:12 -05:00
comex dd2c8c49b3 Merge pull request #1515 from RachelBryk/gpudeterminism-isoprops
Add GPUDeterminismMode to isoproperties.
2014-11-19 20:03:52 -05:00
Lioncash ccebac8bcc Merge pull request #1456 from Stevoisiak/AddCountries
Additional Country Filters
2014-11-19 19:21:59 -05:00
comex 688b1e537e rename CopyDataIntoBundle target name to avoid wx/qt conflict 2014-11-19 14:53:51 -05:00
Lioncash 19dabee326 Merge pull request #1568 from rohit-n/android-warnings
Android: Silence a few warnings.
2014-11-19 12:17:13 -05:00
Ryan Houdek a3f9f21e08 Merge pull request #1571 from degasus/master
OGL: fix buffer destruction
2014-11-19 02:13:36 -06:00
kamiyo e76e3b7390 Added condition so that function to mix wiimote-speaker data into the master mixer is called only if wiimote is emulated. 2014-11-19 01:28:11 -05:00
skidau f5aed3d6c6 Merge pull request #1548 from skidau/region-australia
Added Australia to the list of valid PAL regions
2014-11-19 16:59:08 +11:00
skidau ca3e5ce5e1 Added an exception check when the game is close to overflowing. Fixes the fifo overflow that occurs in Battalion Wars 2.
Changed the CPEnd loop check to an exact match.
2014-11-19 12:48:09 +11:00
skidau 3d448e49c6 Update CPStatus before processing the FIFO events and force an exception check on interrupts.
Added more information into the FIFO unknown opcode error message.
2014-11-19 12:48:08 +11:00
skidau b2c02e216c Separated out the CPU and GPU thread path to avoid clobbering.
Removed the Eternal Darkness check as it is no longer required.

Fixes issue 7835.
2014-11-19 12:48:08 +11:00
skidau 32f2cd8c7f Merge pull request #1566 from Sonicadvance1/fix_gl21
Fixes GLExtensions for GL 2.1 or GLES 2 devices.
2014-11-19 12:47:23 +11:00
Steven Vascellaro 695bbac36a Removed SDK flag
SDK is not an official Nintendo country code, and is not actually used
by any official software.
2014-11-18 19:44:17 -05:00
Stevoisiak f1a26ff654 Various country flag improvements
* Added country flags for games from Netherlands and Spain
* Added separate category for Region Free games (Uses European flag as placeholder)
* Added missing country filter options in "show regions" menu
* Rearranged country filters for readability
* Incremented CACHE_REVISION

Also fixed various country filters not showing up as options in the "Show regions" menu.
2014-11-18 19:44:16 -05:00
degasus ff942d44b5 OGL: fix buffer destruction
This buffer will be unbound in the StreamBuffer class itself, so no need to unbind them before.
2014-11-18 23:13:06 +01:00
Stevoisiak e7a82c4ded Renamed EuRGB60 to PAL60 2014-11-18 16:51:21 -05:00
Lioncash f7d1943615 Merge pull request #1570 from lioncash/scale
WxUtils: Get rid of GetCurrentBitmapLogicalScale
2014-11-17 20:55:14 -05:00
skidau 2affe25191 Merge pull request #1559 from Sonicadvance1/armv7-minor-optimizations
ARMv7 block profiling + minor optimization
2014-11-18 12:51:03 +11:00
Lioncash 3c23a9afc9 WxUtils: Get rid of GetCurrentBitmapLogicalScale
wx now provides the means to query this.
2014-11-17 20:16:33 -05:00
degasus c211450b99 OGL: implement bounding box support with ssbo
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
Dolphin Bot dced84d440 Merge pull request #1564 from RachelBryk/freelook
Make freelook hotkeys configurable.
2014-11-17 20:44:48 +01:00
Rohit Nirmal 8ec791c4f3 Android: Silence a few warnings. 2014-11-17 19:21:38 +00:00
Lioncash b1c06fdd19 Merge pull request #1563 from lioncash/ui
Android: Use a PagerTabStrip instead of the ActionBar.
2014-11-17 13:57:00 -05:00
Lioncash f78600ec9e Merge pull request #1562 from lioncash/host
Host: Kill off GetRenderWindowSize
2014-11-17 13:51:40 -05:00
Lioncash b94dbca160 Host: Kill off GetRenderWindowSize 2014-11-17 13:44:49 -05:00
comex c5a25d56e0 Remove Android <ucontext.h> hack.
There was a longstanding hack that defined ucontext_t manually to work
around the lack of this header on the Android NDK.  However, it looks
like newer NDK versions now have it like good little POSIX boys, and my
recent header reshuffle broke the build on those versions, presumably
because the real and fake definitions of ucontext_t end up included in
the same file where they weren't under the old organization.

Rather than try to revert the conflict, this commit just removes the
hack.  The buildbot's NDK will need to be upgraded.
2014-11-17 13:29:04 -05:00
Ryan Houdek 3bfa15d2e1 Fixes GLExtensions for GL 2.1 or GLES 2 devices.
This wasn't too much of a concern since we normally don't care about this feature set, but it is nice when testing on new devices and they don't
support the higher feature sets but want to run under software renderer.

The Mesa softpipe and PowerVR 5xx drivers don't support higher GL versions, but they shouldn't exit out just because they couldn't get a GL3 function
pointer that isn't even going to be used at that point.
2014-11-16 22:59:29 -06:00
Lioncash 5fce33f918 Merge pull request #1565 from Sonicadvance1/armv7-fix-fastmem
Fixes ARMv7 FP loadstores using fastmem when not enabled.
2014-11-16 22:22:22 -05:00
Ryan Houdek f9208dcc13 Fixes ARMv7 FP loadstores using fastmem when not enabled. 2014-11-16 21:12:11 -06:00
Rachel Bryk ea11c446c2 Make freelook hotkeys configurable. 2014-11-16 22:00:56 -05:00
Lioncash 5396a48d70 Android: Use a PagerTabStrip instead of the ActionBar.
The ActionBar method of doing the tabular layout is deprecated on Android 5.0.
This method alleviates those deprecations while providing the same functionality.
2014-11-16 21:18:08 -05:00
skidau 5143adac0e Merge pull request #1306 from i418c/freelook_fixes
Freelook fixes
2014-11-17 13:03:23 +11:00
JosJuice 091db36162 DVDInterface: Add a delay for commands other than regular reads
Behavior inspired by WII_IPC_HLE_Device_DI.
2014-11-16 21:29:40 +01:00
JosJuice c6e695b245 DVDInterface: CAV disc drive
Changes the read speed of GC discs from 3 MiB/s to 2-3.3 MiB/s,
depending on the location of the data. I also attempted to change the
speeds for Wii discs, but it has very little effect right now because
Wii games use IPC_HLE instead of DVDInterface. It does affect Wii
homebrew that reads Wii discs, though.
2014-11-16 20:57:26 +01:00
comex aa2fc1f66b Merge pull request #1449 from comex/memtools-merge
Reorganize faulting stuff.  Differentiate between arch- and OS-specific defines.
2014-11-16 13:46:33 -05:00
i418c 92d4e38267 Changed the hotkeys to 1 and 2. Message in GUI changed to reflect this. 2014-11-16 10:39:54 -08:00
Ryan Houdek 30e1749d00 Implements block time profiling on ARMv7.
This was interesting implementing.
Our generic QueryPerformanceCounter function on ARMv7 was so slow that profiling a block was impossible.
I waited about five minutes and I couldn't even get a single frame to output.
This instead uses ARMv7's PMU to get cycle counts, which are a relatively minor performance drop in my testing.
One disadvantage of this method is that the kernel can lock us out of using these co-processor registers, but it seems to work on my Jetson board.
Another disadvantage is that we aren't having block times in "real" time but cycles instead, not too big of a deal.

This also removes instruction run counts from profiling because that's just annoying and we don't expose an interface for even getting those results
from our UI.
2014-11-16 09:29:27 +00:00
Ryan Houdek b24197f913 Adds MCR/MRC to the ARMv7 emitter. 2014-11-16 09:29:27 +00:00
Ryan Houdek 6683b194ff ARMv7 register cache optimizations.
Enable support for not loading a destination register on FPR cache.
Dump registers if they won't be used later in the block. Stolen from Fiora.
2014-11-16 09:29:22 +00:00
Lioncash c0291d5b88 Merge pull request #1558 from comex/command-thread-mismatch
Fix wxCommandEvent/wxThreadEvent subclass mismatch
2014-11-16 00:03:35 -05:00
comex 37b14bdec9 Fix wxCommandEvent/wxThreadEvent subclass mismatch
Regression by 3fed975bac caused netplay to
crash on OS X.  While I'm at it, fix the long-standing "unsafe i guess"
AddPendingEvent, since we depend on wx 3 now...
2014-11-15 23:52:19 -05:00
comex 4e484faf4c Merge pull request #1557 from lioncash/join
Core: Join some variable declarations and assignments
2014-11-15 20:53:45 -05:00
Lioncash 5d2ca2dfcc Merge pull request #1554 from lioncash/unique
ISOFile: Get rid of a delete call
2014-11-15 20:27:59 -05:00
Lioncash 3eab75bc9c Core: Join some variable declarations and assignments 2014-11-15 20:21:35 -05:00
Lioncash 43b8749c60 Merge pull request #1555 from lioncash/ref
WatchView: Pass string by reference in SetWatchName
2014-11-15 18:02:10 -05:00
Ryan Houdek 4ce1b33e55 Merge pull request #1551 from Sonicadvance1/armv7-float-fastmem
Reimplements fastmem for ARMv7 floating point loadstores.
2014-11-15 15:32:17 -06:00
Ryan Houdek 181f16c5f0 Reimplements fastmem for ARMv7 floating point loadstores.
This implements a new system for fastmem backpatching on ARMv7 that is less of a mindfsck to deal with.
This also implements stfs under the default loadstore path as well, not sure why it was by itself in the first place.

I'll be moving the rest of the loadstore methods over to this new way in a few days.
2014-11-15 21:17:50 +00:00
Lioncash 04ee0245e2 WatchView: Pass string by reference in SetWatchName 2014-11-15 14:06:12 -05:00
Lioncash 798a96bd2a ISOFile: Get rid of a delete call 2014-11-15 13:25:21 -05:00
comex 8dbef4e987 Merge pull request #1553 from degasus/master
OpcodeDecoder: Skip recursiv display lists
2014-11-15 11:05:41 -05:00
degasus 90613a1bda OpcodeDecoder: Skip recursiv display lists 2014-11-15 16:24:06 +01:00
skidau cf8035e240 Merge pull request #1521 from RachelBryk/double
Fix some double->float conversions.
2014-11-15 23:31:47 +11:00
Lioncash 7d8248e24f Android: Remove unused imports in GameListItem 2014-11-15 01:45:13 -05:00
Lioncash cc62cb8818 Android: Support RTL language translations
If someone wants to do a translation for an Arabic language, Hebrew, etc, it will now display correctly.
2014-11-15 01:45:12 -05:00
Lioncash 4d6bc39e2f AndroidManifest: Increment the minimum and target SDK values 2014-11-15 01:45:02 -05:00
Lioncash 5b1f734695 Android: Prevent instantiation of utility classes 2014-11-15 01:40:30 -05:00
Lioncash 4fe8bb1ca7 Android: Compress an if statement in FolderBrowser 2014-11-15 01:40:29 -05:00
Rachel Bryk fa18518cef Fix reading wii revisions. 2014-11-15 00:39:54 -05:00
skidau 99141a2698 Added Australia to the list of valid PAL regions 2014-11-15 16:16:37 +11:00
Rachel Bryk fa5e3ec292 Implement GetRevision() for wii disks. 2014-11-14 21:06:26 -05:00
comex 68c5758151 Merge pull request #1435 from comex/osx-build
OS X CMake improvements
2014-11-14 15:03:53 -05:00
comex 0cf8ab175b Fix UCodes.cpp to use UTF-8 encoding. 2014-11-14 11:53:56 -05:00
comex cb0af4057e Link Foundation/CoreServices into unit tests so they build with DISABLE_WX. 2014-11-14 11:28:13 -05:00
Ryan Houdek b0becf7af8 Enables the ARMv7 FPR cache.
The problem instructions with the FPR are disabled in the previous commit. This can now be reenabled for fairly large performance gains.
2014-11-14 15:14:10 +00:00
Ryan Houdek 69c3e6516c Disables NEON optimized instructions.
These are causing issues in games. In particular you get pink on the screen in Animal Crossing.
Disable until fully investigated.

This also disables fastmem on floating point loadstore instructions which are horribly broken and won't actually backpatch when an invalid read/write
is encountered.
2014-11-14 15:13:13 +00:00
Lioncash 8f92059705 LogWindow: Fix the timer event bindings 2014-11-14 00:46:42 -05:00
Lioncash e789920340 Merge pull request #1539 from Stevoisiak/newImprovedFormatting
Various formatting and consistency fixes
2014-11-13 23:05:46 -05:00
Stevoisiak b25e1a2eb4 Various formatting and consistency fixes 2014-11-13 22:42:18 -05:00
Lioncash 3b2d605fb5 Merge pull request #1538 from Stevoisiak/netplayCleanup
Removed "Dual Core [OFF]" from netplay warnings
2014-11-13 21:53:30 -05:00
Stevoisiak 6bb9a909a2 Removed "Dual Core [OFF]" from netplay warnings
Requested by JMC47
2014-11-13 21:15:07 -05:00
skidau 1e5a232464 Merge pull request #1537 from lioncash/wx
MemoryView: Fix a dealloc of a stack reference
2014-11-14 13:00:21 +11:00
skidau 8af52f6c72 Merge pull request #1532 from RachelBryk/dot
Fix the red dot not showing up in input config when pointing right.
2014-11-14 12:59:28 +11:00
Lioncash ffc00b42e9 MemoryView: Fix a dealloc of a stack reference
stack allocation only works with the root menu. Any other children must be
heap allocated.

These however, will be freed by wxWidgets.
2014-11-13 20:10:40 -05:00
Lioncash 5fb94230cd Merge pull request #1531 from lioncash/notebook
FrameAui: Allow notebook tabs to be rearranged in the parent notebook.
2014-11-13 01:37:22 -05:00
Fiora 733795891c D3D: fix issues with multi-level 1x1 textures on D3D
Fixes NBA 2K11, maybe other things.
2014-11-12 21:43:48 -08:00
skidau 4ca39d173b Merge pull request #1530 from lioncash/ui-leaks
DolphinWX: Eliminate some memory leaks
2014-11-13 13:39:44 +11:00
skidau b1f8974db8 Merge pull request #1527 from FioraAeterna/mftbfix
JIT: revert accuracy improvement to mftb
2014-11-13 12:11:13 +11:00
Lioncash 5a89ba20d7 Merge pull request #1528 from lioncash/netplay
Small Netplay dialog cleanups.
2014-11-11 21:19:24 -05:00
Lioncash cae3f0bde0 FrameAui: Allow notebook tabs to be rearranged in the parent notebook. 2014-11-11 21:07:39 -05:00
Rachel Bryk 463c4faf1c Add GPUDeterminismMode to isoproperties. 2014-11-11 20:19:19 -05:00
skidau 1095d3fc33 Merge pull request #1523 from FioraAeterna/fifo64
JIT: add 64-bit write support to FIFO functions and fix immediates
2014-11-12 12:12:16 +11:00
skidau 0cb9dcb5fc Merge pull request #1520 from JosJuice/dvdinterface-init
DVDInterface: Initialize variables
2014-11-12 12:11:03 +11:00
Rachel Bryk e9cb629723 Fix some double->float conversions. 2014-11-11 14:14:22 -05:00
Rachel Bryk a371635990 Fix the red dot not showing up in input config when pointing right. 2014-11-11 13:42:42 -05:00
Lioncash 892bbdade6 DolphinWX: Eliminate some memory leaks
Since the menus aren't actually assigned a parent, they would not be freed by wx. Plus, these should have initially been constructed on the stack in the first place.
Technically any time someone right-clicked the game list they would be leaking memory.
2014-11-11 09:50:16 -05:00
Lioncash ec82f02580 NetPlayDiag: Get rid of unnecessary text limit check
The text control is limited to 2000 characters on creation.
2014-11-11 00:12:23 -05:00
Lioncash 3fed975bac NetPlayDiag: Get rid of event table 2014-11-10 23:38:20 -05:00
Fiora 4b105ed0e4 JIT: revert accuracy improvement to mftb
Fixes a few games (e.g. Karaoke Revolution Party) for reasons explained in the
comments.
2014-11-10 20:31:07 -08:00
Lioncash 5891266e67 NetPlayDiag: Make the window title translateable 2014-11-10 23:26:56 -05:00
skidau 71d8165a86 Merge pull request #1518 from lioncash/evt
DolphinWX: Kill off trivial event tables
2014-11-11 11:55:49 +11:00
Matthew Parlane b1d8ca4730 Install nogui executable to bindir 2014-11-10 07:53:11 +00:00
Fiora 6603f98d04 JIT: add 64-bit write support to FIFO functions
Also fix 64-bit values passed to CallAC and otherwise correct immediate
handling in FIFO writes.
Fixes 007 Nightfire.
2014-11-09 21:24:30 -08:00