Commit Graph

20338 Commits

Author SHA1 Message Date
Léo Lam 1b28693eb0
Merge pull request #4484 from Helios747/remove_text
[UI] Remove experimental tag from Vulkan
2018-03-21 23:18:03 +01:00
Helios747 b02b616930 [UI] Remove experimental tag from Vulkan 2018-03-21 15:12:12 -07:00
spycrab 8ead5be9f2 Qt: Fix fullscreen 2018-03-21 22:57:16 +01:00
spycrab 809dd665c7 Qt/MainWindow: Remove obnoxious border 2018-03-21 22:48:17 +01:00
Anthony 9cf22aec04
Merge pull request #6480 from spycrab/qt_search
Qt: Implement search
2018-03-21 12:40:34 -07:00
spycrab 3292abb41d Qt: Implement search 2018-03-21 20:04:13 +01:00
Léo Lam 8580b3ba1f Qt: Add ignore button for panic alerts
Allows easily disabling panic alerts during a session if needed.
2018-03-21 11:22:30 +01:00
Markus Wick 8308d6b464
Merge pull request #6476 from lioncash/dispatch
JitAsm: Eliminate use of the JIT global variable
2018-03-21 09:55:04 +01:00
Lioncash 7a2d98b948 JitAsm: Remove use of the JIT global in Generate()
With this, JitAsm code doesn't have any reliance on the JIT global
variable. This means the core JIT64 code no longer relies on said
global at all. The Jit64 common code, however, still has some offenders.

Notably, EmuCodeBlock and Jit64AsmCommon are the remaining places in the
common code that make use of the global variable.
2018-03-21 04:41:37 -04:00
Lioncash e0165a62da JitBase: Remove use of the JIT global in Dispatch() and JitTrampoline()
Trims down a few more uses of the global variable by just passing the
JIT instance we're dispatching or trampolining with as a parameter.
2018-03-21 04:41:30 -04:00
Pierre Bourdon fe600ab0ed
Merge pull request #6146 from HannesMann/qos-support
Netplay: Add Quality of Service (QoS) support
2018-03-21 02:46:46 +01:00
Pierre Bourdon 6860259c44
Merge pull request #6457 from spycrab/qt_misc
Qt: Improve spacing again
2018-03-21 01:10:01 +01:00
Pierre Bourdon 6079d7d3c6
Merge pull request #6475 from Starsam80/fix-always-true
Qt: Remove always true if statement
2018-03-21 01:07:54 +01:00
Anthony ad8c31699f
Merge pull request #6463 from delroth/auto-update
Initial implementation of the Dolphin auto-updater for Windows
2018-03-20 11:28:26 -07:00
Pierre Bourdon 66b41c5509 UICommon: Add AutoUpdate module + placeholder Qt implementation
The AutoUpdate module is a generic update checker mechanism which can be
used by UI backends to trigger an auto-update check as well as the
actual update process.

Currently only configurable through .ini and the Qt implementation is
completely placeholder-y -- blocking the main thread on a network
request on startup, etc.
2018-03-20 19:21:19 +01:00
Pierre Bourdon 37902c4aa4 DolphinWX: depend on Updater in order to make sure the binary is included in default builds 2018-03-20 19:21:19 +01:00
Pierre Bourdon 07c160310e Add Updater.exe which performs the update tasks.
Updater.exe takes as input manifests and applies the difference between
these manifests to an install directory.

Currently lacking a UI.
2018-03-20 19:21:19 +01:00
Markus Wick 43c92c8b16
Merge pull request #6451 from leoetlino/default-mmu
Config: Set bMMU to true by default on x64
2018-03-20 14:40:40 +01:00
Markus Wick 35bfa64dfc
Merge pull request #6470 from lioncash/ov-flag
Interpreter: Handle setting the overflow flag when the OE bit is set in divw, divwu, and neg
2018-03-20 11:08:12 +01:00
Starsam80 b7c44715a8
Qt: Remove always true if statement 2018-03-20 00:41:47 -06:00
Pierre Bourdon bc9deb7be3 HttpRequest: make curl initialization thread-safe 2018-03-20 00:36:43 +01:00
spycrab 44ce78c969 Qt: Remove in-development warning 2018-03-19 21:59:50 +01:00
Anthony 50588034ba
Merge pull request #6472 from lioncash/jit-init
JitBase: Ensure JitOptions and JitState instances are consistently initialized
2018-03-19 13:20:40 -07:00
Lioncash 51cfeb8c7d JitBase: Ensure JitOptions and JitState instances are consistently initialized
Ensures that upon construction of a JitBase instance, that all
underlying members within the option and state structs are guaranteed
to be initialized.

This prevents potentially using a member uninitialized in some form.
2018-03-19 15:58:32 -04:00
Anthony 37f8efcda0
Merge pull request #6471 from JosJuice/qt-strings-consistent
Make strings more consistent between DolphinWX and DolphinQt2
2018-03-19 11:00:24 -07:00
JosJuice a71c615435 Make strings more consistent between DolphinWX and DolphinQt2
Reduces the number of strings to translate.
2018-03-19 18:52:46 +01:00
Léo Lam 16f74cee70
Merge pull request #6467 from lioncash/breakpoint
Breakpoints: Remove direct usages of the JIT global
2018-03-19 18:42:10 +01:00
Lioncash 2fa0cb91a1 Interpreter_Integer: Set the overflow flag if the OE bit is set for neg
Also amends the condition that was being checked. Previously it was
checking if the destination register value was 0x80000000, however it's
actually the source register that should be checked.
2018-03-19 13:27:36 -04:00
Lioncash 675d2fb774 Interpreter_Integer: Set the overflow flag if the OE bit is set for divw and divwu
divw and divwu won't panic now if the OE bit is set for these instructions.
2018-03-19 11:51:10 -04:00
Lioncash f129c936e7 PowerPC: Add functions for getting and setting the XER OV bit
While we're at it, change GetXER_SO's return value to u32
to prevent potential sign bit wonkyness given we're performing bit arithmetic.
2018-03-19 11:51:04 -04:00
Léo Lam f335790623
Merge pull request #6460 from lioncash/datareader
DataReader: Minor API changes
2018-03-19 15:02:50 +01:00
Markus Wick 8c1be29cef
Merge pull request #6466 from lioncash/mffs
Interpreter_SystemRegisters: Handle mffs, mtfsb0, mtfsb1, mtfsf and mtfsfi with the record bit set
2018-03-19 09:37:01 +01:00
Markus Wick 523031f037
Merge pull request #6444 from stenzek/d3d-bbox
D3D: Fix broken bounding box
2018-03-19 09:21:22 +01:00
Markus Wick 98b4716902
Merge pull request #6442 from stenzek/async-compiler-priority
ShaderCache: Implement compile priority
2018-03-19 09:16:53 +01:00
Markus Wick 0c0a342483
Merge pull request #6464 from lioncash/using
JitArm64_RegCache: Remove using namespace declaration from header
2018-03-19 09:11:45 +01:00
Lioncash 3a4c3bbe01 Core/CMakeLists: Migrate off add_dolphin_library
This macro (that has unfortunately become the de-facto way of
introducing targets) has a lot of disadvantages that outweigh the fact
that you avoid writing two extra lines of CMake script.

- It encourages the use of variables. In a build system the last thing
we want to care about is mutable state that can be avoided.

- It only handles linking in the libraries and nothing else. It's a
laziness macro.

- We should be explicit about what we're doing by introducing the target
first, not last.

This gets the ball rolling by migrating Core off the macro. Note that
this is essentially 1-to-1 unrolling of the macro, therefore we're
still linking in all libraries as public, even though that may not be
necessary.

