Lioncash
efcdb3debb
JitArm64/JitAsm: Remove usages of the JIT global
...
With this, the entire ARM JIT makes no use of the JIT global whatsoever.
2018-03-25 15:23:49 -04:00
Lioncash
a45631c4ca
Interpreter_LoadStore: Remove unnecessary casts
...
These aren't necessary as the type being stored into a u32 are of the
same signedness and are smaller in data size, so there's no truncation
being performed.
2018-03-25 15:09:32 -04:00
Stenzek
2f1a7cbee1
Implement "Skip" ubershader mode
...
Skip ubershader mode works the same as hybrid ubershaders in that the
shaders are compiled asynchronously. However, instead of using the
ubershader to draw the object, it skips it entirely until the
specialized shader is made available.
This mode will likely result in broken effects where a game creates an
EFB copy, and does not redraw it every frame. Therefore, it is not a
recommended option, however, it may result in better performance on
low-end systems.
2018-03-26 01:57:41 +10:00
Léo Lam
5c83e18fbd
Merge pull request #6515 from lioncash/cast
...
Interpreter_FPUtils: Get rid of a pointer cast
2018-03-25 11:27:38 +02:00
Léo Lam
e9976c27c0
Merge pull request #6518 from lioncash/namespace
...
Interpreter: Don't dump the MathUtils namespace into scope in Interpreter_FloatingPoint and Interpreter_Paired
2018-03-25 11:24:24 +02:00
Lioncash
48e2e9a41d
CachedInterpreter: Use using aliases instead of typedef
2018-03-25 02:57:25 -04:00
Lioncash
9829083241
CachedInterpreter: Use an enum class for instruction type
2018-03-25 02:57:16 -04:00
Lioncash
89df65aa25
Interpreter_Integer: Correct precedence of overflow check in nego
...
The overflow check needs to occur before the condition register update
due to the fact that the summary overflow (SO) bit is used in the
updating of the condition register. If we set any overflow bits after
updating the CR, then we can potentially incorrectly report that an
overflow did not happen (in the case the SO bit wasn't set previously).
2018-03-24 20:48:05 -04:00
spycrab
3f1430587c
Qt/RenderWidget: Draw background on pause
2018-03-25 01:26:50 +01:00
Lioncash
96014e74a3
Interpreter_Paired: Don't dump the entire MathUtils namespace into scope
...
Functions from the namespace are only used four times within the entire
file.
2018-03-24 19:42:14 -04:00
Lioncash
46f61a48c7
Interpreter_FloatingPoint: Don't dump the entire MathUtils namespace into scope
...
Given functions from the MathUtils namespace are only used six times in
the whole file, dumping the namespace seems a little excessive.
2018-03-24 19:40:22 -04:00
Lioncash
27611d55ff
Interpreter_FPUtils: Get rid of a pointer cast
...
This is undefined behavior according to the standard. We can just use
the built in means of retrieving a quiet NaN.
2018-03-24 19:33:44 -04:00
Léo Lam
328ac424c0
Merge pull request #6517 from lioncash/ppctables
...
PPCTables: Namespace all exposed functions
2018-03-24 22:17:36 +01:00
Lioncash
8a7abd72b4
PPCTables: Remove prefixed underscores from parameter names
2018-03-24 16:46:49 -04:00
Lioncash
2381aeecc3
PPCTables: Namespace all exposed functions
...
It's somewhat inconsistent to have two straggler functions outside the
namespace.
2018-03-24 16:46:12 -04:00
Lioncash
397b3fb976
CPUCoreBase: Make the GetName() member function const qualified
...
This function should have no need to modify internal class state.
2018-03-24 16:17:39 -04:00
Lioncash
c738ddc4aa
CPUCoreBase: Default the virtual destructor
2018-03-24 16:09:19 -04:00
Léo Lam
5369d3c9f1
Merge pull request #6513 from lioncash/dead-code
...
Interpreter: Remove dead code
2018-03-24 20:09:25 +01:00
Lioncash
ef6e747a68
PowerPC: Remove commented out PanicAlert
2018-03-24 14:52:22 -04:00
Lioncash
3dc3b0caa5
Interpreter_LoadStore: Remove commented out code
...
Also removes long separation lines that aren't really necessary.
2018-03-24 14:49:18 -04:00
Lioncash
f9e0645b99
Interpreter_SystemRegisters: Remove commented out code
2018-03-24 14:45:46 -04:00
Lioncash
288b579c09
Interpreter_Integer: Remove commented out code in subfic
2018-03-24 14:43:25 -04:00
Lioncash
01308330d9
InputCommon/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-03-24 14:13:53 -04:00
Lioncash
680ceb7f43
DiscIO/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-03-24 13:54:06 -04:00
Léo Lam
2d0d4fee28
Qt: Fix controller window margin
...
Reduces wasted space and makes the whole window (barely) fit on my
laptop screen again. (Regression from the scroll wrap changes)
2018-03-24 18:45:10 +01:00
Léo Lam
bf05c74f6b
Qt: Fix GameCube config pane spacing
2018-03-24 18:18:17 +01:00
Léo Lam
752098de22
Qt: Fix search bar widget spacing
...
With setMargin(0), the widgets look awkwardly close to the window edges
2018-03-24 18:09:46 +01:00
Léo Lam
8d0c15bb97
Qt/Search: Simplify placeholder text
...
A search box is a common UI element. We don't need to explicitly tell
the user that they need to type a search term. Also,
Let's use the common "Search <items>..." placeholder text instead
and make the string shorter for localisation.
2018-03-24 18:02:17 +01:00
Léo Lam
f7c9d2fd4d
Qt: Show code pane by default in debug mode
...
Otherwise, it's confusing because the option seems to do nothing
especially if the user is used to the DolphinWX debugger.
2018-03-24 17:53:46 +01:00
spycrab
806990968d
Qt: Implement "Auto-Adjust Window Size"
2018-03-24 16:48:46 +01:00
Léo Lam
a838d13fd1
Merge pull request #6504 from Ebola16/OSD
...
Rename "On-Screen Messages" to "On-Screen Display Messages"
2018-03-24 09:59:14 +01:00
Léo Lam
305b3dc835
Merge pull request #6497 from spycrab/qt_file
...
Qt: Implement missing "File" menu items
2018-03-24 09:10:49 +01:00
Léo Lam
4c5efb0f3a
Merge pull request #6508 from lioncash/cmake-common
...
Common/CMakeLists: Migrate off add_dolphin_library
2018-03-24 09:08:20 +01:00
Léo Lam
37dbb2e181
Merge pull request #6509 from spycrab/qt_shader_gen
...
Qt: Show shader generation window
2018-03-24 09:03:16 +01:00
Markus Wick
3ab88742fd
Merge pull request #6492 from lioncash/nop
...
Jit_Integer: Make NOP check more flexible for ori and expand NOP checking to oris, xori, and xoris
2018-03-24 08:53:21 +01:00
spycrab
cb71b06afc
Qt: Show shader generation window
2018-03-24 03:02:47 +01:00
Mat M
5669841e83
Merge pull request #6505 from lioncash/arm
...
Arm64Emitter: Minor cleanup
2018-03-23 19:25:50 -04:00
Lioncash
f889cae8c4
Arm64Emitter: Satisfy unrelated linter issues that cropped up by modifying the cpp file
2018-03-23 19:17:44 -04:00
Lioncash
91cefe6c8a
Arm64Emitter: Make IsImmArithmetic, IsImmLogical, FPImm8ToFloat, and FPImm8FromFloat internally linked
...
These aren't used anywhere outside of the emitter. Centralizes them under an anonymous namespace.
2018-03-23 19:17:26 -04:00
Lioncash
2548ccda8e
Common/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work that was started in 3a4c3bbe01
2018-03-23 19:08:30 -04:00
spycrab
8ebb3a015e
Qt: Update analytics checkbox after initial prompt
2018-03-23 23:28:17 +01:00
spycrab
f3e6f0f2d4
Updater: Increase request timeout to 30s
2018-03-23 22:25:38 +01:00
Lioncash
b11c237c43
Arm64Emitter: Remove unnecessary V8_UINT64_C preprocessor macro
...
UINT64_C is provided via <cstdint>, so we can just use that instead.
2018-03-23 13:31:48 -04:00
Lioncash
03671a5534
Arm64Emitter: Remove duplicate IsPowerOf2 function
...
We can just use the generified version in MathUtil.
2018-03-23 13:31:44 -04:00
Ryan Meredith
976347c65d
Rename "On-Screen Messages" to "On-Screen Display Messages"
2018-03-23 12:29:03 -04:00
Pierre Bourdon
22d851d930
Merge pull request #6500 from spycrab/qt_respect_portable
...
Qt: Make QSettings use the user config directory (Make it respect portable.txt)
2018-03-23 17:25:28 +01:00
JosJuice
9c70036105
Merge pull request #6503 from lioncash/brace-warn
...
PixelShaderGen/UberShaderPixel: Silence -Wmissing-braces warnings
2018-03-23 15:29:39 +01:00
Lioncash
a52cc8d52b
PixelShaderGen/UberShaderPixel: Silence -Wmissing-braces warnings
2018-03-23 10:06:27 -04:00
Lioncash
2ab29a40eb
AbstractFramebuffer: Silence a -Wlogical-op-parentheses warning in ValidateConfig()
2018-03-23 09:58:19 -04:00
Lioncash
79f40fb8d7
MathUtil: Generify IsPow2
...
This will allow it to also be used in the AArch64 emitter.
2018-03-23 09:50:49 -04:00
spycrab
68733ac6c1
Qt: Make QSettings use the user config directory
2018-03-23 12:50:01 +01:00
Lioncash
38f045cee5
DolphinQt2/GameCubePane: Correct duplicate condition in LoadSettings()
...
Also turns a std::string const reference into a value instance.
While this is well-defined, it does look out of place, given a new string
is being created.
2018-03-23 07:38:26 -04:00
Pierre Bourdon
894d4c99a8
Merge pull request #6495 from lioncash/namespace
...
PowerPC: Namespace all header contents for PowerPC.h
2018-03-23 12:09:09 +01:00
Pierre Bourdon
27ffc8a69d
Merge pull request #6498 from lioncash/cmake
...
AudioCommon/CMakelists: Migrate off add_dolphin_library
2018-03-23 12:07:00 +01:00
Pierre Bourdon
1ac7452129
AutoUpdater: Generate basic HTML changelog.
2018-03-23 11:10:25 +01:00
Pierre Bourdon
1f3310874b
AutoUpdater: Don't show a spinning wheel cursor when delaying update
2018-03-23 11:10:25 +01:00
Pierre Bourdon
9628333b86
AutoUpdater: support optionally restarting Dolphin after update
2018-03-23 11:10:25 +01:00
Pierre Bourdon
773ec975f3
Merge pull request #6489 from spycrab/qt_updater
...
Qt: Improve and better integrate updater
2018-03-23 11:08:48 +01:00
spycrab
95a5a51e55
Qt: Implement missing "File" menu items
2018-03-23 10:58:54 +01:00
spycrab
ee3d64145c
Qt: Improve updater
2018-03-23 10:42:40 +01:00
Lioncash
fc16a78f6a
Jit_Integer: Handle NOP case for xori and xoris
...
Like ori and oris, xori and xoris can also be used to introduce a NOP.
In that case, just don't do anything.
2018-03-22 22:51:43 -04:00
Lioncash
007f9e5309
Jit_Integer: Handle NOP case for oris as well
...
Like ori, this can also be used as a NOP under the same conditions.
2018-03-22 22:49:02 -04:00
Lioncash
42fce74f39
Jit_Integer: Handle NOP case where RA == RS for ori
...
ori can be used as a NOP if the two register operands are the same, and
the immediate is zero, not only if the two register operands are r0.
Also removes the check for !inst.Rc, as ori only has one encoding, and
said encoding doesn't even have a record bit in it.
2018-03-22 22:47:19 -04:00
Lioncash
b96bbc8f8d
AudioCommon/CMakelists: Migrate off add_dolphin_library
...
Continues the changes that were introduced in 3a4c3bbe01
2018-03-22 22:07:11 -04:00
Mat M
71846a6daa
Merge pull request #6469 from lioncash/cmake
...
Core/CMakeLists: Migrate off add_dolphin_library
2018-03-22 21:52:44 -04:00
Lioncash
4c97deb364
PowerPC: Namespace all header contents for PowerPC.h
...
Puts everything under the same namespace. Previously the header was only
partially namespaced, which is inconsistent.
2018-03-22 19:01:47 -04:00
spycrab
196a1dcce4
Qt/CheatCodeEditor: Fix valid, encrypted AR codes not being accepted
2018-03-22 23:42:20 +01:00
Léo Lam
5e76f3a6d4
Merge pull request #6488 from aldelaro5/symbols-log
...
LOG: Add a log type for Symbols
2018-03-22 22:06:04 +01:00
Markus Wick
a4511129e7
Merge pull request #6491 from lioncash/sub-oe
...
Interpreter_Integer: Handle OE bit for subf, subfc, subfe, subfme, and subfze
2018-03-22 21:52:17 +01:00
aldelaro5
c54e56793a
Add a log type for Symbols and move symbols related logs to it
...
This fix the awkwardness of having the symbols detection, parsing and loading related logs be in OS HLE while they don't have anything to do with that.
2018-03-22 14:57:28 -04:00
Lioncash
796d67e1ec
Interpreter_Integer: Handle OE bit for subf, subfc, subfe, subfme, and subfze
...
With this, overflow flag support is now fully implemented for all
instructions that support it.
2018-03-22 13:08:03 -04:00
Anthony
0f60e68e0b
Merge pull request #6490 from spycrab/qt_fs_warn
...
Qt: Fix fullscreen quitting
2018-03-22 08:43:52 -07:00
spycrab
cc3d5a9921
Qt: Fix fullscreen quitting
2018-03-22 15:29:08 +01:00
Markus Wick
59c5bc964f
Merge pull request #6486 from lioncash/add-oe
...
Interpreter_Integer: Handle overflow flag when OE bit is set in add, addc, adde, addme, and addze
2018-03-22 14:15:58 +01:00
Lioncash
9d21425449
Interpreter_Integer: Handle overflow flag when OE bit is set in add, addc, adde, addme, and addze
2018-03-22 09:09:31 -04:00
Léo Lam
2e92d95888
Merge pull request #6487 from sepalani/dsp-doc
...
DSP: Fix typos in DSP LoadStore doc
2018-03-22 07:51:29 +01:00
Sepalani
4ed06da2b4
DSP: Fix typos in DSP LoadStore doc
2018-03-22 09:24:58 +04:00
Lioncash
e53fffeb90
PowerPC: Properly unset the overflow bit
...
The OV bit is non-sticky. Therefore, after an overflow-enabled
instruction executes, if an overflow does *not* occur, then OV is
cleared. SO is sticky however, so it staying set in this case is
correct.
2018-03-21 23:59:15 -04:00
Anthony
23bc50704a
Merge pull request #6484 from lioncash/mul
...
Interpreter_Integer: Handle the overflow flag when the OE bit is set for mullw
2018-03-21 18:18:00 -07:00
Lioncash
355509653e
Interpreter_Integer: Handle the overflow flag when the OE bit is set for mullw
2018-03-21 20:28:37 -04:00
Michael M
1ba43e6c27
DSPSymbols: remove unused ReadAnnotatedAssembly
...
It's unused, and it used a weird format, something like:
```
void label_name() {
asm $REG1, $REG2
// etc
}
```
2018-03-21 17:07:27 -07:00
Michael M
ed56f319b5
DSPHost: don't try to read old annotated assembly files
...
They don't exist anymore!
2018-03-21 17:06:30 -07:00
Anthony
30ccaa3fd5
Merge pull request #6481 from spycrab/qt_fix_fs
...
Qt: Fix fullscreen
2018-03-21 16:44:54 -07:00
Léo Lam
1b0f6a7d2e
Merge pull request #6482 from spycrab/qt_borders
...
Qt/MainWindow: Remove obnoxious border
2018-03-21 23:24:46 +01:00
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
Sepalani
6ffb5dbaaa
HLE: DWC_Printf debug added
2018-01-23 19:02:32 +01:00
Stenzek
38e0b6e2ab
AbstractTexture: Move Bind() method to Renderer
...
This makes state tracking simpler, and enables easier porting to command
lists later on.
2018-01-22 13:22:09 +10:00
JosJuice
04b9310bb6
Tweak Qt debugger strings to be more translation friendly
2018-01-21 16:33:46 +01:00
Markus Wick
fca56d532a
Merge pull request #4453 from degasus/custom_texture
...
CustomTexture: Drop old texture format.
2018-01-21 11:22:49 +01:00
spycrab
42c562afbc
Qt: Fix render window resize bug
2018-01-20 21:05:04 +01:00
degasus
a5a0599145
CustomTexture: Drop old texture format.
2018-01-20 17:08:47 +01:00
degasus
0b466249e0
CustomTextures: Drop format convertion.
2018-01-20 16:39:04 +01:00
JosJuice
2441fd28d5
AVIDump: Remove incorrect usage of s_ prefix
2018-01-17 22:19:14 +01:00
Markus Wick
e02025b45e
Merge pull request #6307 from rukai/fix-frame-dump-path
...
Handle framedump path not existing
2018-01-17 22:02:51 +01:00
Lucas Kent
6c7e6016fb
Handle framedump path not existing
2018-01-18 07:53:30 +11:00
Markus Wick
cb7eede193
VideoCommon: Apply custom texture scale for arbitrary mipmaps.
...
We want to get the same mipmap level. And if the IR and the custom
texture upscaling fits, we don't need to modify the LOD bias.
2018-01-17 09:02:36 +01:00
Markus Wick
2a43f41ace
Merge pull request #6297 from JosJuice/custom-texture-arb-filename
...
Treat custom textures with "_arb" suffix as having arbitrary mipmaps
2018-01-15 09:58:30 +01:00
spycrab
fffa883cae
Qt/Settings: Implement "GameCube pane"
2018-01-14 12:24:05 +01:00
Léo Lam
27b6a2e634
Merge pull request #6292 from gyroninja/master
...
Fixed SIGSEGV in PPCDebugInterface When Reading Too Early in The Boot Process
2018-01-13 14:34:38 +01:00
Léo Lam
973bd154b9
Merge pull request #6304 from container1234/qt-debugger
...
Qt/Debugger: Minor fixes
2018-01-13 11:53:20 +01:00
container1234
025d9383ac
Use double instead of float for FPRs
2018-01-13 19:33:11 +09:00
container1234
b6138b9408
Fix 64bit registers that are not displayed correctly
2018-01-13 16:21:32 +09:00
gyroninja
9628e22916
Changed PPCDebugInterace to check memory only after the emulator has finished starting
2018-01-12 15:18:29 -08:00
Léo Lam
955214c6b6
Merge pull request #6299 from Ebola16/master
...
ISOProperties: Rename "Edit Config" and "Show Defaults"
2018-01-12 21:34:16 +01:00
Markus Wick
56d74d65d0
Merge pull request #6298 from 34will/feature/Android_Single_Char_Fix
...
[Android] Fix for single char name for Wii and WAD Games
2018-01-12 09:41:52 +01:00
Stenzek
ce0c699b66
Merge pull request #6246 from stenzek/vulkan-readback-fixes
...
Vulkan: Fix MSAA regression from 5.0-5968
2018-01-12 11:46:55 +10:00
34will
86a787bdf9
Modified StringUtil to change UTF16ToUTF8 to use a wstring_convert and codecvt_utf8<wchar_t> to convert a UTF16 wstring to a UTF8 string.
2018-01-11 21:49:25 +00:00
Markus Wick
b93ae14272
Merge pull request #6300 from JonnyH/WIP/glsl-es-implicit-int-float-conversions-in-gpu-texture-decode
...
GLSL-ES doesn't allow implicit int/uint conversions
2018-01-11 22:22:05 +01:00
34will
a949e98d9b
Modified UTF16BEUTF8 to just convert the UTF-16 C-string into a std::u16string, and pass it into CodeToUTF8 with the 'from' parameter being "UTF-16BE", rather than manually performing the big endian to little endian encoding.
2018-01-11 19:51:19 +00:00
Jonathan Hamilton
46254a2cf2
Some more implicit uint/float conversions in the texture decode shaders
2018-01-11 11:15:40 -08:00
Jonathan Hamilton
f23dd992dd
GLSL-ES doesn't allow implicit int/uint conversions
2018-01-11 10:54:55 -08:00
Ryan Meredith
1fabc93756
ISOProperties: Rename Edit Config and Show Defaults
2018-01-11 08:31:01 -05:00
Stenzek
4997fbce44
Vulkan: Fix possible mismatch between EFB framebuffer and render pass
...
This could happen when changing MSAA settings or internal resolution at
runtime.
2018-01-11 16:02:31 +10:00
Stenzek
0525726338
Vulkan: Move pipeline barrier outside render pass for EFB peeks
2018-01-11 15:36:01 +10:00
Stenzek
48a8063cd5
Vulkan: Fix FramebufferManagerBase::m_EFBLayers being set out-of-range
2018-01-11 15:30:27 +10:00
Stenzek
173a33886c
Vulkan: Move render pass management to ObjectCache
2018-01-11 15:21:34 +10:00
Stenzek
0e50b2c9f2
Vulkan: Add missing layout transition when resolving MSAA depth buffers
2018-01-11 15:21:33 +10:00
34will
ba111959fa
Modified StringUtil to use a u16string instead of a wstring in the non-win32 UTF16BEToUTR8 method.
2018-01-11 02:45:27 +00:00
JosJuice
226b65bd38
Clean up variable naming in HiresTextures::Update
2018-01-10 17:53:51 +01:00
JosJuice
c25fffc9a0
Treat custom textures with "_arb" suffix as having arbitrary mipmaps
...
This is adapted from Bighead's code that was posted at
https://forums.dolphin-emu.org/Thread-dolphin-custom-texture-mipmaps?pid=460867#pid460867
In master, custom textures are never treated as having arbitrary mipmaps,
so we need either a change like this or a change that makes us apply the
arbitrary mipmap heuristic even when a custom texture is used.
2018-01-10 17:51:45 +01:00
Anthony
57640a4c83
Merge pull request #6293 from container1234/dolphinqt-debugger
...
Qt/Debugger: Add TB, XER and GQRs to Registers Window
2018-01-09 21:25:17 -05:00
container1234
5cff714b77
Qt/Debugger: Add TB, XER and GQRs to Registers Window
2018-01-09 18:09:01 +09:00
Markus Wick
22f469697b
Merge pull request #6290 from JosJuice/invalid-aspect-ratio
...
Treat invalid aspect ratio setting values as Auto
2018-01-08 13:46:30 +01:00
JosJuice
1557e6ab05
Specify underlying types for enums that get casted from integers
...
Otherwise we might get UB if the value we cast is larger than the
max value of the underlying type that the compiled picked for the enum.
I haven't done any extensive check through Dolphin to find cases
of this, I'm just fixing the cases I already know of.
2018-01-08 12:14:18 +01:00
JosJuice
a2404c42a1
Treat invalid aspect ratio setting values as Auto
2018-01-06 12:53:53 +01:00
Markus Wick
56d153f548
VideoCommon: Apply the yscale as upscaling of the XFB.
2018-01-06 10:36:33 +01:00
Markus Wick
dc08b73db1
Merge pull request #6141 from JonnyH/WIP/shader-framebuffer-fetch2
...
Implement dual-source blending in shader
2018-01-05 23:42:43 +01:00
Markus Wick
1cf1e7cde0
Merge pull request #6286 from JosJuice/game-list-cache-vector
...
DolphinWX: Speed up in-memory operations on game list cache
2018-01-05 23:37:41 +01:00
JosJuice
6ad04fc589
Merge pull request #6288 from JosJuice/boot-savestate-thread
...
Don't involve host thread when booting from savestate
2018-01-05 21:45:28 +01:00
JosJuice
af51063a9a
DolphinWX: Rewrite the logic for adding/removing games from cache
...
Thanks to degasus for coming up with most of this faster design.
2018-01-05 19:52:14 +01:00
Jonathan Hamilton
c709f3c2d1
Standardise some enums from ALL_CAPS to CamelCase
2018-01-05 10:03:58 -08:00
Jonathan Hamilton
ceb1f8c8cb
Enable shader_framebuffer_fetch blend path on ubershaders
...
Tested on a linux Intel Skylake integrated graphics with
blend_func_extended force-disabled, as it's the only platform I have
that doesn't crash with ubershaders and supports fb_fetch
2018-01-05 09:56:46 -08:00
Jonathan Hamilton
8d68adcaf3
Workaround qualcomm driver bug
...
It seems it doesn't like modifying inout variables in place - so instead
use a temporary for ocol0/ocol1 and only write them once at the end of
the shader
2018-01-05 09:56:46 -08:00
Jonathan Hamilton
29a9ed043b
Implement dual-source blending in shader
...
For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
2018-01-05 09:56:46 -08:00
Markus Wick
11976526d1
Merge pull request #6283 from JosJuice/qt-vs-launch
...
Fix launching DolphinQt2 from Visual Studio
2018-01-05 15:34:33 +01:00
Markus Wick
ff8893b1a9
Merge pull request #6277 from vladfi1/surfaceless_egl
...
Surfaceless egl rendering.
2018-01-05 15:20:35 +01:00
JosJuice
c492a5a86a
Don't involve host thread when booting from savestate
...
Suggested by https://github.com/dolphin-emu/dolphin/pull/6271#discussion_r159868704
2018-01-05 14:14:12 +01:00
Markus Wick
e705d43312
Merge pull request #6270 from mahdihijazi/suppport_restore_state
...
[Android] Support restore emulator state
2018-01-05 13:45:36 +01:00
spycrab
2167a45c24
Qt/Mapping: Implement Microphone widget
2018-01-04 18:42:42 +00:00
JosJuice
04cefc6ed3
DolphinWX: Use vector instead of list for game list cache
...
The advantage of std::list is that elements can be removed from the
middle efficiently, but we don't actually need that, because the
ordering of the elements doesn't matter for us. We can just replace the
element we want to remove with the last element and then call pop_back.
Replacing list with vector should speed up looping through the elements.
2018-01-04 17:14:35 +01:00
JosJuice
e44b64b82c
DolphinQt2: Don't use a mutex in GameFileCache
...
GameTracker's usage of GameFileCache is thread-safe even without
using a mutex. All of its access to GameFileCache happens on the
thread m_load_thread, except for the call to GameFileCache::Load,
which finishes before m_load_thread starts executing.
2018-01-04 16:33:15 +01:00
JosJuice
9988652d86
Fix launching DolphinQt2 from Visual Studio
...
Starting with 5.0-5504, trying to launch DolphinQt2 from Visual Studio
shows the error message "The operation could not be completed. Undefined
error" instead of launching the exe file. (The exe gets created
correctly, it just doesn't get launched. It's possible to work around
the problem by launching the exe manually outside of Visual Studio, but
then you won't have an attached debugger automatically.) This commit
fixes that by removing headers from DolphinQt2.vcxproj's ClInclude list
that already are in the QtMoc list. (The problem was originally about
LogWidget.h and LogConfigWidget.h, but 5.0-5600 made the problem be
about CheatWarningWidget.h and GeckoCodeWidget.h instead.)
2018-01-04 13:03:47 +01:00
Léo Lam
637fbec35d
Merge pull request #6274 from myfreeweb/freebsd-libusb-no-detach
...
passthrough: do not detach kernel driver on FreeBSD
2018-01-04 10:39:58 +01:00
Vlad Firoiu
330881ae80
Allow users to specify the encoder used for framedumping.
2018-01-03 13:23:10 +01:00
Léo Lam
1f89d91deb
Merge pull request #6280 from spycrab/qt_screensaver
...
Qt: Toggle Screensaver
2018-01-03 13:13:18 +01:00
spycrab
adada16603
Qt: Toggle Screensaver
2018-01-03 12:38:34 +01:00
spycrab
0dd52ca7ab
UICommon: Move screensaver code to UICommon
2018-01-03 12:38:33 +01:00
Markus Wick
075a226961
Merge pull request #4437 from sepalani/d3d11_fix_debug_build
...
MAX_XFB_HEIGHT: PAL value off by two fixed
2018-01-03 08:53:26 +01:00
Pierre Bourdon
fd13851df2
Merge pull request #6076 from spycrab/qt_debugger
...
Qt: Implement Debugger (part 1 of ∞)
2018-01-03 03:44:27 +01:00
Markus Wick
cb168b1843
Merge pull request #6134 from ligfx/soundstreamlifecycle
...
SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct
2018-01-02 09:58:36 +01:00
spycrab
afa69a5876
Qt: Implement "AR Codes"
2018-01-01 21:44:49 +00:00