Commit Graph

2028 Commits

Author SHA1 Message Date
Jeffrey Pfau a6437f629c Common: Use more portable invocation of shm_open 2015-07-11 23:09:11 -07:00
Jeffrey Pfau 2eb553fdb7 Fix FreeBSD build 2015-07-11 23:09:11 -07:00
Scott Mansell 0b0f70aad4 Revert "Merge pull request #2358 from Tilka/pie"
This reverts commit 0f7f8f8774, reversing
changes made to 9f15054358.
2015-07-06 09:05:25 +12:00
Jeffrey Pfau bd196e8c71 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-05 00:32:26 +12:00
comex 384a1b4e3b Fix DoFileSearch returning the passed-in directories themselves.
Fixes https://code.google.com/p/dolphin-emu/issues/detail?id=8697&can=3
2015-06-25 15:17:52 +02: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