This can be revisited once everything is off the macro for a quicker
transition period.
2018-03-19 04:02:12 -04:00
Markus Wick 22aba8c56d
Merge pull request #6468 from lioncash/downcast
JitInterface: Remove a downcast within InitJitCore
2018-03-19 09:00:56 +01:00
Markus Wick 3d49bdb488
Merge pull request #6462 from lioncash/ppc
PPCTables: Make the op type enum an enum class
2018-03-19 08:55:32 +01:00
Markus Wick 8002bfbc41
Merge pull request #6461 from lioncash/emitter
x64Emitter: Move FloatOp and NormalOp enum definitions into the cpp file
2018-03-19 08:53:00 +01:00
Markus Wick 79b21e1381
Merge pull request #6459 from lioncash/enum
VertexShaderGen: Convert defines to an enum
2018-03-19 08:48:25 +01:00
Markus Wick 768cd7ede5
Merge pull request #6458 from lioncash/remove-mainbase
VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
2018-03-19 08:46:35 +01:00
Lioncash 14b204a9bb JitInterface: Remove a downcast within InitJitCore
This isn't necessary as JitBase is already within the type hierarchy that
CPUCoreBase is.
2018-03-19 03:13:16 -04:00
Lioncash a0164e14bc BreakPoints: Avoid direct use of the JIT global
Trims the direct usages of the global by making the code go through the
JIT interface (where it should have been going in the first place).

This also removes direct JIT header dependencies from the breakpoints as
well. Now, no code uses the JIT global other than JIT code itself, and
the unit tests.
2018-03-19 03:08:57 -04:00
Lioncash b4cd11c7c9 BreakPoints: Invert if statements where reasonable
Puts the early-exit condition first, unindenting code that doesn't need
to be.
2018-03-19 03:08:53 -04:00
Lioncash 3137d4f75f BreakPoints: Use std algorithms where applicable 2018-03-19 03:08:17 -04:00
Lioncash eea99de118 Interpreter_SystemRegisters: Handle mffs, mtfsb0, mtfsb1, mtfsf, and mtfsfi with the record bit set
All of these with the record bit set update condition register 1 with the
contents of the FPSCR's FX, FEX, VX and OX bits.

Helper_UpdateCR1() does exactly that, so we use it here to perform this
for us.
2018-03-19 00:05:00 -04:00
Lioncash 6ae8a2b5f8 JitArm64_RegCache: Remove using namespace declaration from header
Dumping a namespace in a header file should be avoided since it can
cause random name and type clashing in unexpected ways.
2018-03-18 19:39:58 -04:00
Pierre Bourdon 5498f9b7ef make_scmrev.h.js: set default auto-update track from environment 2018-03-19 00:11:55 +01:00
Lioncash 6428cee939 PPCTables: Make the op type enum an enum class
Reduces the amount of identifiers dropped into the global namespace when
the PPCTables header is included.
2018-03-18 18:53:58 -04:00
Lioncash 975ba4abf0 x64Emitter: Make FloatOp and NormalOp enum classes
Reduces the amount of identifiers placed in the Gen namespace internally.
2018-03-18 18:04:54 -04:00
Lioncash c22a6f4551 x64Emitter: Move FloatOp and NormalOp enums to the cpp file
These are only used internally. This also allows us to eliminate some
symbols that get dumped into the exposed Gen namespace.

By extension this also hides the Write[X] functions from OpArg's public
interface. This is only used internally by XEmitter, so they shouldn't
be usable by anything else.
2018-03-18 18:04:48 -04:00
Lioncash b21a00d290 DataReader: Provide a const qualified variant of GetPointer()
This wouldn't be much of a data reader if it can't access the
read-only data pointer in read-only contexts. Especially if it
can get a writable equivalent in contexts that aren't read-only.
2018-03-18 16:53:04 -04:00
Lioncash ce29c1c42f DataReader: Correct return type of operator=
It's questionable to not return a reference to the instance being
assigned to. It's also quite misleading in terms of expected behavior
relative to everything else. This fixes it to make it consistent with
other classes.
2018-03-18 16:50:59 -04:00
Lioncash ffade65c55 DataReader: Remove __forceinline from trivial functions 2018-03-18 16:49:50 -04:00
Lioncash 4c2ec39199 DataReader: In-class initialize member variables where applicable
Allows the default constructor to be defaulted and ensures the default
values are associated with the member variables directly.

Also corrects a prefixed underscore in the two parameter constructor.
2018-03-18 16:34:51 -04:00
Lioncash fd956f6c69 DataReader: Make size() and Peek() const member functions
These don't modify class state, so they can be const qualified.
2018-03-18 16:33:14 -04:00
Lioncash 2b3b1e8d09 VertexShaderGen: Convert defines to an enum
Unlike defines, these will actually obey namespacing (should one be
added), and also provide a symbol when debugging, as opposed to a magic
value.
2018-03-18 15:45:20 -04:00
Pierre Bourdon 0c128f3abe
Merge pull request #6450 from leoetlino/nandboot
Boot: Set TYPE_NANDBOOT when booting from NAND
2018-03-18 20:44:44 +01:00
Lioncash b68e8b872e VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
Given that this only contains functions from the VideoBackendBase class,
it makes more sense to move these to the relevant cpp file to keep them
all together.
2018-03-18 15:33:59 -04:00
Léo Lam b86947264b
Merge pull request #6453 from leoetlino/remove-unused
State: Remove unused Verify functions
2018-03-18 11:24:37 +01:00
Léo Lam 4b3542558a
Merge pull request #6456 from lioncash/video-static
MainBase: Remove unused file-scope variables
2018-03-18 11:24:16 +01:00
spycrab 1b06e66f1d Qt: Various layout fixes 2018-03-18 00:10:54 +01:00
Lioncash 13ed716419 MainBase: Remove effectively unused s_FifoShuttingDown variable
This is only ever set and cleared, which is fine, however nothing else
ever actually reads its state to perform differing behavior.
2018-03-17 18:10:43 -04:00
Lioncash 826c11ba3b MainBase: Remove unused s_beginFieldArgs struct
This is only ever memset to zero and never used again.

This also gets rid of an instance of undefined behavior considering the
draft standard for C++17 (N4659) states at [dcl.type.cv] paragraph 5:

"
The semantics of an access through a volatile glvalue are implementation-defined.
If an attempt is made to access an object defined with a volatile-qualified type
through the use of a non-volatile glvalue, the behavior is undefined.
"
2018-03-17 18:07:08 -04:00
JosJuice 9970f05ec8 DolphinQt2: Fix issues with MoIterator
Before this, DolphinQt2 would crash at boot with an assertion error
when using a Windows debug build, at least if the Dolphin GUI
language was set to English.
2018-03-17 21:54:39 +01:00
JosJuice ffb672286a Fix launching DolphinQt2 from Visual Studio
Fourth time now...
2018-03-17 19:10:57 +01:00
Anthony 87c6ed3e00
Merge pull request #6436 from spycrab/qt_layout
Qt: Improve spacing
2018-03-17 09:57:51 -07:00
spycrab c421848559 Qt: Improve spacing 2018-03-17 16:14:56 +01:00
Léo Lam 6aa6be2804 State: Remove unused Verify functions
These were unused in the entire codebase.
2018-03-16 22:56:54 +01:00
Lioncash 882d1c1256 OGLShader: Ensure m_id and m_compute_program_id are always initialized
Depending on which constructor is invoked, m_id or m_compute_program_id
can end up in an uninitialized state. We should ensure that the object
is completely initialized to something deterministic regardless of the
constructor taken.
2018-03-16 17:49:34 -04:00
Lioncash 83f17ac59f OGLShader: Fix mismatched assignment in compute shader constructor
This shouldn't be assigning to the regular ID.
2018-03-16 17:44:23 -04:00
Léo Lam f2b9a6696d Config: Set bMMU to true by default on x64
This prevents Dolphin from crashing when the emulated software crashes.
AFAIK, there is absolutely no performance to enabling this with the
x64 JIT.

