Commit Graph

2905 Commits

Author SHA1 Message Date
Sepalani 771fa943dc BreakPoints: ClearAllTemporary uses valid iterators 2016-10-15 19:21:41 +01:00
Lioncash ee71d70738 DebugInterface: Make GetRawMemoryString return a std::string 2016-10-07 10:26:26 -04:00
Markus Wick ff1d70d708 Merge pull request #4308 from aldelaro5/memcheck-gui-relabel
Label debugger memchecks as "Memory Breakpoints" in the GUI
2016-10-06 21:29:14 +02:00
aldelaro5 549060c5b4 Label debugger memchecks as "Memory Breakpoints" in the GUI
This is done to remove confusions among potential debugger users and to also make it more accurately tell what this feature is actually doing.  Despite being true that it is using a memcheck (and it certianly checks that memory), the idea being to break on a memory access isn't really obvious especially considering that memchecks are also used in full MMU emulation to handle exceptions.  It also doesn't help that memchecks are now supported in every builds.

It also changes the corresponding log because this log would be wanted by the user which means it should be more obvious that it was caused by the "memory breakpoint".
2016-10-06 10:51:43 -04:00
shuffle2 f7e25483e6 Merge pull request #4293 from lioncash/pcast
CommonFuncs: Get rid of pointer casting
2016-10-04 19:10:34 -07:00
aldelaro5 6ee799ba7c Reduces the the filename of logs
Using cmake and GCC, logs would contain the full file path when logging making logs lines unnecessarily long.  This is solved by just removing anything before "/Source/Core/" (where / is whatever your OS uses to separated directory).
2016-10-04 16:34:26 -04:00
Lioncash d15d99ecc2 CommonFuncs: Get rid of pointer casting 2016-10-04 05:12:23 -04:00
Léo Lam 8912bb3ff4 Back up part of SYSCONF when switching to emulated BT
This fixes an issue where the Bluetooth info section could be fully
filled up by syncing 5 Wiimotes in passthrough mode then switching to
emulated Bluetooth; emulated Wiimotes were then unable to be used.

The "real" SYSCONF section is now backed up before being replaced with
a blank section that the emulated BT adapter can always fill with 5
Wiimotes without issues.

