Commit Graph

14839 Commits

Author SHA1 Message Date
Stenzek 89e54fbd6c OGL: Work around slowdown of glMapBufferRange with SSBO on NVIDIA drivers
Using glMapBufferRange to read back the contents of the SSBO is extremely
slow on NVIDIA drivers. This is more noticeable at higher internal
resolutions. Using glGetBufferSubData instead does not seem to exhibit
this slowdown.
2016-05-19 21:24:09 +10:00
JosJuice a399966751 Movie: Better safety when writing to s_revision 2016-05-19 12:29:50 +02:00
Matthew Parlane 24ea2dc2da Merge pull request #3842 from rukai/dolphinQtVSkeepBinaryClean
[Qt] VS build no longer adds all of Data to Binary
2016-05-19 20:49:35 +12:00
degasus c04cff57da GLExtensions: Fix OpenGL ES 3.2 handling. 2016-05-18 23:22:46 +02:00
Markus Wick 22648729c7 Merge pull request #3832 from degasus/android
DriverDetails: Update Qualcomm new driver version.
2016-05-18 21:26:45 +02:00
mathieui 54b4efff6b GCAdapter: improve thread safety
make sure Reset() can’t be run concurrently with AddGCAdapter() or
ResetRumble() (which is called on other threads) which can cause
crashes (issue #9462)
2016-05-18 20:44:01 +02:00
Markus Wick 682af0a86a Merge pull request #3846 from degasus/videosw
VideoSW: Fix XFB config.
2016-05-18 20:14:55 +02:00
Markus Wick da3b03c61d Merge pull request #3829 from phire/timing_madness
Increase Audio DMA Interrupt delay to 200 cycles (Fix assorted Namco games)
2016-05-18 20:14:02 +02:00
degasus 3a452f3cc5 VideoSW: Fix XFB config. 2016-05-18 18:37:44 +02:00
degasus fa3526962d VideoSW: Drop Update in XFB copy. 2016-05-18 18:37:44 +02:00
Markus Wick ae5d6003cd Merge pull request #3758 from phire/minor_core_timing_fix
CoreTiming: Trim max slicelength to the given value.
2016-05-18 17:56:02 +02:00
Markus Wick e2d65778fc Merge pull request #3816 from magumagu/neogamma-hack
Add hack to IPCHLE to make NeoGamma work.
2016-05-18 17:49:58 +02:00
Markus Wick 5a36b7db24 Merge pull request #3811 from magumagu/eslaunch-timing
Fix timing regression affecting ES_LAUNCH.
2016-05-18 17:15:30 +02:00
Markus Wick 60e7c78007 Merge pull request #3840 from degasus/arm
JitArm64: Faster block linking.
2016-05-18 16:49:01 +02:00
rukai f9ef9067c1 [Qt] VS build no longer adds all of Data to Binary 2016-05-14 16:50:25 +10:00
Mat M e5bafeb40a Merge pull request #3821 from mathieui/gcadapter-no-device
Fix a hang with the GC Adapter
2016-05-13 21:36:51 -04:00
degasus 637851fce0 JitArm64: optimize bclrx
the unconditional path is the most common, so no need to switch to far code here.
2016-05-14 00:05:55 +02:00
degasus b6f16352e4 JitArm64: Check downcount on block linking.
This skips one B() call.
2016-05-14 00:04:58 +02:00
degasus 10e716c623 JitCommon: Pass jit block instead of host pointer on linking.
So the JIT may do more fancy stuff.
2016-05-14 00:04:58 +02:00
degasus cf3c65fbd0 JitArm64: Use B() instead of BR() to jumo to ASM.
Avoid indirect jumps as good as possible. This is a noticeable speedup.
2016-05-14 00:04:58 +02:00
degasus b2be9bd7f7 JitArm64: Inline JitAsm in JitArm64.
So they share the same emitter, and so they are in the same 128MB range.
This allows us to use B() to jump to the dispatcher.

However, so we have to regenerate them on every cache clear.
2016-05-14 00:04:58 +02:00
EmptyChaos c1944f623b Core/Movie: Add ability to run code in Host context
EndPlayInput runs on the CPU thread so it can't directly call
UpdateWantDeterminism. PlayController also tries to ChangeDisc
from the CPU Thread which is also invalid. It now just pauses
execution and posts a request to the Host to fix it instead.

The Core itself also did dodgy things like PauseAndLock-ing
from the CPU Thread and SetState from EmuThread which have been
removed.
2016-05-13 09:23:44 +10:00
EmptyChaos e8dfc8e654 Movie: Threadsafety Audit
Fix TASInputDlg which was trying to access the GUI without the GUI
lock from the CPU Thread.
2016-05-13 09:23:44 +10:00
EmptyChaos c1922783f8 Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
2016-05-13 09:23:44 +10:00
mathieui 8f0cbefbe5 Disable part of the adapter features for netplay
In order to avoid desyncs
2016-05-12 23:31:51 +02:00
Rukai d9a8318879 Brings visual studio build files up to date with recent Qt changes 2016-05-13 01:18:57 +10:00
Matthew Parlane ec40b38484 Merge pull request #3571 from rukai/dolphinQtVisualStudio
DolphinQt2 Builds on Visual Studio
2016-05-12 22:27:18 +12:00
Matthew Parlane 356f709537 Merge pull request #3810 from mathieui/fix-adapter-recording-savestate
Fix loading save states with input recording with the adapter
2016-05-12 20:53:04 +12:00
mathieui 2a0ba5aaa6 Fix loading save states with input recording with the adapter
Intended fix for issue #9508
2016-05-12 10:45:03 +02:00
mathieui 8d23ebaa6b Revert "Fix netplay desync when using wii-u adapter."
This reverts commit 429ae8fb01.

 Conflicts:
	Source/Core/Core/HW/SI_DeviceGCAdapter.cpp
	Source/Core/Core/HW/SI_DeviceGCAdapter.h
2016-05-12 02:01:35 +02:00
degasus bca0e06a95 OGL: Use coherent mapping on Qualcomm devices. 2016-05-11 23:55:28 +02:00
degasus 7517d126c8 DriverDetails: Drop BUG_BROKENALPHATEST.
This flag is not in use at all.
2016-05-11 21:22:09 +02:00
degasus 6219c39cf5 OGL: Drop QC ES3.1 workaround.
This was never tested well:

HdkR> The tester was most likely trying to load a stale shader cache or something
2016-05-11 20:45:07 +02:00
Matthew Parlane 48c0c2ace6 Merge pull request #3830 from Lionel07/qt-settings-window
[Qt] Settings Window for Qt
2016-05-11 16:43:43 +12:00
Corwin McKnight 321b775f02 [Qt] Settings Window for Qt
AND Fix leftovers from full code, fixed styling and lint
2016-05-10 21:24:53 -07:00
Matthew Parlane 670a1c2694 Merge pull request #3532 from rukai/enterOpenGame
Qt - Enter key opens selected game in the game list.
2016-05-11 08:45:29 +12:00
Matthew Parlane 3f012df6d5 Merge pull request #3615 from rukai/qtCrash
DolphinQt2: Fix crash related to loading gameini
2016-05-11 08:40:00 +12:00
Summate e01bdeddf2 Piping the wxMsgAlert through netplay window during netplay instead of running a blocking messagebox 2016-05-10 05:03:06 -05:00
Matthew Parlane bb6a04dc8e Merge pull request #3713 from stenzek/d3d12-more-fixes
D3D12: Bug fixes, implement bbox, realxfb, perfquery
2016-05-10 21:34:27 +12:00
Scott Mansell 2c95cf0f5a Increase Audio DMA Interrupt delay to 200 cycles.
We really need hardware tests for this one. But this will do as a
quick fix for issue 9509 for 5.0
2016-05-09 14:16:32 +12:00
Mat M c299a6a8cc Merge pull request #3801 from Helios747/the_30_minute_blocker_fix
[UI] Remove browse toolbar button and tweak empty gamelist message
2016-05-08 17:24:40 -04:00
Stenzek ccf9470241 D3D12: Specify read/write ranges when calling Map/Unmap 2016-05-08 23:18:59 +10:00
Stenzek fde7dee652 D3D12: Fix invalid CopyTextureRegion call in CopyRectangleFromTexture
This was occuring when the source texture was larger than the destination
texture, but the source rect was <= dest rect, so the copy is valid.
2016-05-08 23:18:58 +10:00
Stenzek 9bff187547 D3D12: Cleanup startup/shutdown process
Sorts out references that cause some modules to be kept around after
backend shutdown.

Should also solve the issue with errors being thrown due to the config
being loaded after device creation, leading to the incorrect device being
used in a multi-adapter system.
2016-05-08 23:18:58 +10:00
Stenzek 4269abdc3e D3D12: Implement perf query support 2016-05-08 23:18:57 +10:00
Stenzek 25d5da0ea3 D3D12: Remove D3D11 header references 2016-05-08 23:18:56 +10:00
Stenzek 6f3573dda8 D3D12: Implement XFB encoding/decoding (support Real XFB) 2016-05-08 23:18:51 +10:00
Stenzek 3372bfa6ab D3D12: Remove feature level checks
We don't create a device below feature level 11_0 anyway, so no point
checking, we can just assume support.
2016-05-08 12:08:25 +10:00
Stenzek 063761fbd2 D3D12: Don't add padding when allocating within empty StreamBuffer
Resources are already aligned to an address larger than any of our
requirements, anyway.
2016-05-08 12:08:25 +10:00
Stenzek 0c27aae7d3 D3D12: Improve output of shader compiler errors
These were completely broken due to lack of c_str(). We also output
warnings now as well (these can be useful).
2016-05-08 12:08:25 +10:00
Stenzek acfa93372e D3D12: Refactoring and cleanups
Moves render target restoring to RestoreAPIState, this also means no need
to manually restore after allocating in a buffer that caused execution,
because the manager restores it for us.

Remove a method that wasn't used from D3DUtil.cpp, and fixes a few errors
in EFB poke drawing.
2016-05-08 12:08:25 +10:00
Stenzek 7ec1fce741 D3D12: Fix error with >1xIR/MSAA EFB depth access 2016-05-08 12:08:25 +10:00
Stenzek ac1cd8279b D3D12: Implement GPU-based bounding box 2016-05-08 12:08:25 +10:00
Stenzek 32599559db D3D12: Use helper method for binding EFB render targets 2016-05-08 12:08:25 +10:00
Stenzek 984da2d624 D3D12: Use signed ints for viewport origin
Fixes black screen when crop is enabled.
2016-05-08 12:08:25 +10:00
Stenzek a8c4d6c242 D3D12: Allow large texture uploads (>64MiB) by using temporary buffer
This is not optimal, but for those texture packs with extremely large
images, it won't crash. Releasing after the frame completes is an option
too, however, there is the risk of running out of memory by doing this.
2016-05-08 12:08:25 +10:00
magumagu cfce7a2aab Fix IPCHLE to make NeoGamma work.
NeoGamma is explicitly sending a nonsense command to the Bluetooth module;
make sure to respond with something sane.

Fixes issue 9470, a regression from PR #1856.
2016-05-07 11:37:21 -07:00
Matthew Parlane 1e1fce1a03 Merge pull request #3815 from degasus/scm
SCM: Use std::string.
2016-05-07 20:24:59 +12:00
Matthew Parlane 461a48f8e3 Merge pull request #3820 from Lionel07/netplay-elf-title-regression
Fix regression for .elf files in Netplay Game Selector
2016-05-07 19:47:13 +12:00
Corwin Mcknight 453d7777e5 Fix regression for .elf files in Netplay Game Selector
Rearranged code to look nicer, as well
2016-05-06 19:41:40 -07:00
Matthew Parlane 48237b38e8 Merge pull request #3817 from Lionel07/qt-mac
[UI] Enable Qt on Mac
2016-05-06 13:28:11 +12:00
Corwin McKnight 0368fc3837 [Qt]: Enable Qt on Mac OSX.
* Enables Qt on OSX
* Makes it look pretty
2016-05-05 17:03:53 -07:00
Matthew Parlane 1cfeacd5b6 Merge pull request #3793 from mathieui/netplay-disc-num
Add information about disc number in the netplay setup
2016-05-06 09:19:54 +12:00
mathieui f36cd77da4 Add information about disc number in the netplay setup
Previously, two-disc games would appear exactly the same, and not
necessarily in disc order, which made it a pain.
2016-05-05 23:15:00 +02:00
degasus 2030ad4577 SCM: Use std::string.
Those macros may be defined, or not. We should support both cases, so use std::string as it also defines the length of the string.
2016-05-05 00:22:49 +02:00
Matthew Parlane dbd67c6b06 Merge pull request #3809 from Lionel07/netplay-gui-updates
[UI] Make NetPlay UI bigger and neater
2016-05-04 08:45:48 +12:00
Matthew Parlane ea82fcc24f Merge pull request #3658 from Tilka/helpers
Interpreter: simplify some helpers
2016-05-03 22:44:27 +12:00
Matthew Parlane 1634948b6e Merge pull request #3742 from phire/dither
Implement Dithering for video software
2016-05-03 22:41:39 +12:00
Matthew Parlane c32ba0fc06 Merge pull request #3744 from degasus/videosw
VideoSW: Fix special case.
2016-05-03 22:34:00 +12:00
Matthew Parlane e0a5f1bb75 Merge pull request #3791 from spxtr/mw-timer
Use CoreTiming for MemoryWatcher.
2016-05-03 22:30:51 +12:00
magumagu 36f01e141d Fix timing regression affecting ES_LAUNCH.
Scheduling an event for zero cycles in the future actually means zero
cycles with new timing changes, but the code for IPC ACKs was depending on
it meaning "soon".

Fixes #9511.

I'm not at all confident this is actually right... but it seems to work.
2016-05-02 21:56:49 -07:00
Corwin Mcknight 3a76aeb23d [UI] Make NetPlay UI bigger and neater
This commit does 4 things:
* It increases the default small size of the NetPlay window to a larger
and more appealing size.
* It cleans up and reorganizes a bit of the NetPlay Setup UI code.
* It moves the Direct or Transversal Selector to be more appealing and
nice looking.
* The Direct or Transversal also gets a label and nicer text, and a
spacer.
2016-05-02 08:15:44 -07:00
Matthew Parlane a78787ba75 Merge pull request #3730 from lioncash/noncopy
NonCopyable: Minor changes
2016-05-01 11:46:08 +12:00
Matthew Parlane 05e1406e89 Merge pull request #3795 from EmptyChaos/fix-diskreader
DriveReader: Fix View > Show Drives
2016-05-01 11:43:30 +12:00
Matthew Parlane 3d375592a2 Merge pull request #3798 from phire/goto_dino
Fix handling of Wii NAND's /tmp directory during savestate loads.
2016-05-01 11:37:33 +12:00
Anthony Serna 79b902e7e5 [UI] Remove browse toolbar button and tweak empty gamelist message
Removed some related functions
2016-04-30 10:25:46 -05:00
degasus 6f2d8483b7 VideoSW: Fix special case.
I have no clue what this special case shall be, but accessing g_main_cp_state within Flush() is not allowed.
We likely still have a bad behavior, but now it only depends on the current state, not on the next one after flushing.
2016-04-30 13:14:09 +02:00
mathieui 542e7ba158 Make a generic rumble function
Call the appropriate rumble function for each SI Device, Should fix #9331.
Ideally we wouldn’t have to do this, but since the way things are wired,
fixing the root cause it out of the picture for now.
2016-04-30 12:54:31 +02:00
degasus 170a7f1a06 CoreTiming: Trim max slicelength to the given value.
Previously it was underclocking by 50% when there were
no events to schedule.
2016-04-30 19:28:14 +12:00
Matthew Parlane 3df4b09a94 Merge pull request #3797 from phire/casually_delete_some_code
Fix netplay desync when using wii-u adapter.
2016-04-30 17:55:06 +12:00
Mathew Maidment 45e0cb70df Merge pull request #3770 from EmptyChaos/dsp-int-fail
DSP: Fix array out of bounds
2016-04-29 20:07:07 -04:00
Mathew Maidment 2d7dfa060e Merge pull request #3796 from endrift/indtev-simplify
VideoCommon: Workaround Intel OS X bug again
2016-04-29 19:59:45 -04:00
Mathew Maidment 9776b8db43 Merge pull request #3799 from mimimi085181/fix-auto-ir
Make integral auto IR(multiple of 640x528) work as expected
2016-04-29 19:50:21 -04:00
Mathew Maidment b99b685f22 Merge pull request #3800 from phire/unexceptional-exceptions
Make exceptions consistent across all JITs/Interpreters (Fixes Pokemon Box)
2016-04-29 19:48:55 -04:00
Mathew Maidment b420abc908 Merge pull request #3769 from RisingFog/remove_framestep
Remove Unused Framestop Functions
2016-04-29 19:41:25 -04:00
spxtr b9e9a5ee3d Use CoreTiming for MemoryWatcher. 2016-04-28 21:28:15 -07:00
Scott Mansell eb5819f88a Make exceptions consistant across all JITs/Interpeters.
They all handled it diffrently, so I've just moved it into Advance()

This fixes Pokemon Box booting in JIT/JITIL which shared a bug where
exceptions set in a scheduled event would be ignored untill the next
slice (upto 20,000 cycles).
2016-04-28 17:22:52 +12:00
mimimi085181 8c34463f14 Make integral auto IR(multiple of 640x528) work as expected
Right now, it's possible that x and y are scaled differently, if efb and xfb size are not the same.
2016-04-26 23:25:38 +02:00
EmptyChaos 97d570f0c9 DriveReader: Fix View > Show Drives
DriveReader::m_size was never initialized which was indirectly
causing CGameListCtrl to crash Dolphin when it tried to insert a
character at a negative index in a string.

Reading one sector at a time is very inefficient and appears to
be causing timing issues during boot so SectorReader has been
enhanced to support batching.

SectorReader has been given a working cache system.
2016-04-26 21:24:08 +10:00
Scott Mansell 8f4ac5bbad Close all files so /tmp can be deleted on save state load.
Because the file handles were open, the recursive delete was
failing. The previous commit stopped the crash but this should
make the restore actually happen has expected.
2016-04-25 18:29:49 +12:00
Scott Mansell b2f133d2ac make DeleteDirRecursively clean up correctly after failure.
Fixes Metroid prime crashing the second boot after loading
a save state (issue 9496)
2016-04-25 18:28:38 +12:00
Scott Mansell 429ae8fb01 Fix netplay desync when using wii-u adapter.
If the game sent a command to a disconnected controller, the
wii u adapter code would return a diffrent response.

This simply deletes the speclized version of RunBuffer for the
wii-u adapter as the only diffrence was the code which detected
disconnected controllers and returned a error.
2016-04-25 15:26:31 +12:00
Jules Blok 8a21b082d6 Merge pull request #3745 from stenzek/d3d11-texcache
D3D11: Fix EFB MSAA depth buffer copies, StateManager desyncs in some cases
2016-04-24 11:47:32 +02:00
Jeffrey Pfau d6517a761c VideoCommon: Simplify indirect texture lookup code slightly 2016-04-23 22:55:52 -07:00
Jeffrey Pfau aa736bf258 Revert "VideoBackend: Remove extraneous shifts from indirect texture lookups"
This reverts commit 1f1b127b69.
2016-04-23 22:55:42 -07:00
mimimi085181 fcd5170cff XInput: Apply Rumble/Motor output only on changes (again)
Disclaimer: I can't test if this works on xbox one controllers, i don't have one. But i have conformed that this UpdateMotors() is related to rumble for emulated wiimotes.

This partially reverts commit "XInput: Apply immediately as well" (1958a10b6f) from pr # https://github.com/dolphin-emu/dolphin/pull/1560

Hopefully this fixes the xbox one controller rumble issue:
https://bugs.dolphin-emu.org/issues/9071

And in theory it might reduce the used usb bandwidth, as it was originally intended before pr 1560.

@JMC47: Please do a good amount of testing, to see if this breaks rumble for wiimotes or gamecube controllers emulated with xinput devices.
2016-04-23 13:45:10 +02:00
Mathew Maidment bdb9da2104 Merge pull request #3687 from rukai/fixMakerColumn
DolphinWX: Disable 'maker' column hiding
2016-04-21 09:15:10 -04:00
EmptyChaos 49babfb60b CFrame: Fix Confirm Close
Closing Dolphin's main frame and clicking "no" does not clear
m_bClosing which means that pressing the "stop" button triggers
OnClosed which suddenly and unexpectedly closes the main frame.
2016-04-19 15:47:51 +10:00
Rukai 4cd918caf1 DolphinWX: Disable 'maker' column hiding
This was done because showing a column was broken:
Showing a column repopulates the column with no regard for the sorted
order. This results in a seemingly random order.
(actually the order of m_ISO_FILES)
2016-04-17 10:19:25 +10:00
EmptyChaos 32239f500c VideoInterface: Fix registers not being initialized
VideoInterface::Preset was not initializing all registers, this is a problem
because it leaks register settings across games. Xenoblade Chronicles does
not like m_DisplayControlRegister having random bit patterns in it.
2016-04-17 09:35:22 +10:00