Eventually, we should probably just remove bMMU
(https://github.com/dolphin-emu/dolphin/pull/1831). We can't do that
yet because of the ARM JIT.
2018-03-16 21:08:23 +01:00
Léo Lam 917f0e2182
Merge pull request #6441 from spycrab/qt_exec
Qt/Main: Add option to launch file without -e
2018-03-16 20:25:13 +01:00
Léo Lam 25704a2494 Boot: Set TYPE_NANDBOOT when booting from NAND
It makes more sense to set TYPE_NANDBOOT than TYPE_RETURN. The latter
is normally only set when returning to the system menu from a game.
2018-03-16 20:17:43 +01:00
JosJuice bdaa7be299
Merge pull request #6448 from lioncash/qt
DolphinQt2: Fix project loading in VS
2018-03-16 20:17:01 +01:00
Lioncash 293d84b9be DolphinQt2: Fix project loading in VS
These headers are already specified in the QtMoc item section, so these
are seen as a duplicate definition of the file, causing a project load
error.
2018-03-16 15:07:44 -04:00
spycrab 0911b44f60 Qt/Main: Add option to launch file without -e 2018-03-16 19:41:54 +01:00
Pierre Bourdon 6fdac685d6
Merge pull request #6409 from leoetlino/timing
IOS: Minor IPC fixes
2018-03-16 18:54:01 +01:00
Léo Lam a63aaeecee IOS: Fix "kernel FD table full" error code 2018-03-16 18:51:08 +01:00
Léo Lam d029f2a7b6 IPC: Clear X1 when acknowledging a reply
Hardware tests indicate that IOS clears X1 when it acknowledges
an IPC request.
2018-03-16 18:51:08 +01:00
Léo Lam 1a71076e50 IPC: Remove incorrect guess about acks
A very basic hardware test shows that the ARMMSG doesn't change until
IOS replies. (People could have disassembled IOS to verify this too...)

Console:

sending request at 00034640 - ARMMSG 133e0fa0
00000000000000000000000000000010(ack) - ARMMSG 133e0fa0
00000000000000000000000000000100(reply) - ARMMSG 00034640

Dolphin, prior to this fix:

sending request (00034640) - ARMMSG 133e0fa0
00000000000000000000000000000011(ack) - ARMMSG 00034640
00000000000000000000000000000100(reply) - ARMMSG 00034640

Dolphin, after this fix:

sending request at 00034640 - ARMMSG 133e0fa0
00000000000000000000000000000011(ack) - ARMMSG 133e0fa0
00000000000000000000000000000100(reply) - ARMMSG 00034640

(Yes, note that the X1 bit is still set. This is a bug that I will
fix in the next commit.)
2018-03-16 18:51:08 +01:00
Léo Lam b9f7d67667 IPC: Fix missing interrupt when writing to Y1/Y2
The IPC interrupt is triggered when IY1/IY2 is set and Y1/Y2 is written
to even when this results in clearing the bit.

This shouldn't change anything in practice but it's a difference
that Dolphin wasn't taking into account, which made me waste some time
when I was writing a hwtest :/
2018-03-16 18:51:08 +01:00
Léo Lam 35e3775a77 IOS: Remove outdated comment 2018-03-16 18:51:08 +01:00
Léo Lam fa89614b07 IOS: Adjust IPC timing based on hardware tests
This adjusts IOS IPC timing to be closer to actual hardware:

* Emulate the IPC interrupt delay. On a real Wii, from the point of
  view of the PPC, the IPC interrupt appears to fire about 100 TB ticks
  after Y1/Y2 is seen.

* Fix the IPC acknowledgement delay. Dolphin was much, much too fast.

* Fix Device::GetDefaultReply to return more reasonable delays. Again,
  Dolphin was way too fast. We now use a more realistic, average reply
  time for most requests.

  Note: the previous result from https://dolp.in/pr6374 is flawed.
  GetTicketViews definitely takes more than 25µs to reply.
  The reason the reply delay was so low is because an invalid
  parameter was passed to the libogc wrapper, which causes it to
  immediately return an error code (-4100).

* Fix the response delay for various replies that come from the kernel:
  fd table full, unknown resource manager / device, invalid fd,
  unknown IPC command.

Source: https://github.com/leoetlino/hwtests/blob/af320e4/iostest/ipc_timing.cpp
2018-03-16 18:51:07 +01:00
Lioncash 7926a0c814 Use __func__ instead of __FUNCTION__ where applicable
This replaces usages of the non-standard __FUNCTION__ macro with the standard
mandated __func__ identifier.

__FUNCTION__ is a preprocessor definition that is provided as an
extension by compilers. This was the only convenient option to rely on
pre-C++11. However, C++11 and greater mandate the predefined identifier
__func__, which lets us accomplish the same thing.

The difference between the two, however, is that __func__ isn't a
preprocessor macro, it's an actual identifier that exists at function
scope. The C++17 draft standard (N4659) at section [dcl.fct.def.general]
paragraph 8 states:

"
The function-local predefined variable __func__ is defined as if a
definition of the form

static const char __func__[] = "function-name ";

had been provided, where function-name is an implementation-defined
string. It is unspecified whether such
a variable has an address distinct from that of any other object in the
program.
"

Thankfully, we don't do any macro or string concatenation with __FUNCTION__
that can't be modified to use __func__.
2018-03-16 13:41:53 -04:00
Lioncash 75f5fcdfee Assert: Remove unused parameter from DEBUG_ASSERT
This brings the macro in line with the regular ASSERT macro, which only has one
macro parameter.
2018-03-16 13:01:11 -04:00
Lioncash f44e2dc425 Assert: Wrap assertion macro bodies in do {} while (0)
Enforces the termination of the macro with a semicolon. Aside from that
requirement, behavior remains the same.
2018-03-16 12:35:23 -04:00
Mat M 9f4d5122a2
Merge pull request #6438 from lioncash/assert
Assert: Uppercase assertion macros
2018-03-16 11:59:14 -04:00
Stenzek 93865b327f ShaderCache: Implement compile priority
Currently, when immediately compile shaders is not enabled, the
ubershaders will be placed before any specialized shaders in the compile
queue in hybrid ubershaders mode. This means that Dolphin could
potentially use the ubershaders for a longer time than it would have if
we blocked startup until all shaders were compiled, leading to a drop in
performance.
2018-03-17 01:53:11 +10:00
Stenzek cb19ddd1d4 D3D: Fix broken bounding box 2018-03-17 00:20:43 +10:00
spycrab a2d6bab0d2 Properties/GameConfig: Remove "Skip DCBZ" 2018-03-15 20:33:01 +01:00
Anthony 1c3cc26d19
Merge pull request #6386 from spycrab/qt_dbg_code
Qt/Debugger: Implement "Code" widget
2018-03-15 11:35:26 -07:00
Lioncash 50a476c371 Assert: Uppercase assertion macros
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
2018-03-14 22:03:12 -04:00
Markus Wick 19d97f3fd9
Merge pull request #6430 from stenzek/uid-cache-fixes
ShaderCache: Fix several issues in background shader compiling
2018-03-14 17:08:36 +01:00
Stenzek 517a977444 ShaderCache: Fix several issues in background shader compiling
- In D3D, shaders could be compiled on the main thread, blocking
startup.
- Reduced the latency between a pipeline being requested and used in all
backends in hybrid ubershader mode, when no shader stages were present.
- Fixed a case where async compilation could cause the same UID to be
appended multiple times to the UID cache.
- Fix incorrect number of threads being used when immediately compile
shaders was enabled.
2018-03-15 01:50:47 +10:00
Stenzek dc9012ae08 OGL: Ensure VAO is active before unmapping buffers
Fixes a crash which could occur in platforms which do not support
buffer_storage, and EFB2RAM is enabled (which indirectly uses the
attributeless buffer).
2018-03-15 00:32:39 +10:00
Léo Lam 6813c5e1e9
Merge pull request #6434 from lioncash/x86-dsp
DSPCore: Move x64 JIT source files into an x64 subdirectory
2018-03-14 10:54:46 +01:00
Lioncash 9f2a46b08d DSPCore: Use nested namespace specifiers for the x64 JIT
Slims down the amount of lines needed for namespacing.
2018-03-13 18:57:25 -04:00
Lioncash b3fd79b45a DSPCore: Rename namespace to match moved x64 JIT files
Maintains consistency between location and code
2018-03-13 18:48:16 -04:00
Lioncash ab5b90bf15 DSPCore: Move x64 JIT source files into an x64 subdirectory
While the code is namespaced out properly, the files weren't separated
into their own directory. This moves the files so that introducing a general
interface is easier in the future for supporting other architectures.
2018-03-13 18:26:26 -04:00
Stenzek 51e4014a35 DriverDetails: Disable primitive restart on Vulkan with Mali driver 2018-03-14 02:56:24 +10:00
Stenzek db810956ec Vulkan: Provide a more accurate method of detecting drivers/vendors
This is needed to differentiate between the open-source Mesa drivers and
their binary counterparts for Intel and AMD.
2018-03-14 02:48:53 +10:00
Markus Wick f7ff634e4f
Merge pull request #6432 from degasus/OGL-OSD-update
OGL: Scale OSD text on big screens.
2018-03-13 16:37:58 +01:00
Henrik Rydgård 6cbb716f60 SSE-optimize UninitializeXFBMemory
Lowest hanging fruit I could find with a profiler.

Not sure this stuff actually needs to be done, but assuming it is, why
not do it quickly? 10x faster, goes from 1% CPU to 0.09%.
2018-03-13 11:55:28 +01:00
degasus a5c0739fab OGL: Scale OSD text on big screens. 2018-03-12 20:38:06 +01:00
degasus d4449971c9 OGL: Warn if buffer_storage isn't available.
Yes, this commit is only to blame OSX and Mali. Through the former supports unsynchronized mappings, the latter supports *no* way to stream dynamic data at all. Let's try to make bad news, as they ignore friendly feature requests. Maybe we just need to make more noise...
2018-03-12 20:38:00 +01:00
Léo Lam 90ca62e416
Merge pull request #6428 from JosJuice/qt-zh-order
Qt2 translation: Don't place "zh_CN" and "zh_TW" after "zh"
2018-03-12 18:44:41 +01:00
JosJuice 4b85f7fe79 Qt2 translation: Don't place "zh_CN" and "zh_TW" after "zh"
The least specific language code should be tried last.
2018-03-11 22:27:17 +01:00
Stenzek 427aa188d4 ShaderCache: Use a version number for pipeline UID caches 2018-03-11 14:48:09 +10:00
Léo Lam 63d5e57337
Merge pull request #6419 from Ebola16/Fix_OpenAL
Change FATAL_ERROR to STATUS message for OpenAL not found in externals
2018-03-10 13:35:30 +01:00
Pierre Bourdon d72947d638
Merge pull request #6427 from JosJuice/thousandseparate-encoding
StringUtil: Fix Windows encoding in ThousandSeparate
2018-03-10 13:16:00 +01:00
JosJuice 34be8488a5 StringUtil: Fix Windows encoding in ThousandSeparate
Some locales use non-breaking spaces as separators, so getting the
encoding right is important. If DolphinWX gets a string that isn't
valid UTF-8, it flat out won't display the string.
2018-03-10 12:13:30 +01:00
Stenzek 93ab50c555 OGL: Move primitive restart enable logic to GLUtil 2018-03-10 16:11:20 +10:00
Stenzek 51a586d11a GLUtil: Encapsulate functions in a namespace 2018-03-10 16:11:19 +10:00
Stenzek e31cc1f679 ShaderCache: Implement background shader compilation
This enables shaders to be compiled while the game is starting, instead
of blocking startup. If a shader is needed before it is compiled,
emulation will block.
2018-03-10 16:11:19 +10:00
Stenzek 9fa24700b6 VideoConfig: Collapse ubershader configuration fields to a single value 2018-03-10 15:56:45 +10:00
Stenzek 590307b94c ShaderCache: Use memcmp for comparing pipeline UIDs
As these are stored in a map, operator< will become a hot function when
doing lookups, which happen every frame. std::tie generated a rather
large function here with quite a few branches.
2018-03-10 15:56:42 +10:00
Stenzek 41296db083 Renderer: Remove now-redundant Set{Rasterization,Depth,Blending}State 2018-03-10 15:56:40 +10:00
Stenzek fc1fe0672b OGL: Add some basic state tracking
We would want to improve the granularity here in the future, but for
now, this should avoid any performance loss from switching to the
VideoCommon shader cache.
2018-03-10 15:56:37 +10:00
Stenzek f9c829c7f7 OGL: Re-implement async shader compiling 2018-03-10 15:56:34 +10:00
Stenzek dec0c3bce8 Move shader caches to VideoCommon 2018-03-10 15:56:30 +10:00
Stenzek 24df896eb8 VKShader: Fix incorrect loading of binary shaders 2018-03-10 15:56:27 +10:00
Stenzek 1ddc4c5568 D3D: Make NativeVertexFormat thread safe 2018-03-10 15:56:24 +10:00
Stenzek 40845e6b8f D3D: Make StateCache thread safe 2018-03-10 15:56:21 +10:00
Stenzek bfb4709c80 AbstractPipeline: Allow setting pipeline to null 2018-03-10 15:56:18 +10:00
Stenzek 5e5dfe686a VKPipeline: Fix render pass and add pipeline layout fields 2018-03-10 15:56:13 +10:00
Stenzek a61fcb0088 OGL: Fix abstract pipelines on drivers without binding layout support 2018-03-10 15:56:06 +10:00
Stenzek 00204dc988 OGL: Make ProgramShaderCache thread safe 2018-03-10 15:55:56 +10:00
Léo Lam 63838c013b
Merge pull request #6281 from JosJuice/unify-gamelist-code
Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
2018-03-09 20:39:02 +01:00
Léo Lam ef975b8c56
Merge pull request #6377 from sepalani/memcheck
DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow
2018-03-09 20:35:54 +01:00
Ryan Meredith b7276483da Change FATAL_ERROR to STATUS message for OpenAL not found in externals 2018-03-09 12:29:23 -05:00
JosJuice 0e2690f40b FileMonitor: Store last file offset instead of path
This saves us from having to call GetPath when the same file is being
read over and over. (GetPath is more expensive than GetOffset due to
it iterating through parts of the file system and creating strings.)
2018-03-09 15:18:32 +01:00
JosJuice 1f1dae367d Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
The original reason I wanted to do this was so that we can replace
the Android-specific code with this in the future, but of course,
just deduplicating between DolphinWX and DolphinQt2 is nice too.

Fixes:

- DolphinQt2 showing the wrong size for split WBFS disc images.

- DolphinQt2 being case sensitive when checking if a file is a DOL/ELF.

- DolphinQt2 not detecting when a Wii banner has become available
after the game list cache was created.

Removes:

- DolphinWX's ability to load PNGs as custom banners. But it was
already rather broken (see https://bugs.dolphin-emu.org/issues/10365
and https://bugs.dolphin-emu.org/issues/10366). The reason I removed
this was because PNG decoding relied on wx code and we don't have any
good non-wx/Qt code for loading PNG files right now (let's not use
SOIL), but we should be able to use libpng directly to implement PNG
loading in the future.

- DolphinQt2's ability to ignore a cached game if the last modified
time differs. We currently don't have a non-wx/Qt way to get the time.
2018-03-09 13:08:38 +01:00
Hannes Mann 41682a07cb Add Quality of Service (QoS) support 2018-03-09 00:11:18 +01:00
JosJuice 0d3a7d5e38 Fix launching DolphinQt2 from Visual Studio 2018-03-08 22:33:11 +01:00
Léo Lam 3cc64cc146
Merge pull request #6418 from spycrab/qt_gameconfig
Qt/PropertiesDialog: Add "Game Config" tab
2018-03-08 20:33:12 +01:00
Léo Lam ed2d749fb9
Merge pull request #6424 from delroth/traversal-watchdog
Add systemd watchdog support to the traversal server
2018-03-08 17:29:45 +01:00
Léo Lam 1eae5fe790
Merge pull request #6422 from sepalani/nullptr-blank
HLE: Improve format string detection heuristic
2018-03-08 17:26:09 +01:00
Pierre Bourdon 9e0739f5e5 traversal: add systemd watchdog support 2018-03-08 06:10:17 +00:00
spycrab 394388af4e Qt/PropertiesDialog: Add "Game Config" tab 2018-03-07 20:59:41 +01:00
Anthony 1a1133bf8e
Merge pull request #6423 from leoetlino/tid
UI: Show title ID in info panel
2018-03-07 10:47:43 -08:00
Léo Lam 3af09da0f3 UI: Show title ID in info panel
Add a way to easily get the title ID of a game. For Wii titles, it's
sometimes more useful to know than the game ID.
2018-03-07 17:40:22 +01:00
Stenzek 24a46dc6af
Merge pull request #6315 from stenzek/abstract-framebuffers
Abstract Framebuffers
2018-03-08 00:52:49 +10:00
Léo Lam aee977e32a
Merge pull request #6420 from JosJuice/qt-translateability
Tweak Qt strings to be more translation friendly
2018-03-07 13:40:14 +01:00
Léo Lam 6ca1c46117
Merge pull request #6415 from spycrab/qt_resize
Qt/GameList: Make a few columns resizable
2018-03-07 13:36:26 +01:00
Sepalani 4f1c0ca3e9 HLE: Improve format string detection heuristic 2018-03-06 21:21:56 +04:00
JosJuice 83373e2e87 Qt2 TAS input: Generate key strings automatically
This saves us from having to hardcode strings, and it also gives
us strings in whatever format is appropriate on the current OS
(for instance, IIRC Windows uses Alt+F where other OSes use Alt-F).
2018-03-06 17:38:57 +01:00
JosJuice 45040f00c6 Tweak Qt strings to be more translation friendly 2018-03-04 19:13:13 +01:00
Léo Lam a436c6182b
Merge pull request #6388 from leoetlino/merge
Consolidate ec_wii functions into IOSC
2018-03-02 23:14:37 +01:00
Léo Lam 96e4e01564
Merge pull request #6416 from Ebola16/Warning
Remove DSPLLE ReadAnnotatedAssembly error log entry
2018-03-02 23:10:43 +01:00
Anthony 78b00d8d32
Merge pull request #6382 from spycrab/qt_patches
Qt/PropertiesDialog: Implement "Patches" tab
2018-03-02 10:34:00 -08:00
Stenzek 4c24a69710 VideoCommon: Add support for Abstract Framebuffers 2018-03-02 20:20:48 +10:00
Ryan Meredith c94cd4a275 Remove DSPLLE ReadAnnotatedAssembly error log entry 2018-03-02 02:25:25 -05:00
spycrab dee4440c9d Qt/GameList: Make a few columns resizable 2018-03-02 00:51:21 +01:00
Stenzek 2a6d9e4713 AbstractTexture: Add support for depth textures/formats 2018-03-01 17:31:24 +10:00
Stenzek 6374a4c4a8 AbstractTexture: Support multisampled abstract texture 2018-03-01 17:31:24 +10:00
Stenzek 4316f5f56b AbstractTexture: Add property/attribute accessor helpers 2018-03-01 17:31:24 +10:00
Stenzek e125eaa237 VideoCommon: Drop references to AbstractRawTexture 2018-03-01 17:31:24 +10:00
Stenzek 887e3830ba VideoBackends: Restore the framebuffer as part of the API state
It's not often we switch out to draw to the EFB anyway.
2018-03-01 17:31:24 +10:00
Stenzek b4b0f3d942 Vulkan: Fix broken post-processing 2018-03-01 16:55:55 +10:00
spycrab ecaa68ade9 Qt: Make game revision vars u16 2018-02-28 22:35:10 +01:00
spycrab 4b54f6b1c7 Qt/PropertiesDialog: Implement "Patches" tab 2018-02-28 21:16:57 +01:00
spycrab 0a5f0efe18 Qt/Debugger: Implement "Code" widget 2018-02-28 19:47:56 +01:00
Léo Lam 4e014f996b IOS: Fix invalid FD being returned after an open
Fixes a regression introduced by 80b1bf13c2.

The return value for open replies should be overwritten with the new
file descriptor.
2018-02-28 15:56:03 +01:00
Mat M bf825e6354
Merge pull request #6404 from hubslave/patch-1
Include <endian.h> for byte swap macros on OpenBSD
2018-02-27 23:28:22 -05:00
Léo Lam 80b1bf13c2 IOS: Change devices to always return IPCCommandResult
This commit changes devices to always return IPCCommandResult rather
than just a return code for Open() and Close() in order to be able
to better emulate reply timing.

In hindsight, I should have considered we would want to emulate
timing when I cleaned up the device interface, but alas.
This rectifies that mistake.
2018-02-27 21:12:07 +01:00
Léo Lam 9282be1058 IOS: Fix regression affecting BC launch
8e06257f19 caused Dolphin not to consider BC as emulated anymore.
2018-02-27 18:16:05 +01:00
Léo Lam 1de17d20e1 Fix render surface when using Render to Main and debugger
This fixes a regression introduced by de632fc9c.
2018-02-27 13:18:43 +01:00
Stenzek 25a516bae3
Merge pull request #6403 from degasus/master
OGL: Use glBufferData on Mali.
2018-02-27 17:54:41 +10:00
spycrab a3fd99032c IsSettingSavable: Make GFX_CACHE_HIRES_TEXTURES savable 2018-02-26 19:04:06 +01:00
hubslave 4ae48e10e5
Include <endian.h> for byte swap macros on OpenBSD
There is code below that assumes the presence of those macros (by #undef'ing them), but none of the included headers provided them.

This fixes a build failure on OpenBSD where the undef'd macros _do_ get picked up later on in a compilation unit (through which include, I don't know), and thus shadow the Common::swap* functions.
2018-02-26 00:07:05 +02:00
Markus Wick 227db66e4f OGL: Use glBufferData on Mali.
tl;dr: This PR speedups dolphin on mobiles with the Mali GPU and ES 3.2
drivers by a factor of 10 by using the method with the biggest overhead.
Please keep care not to buy this shit!

The ARM driver team seems to care very well about their customers. But
bad luck, users and open source developers are *not* their customers. So
even device-independent feature requests are just ignored for *years*:

https://community.arm.com/graphics/f/discussions/4645/gl_ext_buffer_storage-support

The bad point, they neither implement any of the other common ways to
stream dynamic content in unextented GL:
- They just ignore the GL_MAP_UNSYNCHRONIZED_BIT flag
- They don't support on-device buffer updates and just stall with
glBufferSubData

It seems like no benchmark is using any dynamic content - and like no
customer cares about anything but benchmarks, or users...

We have a flag to disable the glBufferSubData way, this PR adds the flag
to also disable the unsychronized mapping way. The second one is
available since their ES 3.2 update, but slow as hell.

So how to continue? The last remaining technical way to stream dynamic
content at all is to alloc a new buffer per draw call with glBufferData.
This is very gross, but still a factor 10 speedup compared to stalling
the GPU. Small tests shows that you can expect another 3-5 times speedup
with EXT_buffer_data, so Mali would be on pair with Adreno here. So if
you have bought such a device unfortunately, please try to make noise on
your vendor forums/support and ask for this extension. If you are going
to buy a new mobile, I'd recormend to avoid *any* mobile with a Mali GPU
in it.
2018-02-25 17:12:36 +01:00
Stenzek e4d3b5f626 OGL: Only create bad shader files in Dump when compile failed
Warnings are still logged.
2018-02-25 18:03:58 +10:00
Anthony a3674e3f73
Merge pull request #6396 from spycrab/qt_osx_theme
CMake/OSX: Fix missing QMacStylePlugin
2018-02-24 15:44:43 -08:00
spycrab 7f3c1a2de4 Qt/OSX: Fix icon 2018-02-24 21:12:22 +01:00
spycrab 5ddbb3459b CMake/OSX: Fix missing QMacStylePlugin 2018-02-24 18:48:29 +01:00
Anthony b66f96c617
Merge pull request #6042 from stenzek/videocommon-pipelines
VideoCommon pipelines ("Abstract Pipeline")
2018-02-23 09:18:19 -08:00
Stenzek 2ba8f67feb OGL: Call GLInterface->Update() on window resize
macOS in particular requires the context be updated manually when the window
is resized.
2018-02-23 22:27:10 +10:00
Léo Lam 1e6dc196aa Qt: Fix warning about parentheses
The original code had parentheses placed in weird locations IMO, which
even caused compilers to issue warnings.
2018-02-22 17:55:16 +01:00
Léo Lam f1f2bd9c94 Qt: Fix warning about array initialisation 2018-02-22 17:54:58 +01:00
Léo Lam fd063bdc31 Qt: Use std::abs instead of abs
...since <cmath> is included, not <math.h>. May or may not fix
https://bugs.dolphin-emu.org/issues/10906
2018-02-22 17:54:19 +01:00
Stenzek fec6bb4d56 VideoBackends: Add AbstractShader and AbstractPipeline classes 2018-02-22 22:02:34 +10:00
Stenzek 31111ef143 D3D: Remove state stack from tracker, set explicitly instead 2018-02-22 19:40:55 +10:00
Stenzek e18c7b1c33 D3D: Support state tracking of compute shaders 2018-02-22 19:11:27 +10:00
Stenzek e8ff2b2006 D3D: Support compiling compute shaders 2018-02-22 19:11:25 +10:00
Stenzek aaea515d71 GLUtil: Drop now-unused attributeless VAO helpers 2018-02-22 19:09:28 +10:00
Stenzek 052d78bcb1 OGL: Log warnings from shader compiles, even if it compiled successfully 2018-02-22 19:08:54 +10:00
Stenzek 3fd4142f36 OGL: Track state of last bound vertex array object
This reduces the overhead of calling glBindVertexArray() every time
RestoreAPIState() is called, even when it is redundant.
2018-02-22 19:08:52 +10:00
Lioncash abfaff8ca9 Qt: Remove unnecessary <iostream> includes
<iostream> injects a static constructor into the translation units that
it's included into. This is trivially avoidable in these cases.
2018-02-21 16:38:08 -05:00
JosJuice 619f98b97b
Merge pull request #6389 from spycrab/fix_wiimote
Fix emulated Wiimotes
2018-02-20 21:37:30 +01:00
spycrab de1af2e45d Fix emulated Wiimotes 2018-02-20 20:41:29 +01:00
Léo Lam f9445bb119 IOS: Remove ec_wii functions 2018-02-19 20:34:06 +01:00
Léo Lam 5e5c9e1772 IOSC: Add Sign
Equivalent of IOSC_GenerateCertificate + IOSC_GeneratePublicKeySign.

This is copied from ec_wii/MakeAPSigAndCert.
2018-02-19 20:34:06 +01:00
Léo Lam b3c7874a3a IOSC: Add GetDeviceId and GetDeviceCertificate 2018-02-19 20:34:06 +01:00
Léo Lam f3c63b3108 IOSC: Load built-in key entries directly from keys.bin
Preliminary commit for merging ec_wii into IOSC.
2018-02-19 20:34:06 +01:00
Léo Lam 1f4ddea5f7 IOSC: Change misc_data to a u32
It's always 4 bytes long, so let's just make it a u32.
2018-02-19 20:34:05 +01:00
Markus Wick e01fe46068
Merge pull request #6367 from stenzek/gl-flush
OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT
2018-02-19 16:26:35 +01:00
Stenzek de632fc9c8 Renderer: Handle resize events on-demand instead of polling
We now differentiate between a resize event and surface change/destroyed
event, reducing the overhead for resizes in the Vulkan backend. It is
also now now safe to change the surface multiple times if the video thread
is lagging behind.
2018-02-20 01:15:55 +10:00
Stenzek 5baf3bbe2e OGL: Clear backbuffer before presenting instead of at start of frame 2018-02-20 01:11:40 +10:00
Stenzek c1b39ecc58 BPFunctions: Move upscaling of scissor rect to VideoCommon 2018-02-20 00:49:32 +10:00
Stenzek 5359396099 BPFunctions: Move GX viewport conversion to VideoCommon 2018-02-20 00:49:32 +10:00
Markus Wick a2d2a0a356
Merge pull request #6384 from jeffythedragonslayer/master
Jit64: fixed some signed to unsigned integer warnings
2018-02-19 15:28:06 +01:00
Anthony 4876b9d8e0
Merge pull request #6362 from spycrab/qt_indicators
Qt/Mapping: Implement indicators
2018-02-18 11:45:12 -08:00
Jeff Linahan caf721fb3f Jit64: fixed some signed to unsigned integer warnings 2018-02-16 17:41:16 -05:00
Stenzek 340ee8fff8 PixelShaderGen: Implement table-based fog range as in software renderer 2018-02-15 22:19:21 +10:00
Markus Wick e7d0aae5be
Merge pull request #6335 from stenzek/membp
Jit64: Fix incorrect PC in PPC state during fastmem trampoline
2018-02-15 11:13:52 +01:00
spycrab ec54b421a4 Qt/Mapping: Implement indicators 2018-02-15 05:01:44 +01:00
Stenzek 7c517226ed Vulkan: Remove redundant YUYV conversion shaders
These are no longer used as of hybrid XFB.
2018-02-14 15:26:35 +10:00
Sepalani a9b89b35fb DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow 2018-02-13 20:20:58 +01:00
Léo Lam dbdf964f2e
Merge pull request #6376 from sepalani/es-fix
ES: Make it not fail on something that isn't IOS
2018-02-13 16:42:17 +01:00
Sepalani 68f7a03d05 ES: Make it not fail on something that isn't IOS 2018-02-13 15:47:38 +01:00
Anthony f9b809a57e
Merge pull request #6361 from spycrab/qt_fix_layout
Qt/GCMemcardManager: Misc. improvements
2018-02-12 13:59:31 -08:00
Lucas Kent 5fe72700fa Qt: TAS input window - Fix mac os 2018-02-13 08:03:01 +11:00
Rukai a8d482d8e1 IR widget is now a rectangle 2018-02-13 07:17:16 +11:00
Rukai d07e212cef Qt: Implement Wii TAS input window 2018-02-13 07:15:54 +11:00
Rukai 3f1ffbad0d Qt: Implement GC TAS input window 2018-02-13 07:15:53 +11:00
Anthony 35c43e74d0
Merge pull request #6371 from rukai/dolphinQtHotkeyFixes
Qt: Various fixes to hotkeys
2018-02-12 09:28:58 -08:00
Anthony 5b744146f3
Merge pull request #6336 from spycrab/qt_additional_wiimote_settings
Qt: Implement Wiimote pane
2018-02-12 09:28:15 -08:00
Léo Lam 8e06257f19
Merge pull request #6374 from sepalani/ios-reload
ES: Make it fail on unsupported installed IOSes
2018-02-12 10:02:43 +01:00
Sepalani a663fcb977 IOS: Adjust reply timing to be closer to real hardware 2018-02-11 18:42:19 +01:00
Sepalani 2ce7fff819 ES: Make it fail on unsupported installed IOSes 2018-02-11 18:42:02 +01:00
Stenzek 93fb0e1e1c TextureCache: Add an option to disable EFB copies to VRAM
The option is named DisableCopyToVRAM under the Hacks section in
GFX.ini. It is intentionally not exposed to the GUI, as users should not
need to use it under normal circumstances. The main use is debugging
issues in the EFB-to-RAM shaders.
2018-02-11 15:48:46 +10:00
Stenzek 84b990faa0 VideoConfig: Remove bForceCopyToRam field
It's the inverse of supports-copy-to-vram.
2018-02-11 15:29:37 +10:00
Rukai 4b5373b25b Remove hardcoded esc hotkey, make pause/stop hotkey actually toggle rather than just pausing, fix frame advance hotkey 2018-02-10 23:30:59 +11:00
spycrab 7c99f10152 Qt/Graphics: Add ubershader options 2018-02-10 13:11:18 +01:00
spycrab c07443a628 Qt/GCMemcardManager: Misc. improvements 2018-02-09 21:54:07 +01:00
spycrab 220e4bcd99 Qt/MappingButton: light up when mapped key is pressed 2018-02-09 12:30:02 +01:00
Stenzek 6490c2b86b OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT 2018-02-09 01:25:14 +10:00
Stenzek 4b96db8fc9 OGL: Don't leave staging texture buffer bound after mapping
This could cause glReadPixels() calls which assume no buffer is bound
(e.g. CPU EFB access) to fail. The problem was limited to devices which
don't support persistent mapping, as the map path is not otherwise.
2018-02-09 01:15:27 +10:00
Anthony c30ac55cf4
Merge pull request #6354 from leoetlino/hle
HLE: Minor cleanup
2018-02-07 23:36:31 -08:00
Anthony 096131c908
Merge pull request #6334 from stenzek/startup
Video Backend Initialization/Core Boot Improvements
2018-02-07 23:35:54 -08:00
Anthony 4636230f5a
Merge pull request #6333 from stenzek/vulkan-transition
Vulkan: Fix invalid stage mask in layout transitions
2018-02-07 23:32:05 -08:00
Anthony 8adce86daa
Merge pull request #6355 from myfreeweb/clang6-warning
Add -Wno-register to calm down clang 6.0.0 (C++17 mode)
2018-02-07 22:25:57 -08:00
spycrab 87d7c994e7 Qt/Settings: Implement ControllerStateNeeded 2018-02-07 18:49:23 +01:00
Christian Murphy 5b01c5e119 Qt: Implement Wiimote speaker volume slider and Wiimote motor toggle, rebased all changes... included fixed based on feedback by ligfx 2018-02-07 18:46:13 +01:00
spycrab 2f7b68ade5 Qt/BreakpointWidget: Fix MBP delete 2018-02-06 11:06:14 +01:00
Greg V 9b201815f2 Ignore -Wregister to calm down recent clang and GCC (C++17 mode)
The 'register' keyword is used by a header included from Xlib (X11/XKBlib.h).
2018-02-05 14:43:07 +03:00
Léo Lam 920dd0edd0
Merge pull request #6358 from myfreeweb/dont-link-usbhid
Do not link to libusbhid on FreeBSD/NetBSD
2018-02-05 11:59:35 +01:00
Anthony 2442a34c3d
Merge pull request #6357 from leoetlino/evdev
evdev: Minor fixes
2018-02-04 16:29:25 -08:00
Léo Lam 6a93223283 evdev: Always unref received udev devices
Whenever udev_monitor_receive_device() returns a non-null pointer,
the device must be unref'd after use with udev_device_unref().

We previously missed some unref calls for non-evdev devices.
2018-02-05 01:01:05 +01:00
Léo Lam 0822bb347d evdev: Don't leak eventfd on shutdown 2018-02-04 22:48:38 +01:00
Greg V be716a680f Do not link to libusbhid on FreeBSD/NetBSD
Both libusbhid (system library) and libhidapi (3rd party library)
provide a function called hid_init. Dolphin was being linked to both.

The WiimoteScannerHidapi constructor was calling hid_init without
arguments. libusbhid's hid_init expects one argument (a file path).
It was being called as if it was defined without arguments, which
resulted in a garbage path being passed in, and because of that,
the Qt GUI was failing to launch with the following error:
'dolphin-emu-qt2: @ : No such file or directory'
2018-02-05 00:46:59 +03:00
Léo Lam 9a3705f82d evdev: Fix select() call
It's not guaranteed that the eventfd is smaller than the monitor fd,
because fds are not always monotonically allocated. To select()
correctly in all cases, use the max between the monitor fd and eventfd.
2018-02-04 22:45:28 +01:00
spycrab f253c1ea32 Qt/MappingButton: Save settings when a mapping is changed 2018-02-04 22:03:38 +01:00
Léo Lam 3deb8ce074 HLE: Use enum classes for HookType and HookFlag 2018-02-04 14:50:55 +01:00
Léo Lam a184ab93b6 HLE: Remove an unused function
There is nothing using PanicAlert in either official titles or libogc.
2018-02-04 14:41:55 +01:00
Léo Lam 44391ad2fe
Merge pull request #6353 from spycrab/qt_fix_invdev
Qt/MappingWindow: Fix invalid device being selected by default
2018-02-04 12:54:14 +01:00
spycrab 489f478751 Qt/MappingWindow: Fix invalid device being selected by default 2018-02-03 20:21:44 +01:00
Anthony 32d206362f
Merge pull request #6351 from spycrab/qt_fix_switch
Qt: Work around broken drivers that don't allow backend switching
2018-02-03 09:18:16 -08:00
spycrab 7c5e464584 Qt: Work around broken drivers that don't allow backend switching 2018-02-03 14:19:12 +01:00
Léo Lam 2ab29e8284
Merge pull request #6311 from cbdevnet/master
Have dolphin-emu-nogui conform to the _NET_WM_PID protocol
2018-02-03 10:42:49 +01:00
cbdev 6182ab6a6a dolphin-emu-nogui: Conform to the _NET_WM_PID protocol 2018-02-03 03:43:42 +01:00
Stenzek cf5bf3899f
Merge pull request #6345 from spycrab/qt_fix_fsw
Qt/FileystemWidget: Fix crash when right-clicking GC disc
2018-02-03 00:56:55 +10:00
Stenzek e20eac72f4
Merge pull request #6347 from spycrab/qt_update_defiso
Qt/Settings: Update default gamelist path textbox when changed
2018-02-03 00:55:45 +10:00
Stenzek 3e494baff2
Merge pull request #6346 from spycrab/qt_dbg_checkbox
Qt/NewBreakpointDialog: Fix radio button weirdness
2018-02-03 00:50:30 +10:00
Stenzek 75583ab098
Merge pull request #6350 from spycrab/qt_gc_selbug
Qt/GameCubePane: Fix file selection
2018-02-03 00:48:08 +10:00
spycrab 3f4a3b2456 Qt/GameCubePane: Fix file selection 2018-02-02 12:32:55 +01:00
Stenzek 260d5b7aa7 BPMemory: Handle fog configuration where both A and C are infinity/NaN
The console appears to behave against standard IEEE754 specification
here, in particular around how NaNs are handled. NaNs appear to have no
effect on the result, and are treated the same as positive or negative
infinity, based on the sign bit.

However, when the result would be NaN (inf - inf, or (-inf) - (-inf)),
this results in a completely fogged color, or unfogged color
respectively. We handle this by returning a constant zero for the A
varaible, and positive or negative infinity for C depending on the sign
bits of the A and C registers. This ensures that no NaN value is passed
to the GPU in the first place, and that the result of the fog
calculation cannot be NaN.
2018-02-01 17:40:39 +10:00
Anthony 1264daae9b
Merge pull request #6327 from spycrab/qt_memcard_manager
Qt: Implement GameCube memcard manager
2018-01-31 13:22:40 -08:00
spycrab 28ad12bf30 Qt/Settings: Update default gamelist path textbox when changed 2018-01-31 19:58:02 +01:00
spycrab 8f43f379a0 Qt/NewBreakpointDialog: Fix radio button weirdness 2018-01-31 19:28:44 +01:00
spycrab 8a612bf285 Qt/FileystemWidget: Fix crash when right-clicking GC disc 2018-01-31 13:51:46 +01:00
Stenzek 987bec2fd5
Merge pull request #6342 from spycrab/qt_rw_flicker
Qt/RenderWidget: Avoid flickering
2018-01-31 12:43:19 +10:00
Léo Lam d04b179111
Merge pull request #6344 from spycrab/qt_gc_mcselector
Qt/GameCubePane: Fix memory card selector
2018-01-30 17:49:13 +01:00
spycrab 50eb8a5c81 Qt/AdvancedPane: Add ability to change clock speed while the game is running 2018-01-30 12:08:44 +01:00
spycrab 350c1f999c Qt/GameCubePane: Fix memory card selector 2018-01-30 10:23:57 +01:00
spycrab e5994706eb Qt/RenderWidget: Avoid flickering 2018-01-30 10:05:50 +01:00
Léo Lam 3bceb3c52a
Merge pull request #6328 from spycrab/qt_fix_gc_amnesia
Qt/GameCubePane: Various fixes
2018-01-29 21:58:59 +01:00
Stenzek fe5150cc31
Merge pull request #6303 from TraceBullet/auto-adjust-window-size
Fix Auto-Adjust Window Size option making the window too large
2018-01-29 17:28:44 +10:00
spycrab 21db1e9504 Qt: Implement GameCube memory manager 2018-01-29 01:01:25 +01:00
spycrab d0b64745d8 Qt/RegisterColumn: Fix value columns not being editable 2018-01-28 17:10:33 +01:00
spycrab 28e0388658 Qt/GameCubePane: Fix EXIDevices resetting to Nothing 2018-01-27 15:09:14 +01:00
Stenzek 15efd42eba Jit64: Don't flush PC in exception block
These blocks can only be executed as a result of a DSI exception from a
loadstore, where we now flush the PC register prior to the loadstore.
2018-01-27 22:32:57 +10:00
Stenzek 8933fe599c Jit64: Update PC before slowmem reads as well as writes 2018-01-27 22:29:39 +10:00
Stenzek 7f3c31d78d Jit64: Set correct PC when emitting slowmem trampoline 2018-01-27 18:19:42 +10:00
Stenzek 505d30be3d DolphinWX: Move fullscreen switch to after startup is complete
This means that any error messages won't be hidden by the fullscreen
window.
2018-01-27 14:17:14 +10:00
Stenzek c790077c13 VideoBackend: Remove PeekMessages method
The video thread and backend no longer create any windows, therefore
there will never be any messages dispatched to their thread.
2018-01-27 13:53:55 +10:00
Stenzek d96e8c9d76 VideoBackends: Combine Initialize/Prepare and Cleanup/Shutdown methods
Also allows the work previously done in Prepare to return a failure
status.
2018-01-27 13:53:55 +10:00
Stenzek 04027a7da7 Core: Improve ordering of boot
- Smplification of graphics backend startup/shutdown.
- Don't send complete message until CPU is ready to execute.
- Remove redundant stop message.
- Remove OSD message with backend name.
2018-01-27 13:53:55 +10:00
Stenzek f9053527a9 Core: Don't spawn an extra thread in single-core mode
We don't need a message pump thread for the video backend, as the window
is created on the UI thread, not the "idle" emu thread.
2018-01-27 13:53:55 +10:00
Stenzek c81ac1a81d
Merge pull request #6332 from stenzek/frame-dump-crash
Renderer: Fix crash on shutdown when frame dumping or taking screenshots
2018-01-27 12:27:46 +10:00
TraceBullet ab6f932347 Fix Auto-Adjust Window Size option making the window too large 2018-01-26 10:47:19 -05:00
Léo Lam 0eaf3deb1e
Merge pull request #6322 from spycrab/qt_gecko_input
Qt/GeckoCodeWidget: Add option to add/remove gecko codes from UI
2018-01-26 13:33:15 +01:00
Léo Lam 28176d0117
Merge pull request #6309 from sepalani/rsbk-sym-map
PPCSymbolDB: two columns symbol map support added
2018-01-26 13:12:46 +01:00
Léo Lam 2ad344b725
Merge pull request #6323 from spycrab/qt_connect_wiimote
Qt: Implement "Connect Wii Remotes" menu
2018-01-26 13:10:22 +01:00
Stenzek 81ae88d2d5 AbstractTexture: Fix crash in Vulkan backend when freeing texture 2018-01-26 19:12:11 +10:00
Stenzek fd39103c73 Vulkan: Fix invalid stage mask in layout transitions 2018-01-26 12:33:24 +10:00
Stenzek 47f453d7aa Vulkan: Fix waiting on non-existant fence when reading back 2018-01-26 12:33:24 +10:00
Stenzek 3f197480ef Renderer: Fix crash on shutdown when frame dumping or taking screenshots 2018-01-26 12:12:00 +10:00
spycrab ee90893bfe Qt/GeckoCodeWidget: Option to add/remove gecko codes from UI 2018-01-24 21:09:59 +01:00
JosJuice c5ac325fb8 Add missing &s to Qt AR strings
Without this, the strings differ from DolphinWX
and thus have to be re-translated by the translators.
2018-01-24 20:38:41 +01:00
spycrab aae5c950f0 Qt: Implement "Connect Wii Remotes" menu 2018-01-24 19:47:47 +01:00
spycrab d9d75c27f0 Qt/ARCodeWidget: Use CheatCodeEditor 2018-01-24 13:42:00 +01:00
spycrab a0f787aa1b Qt: Turn ARCodeEditor into general purpose CheatCodeEditor 2018-01-24 13:35:13 +01:00
Sepalani df9611255a PPCSymbolDB: two columns symbol map support added 2018-01-24 12:43:23 +01:00
Markus Wick c66156148d
Merge pull request #6317 from stenzek/renderer-bind
AbstractTexture: Move Bind() method to Renderer
2018-01-24 12:19:53 +01:00
Léo Lam 432ebe793e
Merge pull request #6318 from JosJuice/qt-debugger-strings
Tweak Qt debugger strings to be more translation friendly
2018-01-24 10:39:11 +01:00
Léo Lam a972892821
Merge pull request #6320 from sepalani/dwc_printf
HLE: DWC_Printf debug added
2018-01-24 10:29:02 +01:00
Anthony 2c1cb609cc
Merge pull request #6287 from spycrab/qt_gamecube
Qt/Settings: Implement "GameCube pane"
2018-01-23 12:25:05 -08:00
Anthony 440101a6bb
Merge pull request #6279 from spycrab/qt_arcodes
Qt: Implement "AR Codes"
2018-01-23 12:23:54 -08:00