This backup is restored by the passthrough code, instead of during
the Bluetooth mode switch because this should be done regardless of the
user interface, and even without UI (if the config file is edited
manually).
2016-10-03 23:13:09 +02:00
shuffle2 f121fa07c2 Merge pull request #2868 from sepalani/dolphin_ssl
Dolphin new Dump SSL features
2016-10-03 06:16:49 -07:00
shuffle2 bd1218a3c4 Merge pull request #4250 from leoetlino/hle-patch-fix
HLE_OS: Minor fixes (function patching, output encoding)
2016-10-02 22:13:15 -07:00
shuffle2 5e8bc4aa1d Merge pull request #4244 from leoetlino/stm-shutdown
Shut down Wii software gracefully
2016-10-02 20:25:13 -07:00
shuffle2 8fcc3b04e0 Merge pull request #4227 from ligfx/clean_objc
Don't force compile everything as Objective-C++ on macOS
2016-10-02 19:42:04 -07:00
Mat M ccfc081697 Merge pull request #4245 from aldelaro5/logs-levels-changes
Lots of Logs levels changes (also enable INFO level in every build)
2016-10-02 16:51:44 -04:00
Léo Lam 25b93419d0 SysConf: Add support for the LongLong type
This should fix the "unknown entry type" panic alerts when an existing
SYSCONF from a real Wii NAND is used.
2016-10-02 11:52:57 +02:00
aldelaro5 f0aa9b3751 Reorganise a ton of logs level
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Léo Lam 5d8d696185 Force disable WC24 standby mode
When standby mode is enabled, this causes games to ES_Launch the system
menu instead of directly asking IOS (the STM more precisely) to shut
down, which prevents graceful shutdown from working
(it'll appear to hang).

Dolphin never supported WC24 standby mode anyway, so this shouldn't
cause any issues. (This should be reverted if and when WC24 standby is
implemented…)
2016-10-01 13:06:04 +02:00
Stenzek fdd954e7e7 Common: Add a Semaphore wrapper class 2016-10-01 01:09:12 +10:00
Scott Mansell ed95115c17 Merge pull request #4220 from aldelaro5/memcheck-interface-improvements
Redo the MemCheck add dialog
2016-09-28 13:46:25 +13:00
aldelaro5 5e8fc4ebd9 Add consideration for the break flag of memChecks
It was never used, even when the code tried to make sure it was initialised and passed correctly.  This is a supplementary fix for the memCheck dialog as this option will now work correctly.
2016-09-27 01:22:23 -04:00
Léo Lam 303325768b SymbolDB: Only match against the function name
This changes GetSymbolFromName to not require the passed name to
completely match with the symbol name. Instead, we now match
against the stripped symbol name (i.e. only the function name).

This fixes a regression introduced by #4160, which prevented
HLE::PatchFunctions() from working properly.
2016-09-26 22:56:42 +02:00
degasus 7c9bba2213 Arm64Emitter: Fix std::array initializer. 2016-09-26 22:17:25 +02:00
Léo Lam e716a738dc SysConf: In-class initialise member variables 2016-09-25 19:22:11 +02:00
aldelaro5 08f28b5351 Enable the log level LINFO in every builds
It didn't really made sense to disable 2 logs levels in releases builds while the level LDEBUG should really be where logs that would impact performance be.  Info should be logs that report potentially usefull information and debug should report info that would only be usefull in debug context as they are called very often.  To make this work, a lot of info log would have to be made debug log.

It also avoid inaccurate logs level done due to not using debug builds.  While searching through the code, I saw a ton of logs that should have been info log, likely done to avoid using a debug build (which shouldn't happen considering the level debug exists anyway).

The whole idea is to have more meaningful logs in release builds while maintaining minimal performance loss from choosing the highest level.  This could potentially help to diagnose issues or to know more about what the emulator is actually doing.

The next commit aims to sort the log levels for this purpose.
2016-09-25 01:41:12 -04:00
Léo Lam 5d00915d37 MemoryUtil: Fix formatting
clang-format really *wants* the two empty lines to be removed;
otherwise, it will always flag MemoryUtil as needing formatting changes
which is an annoyance when it is used as a git filter driver.
2016-09-24 22:41:53 +02:00
Michael Maltese cd19c9fa22 Don't force compile everything as Objective-C++ on macOS 2016-09-18 17:33:51 -07:00
Scott Mansell 4c004b6dc9 Merge pull request #4131 from aldelaro5/memoryViewer-memChecks-improvements
Add the configuration of how a memory check is added via the memory window
2016-09-15 10:46:07 +12:00
Lioncash 00ddbee786 SymbolDB: Change Symbol's 'analyzed' member into a boolean
It's only ever used as one
2016-09-13 21:23:28 -04:00
Lioncash 0ac77b0288 SymbolDB: Use an enum class for representing symbol type 2016-09-13 21:21:03 -04:00
Lioncash d8d127df25 SymbolDB: In-class initialize Symbol class variables 2016-09-13 20:47:00 -04:00
aldelaro5 da55d2a381 Add options read, write and log when toggling a breakpoint
These are needed for the next commit. I had to modify the implementation of the DSP one too, but since it basically isn`t used, I don`t think it matters much.  These options only matters when adding one.
2016-09-10 22:38:57 -04:00
Bernhard Urban 976da3707a arm64: add comment about data cache flushing 2016-09-10 08:05:16 +02:00
Bernhard Urban fff8221b63 arm64: fixes around icache flushing 2016-09-10 02:31:07 +02:00
Scott Mansell 7311cd8b6e Merge pull request #4137 from aldelaro5/memCheck-crash-fix
Fix a crash when adding the first memory check while the game is running
2016-09-07 14:19:19 +12:00
magumagu d557310371 Support for dynamic BAT modification (dynamic-bat).
Fundamentally, all this does is enforce the invariant that we always
translate effective addresses based on the current BAT registers and
page table before we do anything else with them.

This change can be logically divided into three parts.  The first part is
creating a table to represent the current BAT state, and keeping it up to
date (PowerPC::IBATUpdated, PowerPC::DBATUpdated, etc.).  This does
nothing by itself, but it's necessary for the other parts.

The second part (mostly in MMU.cpp) is simply removing all the hardcoded
checks for specific untranslated addresses, and consistently translating
addresses using the current BAT configuration. Very straightforward, but a
lot of code changes because we hardcoded assumptions all over the place.

The third part (mostly in Memmap.cpp) is making the fastmem arena reflect
the current BAT configuration.  We do this by redoing the mapping (calling
memmap()) based on the BAT table whenever it changes.

One additional minor change is that translation can fail in two ways:
either the segment is a direct store segment, or page table lookup failed.
The difference doesn't usually matter, but the difference affects cache
instructions, like dcbz.
2016-09-06 08:43:22 +02:00
Scott Mansell f5fa5a7d32 Merge pull request #4168 from EmptyChaos/coretiming-cleanup
Core: CoreTiming Cleanup (Add UnitTests)
2016-09-04 11:48:54 +12:00
EmptyChaos 17c34ae0b1 CoreTiming: Data structure cleanup
Replace adhoc linked list with a priority heap. Performance
characteristics are mostly the same, but is more cache friendly.

[Priority Queues have O(log n) push/pop compared to the linked
list's O(n) push/O(1) pop but the queue is not big enough for
that to matter, so linear is faster over linked. Very slight gains
when framelimit is unlimited (Wind Waker), 1900% -> 1950%]
2016-09-03 12:46:14 +10:00
Lioncash 13506d3c12 x64Emitter: Generify ABI_CallFunction variants
Gets rid of the need to cast to void* just to use the functions.
2016-08-31 22:54:47 -04:00
aldelaro5 a39e331aad Schedule an event to clear the jit cache when adding the first and last
memory check

Also fix an oddity in the case when the last memory check is deleted,
the jit cache was supposed to be cleared in that case, but it was out of
the for loop that finds the one to delete so it was never run.
Naturally, the same fix for the adding the first memory check was
applied.
2016-08-21 00:57:35 -04:00
JosJuice 31c530c7b3 Merge pull request #3386 from lioncash/memory
Common: Namespace MemoryUtil
2016-08-19 11:04:45 +02:00
Markus Wick cb2b110d42 Merge pull request #4097 from lioncash/sysconf
SysConf: Minor simplifications to initial generating
2016-08-10 14:41:35 +02:00
Markus Wick b075d18d2e Merge pull request #4096 from lioncash/codeblock-init
CodeBlock: In-class initialize variables
2016-08-10 14:39:51 +02:00
Lioncash fbc0aaf796 MemoryUtil: Remove unimplemented/unused functions
GuardMemoryMake/GuardMemoryUnmake are unimplemented prototypes.
GetPageSize is an unused function.
2016-08-07 13:04:05 -04:00
Lioncash e01c143379 Common: namespace MemoryUtil 2016-08-07 13:03:07 -04:00
Lioncash 08bc19bf51 SysConf: Use range-based for loops in sysconf generation
Same thing, nicer looking
2016-08-06 16:22:42 -04:00
Lioncash 58b871e05c SysConf: Simplify entry generation
Just use a vector and move it instead of manually pushing them one-by-one.
2016-08-06 16:10:48 -04:00
Lioncash 18210a65ce CodeBlock: In-class initialize variables 2016-08-06 13:20:38 -04:00
Dan Beste 25c77babeb Remove curl version check / include curl.h
This should help prevent breakage when the curl.h header is changed.

As far as I can tell this only increases the compile time by a hair, but prevents needing to create a PR every time curl.h gets updated. Alternatively I'm experimenting with CURL_STRICTER defined per a conversion with booto:

>booto | krakn: try having CURL_STRICTER defined for the build?

Credit goes to: flacs for the suggestion to include curl.h

Fix include
2016-08-04 22:39:45 -05:00
Léo Lam cbb77532c6 Tools: Fix lint by removing unneeded awk
git diff --name-only already took care of only returning the name, so
the awk is unneeded and makes it return only empty file names.

Facepalm, I know. Sorry for this oversight.

(Also fixes something that lint didn't catch because of this)
2016-08-02 22:00:41 +02:00
Martchus 0157b72bbc Fix typedef for CURL 2016-07-29 19:34:34 +02:00
Aestek 6a0fc4c438 Improve netplay setup dialog UX
* Focus "Hash Code" / "IP address" text box by default in "Connect"
* Focus game list in "Host" tab
* RETURN keypress now host/join depending on selected tab
* Remember last hosted game
* Remove PanicAlertT:
	* Simply log message to netplay window
	* Remove them when they are useless
* Show some netplay message in OSD
	* Chat messages
	* Pad buffer changes
	* Desync alerts
* Stop the game consistently when another player disconnects / crashes
* Prettify chat textbox
* Log netplay ping to OSD

Join scenario:
* Copy netplay code
* Open netplay
* Paste code
* Press enter

Host scenario:
* Open netplay
* Go to host tab
* Press enter
2016-07-23 20:58:51 +02:00
Chris Burgener cac9516e39 Add Configurable RTC 2016-07-19 11:20:02 -04:00
Anthony Serna 1a81735527 Merge pull request #3859 from Aestek/feature/netplay-md5
Netplay: add md5 testing
2016-07-18 09:20:37 -05:00
Matthew Parlane a51c992e61 Merge pull request #4018 from bentley/openbsd-ifdefs
Openbsd ifdefs
2016-07-18 16:12:06 +12:00
Anthony J. Bentley 9a14cbb225 Undefine OpenBSD's system byteswap macros to pick up generic functions. 2016-07-17 20:18:50 -06:00
Matthew Parlane 4b9173ca62 Merge pull request #4017 from bentley/openbsd-libs
OpenBSD neither provides nor requires libdl and librt.
2016-07-18 12:42:14 +12:00
Anthony J. Bentley eb4cae78aa OpenBSD neither provides nor requires libdl and librt. 2016-07-17 18:06:38 -06:00
Anthony J. Bentley 5bab6210ef Use the standard stat()/fstat() interfaces, not nonstandard *64().
Most modern Unix environments use 64-bit off_t by default: OpenBSD,
FreeBSD, OS X, and Linux libc implementations such as Musl.

glibc is the lone exception; it can default to 32 bits but this is
configurable by setting _FILE_OFFSET_BITS.

Avoiding the stat64()/fstat64() interfaces is desirable because they
are nonstandard and not implemented on many systems (including
OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either
the default or trivial to set up.
2016-07-17 04:30:00 -06:00
Anthony J. Bentley 64fb96e493 OpenBSD uses pthread_set_name_np() to set the name of a thread. 2016-07-17 04:09:46 -06:00
Anthony J. Bentley 5c90738638 OpenBSD doesn't support per-thread locales. 2016-07-17 04:08:44 -06:00
Anthony J. Bentley 242c770fe5 OpenBSD has a custom sysctl for physical memory. 2016-07-17 04:06:38 -06:00
Aestek 9c5b546e2e Add Wii sdcard to CommonPaths 2016-07-16 22:48:46 +02:00
Aestek 51c77e8eea Add md5 testing to netplay
Allows to test current game, an arbitrary game or the sdcard of all players
at once.
2016-07-16 22:48:46 +02:00
Pierre Bourdon 667e18a8a3 Merge pull request #3958 from jloehr/Fix-SCMRevGen-MSBuild(x64)
Fix SCMRevGen for 64-bit MSBuild
2016-07-13 19:51:24 +02:00
Julian Löhr 6f65293131 Fix SCMRevGen for 64-bit MSBuild
CScript must be run as 64-bit regardless of the MSBuild bitness. Otherwise it won't find 64-bit Git installations.
However the "Sysnative" redirector is not available for 64-bit processes. So a fix is needed when 64-bit MSBuild is run.
The "ProgramFiles(x86)" Macro is only set for 64-bit, otherwise it is empty. Therefore it can be used as condition to check whether the current MSBuild process is 32 or 64-bit.
2016-07-13 17:28:55 +02:00
Léo Lam 213373f5f9 StringUtil: Make TryParse parse floats as booleans
This is needed to keep compatibility with old configuration files which
didn't store booleans as booleans, but as floats/doubles.
2016-07-13 13:50:48 +02:00
Sepalani 529ca245d7 Added: more SSL features, plus SSL dump folder
Dump: rootca, peercert
2016-07-01 14:33:54 +04:00
hthh e57333ac5e Jit: Remove unsafe MOV optimization
This optimization broke arithXex in rare cases by
emitting XOR where MOV was expected.
2016-07-01 01:43:35 +10:00
Pierre Bourdon f8bf839e36 Merge pull request #3967 from JosJuice/remove-boomy
Remove Boomy
2016-06-30 12:07:50 +02:00
JosJuice ed42467e87 Fall back to default theme when the configured theme doesn't exist 2016-06-30 11:49:13 +02:00
Matt Mastracci 1e08ad0d97 Add MOV optimization and MOV_sum
Replaces incarnations of the A=B+C pattern throughout the
code so we can apply optimizations consistently.
2016-06-27 15:43:52 -06:00
Matt Mastracci b1296a7825 Refactor fastmem/trampoline code.
Simplication to avoid reading back the generated instructions, allowing
us to handle all possible cases.
2016-06-27 14:58:20 -06:00
comex 61813767c7 Get rid of #define PAGE_MASK and round_page, which conflict with OS X headers 2016-06-26 00:49:46 -04:00
Mat M 3d72fe3173 Merge pull request #3942 from comex/osx-build-fix
Fix in-tree build (cmake .) on OS X.
2016-06-26 00:35:00 -04:00
comex 659d079d5c Fix in-tree build (cmake .) on OS X.
OS X uses a case insensitive filesystem by default: when I try to build,
a system header does #include <assert.h>, which picks up
Source/Core/Common/Assert.h.  This only happens because CMakeLists adds
'${PROJECT_BINARY_DIR}/Source/Core/Common' as an include directory: in
an out-of-tree build, that directory contains no other source files, but
in an in-tree build PROJECT_BINARY_DIR is just the source root.

This is only used for scmrev.h.  Change the include directory to
'${PROJECT_BINARY_DIR}/Source/Core' and the include to
"Common/scmrev.h", which is more consistent with normal headers anyway.
2016-06-25 23:57:17 -04:00
Matthew Parlane 3a26167148 Merge pull request #3931 from dhustkoder/master
constexpr added to BitSet.h. conflicts solved
2016-06-26 14:42:46 +12:00
Matthew Parlane 5ba3e641ea Merge pull request #3933 from delroth/fixed-size-queue
FixedSizeQueue: modernize (std::array, std::move)
2016-06-26 10:31:07 +12:00
Pierre Bourdon 9081d029e3 FixedSizeQueue: modernize (std::array, std::move) 2016-06-25 17:39:54 +02:00
Rukai b5104a79f1 GCVolume: supports reading all opening.bnr information
DQT2: Game properties dialog contains info tab giving information about the selected iso.
2016-06-26 00:03:59 +10:00
dhust b707e199c2 constexpr added to BitSet.h. conflicts solved 2016-06-25 10:58:53 -03:00
Pierre Bourdon 5fcb4bb3ab Further fixes to the formatting change. WX sucks. 2016-06-24 12:16:10 +02:00
Pierre Bourdon 3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Chris Burgener 09dbe2337c Merge pull request #3904 from dhustkoder/master
_DEFAULT_SOURCE flag added, and clang check version for IsTriviallyCopyable m…
2016-06-22 10:54:39 -04:00
dhust 19fed720ff _DEFAULT_SOURCE flag added, and clang check for IsTriviallyCopyable macro
fix clang ver check for 4.0 +

using clang macro __has_feature

__GLIBCXX__ check added

fix __has_feature
2016-06-19 18:32:19 -03:00
Pierre Bourdon b8496fc844 analytics: Disable ALPN only on Windows. 2016-06-19 12:54:40 +02:00
Pierre Bourdon 121f270367 Add an Analytics reporting system.
Fully opt-in, reports to analytics.dolphin-emu.org over SSL. Collects system
information and settings at Dolphin start time and game start time.

UI not implemented yet, so users are required to opt in through config editing.
2016-06-19 02:55:46 +02:00
Pierre Bourdon 49ce9b153d scmrev: Add "distributor" option.
Used to distinguish between Dolphin distributions (e.g. "dolphin-emu.org",
"Ishiiruka", etc.).
2016-06-18 18:31:40 +02:00
Pierre Bourdon fe51de23f1 StringUtil: Add a HexDump function.
Generates a string like the following from a binary blob:

000000: 00 00 04 74 79 70 65 00 09 61 70 70 2d 73 74 61  ...type..app-sta
000010: 72 74                                            rt
2016-06-18 16:37:09 +02:00
Karol Herbst c0e21871cd EGL: specify version first
allthough this is a mesa bug, this is a simple enough workaround for context
creation fails with EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR set.

Otherwise dolphin will fail to create 3.3+ core context with current mesa
version
2016-05-29 22:12:31 +02:00
sigmabeta c92f7ef173 Fix builds when using newest version of NDK 2016-05-25 14:23:35 -04:00
Mat M 08d45b9fea Merge pull request #3794 from EmptyChaos/frame-advance-race
Core: Add synchronization to state changes (Fix Frame Step and FIFO Player -  Issue 8718)
2016-05-22 15:19:16 -04:00
degasus c04cff57da GLExtensions: Fix OpenGL ES 3.2 handling. 2016-05-18 23:22:46 +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 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
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 a78787ba75 Merge pull request #3730 from lioncash/noncopy
NonCopyable: Minor changes
2016-05-01 11:46:08 +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
Lioncash 4ae4b241ec ChunkFile: Handle bool in a stable way across platforms
bool is not always guaranteed to be the same size on every platform.
On some platforms it may be one byte, on others it can be 8 bytes if the
platform dictates it. It's implementation-defined.

This can be problematic when it comes to storing this
data to disk (it can also be space-inefficient, but that's not really an
issue). Also say for some reason you moved your savestates to another
platform, it's possible they won't load correctly due to differences in size.

This change stores all bools to savestates as if they were a byte in size
and handles the loading of them accordingly.
2016-04-14 22:55:03 -04:00
Lioncash 8d9221a71e MathUtilTest: Fix tests on MSVC - Document compiler bug
MSVC's implementation of numeric_limits currently generates incorrect
signaling NaNs. The resulting values are actually quiet NaNs instead.

This commit is based off of a solution by shuffle2. The only
difference is a template specialization for floats is also added
to cover all bases
2016-04-03 19:16:47 -04:00
Pierre Bourdon f0e25b8477 Merge pull request #3668 from RisingFog/wii_movie_sysconf
Apply Wii Settings on Movie Recording/Playback
2016-03-14 01:42:37 +01:00
Lioncash 2ce6b449d1 NonCopyable: Remove private access specifier
This isn't necessary, as the member functions are deleted.
If someone tries to perform a copy, the compiler will now
indicate that the member functions/constructors are deleted,
rather than inaccessible.
2016-03-12 16:59:45 -05:00
Lioncash 5d74e02286 NonCopyable: Specify const in copy constructor/assignment signatures 2016-03-12 16:59:45 -05:00
degasus 9ed465f4ac JitArm64: Implement mulhwx 2016-03-04 22:51:46 +01:00
Mathew Maidment c2802f96a6 Merge pull request #3655 from jcowgill/spelling-fixes
Fix some very minor spelling mistakes
2016-03-02 14:04:05 -05:00
degasus 64f9941595 EGL: Also check for higher GL versions.
Seems like NVidia just ignores the forward compatible flag.
Additionally, they neither enable any extension which was designed later...
So either compatible profile, or a huge list of core profiles....
2016-03-01 07:55:57 +01:00
Chris Burgener b1c8198cec Move SetData logic to within SysConf.cpp 2016-02-28 19:42:15 -05:00
Pierre Bourdon 1d07fee367 Merge pull request #3432 from stenzek/bba-tap-win
EXI: Refactor Windows BBA-TAP interface to a read thread, crash fixes, cleanups
2016-02-26 12:46:20 +01:00
James Cowgill db8dbae131 Fix some very minor spelling mistakes
Found by Lintian https://lintian.debian.org/
2016-02-19 01:48:10 +00:00
Pierre Bourdon d4b67be288 Merge pull request #3640 from Sonicadvance1/glextensions_workaround_trash
Disable some OpenGL 4.5 functions until AMD fixes their trash driver.
2016-02-16 15:41:48 +01:00
hdcmeta 9f279f77fc Add missing include, this was previously masked by PCH usage 2016-02-15 09:48:22 -08:00
Ryan Houdek d4dfbbf214 Make sure to get the right function pointer for DSA+buffer_storage 2016-02-15 06:05:38 -06:00
Ryan Houdek 64cb57c5ee Disable a few OpenGL 4.5 functions that AMD fails to expose. 2016-02-15 06:05:09 -06:00
Ryan Houdek 2685ebaed1 Add support for GL 4.3 2016-02-14 20:35:38 -06:00
Ryan Houdek e253fafe42 Add support for GL 4.4 2016-02-14 20:16:33 -06:00
Ryan Houdek 87afa2c277 Add support for GL 4.5 2016-02-14 20:15:40 -06:00
Ryan Houdek 23787f709c Change GL 4.2 defines over to the proper naming convention. 2016-02-14 20:01:02 -06:00
Ryan Houdek 2f7e3ae58e CMakeLists cleanup and enable Android headless building. 2016-02-05 11:24:11 -06:00
Ryan Houdek 018625e54f Rearrange GLInterface interface generation.
This will be important when we enable headless on Android
2016-02-05 10:53:32 -06:00
Ryan Houdek 38cb6ba6dc Fix a bug in the Common CMakeLists file
We were overwriting the LIBS variable. Effectively dropping libiconv from the libs.
2016-02-05 10:51:56 -06:00
Ryan Houdek 19cd9ecf16 Fix a few missing includes 2016-02-05 10:50:08 -06:00
Stenzek a870253cd6 Common: Use C++ random generator for generating MAC addresses 2016-01-31 23:52:47 +10:00
Ryan Houdek 31523b7e80 Merge pull request #3572 from Sonicadvance1/egl_support_headless
Egl support headless
2016-01-30 11:15:07 -05:00
Ryan Houdek 5edc7705fe Merge pull request #3550 from Sonicadvance1/egl_support_core_profile
Support the OpenGL core profile in EGL.
2016-01-29 19:37:24 -05:00
Ryan Houdek c50efb17e5 Merge pull request #3546 from Sonicadvance1/egl_shared_context
Implement shared contexts in the EGL context.
2016-01-29 19:33:52 -05:00
Ryan Houdek ea3a457091 Merge pull request #3573 from degasus/fifoplayer
Fifoplayer: Fix dual core
2016-01-29 16:39:32 -05:00
Ryan Houdek 628e9bad92 Support a headless EGL option.
This is a new option to support completely headless running of Dolphin without X11 on systems that can properly support it.
2016-01-27 15:04:14 -06:00
Ryan Houdek 184a7a3e0d Include the EGL defines we need for KHR_create_context ourselves.
This is because Google decided it was in their best interest to update eglext.h for android-21/arch-arm only and completely neglect all the other
architectures.
Sucks to suck.
2016-01-27 14:54:44 -06:00
Ryan Houdek 34d0e7835b Support the OpenGL core profile in EGL.
This should make our Mesa EGL users happy.
2016-01-27 14:54:32 -06:00
Ryan Houdek 921c7139c5 Implement support for GL 4.2 in GLExtensions 2016-01-27 13:58:34 -06:00
Ryan Houdek aed693eded Implement shared contexts in the EGL context.
This is being implemented here first under EGL since the infrastructure is already in place for this due to the Android code requiring some bits.
The rest of the interfaces will come in a little bit.

This will be required for threaded shader compiling in the near future.
2016-01-27 13:15:02 -06:00
degasus 231daa2da1 Thread: Limit thread name to 15 bytes on linux. 2016-01-27 07:23:17 +01:00
mathieui 4b06e92731 A few more asterisks, mostly casts 2016-01-21 22:20:22 +01:00
mathieui f15ffda5a7 Correct ampersands as well 2016-01-21 21:27:56 +01:00
mathieui 3e283ea9f1 More asterisks 2016-01-21 21:16:51 +01:00
mathieui 78aa398e7c Common: asterisks go against the type name
not the variable name
2016-01-21 20:46:25 +01:00
shuffle2 799fce0b03 Merge pull request #3512 from jloehr/Fix-SCMRevGen
Fix SCMRevGen by running system native CScript
2016-01-15 23:56:31 -08:00
Julian Löhr bb5cb7e365 Run system native CScript
Build Events are run in an 32 bit environment, therefore both program files environment strings resolve to the x86 program files folder on 64 Bit systems. If Git is 64 bit and installed into the x64 program files it can't be found by the script.
2016-01-14 00:37:11 +01:00
Jules Blok 55cb6675cc IniFile: Initialize with default value if key does not exist. 2016-01-13 22:51:53 +01:00
Ryan Houdek 6448e5e5ee Add support to EGL to on the fly destroy the resulting surface 2016-01-10 12:28:05 -06:00
Ryan Houdek 8c37498230 Fix typo in GLExtensions
I had changed a variable name and forgot to update it everywhere.
Should fix Adreno devices.
2016-01-09 15:06:36 -06:00
Jules Blok 1e111421e9 VideoConfig: Don't give warnings for per-game stereoscopy parameters. 2016-01-06 22:21:12 +01:00
Ryan Houdek 0a42a0ab1b Merge pull request #3428 from Sonicadvance1/proper_glextensions
Make GLExtensions no longer require slghtly modified GL headers
2016-01-06 15:24:47 -05:00
Mathew Maidment 0509292f86 Merge pull request #3431 from stenzek/shadercache
ShaderGen: Remove virtual methods and string from ShaderGeneratorInterface.
2016-01-04 19:11:14 -05:00
Markus Wick d29b406292 Merge pull request #3433 from lioncash/gl
GLInterface: Minor changes
2016-01-04 13:49:40 +01:00
Lioncash 01f99a04a2 VideoBackend: Get rid of a boolean global
Also gets rid of global headers
2016-01-02 18:03:28 -05:00
Lioncash f3c05d39b9 GLInterface: Make GLInterfaceMode an enum class 2016-01-02 14:26:43 -05:00
Lioncash df9c9ad706 GLInterfaceBase: In-class initialize protected members
Gives the class a well-defined initial state
2016-01-02 14:26:42 -05:00
Lioncash 11a7defdba WGL: Make class member private 2016-01-02 14:26:41 -05:00
Lioncash df2f6089be GLInterface: Add missing override specifiers 2016-01-02 14:26:36 -05:00
Ryan Houdek 37525f3fcf Make GLExtensions no longer require slghtly modified GL headers.
In fact, removes the need for external headers at all.
2016-01-02 10:34:13 -06:00
Stenzek 617f9d9532 ShaderGen: Remove virtual methods from ShaderGeneratorInterface, move string buffer to ShaderCode
This fixes the crashes occuring at startup with a non-empty shader cache.
Because LinearDiskCache reads/writes to the storage of ShaderUid, ShaderUid must be trivially copyable.
Additionally, adds a static assert to LinearDiskCache to ensure this doesn't happen in the future.

The initialization of ShaderUid data has been moved to the code generation functions, so the above condition holds true.
2016-01-02 17:35:06 +10:00
Ryan Houdek b4e9bbb551 Merge pull request #3336 from Sonicadvance1/improve_glextensions
[GLExtensions] Improve the extension loader.
2016-01-01 13:01:51 -05:00
spxtr 2f50560602 Add support for sending game memory changes to outside processes 2015-12-29 17:59:16 -08:00
Ryan Houdek eb2d4935cd Including missing headers required for non-pch builds and other architectures 2015-12-22 18:20:48 -06:00
Ryan Houdek eaf21b3c80 Work around Google's trash NDK 2015-12-22 18:20:17 -06:00
Lioncash f295182833 VideoBackends: Simplify initialization and deinitialization of resources
Approximately three or four times now, the issue of pointers being
in an inconsistent state been an issue in the video backend renderers
with regards to tripping up other developers.

Global (ugh) resources are put into a unique_ptr and will always have a
well-defined state of being - null or not null
2015-12-20 22:40:37 -05:00
Markus Wick e4b83d17bf Merge pull request #3270 from JosJuice/more-translations
Mark more strings for translation
2015-12-15 18:13:26 +01:00
Ryan Houdek d9999bf30c Fix minor memory leak in WGL interface.
Would have a memory leak on game end
2015-12-13 11:42:18 -06:00
Ryan Houdek b620b26f8f [GLExtensions] Improve the extension loader.
This removes some nonsense in the extension loader where under an ES context we would still pull all function pointers and just continue onward if we
fail to pull one.
Now function pointers are only pulled if the version of GL or ES actually supports that function.
2015-12-13 11:37:07 -06:00
Ryan Houdek 6d2fd8ae37 [GLExtensions] Support ORing of extensions when checking for support.
Makes my life easier.
2015-12-13 11:35:55 -06:00
Scott Mansell a759883ae5 Merge pull request #3126 from phire/remove-logging-lock
Refactor logging code to get rid of a mutex.
2015-12-03 13:32:07 +13:00
Markus Wick 3ed29cce0c Merge pull request #2733 from AdmiralCurtiss/string-from-float
IniFile: Fix floating point number locale issues.
2015-12-02 15:22:42 +01:00
Markus Wick ec6a48ff76 Merge pull request #2876 from CastellaFactory/master
[Netplay] Add "Force Netplay Listen Port" feature that was in old netplay branch
2015-12-02 14:20:47 +01:00
JosJuice 9b2fe62bc9 Move nobanner and fileplatform from Themes to Resources
fileplatform is moved so it's in the same place as the other platform
icons, and nobanner is moved just because it fits better in Resources.
Both of them were identical in all of Dolphin's themes.
2015-11-27 11:09:20 +01:00
Scott Mansell 83bda3be46 Merge pull request #1474 from phire/DSPHLE_cleanups
DSPHLE: Remove individual byteswaps and replace with generic function.
2015-11-24 13:33:59 +13:00
JosJuice 74ea765427 Mark more strings for translation 2015-11-20 11:33:47 +01:00
Ryan Houdek 5f1fcf4c8d Use __builtin_trap for our crash define instead of int3/exit 2015-11-19 00:49:42 -06:00
Markus Wick f172cda50f Merge pull request #3191 from lioncash/rekt
MathUtil: Minor changes to Rectangle
2015-11-18 10:40:54 +01:00
Scott Mansell d2b03e1aad Remove individual byteswaps and replace with generic function. 2015-11-17 19:37:18 +13:00
James Cowgill 386159c74e Remove uses of __DATE__ and __TIME__ 2015-11-14 00:52:41 +00:00
Markus Wick a498c684a2 Merge pull request #2304 from linkmauve/xdg-basedir
UICommon: Respect XDG Base Directory Specification on POSIX systems
2015-11-12 12:31:24 +01:00
Markus Wick 8924980b49 Merge pull request #3247 from lutris/master
Enable relocatable linux builds
2015-11-11 12:16:29 +01:00
Emmanuel Gil Peyrot b61da5db54 FileUtil: Move ShaderCache to the Cache directory. 2015-11-10 21:53:30 +00:00
Emmanuel Gil Peyrot e20b08491c UICommon: Respect XDG Base Directory Specification on POSIX systems. 2015-11-10 21:53:29 +00:00
Mathieu Comandon f2ae1a2545 Implement relocatable builds on Linux
- Change the path of the Sys folder to the executable's location
- Add LINUX_LOCAL_DEV flag to use relocatable version on Linux
- Add CMake definition for relocatable build
2015-11-10 12:49:04 -08:00
Scott Mansell 2d38a59044 NoGui: Return no to yes/no panic alerts.
Also, print to stderr instead of stdio.
2015-11-08 14:10:26 +13:00
Scott Mansell 973118511a Merge pull request #2742 from AdmiralCurtiss/display-savestate-stats
Display Savestate information in Overlay and Menu.
2015-11-08 02:20:56 +13:00
shuffle2 f26b3708e7 Merge pull request #3217 from dolphin-emu/shuffle2-patch-1
Add patch for ucrtbase 10.0.10240.16390 (Win8)
2015-11-05 15:37:19 -08:00
Tillmann Karras 32cdd31200 GLExtensions: remove duplicate typedefs 2015-11-03 17:50:41 +01:00
shuffle2 baf438fc9f Merge pull request #3213 from phire/bitfield
Bitfield: Add .natvis for easier debugging of BitFields in Visual Studio
2015-11-01 23:06:21 -08:00
Scott Mansell 0245b1219b Correct capitalization of 'Visual Studio' 2015-11-02 17:12:09 +13:00
shuffle2 bfffd997cd Update ucrtFreadWorkaround.cpp 2015-11-01 10:52:33 -08:00
Scott Mansell 2ccd5a5928 Bitfield: Add BSD license to match BitField.h
Also, fix typo.
2015-11-01 18:01:51 +13:00
Scott Mansell f0e5232fe0 Bitfield: And then mess things up again by handling signed fields.
This is way more messy than it should be.
2015-10-30 14:05:14 +13:00
Scott Mansell 9125ab8304 BitField: Clean .natvis up slightly by using CDATA. 2015-10-30 14:04:40 +13:00
Scott Mansell bfac1c73f0 Bitfield: Add .natvis for easier debugging in Visual Studio 2015-10-30 12:30:22 +13:00
Lioncash e76b1f2d56 Merge pull request #3170 from spxtr/pipes
Implemented GC Controller inputs via named pipes.
2015-10-28 16:39:57 -04:00
spxtr d9d6cf8eda GC controller input using named pipes
Currently only works on unix, but can be extended to other systems. Can
also be extended to do wiimotes.

Searches the Pipes folder for readable named pipes and creates a dolphin
input device out of them. Send controller inputs to the game by writing
to the file. Commands are described in Pipes.h.
2015-10-24 20:20:03 -07:00
Lioncash 2630752ffe Arm64Emitter: Get rid of a pointer cast 2015-10-22 15:32:11 -04:00
Lioncash 018c85c248 Arm64Emitter: Mark trivial functions as constexpr 2015-10-22 15:22:38 -04:00
Lioncash 10c1fd7f38 MathUtil: Make Rectangle constructors and equality operator constexpr 2015-10-20 20:30:36 -04:00
Lioncash 09641ec313 MathUtil: Default initialize Rectangle class data members
Puts Rectangles into a valid state upon creation
2015-10-20 20:30:16 -04:00
Scott Mansell 1ba600b688 Merge pull request #3145 from catzilla4/master
FreeBSD Compilation fix
2015-10-19 17:29:34 +13:00
shuffle2 34d46d6910 Merge pull request #3178 from shuffle2/ucrt-fread-workaround
patch win7 ucrtbase, and note versions
2015-10-17 05:02:18 -07:00
shuffle2 0acac35d77 patch win7 ucrtbase, and note versions 2015-10-17 04:24:20 -07:00
flacs e289cb87e5 Merge pull request #3161 from shuffle2/ucrt-fread-workaround
exchange XSaveWorkaround for ucrtFreadWorkaround
2015-10-17 05:41:40 +02:00
Shawn Hoffman ca31c62c01 exchange XSaveWorkaround (which was fixed in VS2015) for ucrtFreadWorkaround (which was broken in VS2015). 2015-10-16 20:26:34 -07:00
flacs d85344bd58 Merge pull request #3155 from degasus/videosw
VideoSW: Split up OGL window handling
2015-10-17 04:56:44 +02:00
flacs 05e339a605 Merge pull request #3139 from JosJuice/fix-wii-root
Mark which Wii root to use in the NAND path code
2015-10-16 16:49:34 +02:00
comex c22d1d68ab Mark which Wii root to use in the NAND path code.
It's used by both the GUI to do things like install WADs and check up on
the system menu, in which case the global root should be used, and by
/dev/es, in which case the local one should.  The latter isn't
*terribly* useful today, since no contents will ever be installed in
temporary roots (although it's still relevant for data directories), but
converting the whole thing makes sense because then it will Just Work
once the entire NAND is synced.

Because it would have been a bit of work to split it up (but I can if
desired), this commit also contains some basic cleanup of
NANDContentLoader:

(1) The useless interface class INANDContentLoader is removed and the
    methods are changed to just return CNANDContentLoader (the only
    implementation);
(2) CNANDContentManager is changed to use unique_ptr and cleaned up a
    bit.
2015-10-16 09:10:39 +02:00
degasus b69bff0690 VideoSW: Use OpenGL Core context 2015-10-14 00:13:54 +02:00
Tillmann Karras ae999cb43c Wiimote: simplify DoState() parameters 2015-10-11 23:37:34 +02:00
flacs a7b6ae8f2c Merge pull request #3160 from Tilka/style
Misc. style fixes
2015-10-11 15:36:06 +02:00
Admiral H. Curtiss 16272f4975 SaveState/DolphinWX: Display time and date of savestate when a slot is selected, or Empty if no savestate exists in the slot. 2015-10-10 22:14:22 +02:00
Tillmann Karras 0f1b287402 Misc. style fixes 2015-10-10 17:44:42 +02:00
Tillmann Karras 19a490a82d Linux: detect perf and default map dir to /tmp
This obviously only works when Dolphin is run by perf rather than being
started separately.
2015-10-10 16:42:53 +02:00
catzilla4 867a1beb9f Added some headers to allow Dolphin to compile in my environment. 2015-10-06 19:09:57 -05:00
Christian Widmer 1fc1f00162 Include cstring in Hash.cpp to fix building without PCH 2015-10-06 14:59:56 +02:00
shuffle2 0fdaacc7e0 Merge pull request #2738 from lioncash/bitfield
Common: Fix BitField mask generation.
2015-10-03 18:21:24 -07:00
shuffle2 b926061f64 Merge pull request #3095 from void-ghost/savestate_race_condition_fix
SaveState: Fix for race condition in SaveAs(...)
2015-10-03 18:08:33 -07:00
shuffle2 a6f04b0e15 Merge pull request #3091 from Tilka/mbedtls
Update mbed TLS (PolarSSL)
2015-10-03 18:00:58 -07:00
Lioncash 5464e698fc Merge pull request #3102 from rohit-n/build-pch
Fix building with PCH disabled.
2015-10-03 13:30:51 -04:00
Scott Mansell f84577b90b LogManager: Move android logcat code into the proper place. 2015-10-04 02:18:06 +13:00
Scott Mansell 5f8a67250f Bitset: Make bool() operator explicit. 2015-10-04 01:37:32 +13:00
Scott Mansell 18142eddb4 LogManager: Remove unused define. 2015-10-04 00:38:47 +13:00
Scott Mansell 6153424b8c LogManager: replace set of LogListener pointers with bitset.
Mostly so we can iterate over which LogListeners are enabled without
having to aquire a lock.
2015-10-04 00:38:34 +13:00
Scott Mansell 83fa504cd9 Bitset: Make cast overrides const 2015-10-04 00:36:58 +13:00
Scott Mansell 58d893e56f Merge pull request #3075 from waddlesplash/no-regexp
FileSearch: Don't use RegExes, just do string comparisons.
2015-10-02 04:00:23 +13:00
Lioncash c6678687b0 ChunkFile: Provide additional helpers for C-style arrays
Gets rid of magic numbers in cases where the array size is known at compile time.
This is also useful for future entries that are stack allocated arrays as these
functions prevent incorrect sizes being provided.
2015-09-30 19:45:46 -04:00
Tillmann Karras 2f6f30a939 Fix -Wuninitialized warnings 2015-09-29 04:27:27 +02:00
Rohit Nirmal 3b75f45cf6 Fix building with PCH disabled. 2015-09-28 11:51:08 -05:00
ghost cd19d5392e SaveState: Fix for race condition ("wait" didn't actually waited for file to flush/close).
g_compressAndDumpStateSyncEvent was Set() before destruction of file object (i.e. before flushing changes and closing file).

Also, adds Common::ScopeGuard wrapper for RAII.
2015-09-27 21:40:32 +03:00
waddlesplash 5643fe5d1f FileSearch: Don't use RegExs, just do string comparisons.
Nothing used the RegEx feature of FileSearch, and GCC < 4.9
doesn't support C++11 RegEx properly, so get rid of it.
2015-09-27 13:25:51 -04:00
Lioncash cc036ca86c Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
Lioncash 19ac565e0d Common: Move asserts to their own header 2015-09-26 18:51:27 -04:00
Lioncash 867df74b52 Common: Remove strdup define
It's not used anywhere.
2015-09-26 18:50:42 -04:00
Lioncash 1d42db2439 Common: Move NonCopyable to its own header 2015-09-26 18:50:35 -04:00
Lioncash bb927ad738 Atomic_GCC: Throw out old code 2015-09-26 15:59:36 -04:00
Lioncash d67ea484f7 Common: Get rid of compiler semantic asserts
They were never used.
2015-09-26 15:57:13 -04:00
Tillmann Karras ac5f56df7e mbedTLS: adapt Dolphin's Visual Studio files 2015-09-25 03:46:41 +02:00
Lioncash 7890b38c15 x64Emitter: Remove unimplemented function prototype in OpArg 2015-09-22 19:54:46 -04:00
Lioncash 6e5f60bab7 x64Emitter: Make single argument constructor explicit 2015-09-22 19:51:14 -04:00
Scott Mansell c9836ff592 EGL: Don't depend on VideoCommon or Core 2015-09-22 00:36:48 +12:00
Scott Mansell 72249b8085 GLX: Don't depend on Core or VideoCommon 2015-09-22 00:36:47 +12:00
Scott Mansell 01ed925fec AGL: Don't depend on VideoCommon 2015-09-22 00:36:46 +12:00
Scott Mansell 93f6563789 WGL: Don't depend on Core/VideoCommon 2015-09-22 00:36:45 +12:00
Scott Mansell 95f3c956a8 Move GL interface code out of the OpenGL video backend. 2015-09-22 00:36:45 +12:00
CastellaFactory 1f83a3d146 [Netplay:Traversal] Add "Force Netplay Listen Port" feature that was in old netplay branch 2015-09-20 20:15:13 +09:00
Lioncash cfa43f64bf x64Emitter: Remove pointer cast
No more ubsan asserts in the JIT and x64 emitter code paths when running starfield.
2015-09-17 09:35:13 -04:00
Tillmann Karras b8f3519e49 Fix -Wunused-private-field warning 2015-09-16 23:31:53 +02:00
Lioncash 2c5c99ec71 Common: Get rid of a few pointer casts 2015-09-15 12:28:59 -04:00
Lioncash 56560403bd BreakPoints: Remove unimplemented function declarations 2015-09-14 11:50:34 -04:00
Ryan Houdek f121d7a8cd Merge pull request #3026 from lioncash/constexpr
MathUtil: Make Clamp and IsPow2 constexpr functions.
2015-09-12 02:28:38 -04:00
Lioncash 3f4852a03d MathUtil: Convert IsPow2 into a constexpr function 2015-09-12 01:26:05 -04:00
Lioncash b9e360df7b MathUtil: Convert Clamp into a constexpr function 2015-09-12 01:18:28 -04:00
Tillmann Karras 63c9fdd074 VertexLoaderX64: fix 2GB warnings
Unlike the CPU JIT, the vertex loader JIT already emits
position-independent code, so all we need to do is disable the warning.
2015-09-12 01:24:47 +02:00
flacs c5685ba53a Merge pull request #2972 from lioncash/align
General: Replace GC_ALIGN macros with alignas
2015-09-11 17:00:13 +00:00
Lioncash 19459e827f Partially revert "General: Toss out PRI macro usage" 2015-09-11 09:49:00 -04:00
Scott Mansell ef4974b6a2 Remove unused log type. 2015-09-10 18:39:32 +12:00
Scott Mansell 0ed1e977cc Rearrange the logtypes into something closer to alphabetical order.
Also fix up a few of the long names.
2015-09-10 18:39:08 +12:00
Scott Mansell de9310fe70 Split OpenGL errors into a separate logtype from Video errors.
Allows them to be enabled/disabled separately.
2015-09-10 18:38:45 +12:00
flacs 0c381d6547 Merge pull request #2975 from lioncash/emit
x64Emitter: Simplify/compress some conditionals
2015-09-08 18:44:54 +00:00
Markus Wick 81c07d4919 Merge pull request #2990 from lioncash/noncopy
Common: Alter semantics of the NonCopyable mixin
2015-09-08 11:08:58 +02:00
Ryan Houdek 2ad26ab3e9 [AArch64] Fix Test&Branch to relative location instructions.
Wasn't masking by the size of the offset encoding so negative values were killing the instruction
Missed commiting this in my integer gatherpipe PR.
Fixes crashing on AArch64.
2015-09-07 13:38:58 -05:00
Lioncash 53465e329a Common: Alter semantics of the NonCopyable mixin
Uses delete to make the unimplemented functions detectable at compile time
and not link time if they are used.

The move constructor and assignment operator are removed as moves are not
copies, but transfers of ownership, which isn't suited for this class.
2015-09-06 13:45:08 -04:00
Lioncash f194ee6223 x64Emitter: Simplify/compress some conditionals 2015-09-06 13:28:36 -04:00
Lioncash 8ce04f9a65 General: Replace GC_ALIGN macros with alignas
Standard supported alignment -> out with compiler-specific.
2015-09-06 12:53:51 -04:00
Scott Mansell be4caa3dc0 Merge pull request #2961 from lioncash/printf
General: Toss out PRI macro usage
2015-09-06 21:02:22 +12:00
Scott Mansell d52d8bf935 Merge pull request #2982 from lioncash/unique
Common: Remove StdMakeUnique.h
2015-09-06 21:01:48 +12:00
Lioncash 4fc71e9708 Common: Remove StdMakeUnique.h 2015-09-06 04:09:53 -04:00
Scott Mansell a26cac87fc Merge pull request #2959 from rohit-n/build-pch
Fix building with PCH disabled.
2015-09-06 19:59:49 +12:00
Lioncash 633be0387d General: Remove unimplemented function prototypes 2015-09-05 22:01:07 -04:00
Lioncash 8fdb013d54 General: Toss out PRI macro usage
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
Rohit Nirmal 8aed7589ae Fix building with PCH disabled. 2015-09-04 10:34:45 -05:00
Lioncash 0d0dd075ef CommonFuncs: Remove define for snprintf
VS 2015 implements snprintf
2015-09-04 03:13:02 -04:00
Lioncash a11ae2cf30 CommonFuncs: Remove SLEEP macro
There's already a function in Thread for this.
2015-09-04 02:43:38 -04:00
shuffle2 272302be82 Merge pull request #2950 from lioncash/bf
BitField: Enable ifdef'd out code for Windows
2015-09-03 22:56:55 -07:00
Lioncash 3f1b488a12 CommonFuncs: Replace ArraySize define with constexpr equivalent 2015-09-03 23:47:14 -04:00
Lioncash 102a2a975d BitField: Enable ifdef'd out code for Windows 2015-09-03 22:06:15 -04:00
Shawn Hoffman 66a3951c3b [windows] Add workaround(HACK) for vs2015 implementating a conformant std::is_trivially_copyable...
see https://github.com/dolphin-emu/dolphin/pull/2218
2015-09-03 04:39:06 -07:00
Shawn Hoffman bea18eedc4 [windows] remove various workarounds which were required for vs2013 2015-09-03 04:39:05 -07:00
Shawn Hoffman 30702c17b6 [windows] When making scmrev.h, also look for msysgit explicitly. VS2015 packages it. 2015-09-03 04:39:04 -07:00
Shawn Hoffman aa7208e270 [windows] Update projects to vs2015. 2015-09-03 04:23:01 -07:00
Ryan Houdek d495ad5104 [AArch64] Make TST reg, reg emitter alias 2015-08-31 14:03:32 -05:00
Ryan Houdek d003934b8a Merge pull request #2929 from Sonicadvance1/aarch64_optimize_gpr_flush
Aarch64 optimize gpr flush
2015-08-31 10:55:45 -05:00
Ryan Houdek f2c17436ab [AArch64] Fix issue in emitter.
Loadstore pairs support only signed offsets, not unsigned.
2015-08-30 23:05:59 -05:00
Ryan Houdek b907576510 [AArch64] Support profiling by cycle counters if they are available to EL0 2015-08-30 10:25:16 -05:00
Lioncash 310bb46967 Hash: Narrow define scope 2015-08-29 02:57:35 -04:00
Markus Wick 54f882704a Merge pull request #2914 from JosJuice/fix-volumedirectory
Fix VolumeDirectory
2015-08-26 22:12:23 +02:00
JosJuice d276d1abbb Fix VolumeDirectory
Fixes the regression from a225426 and clarifies a related comment.
2015-08-26 19:21:09 +02:00
Tillmann Karras ee4a12ffe2 Jit64: some byte-swapping changes 2015-08-26 05:41:18 +02:00
flacs 6015e2d812 Merge pull request #2900 from aroulin/x64emitter-rcp
x64Emitter: add RCPPS and RCPSS SSE instructions
2015-08-26 05:05:53 +02:00
Ryan Houdek 4fa23abbe1 [AArch64] Implement MOVI and ORR(imm) in the NEON emitter. 2015-08-23 15:34:53 -05:00
aroulin 0a0e012fab x64Emitter: add RCPPS and RCPSS SSE instructions 2015-08-23 16:59:27 +02:00
Ryan Houdek cc3fb7e7b4 Merge pull request #2883 from degasus/master
Profiler: Sort output by total time
2015-08-22 17:52:54 -05:00
Lioncash a69755d9ee x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
This also silences quite a few ubsan asserts from firing when the emitter is being used.
2015-08-21 18:09:48 -04:00
Lioncash caec42135d MathUtil: Remove IsNAN and IsINF
These aren't necessary, since the stdlib provides equivalents.
2015-08-21 15:05:43 -04:00
Lioncash a59f00a5e4 x64Emitter: Remove unused code 2015-08-20 23:05:20 -04:00
Lioncash b903921b14 x64Emitter: Make WriteModRM and WriteSIB private
These shouldn't be public.
2015-08-20 19:29:40 -04:00
degasus 17932935d9 Profiler: Sort output by total time 2015-08-20 11:50:43 +02:00
Lioncash 822cf2bcbf IniFile: Mark getter functions as const 2015-08-19 22:27:18 -04:00
flacs b0c9d73465 Merge pull request #2842 from Tilka/bmi2_flags
x64Emitter: don't check flags for most BMI2 ops
2015-08-19 21:38:09 +02:00
degasus 9bfff0d461 JitArm64: Fix jit clearing
We have to reset m_lastCacheFlushEnd on clearing.
2015-08-15 11:41:01 +02:00
Tillmann Karras 022286fb90 x64Emitter: don't check flags for most BMI2 ops
With the exception of BZHI, BMI2 instructions don't affect flags, so
don't check if they're locked.
2015-08-14 23:39:17 +02:00
Tillmann Karras 5e9fe4cd13 x64Emitter: check for immediates in BMI ops 2015-08-14 21:25:41 +02:00
degasus 878f919f63 JitArm64: Fastmem: fixup map & lookup 2015-08-14 11:24:03 -05:00
Ryan Houdek d5c99a5b48 Add support for a CodeBlock holding a child.
This is required to make sure two code spaces are relatively close to one another.
In this case I need the AArch64 JIT codespace and its farcode space to be within 128MB of one another for branches.
2015-08-12 12:57:06 -05:00
Lioncash 144ea9f4aa Arm64Emitter: Fix encoding of '2-reg misc' variant of FCMEQ 2015-08-10 19:48:36 -04:00
Ryan Houdek 922d476dab [AArch64] Fix FCMGE instruction encoding.
Fixes a crash when ps_sel is used (PSO 1&2 intro movies).
2015-08-09 14:54:55 -05:00
Tillmann Karras 439fb26b9b x64Emitter: add MOVSLDUP/MOVSHDUP 2015-08-06 10:39:43 +02:00
flacs 0aad44c980 Merge pull request #2753 from Tilka/fix_warnings
Fix some warnings
2015-08-04 18:54:31 +02:00
Tillmann Karras 5a05187b3b Fix some warnings
reorder, sign-compare, pessimizing-move
2015-08-04 10:58:24 +02:00
Lioncash 3a450f72f8 CPUDetect: Remove a memset call on the this pointer 2015-07-28 23:44:18 -04:00
skidau ad68de59bc Merge pull request #2665 from AdmiralCurtiss/relative-memory-card-paths
GameCube Config: Store paths relatively when selected file is within Dolphin's directory. (Windows)
2015-07-20 14:09:36 +10:00
degasus 6f38d1baa1 CodeBlock: Add a shared IsAlmostFull function
This function shall keep care about the low watermark of code space.
If we ran out of space, the JITs shall clear their block cache.
2015-07-15 08:53:05 +02:00
degasus b8dd68beef JitArm64: Far Code Cache 2015-07-12 09:41:32 +02:00
Yuri Kunde Schlesner 5c264281eb Common: Remove redundant masking in BitField
For the signed case, the shifts already remove the rest of the value, so ANDing by the mask is redundant.
2015-07-11 22:30:01 -04:00
Yuri Kunde Schlesner c334a6ca65 Common: Fix mask generation in BitField 2015-07-11 22:28:09 -04:00
Admiral H. Curtiss e9b3f1154d IniFile: Use a formatting for floats that makes them survive round-trips to a decimal string and back in all cases.
See https://randomascii.wordpress.com/2012/03/08/float-precisionfrom-zero-to-100-digits-2/
2015-07-11 21:12:06 +02:00
Admiral H. Curtiss a48f2add68 StringUtil: Always use the default C locale for StringFromFormat() instead of a system-specific one. 2015-07-11 16:30:32 +02:00
Rohit Nirmal c38ae5236e Fix building with PCH disabled. 2015-07-08 13:52:43 -05:00
Jeffrey Pfau c9a25f9484 Common: CallLambdaTrampoline can return a value
As it is currently written, CallLambdaTrampoline does not return a
value. However, some of the functions that are being wrapped may
return a value that the JIT is expected to understand. A compiler
*cough cough clang* may opt to alter %rax after the wrapped lambda
returns, e.g. popping a previous value, which can clobber the
return value. If we actually have a return value, then the compiler
must not clobber it.
2015-07-04 00:57:41 -07:00
Lioncash d09d59007a Arm64Emitter: Add a missing const specifier for an array table 2015-07-02 11:09:44 -04:00
Ryan Houdek b174f99b17 Merge pull request #2662 from Tilka/interpreter
Interpreter: turn SNaNs into QNaNs
2015-07-01 01:09:43 -05:00
Ryan Houdek afc3d30f5c [AArch64] Implement BFI & UBFIZ in the emitter.
Also fixes a bug in the UBFX instruction emitter. Naughty Naughty PPSSPP, not testing emitter functions you add.
2015-06-29 19:00:22 -05:00
Lioncash daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
Admiral H. Curtiss df70f50fdf GetExeDirectory() shouldn't return paths with /../ in the middle. 2015-06-26 23:51:40 +02:00
Tillmann Karras b78310bbe5 Interpreter: simplify fres 2015-06-26 09:29:18 +02:00
Jules Blok da7ec75350 Merge pull request #2643 from comex/fix-do-file-search
Fix DoFileSearch returning the passed-in directories themselves.
2015-06-25 15:20:16 +02:00
Tillmann Karras a725c06425 Logging: trigger _assert_() in release builds 2015-06-24 15:16:55 +02:00
Tillmann Karras 5b23182793 Common: drop GEKKO define
Afaict, it was used to build parts of Dolphin with DSPSpy, but that's
been broken forever, so lets clean up a little bit.
2015-06-24 12:13:41 +02:00
Tillmann Karras de3c01dc2a x64FPURoundMode: fix comments 2015-06-23 02:17:36 +02:00
comex acd6cb79a4 Fix DoFileSearch returning the passed-in directories themselves.
Fixes https://code.google.com/p/dolphin-emu/issues/detail?id=8697&can=3
2015-06-21 16:07:56 -04:00
Lioncash fa7d93690e Hash: Remove the HashFNV prototype
It has no function definition.
2015-06-20 21:23:25 -04:00
Ryan Houdek 87b45de634 Merge pull request #2606 from Sonicadvance1/aarch64_optimize_psq_st
[AArch64] Optimize paired quantized stores.
2015-06-14 19:03:50 -05:00
Matthew Parlane 6d9711c02c Merge pull request #2599 from Sonicadvance1/aarch64_clean_cpudetect
[AArch64] Clean up our CPUDetect.
2015-06-14 15:19:03 +10:00
Jeffrey Pfau b6d1512587 Common: Use more portable invocation of shm_open 2015-06-13 21:52:47 -07:00
Jeffrey Pfau 7085fcc8d6 Fix FreeBSD build 2015-06-13 21:52:47 -07:00
Ryan Houdek 5dc148159f [AArch64] Implement {U, S}QXTN{,2}
Also split out XTN to XTN and XTN2.
2015-06-13 23:16:17 -05:00
Matthew Parlane f32cede086 Revert "x64: build a Position-Independent Executable (PIE)" 2015-06-14 16:06:26 +12:00
Lioncash 74b359e390 Arm64Emitter: Remove unused variable from EncodeLoadStoreRegisterOffset 2015-06-13 14:27:15 -04:00
Ryan Houdek 0af5bdcf1d [AArch64] Clean up our CPUDetect.
Drops ARMv7 feature detection.
2015-06-13 08:04:23 -05:00
Ryan Houdek 3d2b116323 [AArch64] Implement a couple instructions in the emitter.
Implements LD2R.
Implements LD1R/LD2R with post-indexing support.
Implements vector min/max instructions.
2015-06-09 18:10:56 -05:00
Tony Wasserka 6833c203a6 Make make_scmrev.h.js recognize "stable" as a stable branch. 2015-06-09 20:03:25 +02:00
Jules Blok d5788f75a3 Merge pull request #2533 from degasus/syncgpu
Fifo: Rewrite SyncGPU
2015-06-09 09:43:26 +02:00
Fog 519d2549dd Fix File Extension Search Being Case Sensitive 2015-06-08 21:39:00 -04:00
Ryan Houdek ffe085f5ea [AArch64] Implement CRC32 texture hashing.
In a particular hashing heavy scene in Crazy Taxi the Murmur3 hash used 3.11% CPU time.
The new CRC32 hash in the same scene used 1.86%
This was tested on a Nvidia SHIELD Android TV with Cortex-A57s.

This will be a bit slower on the Nexus 9, the Denver CPU core is a bit slower with CRC32 texture hashing than Murmur3 texture hashing.
2015-06-08 19:16:50 -05:00
degasus d31bed8b79 Fifo: Rewrite SyncGpu
The new implementation has 3 options:
 SyncGpuMaxDistance
 SyncGpuMinDistance
 SyncGpuOverclock

The MaxDistance controlls how many CPU cycles the CPU is allowed to be in front
of the GPU. Too low values will slow down extremly, too high values are as
unsynchronized and half of the games will crash.
The -MinDistance (negative) set how many cycles the GPU is allowed to be in
front of the CPU. As we are used to emulate an infinitiv fast GPU, this may be
set to any high (negative) number.

The last parameter is to hack a faster (>1.0) or slower(<1.0) GPU. As we don't
emulate GPU timing very well (eg skip the timings of the pixel stage completely),
an overclock factor of ~0.5 is often much more accurate than 1.0
2015-06-08 23:16:24 +02:00
Ryan Houdek 3a3b782f3c [AArch64] Detect AES/SHA1/SHA2/CRC32 in CPUDetect. 2015-06-08 01:20:24 -05:00
Ryan Houdek 59e2225f7d Remove ARMv7 support. 2015-06-07 22:44:13 -05:00
Ryan Houdek e8ae0f8c3c Merge pull request #2562 from Sonicadvance1/aarch64_optimize_gatherpipe
[AArch64] Optimize gatherpipe stores
2015-06-07 23:23:11 -04:00
Ryan Houdek 8c2e5e2860 Merge pull request #2555 from Sonicadvance1/aarch64_rebase_ppsspp_emitter
[AArch64] Upstream PPSSPP's emitter changes.
2015-06-07 23:23:04 -04:00
Ryan Houdek c79dd40e72 Merge pull request #2529 from JosJuice/ini-skip-bom
Skip reading UTF-8 BOM at the beginning of INI files
2015-06-07 23:13:53 -04:00
Matthew Parlane 9e1aab663f Revert "SDL: handle SDL_QUIT event" 2015-06-08 13:43:39 +12:00
Ryan Houdek 8ae12d8005 [AArch64] Add ASIMD LDR/STR with register offset 2015-06-07 19:53:05 -05:00
Ryan Houdek 05b72c5d31 [AArch64] Upstream PPSSPP's emitter changes.
Requires a minor change to in the JIT to make sure everything still works.
2015-06-07 19:50:21 -05:00
Ryan Houdek 588de63f9c Merge pull request #2141 from Tilka/position_cache
zfreeze: cache vertex positions
2015-06-07 16:44:40 -04:00
flacs cab9f7b4da Merge pull request #2548 from endrift/jit-nulls
Common: Add null checks when adding and removing breakpoints
2015-06-07 12:44:41 +02:00
Tillmann Karras 5ddd2cef6c zfreeze: cache vertex positions
Suggested by degasus.
2015-06-07 12:13:00 +02:00
Jeffrey Pfau 1214161ad9 Common: Add null checks when adding and removing breakpoints 2015-06-07 03:03:35 -07:00
flacs d3e47dfcf5 Merge pull request #2496 from Tilka/fma4
Jit64: add FMA4 support to fmaddXX
2015-06-06 17:31:55 +02:00
flacs 726fc58b49 Merge pull request #2531 from lioncash/vs
Common: Fix a typo in the VS project file.
2015-06-06 07:18:22 +02:00
Lioncash 3239a204db Common: Fix typos in BlockingLoop.h 2015-06-05 23:37:37 -04:00
Tillmann Karras 9ec5a4544f SDL: handle SDL_QUIT event
Using SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS which installs a signal
handler for SIGINT and SIGTERM. There will be a way to prevent this in
2.0.4 but for now we'll need to handle SDL_QUIT.
2015-06-05 19:34:06 +02:00
Lioncash da9a858dcb Common: Fix a typo in the VS project file 2015-06-05 13:27:14 -04:00
JosJuice 990d61b786 Skip reading UTF-8 BOM at the beginning of INI files 2015-06-05 18:32:58 +02:00
Lioncash fe77505d4d Jit: Make IsInCodeSpace() const 2015-06-04 20:52:53 -04:00
Lioncash 4f276ede0f Arm64Emitter: Make GetReg() const 2015-06-04 20:43:22 -04:00
Tillmann Karras d4538c762f MemoryUtil: get executable pages near static data
and clean up a bit.
2015-06-03 21:44:31 +02:00
Tillmann Karras a0597f0d62 Jit64: turn 32 bit addresses into offsets 2015-06-03 21:44:31 +02:00
comex 0c5aa54606 Merge pull request #2470 from degasus/syncgpu
Common: Blocking Loop (extracted from Fifo.cpp)
2015-06-02 20:19:00 -04:00
comex 35ca27f1cd Fix bug where Gecko codes would be "enabled by default"
Actually caused by IniFiles::GetLines leaving the output vector in its
old state if the section wasn't found, and Gecko::LoadCodes not checking
the return value.  Fix by moving lines->clear() up.
2015-06-02 19:04:04 -04:00
comex a3b3f0522b Merge pull request #1556 from comex/project-moration
Rudimentary version of Wii IPC determinism.  Ported from my old udpnet branch.
2015-06-02 18:38:19 -04:00
Tillmann Karras 8db6588bb9 XEmitter: add FMA4 instructions 2015-06-02 19:19:52 +02:00
flacs d36df5b1b4 Merge pull request #2468 from JosJuice/honor-logging-startup
Honor logging settings at startup
2015-06-01 23:56:15 +02:00
Ryan Houdek 210d7c4d54 Merge pull request #2486 from Tilka/x86_32
Jit64: drop more x86_32 left-overs
2015-05-31 13:06:19 -04:00
Tillmann Karras eb057d49a0 x64Emitter: drop duplicate enum & unused wrappers
Keep the more explicit version of the two SSECompare enums.

And the unused CMP* wrappers wouldn't exactly make the code more
readable anyway.
2015-05-31 08:32:31 +02:00
Tillmann Karras a6004f8274 Jit64: drop more x86_32 left-overs 2015-05-31 05:28:40 +02:00
degasus bfa61105d5 Common: Update BlockingLoop to only use one atomic.
This merges two atomic<bool> into one atomic<int>.
We did move the bit from one bool to another, now we can use operator--.
2015-05-30 12:58:09 +02:00
degasus 02a3a063c3 Fifo: Extract syncing loop
It's now a new helper function within common.
2015-05-30 12:58:09 +02:00
Lioncash e3a6191f02 x64Emitter: Pass some OpArg parameters by const reference
Considering OpArg is a struct, passing by value creates unnecessary copies.
2015-05-29 01:13:29 -04:00
Lioncash 810a04db58 x64Emitter: Remove 'Gen::' namespace prefix from some parameters
The emitter is already within the Gen namespace, so this isn't necessary.
2015-05-29 01:05:09 -04:00
Lioncash 84ed196c14 x64Emitter: Adjust position of reference and pointer indicators
Matches the coding style.
2015-05-29 01:04:45 -04:00
comex 45b07cbdcd Fix determinism issues with Wiimote netplay.
- Change the Wiimote emulation SYSCONF R/W to use the temporary NAND if in use.
- Fix up SysConf API so this actually works.

Kind of a hack.  Like I said, this can be cleaned up when configuration
is synced...
2015-05-28 19:19:00 -04:00
comex dc91e8b607 Add a mode to use a dummy Wii NAND.
Eventually, netplay will be able to use the host's NAND, but this could
still be useful in some cases; for TAS it definitely makes sense to have
a way to avoid using any preexisting NAND.

In terms of implementation: remove D_WIIUSER_IDX, which was just WIIROOT
+ "/", as well as some other indices which are pointless to have as
separate variables rather than just using the actual path (fixed, since
they're actual Wii NAND paths) at the call site.  Then split off
D_SESSION_WIIROOT_IDX, which can point to the dummy NAND directory, from
D_WIIROOT_IDX, which always points to the "real" one the user
configured.
2015-05-28 19:14:42 -04:00
comex a0a80c9a9c Fix CopyDir to not require source and dest paths to end with "/". 2015-05-28 19:14:42 -04:00
comex a225426510 Rewrite FileSearch and improve ScanDirectoryTree.
- FileSearch is now just one function, and it converts the original glob
  into a regex on all platforms rather than relying on native Windows
  pattern matching on there and a complete hack elsewhere.  It now
  supports recursion out of the box rather than manually expanding
  into a full list of directories in multiple call sites.

  - This adds a GCC >= 4.9 dependency due to older versions having
  outright broken <regex>.  MSVC is fine with it.

- ScanDirectoryTree returns the parent entry rather than filling parts
  of it in via reference.  The count is now stored in the entry like it
  was for subdirectories.

- .glsl file search is now done with DoFileSearch.

- IOCTLV_READ_DIR now uses ScanDirectoryTree directly and sorts the
  results after replacements for better determinism.
2015-05-28 19:14:42 -04:00
JosJuice 6fb8ce58d6 Honor logging settings at startup
https://code.google.com/p/dolphin-emu/issues/detail?id=7959
2015-05-28 09:28:23 +02:00
Matthew Parlane 3135b4f3e4 Merge pull request #2461 from lioncash/barrier
Thread: Remove unused Barrier class
2015-05-27 13:21:14 +10:00
Lioncash 23c11b3f27 Thread: Remove unused Barrier class 2015-05-26 19:25:59 -04:00
degasus ebad10f2a1 Common: Fix IsTriviallyCopyable macro for GCC 5
Based on quarthex's patch in PR #2440
2015-05-26 19:50:14 +02:00
Markus Wick a6412fb41e Merge pull request #2162 from degasus/prefetch_tex
CustomTexture: prefetch all available textures
2015-05-26 13:30:26 +02:00
Markus Wick 5d3a248811 Merge pull request #2455 from lioncash/fifo
FifoQueue: Use atomics instead of volatile members
2015-05-26 12:26:36 +02:00
Lioncash de5038849e FifoQueue: Use atomics instead of volatile members 2015-05-26 05:34:47 -04:00
Rohit Nirmal dbe54e63ed Fix building with PCH disabled. 2015-05-25 22:26:43 -05:00
Ryan Houdek 7c04c76a26 Merge pull request #2421 from Tilka/jit_stuff
Jit64: fixes + less code
2015-05-25 23:08:24 -04:00
Ryan Houdek 69963dc4b0 Merge pull request #2274 from degasus/disable_bbox
Disable bbox
2015-05-25 08:46:12 -04:00
Tillmann Karras 30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Tillmann Karras 268f52e054 Add missing license headers 2015-05-25 13:11:47 +02:00
Tillmann Karras 6d9986846c Simplify some more license headers 2015-05-25 13:11:41 +02:00
degasus ac0e304159 Jitregister: fix common-core dependency 2015-05-25 09:33:34 +02:00
Lioncash 88e1850231 GekkoDisassembler: Fix typecast for the second printf param for mtfsf 2015-05-24 01:54:04 -04:00
Lioncash 612118e8e5 GekkoDisassembler: Fix disassembly of mtfsf's FM field 2015-05-24 01:51:07 -04:00
Tillmann Karras 6593ba7ecc XEmitter: add BLENDPS/BLENDPD 2015-05-21 12:33:36 +02:00
Tillmann Karras ad6b522c3b XEmitter: fix L bit in VEX prefix 2015-05-20 09:34:27 +02:00
Fiora 22317ac74c Merge pull request #2417 from Tilka/vex
XEmitter: VEX-related cleanup

I'm merging this solely because of the FMA3 error message
2015-05-18 16:23:23 -07:00
Tillmann Karras c2c31086ae XEmitter: restructure WriteVEXOp wrappers 2015-05-17 18:44:56 +02:00
Tillmann Karras ae8efaa6a3 XEmitter: add VBLENDVPD and VCMPPD 2015-05-17 18:42:36 +02:00
Tillmann Karras 18e9241637 XEmitter: rename WriteVex to WriteVEX 2015-05-17 09:35:53 +02:00
Tillmann Karras 9e3f4df733 XEmitter: rename WriteRex to WriteREX 2015-05-17 09:35:53 +02:00
degasus 562b9d4a9f VideoCommon: Abort texture prefetching on low RAM
There is no nice way to correctly "detect" the "used" memory, so we just say
we're fine to use 50% of the physical memory for custom textures.

This will fix out-of-memory crashes, but we still might run into swapping issues.
2015-05-16 15:39:36 +02:00
Tillmann Karras 7f57e27a65 x64CPUDetect: fix AVX2/BMI1/BMI2/HTT detection
On non-Windows platforms, ECX was not being initialized to 0.
2015-05-14 23:14:34 +02:00
Ryan Houdek 379f9feebd Fix non-PCH build. 2015-05-10 20:16:05 -05:00
Lioncash 76bbd46829 Core: Remove some header inclusions in header files
Replaces them with forward declarations of used types, or removes them entirely if they aren't used at all. This also replaces certain Common headers with less inclusive ones (in terms of definitions they pull in).
2015-05-08 22:38:59 -04:00
comex 2264e7b087 Use a fake exception to exit early in case of memory breakpoints.
Change TMemCheck::Action to return whether to break rather than calling
PPCDebugInterface::BreakNow, as this simplified the implementation; then
remove said method, as that was its only caller.  One "interface" method
down, many to go...
2015-04-24 22:37:54 -04:00
comex b84f6a55ab Automatically disable fastmem and enable memcheck when there are any watchpoints.
- Move JitState::memcheck to JitOptions because it's an option.
- Add JitOptions::fastmem; switch JIT code to checking that rather than
  bFastmem directly.
- Add JitBase::UpdateMemoryOptions(), which sets both two JIT options
  (replacing the duplicate lines in Jit64 and JitIL that set memcheck
  from bMMU).
  - (!) The ARM JITs both had some lines that checked js.memcheck
    despite it being uninitialized in their cases.  I've added
    UpdateMemoryOptions to both.  There is a chance this could make
    something slower compared to the old behavior if the uninitialized
    value happened to be nonzero... hdkr should check this.
- UpdateMemoryOptions forces jo.fastmem and jo.memcheck off and on,
  respectively, if there are any watchpoints set.
- Also call that function from ClearCache.
- Have MemChecks call ClearCache when the {first,last} watchpoint is
  {added,removed}.

Enabling jo.memcheck (bah, confusing names) is currently pointless
because hitting a watchpoint does not interrupt the basic block.  That
will change in the next commit.
2015-04-24 22:37:53 -04:00
comex b3aaa46d42 Merge pull request #2088 from Sintendo/diecmp
Emit 'TEST reg, reg' for 'CMP reg, 0' automatically
2015-04-23 16:34:23 -04:00
comex ad95454d04 Merge pull request #2223 from phire/imm
Cleanup OpArg, make immediates more explicit.
2015-04-23 01:53:18 -04:00
Lioncash b0613bb1c8 General: Apply the const specifier where applicable 2015-04-15 02:04:03 -04:00
comex 5fff97f3f4 Fix printf width in TraversalServer. 2015-04-13 02:26:52 -04:00
degasus ef6bdf674f Common: Remove TLS usage in GetLastErrorMsg
Just return std::string as this code isn't performance critical.
2015-04-07 22:42:21 +02:00
Jordan Cristiano 4051da75e4 Made cycle count atomic to avoid using a mutex 2015-03-31 04:09:33 -04:00
Lioncash eacf741051 DolphinWX/Common: Change some find_first_of usages to find
It's unnecessary to use find_first_of when all you're searching for is a single character.
2015-03-24 08:32:44 -04:00
Sintendo c19482c9a3 Add function to emit CMP, or TEST when possible
Also, a spelling mistake.
2015-03-22 17:22:27 +01:00
magumagu 52aeab3d0e Merge pull request #2240 from lioncash/emitter
x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
2015-03-20 22:09:11 -07:00
Lioncash fab7add718 x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
It only ever passed the equivalent of the class' this pointer. May as well get rid of it.
2015-03-20 23:28:36 -04:00
skidau 39c41f5c70 Merge pull request #2192 from Tilka/sse2
VertexLoaderX64: support SSE2 as a fallback
2015-03-21 12:58:24 +11:00
magumagu 31add72dee Merge pull request #2237 from lioncash/round
x64FPURoundMode: Make a look-up table static
2015-03-19 10:59:22 -07:00
Lioncash e57201eb71 x64FPURoundMode: Make a look-up table static
Since it's only a look-up table, this doesn't need to be recreated every time the function is called.
2015-03-19 09:07:36 -04:00
Tillmann Karras 9793fed742 XEmitter: add PUNPCKLQDQ 2015-03-18 12:09:06 +01:00
mathieui 8201a52cec Traversal: Use a decent PRNG instead of rand()
we don’t need cryptosecure random, but having a uniform distribution is
always better.
2015-03-18 10:16:11 +01:00
mathieui e0ef8fc03f NetPlay: Make the enet interrupts work
Otherwise, it would work but any async sending would be delayed by 4ms or
wait until the next packet was received.

Also increase the client timeout to 250ms, since enet_host_service is now
really interrupted.
2015-03-18 10:16:11 +01:00
mathieui 44d7207a1c NetPlay: add a Common/ENetUtil namespace
Move WakeupThread in it
2015-03-18 09:23:44 +01:00
Ryan Houdek 297012ddd7 Fix Wii configuration path being incorrect.
On loading the NANDRoot from the config, if it isn't set it will still attempt to be set.
So on the invalid empty path, just don't set it.
2015-03-17 21:27:40 -05:00
Scott Mansell 858ff69c01 Make OpArg.offset and operandReg private.
Also cleaned up WriteRest function.
2015-03-17 18:49:30 +13:00
Scott Mansell 6262a9bcbe Make immediates more explicit
Instead of just casting OpArg::offset when needed, add some
accessor functions.

Also add some safety asserts to catch any mistakes.
2015-03-17 18:49:26 +13:00
Lioncash c73cac3ee9 Merge pull request #2220 from shuffle2/win-con-listener
[windows] Replace ConsoleListener, which was not actually used.
2015-03-16 02:03:27 -04:00
Shawn Hoffman 78be0ab9ad [windows] Just kill ExtendedTrace.
The code is not really worth saving, and afaik it has never actually been helpful.
2015-03-15 22:30:38 -07:00
Shawn Hoffman 0a79b6d5a7 [windows] Remove ConsoleListener, which was not actually used.
Replace it with the DebuggerLogListener.
2015-03-15 22:11:18 -07:00
Ryan Houdek 5e0b9179db Merge pull request #2186 from Sonicadvance1/aarch64_optimize_paired_slowmem
[AArch64] Optimize slowmem paired stores.
2015-03-15 14:37:21 -05:00
Ryan Houdek bcc434095d Merge pull request #2212 from Sonicadvance1/fix_user_paths
Fix user directories at times doing stupid things.
2015-03-15 09:45:02 -05:00
Ryan Houdek aaf04aeaca Fix user directories at times doing stupid things.
With my previous changes Dolphin would fail to create the user directory if it didn't exist, and would dump all the configuration options in to the cwdir.
This was a bit more complicated to fix in a clean fashion, so I took to moving around code concerning user directories.
Instead of having GetUserPath serve a dual purpose of both getting and setting our user directories, break out to a new SetUserPath function.

GetUserPath will know only get the configured user path.
SetUserPath will set our user paths and setup the internal user path state.

This ending up being a lot cleaner overall, which is nice. Also less mind bending when attempting to read the code.

So now we won't dump all of our configuration in to the cwdir if ~/.dolphin-emu isn't found.

Fixes issue 8371.
2015-03-15 09:19:48 -05:00
Ryan Houdek 5e6d49d96b Merge pull request #2209 from magumagu/remove-hle-opcode
Remove remnants of old fake opcodes.
2015-03-15 07:13:07 -05:00
Rohit Nirmal 48ec42d4a0 Core: Change NULLs to nullptrs. 2015-03-14 20:20:41 -05:00
magumagu 87dcda5785 Remove remnants of old fake opcodes.
These are illegal opcodes, and should be treated as such.
2015-03-14 16:59:12 -07:00
Markus Wick ec8a074690 Merge pull request #2153 from degasus/enet
enet: Search for shared library
2015-03-14 17:23:27 +01:00
skidau 5dc23a93b6 Merge pull request #2169 from magumagu/rect-clamp
Fix clamping for rectangles.
2015-03-12 13:31:51 +11:00
Ryan Houdek f6511c3ba5 [AArch64] Add an assert to SMOV in the emitter.
SMOV doesn't have an encoding for moving a 32bit element to a 32bit GPR.
One should use UMOV if they want that.
2015-03-08 12:29:45 -05:00
Ryan Houdek a9622c247b Merge pull request #2146 from Sonicadvance1/aarch64_optimize_fpr_push_pop
[AArch64] Optimize FPR pushing and popping.
2015-03-08 08:51:45 -05:00
magumagu 863a4c9ce0 Fix clamping for rectangles.
Clamping a rectangle correctly requires fully clamping all four
coordinates in the general case.

This should fix issue 6923, sort of; at least, it fixes the part where a
rectangle ends up with a nonsensical height after being clamped.
2015-03-04 17:15:29 -08:00
Ryan Houdek fbdee7b15f [AArch64] Handle FPR island registers in a less dumb way. 2015-03-03 00:30:05 -06:00
Tillmann Karras a5ea6c6e93 enet: fix Visual Studio files 2015-03-02 22:20:37 +01:00
degasus 691b690afe enet: Search for shared library 2015-03-02 22:18:57 +01:00
Ryan Houdek f1a9db9bdc [AArch64] Stop violating the AAPCS64 so much. 2015-03-02 11:21:15 -06:00
Ryan Houdek fad46729b0 [AArch64] Implemented paired pushing/popping for the VFP.
A bit more efficient if we are only pushing two VFP registers.
We can probably be a bit more efficient in the future by mixing paired loadstores in to the other paths as well.
2015-03-02 06:27:47 -06:00
Ryan Houdek 39e357d62d [AArch64] Implement VFP loadstore paired in the emitter. 2015-03-02 06:27:17 -06:00
Ryan Houdek 8b8310d28c [AArch64] Optimize FPR pushing and popping.
Previously on FPR pushing and popping we would do a single STR/LDR per quad FPR we wanted to push/pop.
In most of our cases when we are pushing and popping VFP registers they will be consecutive registers that will save more efficiently using the NEON
loadstores that can do up to four quad registers.
So this can potentially cutting instructions down to ~1/4th the amount of instructions if the registers are all consecutive.

On the Cortex-A57 this is basically just an icache improvement, but on the Nvidia Denver this may be optimized to be more efficient. Either way it's a
win.
2015-03-02 06:27:13 -06:00
Tillmann Karras 88264f5712 Fix -Wswitch warning 2015-03-01 16:17:32 +01:00
skidau 1dcd0ad879 Merge pull request #2129 from Sonicadvance1/shuffle_user_dir
Move user directory detection location to UICommon.
2015-02-27 14:07:06 +11:00
Ziek 779f275486 Added TraversalServer.cpp to Core/Common 2015-02-25 18:28:27 -08:00
Ziek 619a3a5171 Added all of enet lib, changed Cmake files accordingly 2015-02-25 18:28:27 -08:00
Ziek a629555e6b Added Gui elements in Netplay Setup Diag so a person can choose a traversal server
Fixed bug with UPnP so that it will grab the proper address and protocal
Fixed bug that caused dolphin to freeze when host codes were to large
2015-02-25 18:28:26 -08:00
Ziek 1dea3780a7 Fixed issue where players were not disconnecting correctly 2015-02-25 18:28:26 -08:00
Ziek 074d688884 Change netplay initial gctime to be determined by the hosts initial time 2015-02-25 18:28:26 -08:00
Ziek 4cdc307b87 Moved Traversal Client code over from old netplay
Moved over gui code for copying host code
added gui to netplay diag setup to switch between direct and traversal connection
2015-02-25 18:28:25 -08:00
Lioncash 7408de7e79 Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2
Basic Formatting/Whitespace Cleanup
2015-02-25 18:07:56 -05:00
magumagu b1fbf205ec Merge pull request #2122 from Tilka/intrinsics
Intrinsics: drop custom _mm_shuffle_epi8()
2015-02-25 10:48:34 -08:00
Stevoisiak 93b16a4a2d Formatting/Whitespace Cleanup
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
Markus Wick d6ccbb1f9c Merge pull request #2004 from randomstuff/stringutil-c-locale
Use the C locale for non-Windows CharArrayFromFormatV() and StringFromFormat()
2015-02-25 13:17:04 +01:00
Ryan Houdek ca6e154f0b Fix a bug on user path re-assignment.
The Load directory wasn't being properly reassigned when the user path changed, which causes a bunch of issues with things loading from the wrong
place when using the -U option in Dolphin.
2015-02-25 05:45:25 -06:00
Ryan Houdek db06f058e4 Move user directory detection location to UICommon.
The UI should decide on where it wants the user directory, not our core system.
This is in anticipation of some upcoming work on Android which will need proper user directory setting.
2015-02-25 03:31:59 -06:00
Tillmann Karras dd818a3831 Intrinsics: drop custom _mm_shuffle_epi8()
We don't actually use it, because of reasons.
2015-02-24 19:37:16 +01:00
Tillmann Karras 7056f6308a Fix a -Wunused-result warning 2015-02-24 10:29:59 +01:00
Tillmann Karras daf4aa0947 Common: move _M_SSE macro to Intrinsics.h 2015-02-24 01:06:25 +01:00
Tillmann Karras 9aa463c590 Common: move _mm_shuffle_epi8 to Intrinsics.h 2015-02-24 01:06:24 +01:00
Tillmann Karras f298f00e1b Clean up the intrinsics #ifdef mess 2015-02-24 01:02:36 +01:00
Tillmann Karras 56795efd42 Common: add single header for all intrinsics 2015-02-24 01:01:10 +01:00
Tillmann Karras 387777ed72 Fix VTune static library dependencies
Since libcommon.a is also the last library to be linked, this has the
totally hacky but useful side-effect that it doesn't require people to
modify CMake files for temporarily adding VTune code to other Dolphin
libraries.
2015-02-22 20:49:30 +01:00
Fiora c54a8c54fb Merge pull request #1994 from Tilka/vtune
JitRegister: fix VTune integration
2015-02-22 07:58:12 -08:00
Markus Wick 86226cb2b9 Merge pull request #1979 from Mullin/head
Use clock_gettime instead of gettimeofday, it's more efficiency on low power system
2015-02-18 21:54:16 +01:00
Mullin 797fc14414 Use clock_gettime instead of gettimeofday, it's more effiency on low power system
Add def for mac(They don't support clock_gettime)

Fix my mistake

Fix my mistake 2
2015-02-18 21:44:58 +01:00
mimimi085181 f6c9b8243e GetCRC32: Fix the hash for the last byte(s)
This fixes issue 8227
https://code.google.com/p/dolphin-emu/issues/detail?id=8227
2015-02-18 14:26:28 +01:00
Ryan Houdek 120df4c688 [AArch64] Implement loadstore unscaled. 2015-02-16 22:00:43 -06:00
Ryan Houdek 814aaaf538 [AArch64] Implement a couple of emitter instructions.
These will be used with the vertex loader JIT recompiler.
2015-02-13 12:16:06 -06:00
Ryan Houdek 0252bbb33f [AArch64] Fix non-PCH build. 2015-02-13 12:16:05 -06:00
Ryan Houdek 8074d06270 [ARM] Fix poison memory functions.
We were poisoning 4x more data and overrunning our buffers. We don't want to do this.
2015-02-13 12:16:05 -06:00
Ryan Houdek 20dae1f210 [AArch64] Fix a bunch of emitter asserts.
Since I've added the msg handler. I found all these asserts that were backwards. So they were asserting on the correct arguments.
2015-02-13 12:16:05 -06:00
Tillmann Karras 0ec48e0ec9 JitRegister: fix VTune integration 2015-02-12 02:14:49 +01:00
magumagu ac54c6a4e2 Make address translation respect the CPU translation mode.
The PowerPC CPU has bits in MSR (DR and IR) which control whether
addresses are translated. We should respect these instead of mixing
physical addresses and translated addresses into the same address space.

This is mostly mass-renaming calls to memory accesses APIs from places
which expect address translation to use a different version from those
which do not expect address translation.

This does very little on its own, but it's the first step to a correct BAT
implementation.
2015-02-11 13:56:22 -08:00
Gabriel Corona 266d50c811 Use the C locale for non-Windows CharArrayFromFormatV() and StringFromFormat()
The Windows implementations of CharArrayFromFormatV() and
StringFromFormat() use the "C"/".1252" locale instead of the user
locale (using _vsnprintf_l). On non-Windows, the user locale was used.

This leads to bugs on non-Windows: the Overclock parameter was
serialised with the user locale ("0,279322" in some locale) and was
interpreted back as "0" (because the C locale is used for parsing the
string).

Make non-Windows CharArrayFromFormatV() and StringFromFormat()
consistent with their Windows counterpart.

The locale code is not enables for Android:: uselocale is only
available since API 21 and API 21 only supports C and C.UTF-8.
2015-02-04 17:49:22 +01:00
Lioncash e07679114b Use emplace_* functions where in-place construction is preferable 2015-02-04 11:39:08 -05:00
Ryan Houdek a277172b49 Merge pull request #1980 from Sonicadvance1/AArch64_more_optimizations
[AArch64] Minor optimizations
2015-01-30 08:33:19 -06:00
Ryan Houdek 1c388b6c37 Fix clang on x86_64.
If we are compiling in the CRC32 hash, clang has an issue with casting a s32 to a u64.
Change our lens argument to a unsigned integer to fix the issue.
2015-01-29 01:55:20 -06:00
Ryan Houdek 8c53b88cc3 [AArch64] Implement a way to call lambdas in the emitter 2015-01-29 01:50:11 -06:00
Gabriel Corona a4adfe194a JitRegister: overload Register with a [start,end) variant 2015-01-28 09:50:19 +01:00
Gabriel Corona a957f93532 Use printf-like format in JitRegister::Register
The API is cleaner (no more magic default parameter) and more
extensible like this.
2015-01-28 09:47:08 +01:00
Markus Wick 53a9df10f9 Merge pull request #1817 from Armada651/custom-anaglyph
PostProcessing: Add support for user-supplied anaglyph shaders.
2015-01-26 11:08:29 +01:00
Ryan Houdek c340a324bc Merge pull request #1947 from Sonicadvance1/AArch64_tu_tl_merge
[AArch64] Implement TU/TL merging.
2015-01-25 23:07:32 -06:00
Ryan Houdek f24c466e7e [AArch64] Fix AArch64 instruction encoding. 2015-01-25 17:26:18 -06:00
Jules Blok 262c3b19ec PostProcessing: Add support for user-supplied anaglyph shaders.
There are lots of different anaglyph glasses out there and there may be even more creative uses for stereoscopic post-processing shaders.
2015-01-25 22:07:03 +01:00
skidau 0aef1d27aa Merge pull request #1933 from magumagu/intellisense-error-fix
Fix Intellisense error spam on Visual Studio.
2015-01-25 15:44:30 +11:00
magumagu 3aa3002010 Fix Intellisense error spam on Visual Studio.
Intellisense doesn't like defines in PCH files, and it doesn't like the deleted
constructor for BitField.  (I think it's being overly strict about the
"must have no non-default constructors" rule for classes in unions.)
2015-01-23 19:15:25 -08:00
Scott Mansell 75815b9b0d Added a comment to document an issue with the codegen. 2015-01-24 16:08:26 +13:00
Ryan Houdek 6470227a39 [AArch64] Minor fix in the UMULH/SMULH.
These two instructions ignore the register encoded in to RA.
2015-01-22 18:08:49 -06:00
degasus a353ead3cb CustomTexture: Use always safe texture hash 2015-01-21 21:22:55 +01:00
Ryan Houdek 80e6367e46 Merge pull request #1869 from Stevoisiak/GeneralConsistency
Minor consistency changes
2015-01-21 13:46:53 -06:00
Ryan Houdek 217c2c9d6a [AArch64] Add some more scalar VFP ops to the emitter. 2015-01-20 16:34:32 -06:00
Ryan Houdek cb967a6ff2 Merge pull request #1911 from Sonicadvance1/AArch64_paired_loadstores
[AArch64] Implements paired loadstores
2015-01-20 16:33:08 -06:00
Rohit Nirmal e35766cbcd Fix building with PCH disabled. 2015-01-20 17:01:37 +00:00
Ryan Houdek 7376956c92 Merge pull request #1912 from Sonicadvance1/Android_remove_workaround
[Android] Remove posix_memalign workaround.
2015-01-19 15:36:17 -06:00
Ryan Houdek dc95ea2ce6 Minor fix with psq_st{u,}x disassembly. 2015-01-19 10:12:23 -06:00
Lioncash ed58b1fd5b Merge pull request #1913 from Sonicadvance1/fix_paired_store_disassembly
Fixes disassembly of paired store instructions.
2015-01-18 23:27:34 -05:00
Ryan Houdek 596d3fd5f2 Fixes disassembly of paired store instructions.
Someone thought it would be a good idea to have the location as the first argument on the instruction.
Changed it to how it is supposed to be disassembled.
2015-01-18 16:37:43 -06:00
Ryan Houdek 08e50ec6dd [Android] Remove posix_memalign workaround.
Google fixed the issue of posix_memalign not being available. It now works fine in r10d of the NDK.
2015-01-18 16:34:42 -06:00
Ryan Houdek 8d5947efac [AArch64] Emitter improvements.
Adds a bunch of new instructions to the emitter.
2015-01-18 16:25:40 -06:00
Tillmann Karras e80b657cf4 Move MOVBE wrappers directly into XEmitter class 2015-01-18 13:29:34 +01:00
Tillmann Karras eb13aa43fe XEmitter: overload MOVBE() 2015-01-18 12:59:33 +01:00
Stevoisiak cb86db7b68 Minor consistency changes
Mostly small changes, like capitalization and spelling
2015-01-12 15:18:18 -05:00
Tillmann Karras 52b1a54597 MemoryUtil: mention Valgrind in mmap error message 2015-01-12 02:22:05 +01:00
Tillmann Karras f98359ef5c MemoryUtil: add comment for Valgrind
Valgrind doesn't support the mmap() flag MAP_32BIT. Adding a simple
CMake option would force a recompile, so just add this comment.
2015-01-12 02:22:05 +01:00
Ryan Houdek ca3b3adb50 Merge pull request #1849 from Sonicadvance1/AArch64_Emitter_Improvements
[AArch64] Emitter Improvements and additions.
2015-01-11 07:08:02 -06:00
Fiora 5b825e9091 StringUtils: use C locale instead of .1252
Fixes regression on Linux.
2015-01-11 00:15:57 -08:00
Pierre Bourdon 394257f33b Merge pull request #1798 from FioraAeterna/overclock
Support overclocking and underclocking the Gamecube CPU
2015-01-11 06:12:27 +01:00
Fiora 8237004448 JIT: optimize for the common case of unquantized psq_l/st
Optimistically assume used GQRs are 0 in blocks that only use one GQR, and
bail at the start of the block and recompile if that assumption fails.

Many games use almost entirely unquantized stores (e.g. Rebel Strike, Sonic
Colors), so this will likely be a big performance improvement across the board
for games with heavy use of paired singles.
2015-01-10 14:14:43 -08:00
Fiora c2c950108d Support overclocking and underclocking the Gamecube CPU
Won't work with all games, but provides a nice way to spend extra CPU to make
a variable framerate game faster (e.g. Spyro or The Last Story), or to make
a game use less CPU at the cost of a lower framerate (e.g. Rogue Leader).
2015-01-10 10:46:38 -08:00
Ryan Houdek c511ee763a [AArch64] Add the float emitter. 2015-01-08 19:55:31 -06:00
Ryan Houdek 6bc274a968 Merge pull request #1844 from Tilka/sse_mov
x64Emitter: fix MOVLPD/MOVHPD
2015-01-08 19:04:14 -06:00
Markus Wick f0f8384639 Merge pull request #1785 from degasus/custom_texture
VideoCommon: Custom texture handling
2015-01-08 13:29:45 +01:00
Ryan Houdek 5a0133c478 [AArch64] Add a few more VFP register helpers.
Renames Is128Bit to IsQuad to line up more with the other helpers.
2015-01-07 13:05:55 -06:00
Ryan Houdek 2b4f1aed40 [AArch64] Minor shifted register adjustment.
If we have a shift amount that is the full length of the source register then we have an invalid instruction.
This can happen when dealing with a couple of PowerPC instructions.
This same adjustment is already in the ARMv7 emitter.
2015-01-07 13:03:51 -06:00
Ryan Houdek 0a23ca9461 [AArch64] Add MUL/MNEG instruction aliases to the emitter. 2015-01-07 13:03:01 -06:00
Ryan Houdek d2eaba5cb7 [AArch64] Minor MOVI2R improvement.
Use the ZR for both input arguments in the case the immediate is the maximum immediate value.
This allows it to be aliased to MVN when disassembling.
2015-01-07 13:00:39 -06:00
Ryan Houdek 8dba84dd7c [AArch64] Fix 8 & 16 bit loadstore indexes.
I wasn't bit shifting correctly for 8 and 16bit loadstores.
2015-01-07 12:58:37 -06:00
Ryan Houdek f4f59ea71e [AArch64] Fix ADDS/SUBS emitter functions.
These weren't emitting the flag bit. So they were regular ADD and SUB emitters.
2015-01-07 12:56:45 -06:00
Tillmann Karras 1efa9b8b72 x64Emitter: add MOVLPS/MOVHPS 2015-01-07 11:23:52 +01:00
Tillmann Karras 3daa6ab259 x64Emitter: fix MOVLPD/MOVHPD
These instructions were using the wrong prefix which turned
MOVLPD(reg, mem) into MOVDDUP(reg, mem) and made the rest of them
invalid.
2015-01-07 11:23:52 +01:00
Dolphin Bot 89b7f1057f Merge pull request #1804 from FioraAeterna/fastermmu2_master
MMU: various improvements, bugfixes, optimizations
2015-01-07 00:49:58 +01:00
Markus Wick d8d4c94e07 Merge pull request #1819 from Tilka/cmake
CMake: simplify some expressions
2015-01-06 09:27:59 +01:00
Fiora 53b44ccb3a x64ABI: enhance MOVTwo to take an offset
This lets us merge displacements into MOVTwo in trampolines.
2015-01-05 10:45:58 -08:00
Fiora 8a6ea918b6 GekkoDisassembler: fix display of CRs in branch operations 2015-01-03 19:53:55 -08:00
Tillmann Karras 6bcdb10eee CMake: simplify some expressions 2015-01-03 13:17:57 +01:00
Ryan Houdek 479d1e56c3 Merge pull request #1783 from degasus/disablelogs
OGL: disable driver warnings fetch
2015-01-01 14:12:02 -06:00
degasus c6dd5044d6 VideoCommon: make hash independet from hires textures 2014-12-29 10:24:27 +01:00
Markus Wick c5a0b6bf50 Merge pull request #1432 from randomstuff/linux-perf
Add Linux perf JIT support (/tmp/perf-$pid.map)
2014-12-28 23:12:52 +01:00
degasus 1ed41672f5 OGL: disable driver warnings fetch
This did give a decent slowdown on some drivers.
2014-12-28 22:31:24 +01:00
Ryan Houdek 47b67fe527 Merge pull request #1744 from Buddybenj/google-code
Update Outdated Google Code References
2014-12-21 20:55:56 -06:00
Benjamin Przybocki fba3c48ec4 Update Outdated Google Code References 2014-12-20 21:17:51 -06:00
Ryan Houdek d3c2e8fb0a [AArch64] Improvements to the AArch64 emitter.
Fixes issues with negative offsets in loadstore instructions.
Adds ADRP/ADR instructions.
Optimizes MOVI2R function to take advantage of ADRP on pointers, can change a 3 instruction operation down to one.
Adds GPR push/pop operations for ABI related things.
2014-12-20 19:35:52 -06:00
Pierre Bourdon dad7911214 Merge pull request #1486 from rohit-n/goto
Remove some gotos.
2014-12-20 16:47:55 +01:00
Rachel Bryk 6a2973ac1d Fix hires texture path. 2014-12-11 19:24:16 -05:00
Tillmann Karras 6e928d08a0 Jit64: clean up casts in memory operands 2014-12-07 20:23:27 +01:00
Ryan Houdek 4e98078daf Merge pull request #1658 from lioncash/locale
Common: Remove locale based functions from CommonFuncs.
2014-12-07 01:12:00 -06:00
Tillmann Karras 986d19b9d5 x64Emitter: fix bitwise AVX opcodes
The reason this didn't break is that bitwise instructions like VPAND,
VANDPS, and VANDPD do the exact same thing. The only difference is the
data type they are intended for.
2014-12-06 22:28:03 +01:00
Lioncash 9bcadc8029 Common: Remove locale based functions from CommonFuncs.
Since %f isn't used anymore in the shader generators, these can go.
2014-12-05 20:55:29 -05:00
Rohit Nirmal e7ddaf86f5 Fix building with PCH disabled. 2014-12-03 22:01:12 -06:00
skidau 7bc78827ed Merge pull request #1574 from degasus/profiler
Common: Add a built-in profiler
2014-12-04 13:22:31 +11:00
Ryan Houdek 2c39d4044d [AArch64] Add loadstore paired emitter instructions. 2014-12-02 21:08:34 -06:00
degasus 94d9d138d9 Common: Add a built-in profiler 2014-12-03 00:50:41 +01:00
Rohit Nirmal a53c5217bb Common: Remove goto in MemArena. 2014-12-01 11:47:37 -06:00
Rohit Nirmal e3abad234c Common: Remove gotos in FileUtil, and replace FILE*s with IOFile/ifstreams. 2014-12-01 11:47:36 -06:00
Ryan Houdek 414e36d8c9 Merge pull request #1258 from FioraAeterna/avoidfmulround
JIT: optimize single-precision ops based on knowledge of their inputs
2014-11-30 15:47:34 -06:00
Ryan Houdek c27ee21dd9 [AArch64] Workaround builtin byteswap bug.
The builtin byteswap routines cause critical failure on AArch64 when built with the Android toolchain.
I didn't experience this issue when building for Linux using a local qemu chroot.
Seems to be only an issue with the Android toolchain when building AArch64.
Use our generic version instead.
2014-11-30 01:23:03 -06:00
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
Ryan Houdek ce059769f6 Merge pull request #1439 from Armada651/ogl-stereo-3d
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
Lioncash e9b09a4c9f Arm(64)Emitter: Make some variables static 2014-11-25 23:27:48 -05:00
comex 245ff601b7 Merge pull request #1552 from waddlesplash/dolphin-qt
DolphinQt: GameList!
2014-11-25 00:24:32 -05:00
Gabriel Corona 5b9aeaa686 Use CLI argument for Linux perf JIT support 2014-11-24 23:30:29 +01:00
Gabriel Corona 9722ae2a5d Move the JIT registration logic in its own file
Move the JITed function/basic-block registration logic out of the CPU
subsystem in order to add JIT registration to JITed DSP and
Video/VertexLoader code.

This necessary in order to add /tmp/perf-$pid.map support to other
JITed code as they need to write to the same file.
2014-11-24 23:18:18 +01:00
Rohit Nirmal 4d931c16ad Silence a few "zero as null pointer" warnings. 2014-11-24 12:36:46 -06:00
Jules Blok f6ea293027 VertexShaderManager: Compute stereoscopy projection matrices. 2014-11-23 14:23:41 +01:00
Augustin Cavalier 1e17bbce0f DolphinQt: GameList! 2014-11-21 18:36:49 -05:00
Ryan Houdek b24197f913 Adds MCR/MRC to the ARMv7 emitter. 2014-11-16 09:29:27 +00:00
Stevoisiak b25e1a2eb4 Various formatting and consistency fixes 2014-11-13 22:42:18 -05: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
Lioncash f6b4b4dbba Merge pull request #1497 from lioncash/host
Host: Kill off Host_SysMessage
2014-11-06 20:41:53 -05:00
Lioncash d79c794e8c Merge pull request #1490 from rohit-n/initialize
Common: Fix -Wmaybe-uninitialized warning.
2014-11-06 20:37:32 -05:00
Lioncash 884ec2ed13 Host: Kill off Host_SysMessage
Equivalent facilities already exist.
2014-11-05 02:30:48 -05:00
Rohit Nirmal f361ef1eb3 Common: Fix -Wmaybe-uninitialized warning. 2014-11-03 21:38:42 -06:00
comex 9cba787871 Merge pull request #1408 from randomstuff/perf
Profiling: measure time on non-Windows/POSIX using clock_gettime
2014-11-03 22:36:32 -05:00
Jasper St. Pierre e290a3d39c MemArena: Fix the launching of non-Wii games
When we cleaned up the code to calculate the shm_position and total_mem
in one step, we sometimes skipped over certain views because they were
Wii-only. When looking at the total memory, we'd look at the last field,
whether or not it was skipped. Since Wii-only fields are the last view,
this meant that the shm_position was 0, since it was skipped, causing us
to map a 0-sized field. Fix this by explicitly returning the total size
from MemoryMap_InitializeViews.

Additionally, the shm_position was being calculated incorrectly because
it was adding up the shm_position *before* the mirror, rather than after
it. Fix this by adopting a scheme similar to what we had before.
2014-11-03 11:08:59 -08:00
Jasper St. Pierre f660789254 MemArena: Merge the initialization code with the size calculation code
To make mistakes like in the previous commit less prevalent in the future.
2014-11-02 19:59:14 -08:00
Jasper St. Pierre 5e5ed07b41 MemArena: Fix the calculation of position in SHM
The code to calculate the offsets into the SHM file wasn't properly
respecting the skip flags, causing it to calculate offsets beyond
the end of the SHM file.
2014-11-02 19:25:42 -08:00
Jasper St. Pierre 64540bc60d MemArena: Fix a memory leak caused by pointer confusion
This code was ported from out_ptr, which was a double-pointer, and
wanted to double-check that the proper arena was actually allocated.

When I ported it to store the pointer directly in the view regardless
of whether out_ptr was non-NULL, I got confused here and instead
caused the code to only free the arena if the first byte was non-zero.
2014-11-02 19:25:42 -08:00
Jasper St. Pierre 1e93b0db19 MemArena: Rename GrabLowMemSpace to GrabSHMSegment
This code originally tried to map the "low space" for the Gamecube's
memory layout, but since has expanded to mapping all of the easily
mappable memory on the system. Change the name to "GrabSHMSegment" to
indicate that we're looking for a shared memory segment we can map into
our process space.
2014-11-02 16:51:27 -08:00
Jasper St. Pierre 079b881d20 MemArena: Clean up the code that does the mirroring 2014-11-02 16:51:26 -08:00
Jasper St. Pierre 6813473367 MemArena: Remove the low mappings for our pointers
These are effectively unused, since the memmap already maps them in one
place. For 32-bit, they might have some slight advantage, but we already
special-case the regular "high-mem" pointer for 32-bit, so just use the
one we already have...
2014-11-02 16:50:36 -08:00
Jasper St. Pierre 4a59750b30 MemArena: Bail on Arch64 if the out_ptr allocation fails 2014-11-02 16:34:17 -08:00
Jasper St. Pierre 48aff73b6a MemArena: Remove duplicated code
I can't find any obvious difference between these two paths.
2014-11-02 16:34:17 -08:00
Gabriel Corona 641e820257 Profiling: measure time on POSIX systems using clock_gettime 2014-11-03 00:07:12 +01:00
Tillmann Karras 033f2a7e93 x64ABI: get rid of some duplicate code 2014-11-02 02:00:47 +01:00
Rohit Nirmal a09afe8821 Fix build failing with PCH disabled. 2014-10-29 13:00:48 -04:00
comex 089e32ba7d Merge pull request #1307 from comex/bitset
Higher level bitset wrapper
2014-10-28 23:39:35 -04:00
Jasper St. Pierre d9a1fc1564 BreakPoints: Fix compile warning 2014-10-28 12:22:30 -07:00
skidau 1630b0c684 Merge pull request #1291 from skidau/debugger-step-out
Dolphin debugger enhancements
2014-10-28 12:53:22 +11:00
Ryan Houdek 043bd710a0 Merge pull request #1394 from Sonicadvance1/fix-arm-cpudetect
Fixes ARM CPU detection routine for the hardware.
2014-10-27 05:07:24 -06:00
skidau 4570dd7eeb Fixed a crash that would occur if a new watch were added by entering a watch name.
Code style updates.
2014-10-26 23:23:45 +11:00
skidau 73dca1ca33 Added a new option to add memchecks from the Watch window.
Fixed watch labels from being truncated at the first whitespace.
2014-10-26 16:14:17 +11:00
skidau b73130af77 Added Load/Save function for the Watch window.
Made the floating windows toolbars dockable.
Scaled down the breakpoint toolbar icons to 16x16.
2014-10-26 14:56:03 +11:00
skidau b34e220086 Added a "Delete watch" context menu to the Watch window.
Added a "View memory" command to the context menu.
2014-10-26 14:56:03 +11:00
skidau 613cae613a Added a RAM Watch window to the debugger
Conflicts:
	Source/Core/Core/HW/Memmap.cpp
	Source/Core/Core/HW/Memmap.h
	Source/Core/DolphinWX/Debugger/CodeWindow.h
2014-10-26 14:56:02 +11:00
skidau df37649b9f Changed the step over routine to a single stepping version that steps until a blr is encountered.
Cleared out all temporary breakpoints on each step to prevent phantom breakpoints from stopping the debugger.
2014-10-26 14:56:02 +11:00
comex 5f21683343 Merge pull request #1388 from waddlesplash/dolphin-qt
DolphinQt: About dialog fixes, SystemInfo dialog
2014-10-25 21:20:02 -04:00
comex f51c233a08 Add workaround for OS X symbol clash and AllOnes helper method. 2014-10-25 16:57:25 -04:00
comex eb7f4dac50 Convert registersInUse to BitSet. 2014-10-25 16:57:25 -04:00
comex b6a7438053 Add BitSet and, as a test, convert some JitRegCache stuff to it.
This is a higher level, more concise wrapper for bitsets which supports
efficiently counting and iterating over set bits.  It's similar to
std::bitset, but the latter does not support efficient iteration (and at
least in libc++, the count algorithm is subpar, not that it really
matters).  The converted uses include both bitsets and, notably,
considerably less efficient regular arrays (for in/out registers in
PPCAnalyst).

Unfortunately, this may slightly pessimize unoptimized builds.
2014-10-25 16:56:51 -04:00
comex 4b0c6d8e0f Merge pull request #1385 from lioncash/bitfield
BitField: Fix a typo in the sample usage.
2014-10-25 16:48:31 -04:00
Ryan Houdek 3ac2d8e1f1 Revert "Removes ARMv7 specific byteswap routines from CommonFuncs.h" 2014-10-25 15:28:04 -05:00
Ryan Houdek b66a7f83c2 Fixes ARM CPU detection routine for the hardware.
We weren't dropping a newline character from the string, we were cutting off the last character of the hardware name.
This fixes my TK1 being called 'lagun' when it's name is 'laguna'
2014-10-25 09:14:14 -05:00
skidau 8598d6bc2b Merge pull request #1364 from RachelBryk/titles
Read game title from ini file, or titles.txt if it exists.
2014-10-25 13:33:26 +11:00
Ryan Houdek 6483f8d45c Removes ARMv7 specific byteswap routines from CommonFuncs.h
GCC has optimized this using the exact same code since 4.7 or 4.8.
Android building falls back to the __linux__ route.
No need to keep these around anymore since we aren't building on an old GCC version.
2014-10-24 16:21:54 -05:00