Commit graph

20386 commits

Author SHA1 Message Date
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
spycrab
4f4021686e Qt/KDE: Fix icon 2018-01-01 12:31:53 +00:00
Sepalani
44935c23e0 MAX_XFB_HEIGHT: PAL value off by two fixed 2017-12-30 20:22:10 +01:00
Vlad Firoiu
45ac9b678d Require WINDOW_BIT if we have a window handle. 2017-12-29 23:20:16 -05:00
Vlad Firoiu
eb59267196 Surfaceless egl rendering. 2017-12-29 19:35:43 -05:00
JosJuice
82a6701f79 Optionally delete savestate that gets loaded at boot 2017-12-28 23:15:48 +01:00
spycrab
b63ec57c1e Qt: Connect debugging widgets 2017-12-28 19:08:38 +01:00
spycrab
8795b342d1 Qt/Debugger: Implement "Breakpoints" window 2017-12-28 19:08:38 +01:00
spycrab
08716be43b Qt/Debugger: Implement "Watch" window 2017-12-28 19:07:56 +01:00
spycrab
ec37ce093f Qt/Debugger: Implement "Registers" window 2017-12-28 19:07:18 +01:00
spycrab
2a19ccf806 Qt/InterfaceSettings: Add "Show Debugging UI" option 2017-12-28 18:59:42 +01:00
spycrab
ff283ff912 Qt/Settings: Add debug mode flag 2017-12-28 18:59:42 +01:00
JosJuice
1df69c5750
Merge pull request #6051 from JosJuice/android-sys
Android: Extract Sys to a different folder than the User folder
2017-12-27 17:34:24 +01:00
JosJuice
9dd88d76dd Redesign the ability to load state at boot
BootParameters can now contain the path of a savestate to load at boot.
Movie has been made to use this instead of poking at Core.cpp's state.
2017-12-26 20:39:03 +01:00
Greg V
5c1c67d4d8 passthrough: do not detach kernel driver on FreeBSD
libusb_detach_kernel_driver() always fails as a regular non-root user:
https://lists.freebsd.org/pipermail/freebsd-usb/2016-March/014161.html
2017-12-26 21:50:50 +03:00
JosJuice
b3b7aef09a Android: Extract Sys to a different folder than the User folder 2017-12-26 09:53:32 +01:00
JosJuice
ac18cffcab DolphinQt2: Don't crash when trying to play without a game selected 2017-12-25 18:41:53 +01:00
JosJuice
d1c1793a34 Don't expose SYSDATA_DIR in a header 2017-12-24 17:13:04 +01:00
Leo Lam
b187d4cd08
Merge pull request #6269 from JosJuice/ini-section-mapping
GameConfigLoader: Map whole sections, not just individual keys
2017-12-24 15:26:47 +01:00
JosJuice
f41273fe79 GameConfigLoader: Map whole sections, not just individual keys
There are two reasons for this change:

1. It removes many repetitive lines of code.

2. I think it's a good idea to enable the use of old-style section
names even for settings that previously haven't been settable in game
INIs. Mixing the two styles in INIs (using the new style only for new
settings) is not ideal, and people on the forums don't even seem to
know that the new style exists (nobody knew a way to set ubershader
settings per game, for instance). Encouraging everyone to start using
only the new style might work long-term, but it would take take time
and effort to make everyone get used to it. Considering that this commit
*reduces* the amount of code by adding the ability to use old-style
names for more settings, I'd say that adding this ability is worth it.
2017-12-23 18:59:27 +01:00
JosJuice
5296ee6d3d Reduce the indentation level of MapINIToRealLocation 2017-12-23 18:25:49 +01:00
iwubcode
50d96a4411 BPStructs: Use static cast for XFB/EFB copies 2017-12-21 21:19:26 -06:00
iwubcode
e1332b1d7e Texture Cache Base: Move PAL vertical scaling to be baked into the texture size. This saves on a number of multiplications and fixes an issue where we were multiplying the y-scaling factor by the srcRectangle's height + 1 which was causing a crash in some GC titles 2017-12-21 21:19:26 -06:00
Ryan Meredith
1f226ec14f Update Readme.md and various fixes 2017-12-20 10:54:51 +01:00
JosJuice
a3355a3e4a Only use the "Scaled EFB Copy" setting for EFB, not XFB
The hybrid XFB PR made it apply to both EFB copies and XFB copies.
2017-12-19 12:59:36 +01:00
Markus Wick
5006ac5c51
Merge pull request #6262 from linkmauve/no-shadow
Rename constructor parameters to avoid shadowing members
2017-12-19 12:23:32 +01:00
Emmanuel Gil Peyrot
f5dc8e7737 Rename constructor parameters to avoid shadowing members 2017-12-19 12:05:06 +01:00
Emmanuel Gil Peyrot
d9c2de90c0 Reimplement EFB copy for intensity formats
This is the direct continuation of #5887, and removes the last usage of
the colmat matrix in EFB copy conversion shaders.
2017-12-19 12:04:56 +01:00
Markus Wick
0bf24f549a
Merge pull request #6190 from JosJuice/is-trivially-copyable-vs
Remove IsTriviallyCopyable hack for VS
2017-12-19 11:15:58 +01:00
Markus Wick
ed13a8d7a7
Merge pull request #6255 from JosJuice/strerrorr-detect
Handle both the XSI and GNU versions of strerror_r
2017-12-19 09:47:51 +01:00
Markus Wick
5afd07c033
Merge pull request #6254 from iwubcode/frame_counter_and_advance_fix
Video Common: frame logic fix
2017-12-19 09:44:49 +01:00
JosJuice
bd5da5cfd6 Handle both the XSI and GNU versions of strerror_r
Trying to force the XSI version by undefining _GNU_SOURCE can lead
to compilation errors on some systems because of headers expecting
that _GNU_SOURCE is defined.

This commit uses define checks to detect which version we have.
I tried making an overloaded function (int and const char*) instead,
but that led to a warning about one of the variants being unused.
2017-12-18 22:09:02 +01:00
JosJuice
4973ae9952 Rename GFX_HACK_COPY_EFB_ENABLED to GFX_HACK_COPY_EFB_SCALED
Not sure why it was named like this... It doesn't affect whether
the copy happens or not, only what resolution it uses.
2017-12-18 21:55:02 +01:00
Leo Lam
4733bbd8f3
Merge pull request #6166 from ligfx/invokedeviceschangedcallbacks
ControllerInterface: cleanup callbacks API and logic
2017-12-15 21:05:17 +01:00
Leo Lam
a4592bc3c5
Merge pull request #6210 from ligfx/qtmappingwindowdontstoredevq
MappingWindow: don't store devq separately from controller default device
2017-12-15 20:50:06 +01:00
Leo Lam
7e7f1fe713
Merge pull request #6226 from aldelaro5/add-xer-debugger
debugger: Add the XER to the register view
2017-12-15 20:49:24 +01:00
Leo Lam
fa0cf5c038
Merge pull request #6247 from leoetlino/homebrew
Boot: Minor fixes for Wii homebrew
2017-12-15 20:47:02 +01:00
bobjrsenior
7589ade972 DolphinWX: Add TB and GQR to Register Window
The Time Base Register was added under the BAT registers. TBL and TBU
were ORed together to get one 64-bit value to display. It is labeled TB

The Graphics Quantisation Registers were added under the Segment
Registers. They are Labeled GQR0-GQR7.

All new registers are read only.
2017-12-15 20:38:46 +01:00
iwubcode
2f7eacd08c Video Common: move frame advance and counter logic to only happen when we actually render a frame. 2017-12-15 12:46:18 -06:00
Jonathan Hamilton
a38103afbf Fix GLES GPU texture conversion shader
GLES doesn't support C-style array initialisers, so stuff like:

Type var[2] = {
VALUE_A,
VALUE_B
};

isn't supported in GLES (it was added in
GL_ARB_shading_language_420pack).

The texture conversion shader used this, so would fail to compile on
GLES.
2017-12-12 22:01:10 +00:00
Markus Wick
a70c03a1c0
Merge pull request #6249 from stenzek/texture-dump
Texture dumping regression fixes
2017-12-11 08:44:09 +01:00
Jonathan Hamilton
e401004766 Fix an invalid (uint < int) comparison in GLES with ubershaders 2017-12-10 10:52:32 -08:00
Stenzek
2579f8eaa5 TextureCache: Don't dump custom textures
They don't have a basename, therefore were being saved to empty files, and potentially can be compressed.
2017-12-10 15:31:46 +10:00
Stenzek
5f5aca7870 OGL: Fix incorrect usage of glGetTextureSubImage
Was causing issues with texture dumping on newer drivers.
2017-12-10 15:31:14 +10:00
Markus Wick
eb1ae38304
Merge pull request #6027 from JonnyH/WIP/chained-signal-handler-android-debuggerd
Call the previously-set sigaction in fastmem handler if it's not our fault
2017-12-10 00:18:13 +01:00
Jonathan Hamilton
8ae76a6680 Fix arm64 MOVI2R for addresses between 2gb and 4gb offset from PC
The PC offset ADRP() path takes a s32 value, but the input offset was
being tested as abs(ptr) < 0xFFFFFFFF. This caused values between
0x80000000 and 0xFFFFFFFF to incorrectly use this path, despite the
offsets not being representable in an s32.

This caused a crash in the VertexLoader on android 8.1 immediate in wind
waker (and possibly all other apps on android 8.1) as the jit and data
sections happened to be loaded 4gb apart in virtual memory, causing some
pointers to hit this
2017-12-09 13:21:58 -08:00
Léo Lam
3dd777be70 Boot: Add default exception handlers
Some homebrew expect exception handlers to be present -- which is
almost always the case on console, since most of the time homebrew are
launched from either a libogc or SDK title) -- and break if they are
not. To fix this, we just need to include default, dummy handlers.
2017-12-09 17:24:04 +01:00
Léo Lam
520039ab28 Boot: Use values from libogc for booting Wii homebrew
Set HID0, HID4, GPR1 to values that are used by libogc for
initialisation. This makes boots more similar to a launch
from the HBC or another loader, since normally the registers
have already been initialised by the loader.

This fixes a crash in homebrew that assume GPR1 points to a correct
location and attempt to use it before initialising registers.
2017-12-09 17:24:03 +01:00
Léo Lam
ecd7191b5a Boot: Fix BAT setup in Wii mode
HID4.SBE must be set before calling PowerPC::Update{D,I}BAT, otherwise
extended BATs will not be enabled.
2017-12-09 17:24:03 +01:00
Leo Lam
1a9d6b99e9
Merge pull request #6237 from lioncash/gekko-disasm
GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
2017-12-08 22:50:40 +01:00
Lioncash
e88c457276 DolphinWX: Resolve missing declaration warnings
Without the include, the prototypes of the functions can't be found
2017-12-07 18:58:20 -05:00
Anthony
3b887388cd
Merge pull request #6234 from amolloy/high_sierra
Fix Wiimote support on macOS 10.13 High Sierra
2017-12-07 12:04:37 -08:00
Pierre Bourdon
8a830074b6
Merge pull request #6220 from leoetlino/utf8
WX: Fix argument parsing
2017-12-07 15:16:39 +01:00
Leo Lam
ecf30cfc74
Merge pull request #6240 from JosJuice/stream-path-encoding
Don't use wrong encoding for paths when opening streams on Windows
2017-12-07 10:04:55 +01:00
degasus
02dd062518 VideoCommon: Drop now unused efb2tex matrix generation. 2017-12-06 09:30:03 +01:00
JosJuice
9d8a82e1d9 Don't use wrong encoding for paths when opening streams on Windows 2017-12-05 21:23:35 +01:00
Stenzek
d0601c0a83 TextureConversionShader: Use round() instead of roundEven() in HLSL
HLSL does not define roundEven(), only round(). This means that the
output may differ slightly for OpenGL vs Direct3D. However, it ensures
consistency across OpenGL drivers, as round() in GLSL can go either way.
2017-12-06 03:33:50 +10:00
Stenzek
e0ffce2785 D3D: Use VideoCommon EFB-to-texture shaders 2017-12-06 03:33:50 +10:00
Stenzek
beb35320f6 TextureConverterShaderGen: Make generated shaders HLSL-compatible 2017-12-06 03:33:50 +10:00
Leo Lam
08da19fc87
Merge pull request #6217 from ligfx/qtfifofix
FIFOPlayerWindow: don't reset frame/object limit every frame
2017-12-04 12:05:33 +01:00
Lioncash
ed2be3b8e3 DolphinWX/Main: Fix shader compilation dialog translations
Fixes issue 10685
2017-12-04 04:33:49 -05:00
Markus Wick
30b5cbcb02
Merge pull request #6235 from lioncash/reorder
WiiSaveBanner: Resolve a -Wreorder warning
2017-12-04 08:52:42 +01:00
Lioncash
de82330a74 GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
These three instructions use the B field (bits 16-20 of the opcode)
to determine what the operand register is. However, the code was
using the path that uses the C field (bits 21-25).

This amends the code to use the B field (and also fixes the 64-bit PPC
opcodes, because why not?).

Fixes issue 10683.
2017-12-04 00:02:35 -05:00
Lioncash
050440fd5b OGL/TextureConverter: Remove unnecessary using declaration 2017-12-03 18:51:22 -05:00
Lioncash
93e85f9a7c OGL/TextureConverter: Resolve -Wmissing-variable-declaration warnings 2017-12-03 18:51:17 -05:00
Lioncash
666af4605e WiiSaveBanner: Resolve a -Wreorder warning 2017-12-03 18:34:49 -05:00
Andrew Molloy
f5839f854a Fix whitespace in and around WiimoteScannerDarwin::~WiimoteScannerDarwin() (linter). 2017-12-03 12:31:18 -05:00
Andrew Molloy
8354e89cf1 Break out of the loop waiting for the SearchBT to be done in WiimoteScannerDarwin::FindWiimotes() when the object is destroyed. Allows the application to quit correctly when Continuous Scanning is enabled on macOS. 2017-12-03 11:41:06 -05:00
Andrew Molloy
d306397bbc -[deviceInquiryComplete:error:aborted:] comes in on the main thread in macOS 10.13, so instead of using CFRunLoopRun()/CFRunLoopStop(), just let the run loop do one pass. This is already in a loop waiting for done to be false. This also means -[deviceInquiryComplete:error:aborted:] should no longer call CFRunLoopStop(). Fixes connecting to Wiimotes in macOS 10.13+, should continue to work as before in 10.12 and below. 2017-12-03 10:32:07 -05:00
Markus Wick
8bcc392d5d
Merge pull request #5887 from linkmauve/alpha-fix
Simplify EFB copy shaders
2017-12-03 11:21:08 +01:00
JosJuice
f68956a614
Merge pull request #6232 from lioncash/d3d-vert-mgr
D3D/VertexManager: Add missing includes
2017-12-03 09:24:23 +01:00
Lioncash
6ca85dbf0a VKTexture: Add missing override specifier to the other ScaleRectangeFromTexture() prototype 2017-12-02 20:20:13 -05:00
Lioncash
c7bc16811c VKTexture: Remove unimplemented ScaleRectangleFromTexture() prototype 2017-12-02 20:15:32 -05:00
Lioncash
b0fadbb5de D3D/VertexManager: Add missing includes
Gets rid of reliance on indirect includes
2017-12-02 20:09:33 -05:00
Léo Lam
d95177526f VideoBackends: Fix -Wswitch warnings 2017-12-02 21:52:07 +01:00
Léo Lam
67ba326ff6 VideoCommon: Fix -Wformat warnings 2017-12-02 21:48:01 +01:00
Emmanuel Gil Peyrot
85bb1d7bb0 VideoCommon: Reimplement texture format conversion
This fixes the rendering of the scan visor in Metroid Prime 2: Echoes,
as seen in https://fifoci.dolphin-emu.org/dff/mp2-scanner/

The alpha channel was off-by-one on Ivy Bridge due to the rounding
after multiplication with colmat.  This commit removes this matrix
altogether in most cases, making them simple GLSL swizzles.
2017-12-02 19:29:01 +01:00
Anthony
d71f4168e9
Merge pull request #6229 from JosJuice/clarify-keys-dump
Clarify the "Select the OTP/SEEPROM dump" message
2017-12-02 09:49:22 -08:00
JosJuice
c4db59e7b6 Clarify the "Select the OTP/SEEPROM dump" message
Most users don't know what OTP/SEEPROM means.
2017-12-02 18:23:38 +01:00
JosJuice
05879875f6 Make USB keyboard input respect the background input setting 2017-12-02 18:12:04 +01:00
Markus Wick
76fbdbb06e
Merge pull request #5903 from linkmauve/fix-mp2e
Round values in swizzlers
2017-12-02 17:38:21 +01:00
degasus
e2a9ee384f VideoCommon: Rename TextureConversionShader namespace. 2017-12-02 15:17:39 +01:00
degasus
e8febd0cef VideoCommon: Create a namespace for TextureConversionShaderGen. 2017-12-02 15:17:39 +01:00
Markus Wick
491c10ec96 VideoBackends: Use VideoCommon shader generators for efb2tex copies.
This will generate one shader per copy format. For now, it is the same
shader with the colmat hard coded. So it should already improve the GPU
performance a bit, but a rewrite of the shader generator is suggested.

Half of the patch is done by linkmauve1:
VideoCommon: Reorganise the shader writes.
2017-12-02 15:17:39 +01:00
aldelaro5
b7fdf374e6 debugger: Add the XER to the register view 2017-12-01 05:31:41 -05:00
Lioncash
1e7096dd27 D3DBase: Mark file-scope variables as internally linked where applicable 2017-11-30 23:46:46 -05:00
Stenzek
cd68b3606c
Merge pull request #6193 from stenzek/readbacks
Abstract Staging Textures - VideoCommon interface for texture readbacks/uploads
2017-12-01 14:24:06 +10:00
Anthony
7c96e51bc8
Merge pull request #6187 from raelgc/1-exit-on-esc
Add an exit key to `dolphin-emu-nogui`
2017-11-27 13:30:33 -08:00
Léo Lam
291c99217e Qt: Fix NAND import menu item parent 2017-11-26 18:33:07 +01:00
Léo Lam
6e796a74fb Qt: Add support for --exec 2017-11-26 18:32:28 +01:00
Léo Lam
05c8d229af Config: Handle unknown system strings better
Currently, a simple typo in the system name will trigger an assert
message that complains about a "programming error". This is not
user friendly and misleading.

So this changes GetSystemFromName to return an std::optional, which
allows for callers to check whether the system exists and handle
failures better.
2017-11-26 18:24:01 +01:00
Léo Lam
653977cec7 UICommon: Fix unsafe usage of optparse::Values::all
The const-qualified all() member method triggers undefined behaviour
if the option passed to it is not set.
2017-11-26 18:18:49 +01:00
Léo Lam
60afb1d1b4 WX: Fix argument parsing
Manually convert each argument to a UTF-8 std::string, because the
implicit conversion for wxCmdLineArgsArray to char** calls ToAscii
(which is obviously undesired).

Fixes https://bugs.dolphin-emu.org/issues/10274
2017-11-26 18:18:48 +01:00
Markus Wick
96e094e127
Merge pull request #6216 from stenzek/headless-frame-dumping
OGL: Fix headless frame dumping
2017-11-26 11:36:10 +01:00
Jules Blok
7dd207931d UberShaderPixel: Fix the interpolation qualifier for interface blocks.
Fixes MSAA on MacOS with ubershaders enabled.
2017-11-25 21:51:14 +01:00
Michael M
fc2a0a1988 FIFOPlayerWindow: don't reset frame/object limit every frame 2017-11-24 14:11:59 -08:00
Stenzek
cf1f975148 Vulkan: Fix headless framedumping without USE_X11 set 2017-11-23 17:00:32 +10:00
Stenzek
32125cf181 OGL: Fix headless frame dumping
Also skips swapping the window system buffers in headless mode, as there
may not be a surface which can be swapped in the first place. Instead,
we call glFlush() at the end of a frame in this case.
2017-11-23 16:53:55 +10:00
Stenzek
ab44536a3c OGL: Update the window size after swapping buffers, not before
Prevents us from rendering beyond the viewport bounds.
2017-11-23 16:09:59 +10:00
Stenzek
7f217a8bb2 Vulkan: Drop StagingTexture2D class as it is now duplicated functionality 2017-11-22 18:49:33 +10:00
Stenzek
db1d9de933 AbstractTexture: Drop slow map readback path 2017-11-22 18:49:33 +10:00
Stenzek
193763ca3a TextureCacheBase: Don't crop last row/column of XFB copies
Unsure why this was happening in the first place.
2017-11-22 18:49:33 +10:00
Stenzek
6577365851 VideoCommon: Re-implement asynchronous frame dumping
This was lost as a result of hybrid XFB, now it is back, and ~10%
faster in very brief testing.
2017-11-22 18:49:33 +10:00
Stenzek
752dd4761d D3D: Use new readback methods for EFB2RAM 2017-11-22 18:47:04 +10:00
Stenzek
9da9f26b90 OGL: Use new readback methods for EFB2RAM 2017-11-22 18:47:04 +10:00
Stenzek
59517318d6 Vulkan: Use new readback methods for texture encoding 2017-11-22 18:47:04 +10:00
Stenzek
c2cc128f1b AbstractTexture: Implement Save using new common methods 2017-11-22 18:47:04 +10:00
Stenzek
56afebeb44 AbstractTexture: Seperate CopyRectangleFromTexture to two methods
ScaleRectangleFromTexture, which does a draw, and
CopyRectangleFromTexture, which where possible, does a bit-for-bit copy.
2017-11-22 18:47:04 +10:00
Stenzek
f43d85921d VideoBackends: Add AbstractStagingTexture class
Can be used for asynchronous readback or upload of textures.
2017-11-22 18:47:04 +10:00
Stenzek
a584ccc7d8 AbstractTexture: Support BGRA8 formats
Used for some driver's swap chains, and EFB to RAM.
2017-11-22 18:47:04 +10:00
Stenzek
49a9c33bd7 VideoCommon: Move abstract texture creation function to Renderer 2017-11-22 18:47:04 +10:00
Stenzek
5860c97144 D3D: Move device release from Renderer destructor to shutdown
Necessary if we wish to have GPU objects in our base class, as otherwise
the device will be released before the objects.
2017-11-22 18:47:04 +10:00
Stenzek
c5a89b6483 D3D: Remove BeginFrame/EndFrame
These functions did not do anything anyway. There is also no need to
present the backbuffer when shutting down.
2017-11-22 18:47:04 +10:00
Stenzek
d9400f708a D3D: Move remaining static variables from Render.cpp to Renderer class 2017-11-22 18:47:04 +10:00
Stenzek
798ec96e14 D3D: Make state cache part of Renderer and not static 2017-11-22 18:17:07 +10:00
Leo Lam
73a67aa413
Merge pull request #6204 from stenzek/downscaled-screenshots
Frame Dumping: Fix window-size framedumping
2017-11-22 07:53:23 +01:00
Stenzek
efb9759862 LightingShaderGen: Always calculate lighting for both color channels
Cel-damage uses the color from the lighting stage of the vertex pipeline
as texture coordinates, but sets numColorChans to zero.

We now calculate the colors in all cases, but override the color before
writing it from the vertex shader if numColorChans is set to a lower value.
2017-11-22 01:52:18 +10:00
Stenzek
470e8d63b6 VideoConfig: Rename "Full Resolution Frame Dumps" to "Internal"
What is the "full" resolution, anyway?
2017-11-21 17:20:55 +10:00
Stenzek
8985cb2f0b Renderer: Re-implement window size frame dumping
This was broken by hybrid XFB, and all frame dumping/screenshots occured
at the full internal resolution.
2017-11-21 17:19:43 +10:00
Stenzek
39559f6358 VideoConfig: Remove bSupportsInternalResolutionFrameDumps
Field is unused as of Hybrid XFB.
2017-11-21 17:19:43 +10:00
Stenzek
18c1bf19ca VideoCommon: Use constant for number of color channels in XFMemory 2017-11-20 23:18:44 +10:00
Michael M
ebc547030d BootManager: RestoreSYSCONF without resetting all other config
This was causing an issue where DolphinQt couldn't save graphics options
(DolphinWX doesn't hit this code path), because this function was being
called before the in-memory config was flushed to disk.

With this PR, the in-memory config isn't reset, and only SYSCONF-related
variables may get changed.
2017-11-19 17:17:59 -08:00
Michael M
5dc3ecdb72 Qt: show "Immediately present XFB" option 2017-11-19 15:37:24 -08:00
spycrab
474b1c2d5c Qt: Implement FIFO Player 2017-11-19 22:06:32 +01:00
spycrab
aa8bf71333 FifoRecorder: Implement IsRecordingDone() 2017-11-19 21:49:29 +01:00
spycrab
aac1b386b9 FifoPlayer: Implement IsPlaying() 2017-11-19 21:49:29 +01:00
Michael M
6b7d5bb80c DeviceQualifier: small cleanup 2017-11-19 12:46:39 -08:00
Michael M
ac855e2c93 MappingWindow: don't store devq separately from controller default device 2017-11-19 12:46:39 -08:00
Michael M
9551fe1c73 MappingWindow: m_controller is never nullptr
Since GCPadWiiUConfigDialog was made its own class, m_controller will
never be nullptr.
2017-11-19 12:46:38 -08:00
JosJuice
b3b58b586c
Merge pull request #5943 from leoetlino/features
IOS: Check for available features when adding devices
2017-11-19 21:43:54 +01:00
Michael M
a988a8a458 AudioCommon: make SetSoundStreamRunning idempotent 2017-11-19 12:09:54 -08:00
Michael M
0baddbf9a8 SoundStream: change Start/Stop to Init/SetRunning/destruct 2017-11-19 12:09:54 -08:00
Michael M
ad4a89d64b CubebStream: implement SetRunning 2017-11-19 12:09:54 -08:00
JosJuice
d0b9923b0a Move XFB settings in DTM header back to where they were
7f0834c9 moved the locations of the Real XFB (now XFB to RAM) and
Disabled XFB (now Immediate Mode) settings. There are programs
other than Dolphin that parse DTM headers, so this is not good.

Note that Immediate XFB actually is the inversion of Disabled XFB.
I hope that's not too much of a problem...
2017-11-19 19:03:03 +01:00
Lioncash
d6f10fdc15 D3DUtil: Remove unused defines 2017-11-19 12:14:18 -05:00
Lioncash
01a92af014 D3DUtil: Make file-scope variables internally linked where applicable
All file scope variables are able to be made internally linked.

CD3DFont is essentially used as an extension to the utility interface, so
this is able to be made internal as well, removing a global from
external view.
2017-11-19 12:12:39 -05:00
spycrab
9388852e05 Qt: Fix blackscreen 2017-11-19 17:49:51 +01:00
Michael Maltese
c62d83a34b GCPadEmu: only connected if default device connected
This lets Dolphin know if a configured GameCube Controller should actually
be treated as connected or not.

Talked to @JMC47 a bit about this last night. My use-case is that all of
my controllers are the same hardware (Xbox One controllers) so share the
same configuration (modulo device number). Treating them all as always
connected isn't a problem for most games, but in some (Smash Bros.) it
forces me to go find a keyboard/mouse and unconfigure any controllers
that I don't actually have connected. Hotplugging devices (works on macOS,
at least) + this patch remove my need to ever touch the Controller Config
dialog while in a game.

This patch makes the following changes:

- A new `BooleanSetting` in `GCPadEmu` called "Always Connected", which
  defaults to false.
- `ControllerEmu` tracks whether the default device is connected on every
  call to `UpdateReferences()`.
- `GCPadEmu.GetStatus()` now sets err bit to `PAD_ERR_NO_CONTROLLER` if
  the default device isn't connected.
- `SIDevice_GCController` handles `PAD_ERR_NO_CONTROLLER` by imitating the
  behaviour of `SIDevice_Null` (as far as I can tell, this is the only use
  of the error bit from `GCPadStatus`).

I wanted to add an OSD message akin to the ones when Wiimotes get
connected/disconnected, but I haven't yet found where to put the logic.
2017-11-19 16:07:00 +01:00
Michael Maltese
379e28b58c Add GCPadStatus.isConnected boolean 2017-11-19 16:01:08 +01:00
Michael Maltese
bb1c794657 Remove unused GCPadStatus.err 2017-11-19 16:01:07 +01:00
Leo Lam
80bcc0d58d
Merge pull request #6186 from lioncash/enum-class
VideoConfig: Make AspectMode and StereoMode enum classes
2017-11-19 15:08:16 +01:00
Leo Lam
a75546747e
Merge pull request #6164 from leoetlino/usb-hid
IOS/USB: Implement HIDv5
2017-11-19 14:13:57 +01:00
JosJuice
b8c83dd5f3
Merge pull request #5973 from ligfx/renamefifoqueue
Rename Common::FifoQueue to Common::SPSCQueue
2017-11-19 13:51:22 +01:00
Markus Wick
9178a6e636
Merge pull request #6197 from degasus/GP
Jit: Optimize gather pipe usage.
2017-11-19 11:52:20 +01:00
Markus Wick
40ed0e4251
Merge pull request #6198 from lioncash/cmake
D3D: Remove non-existent files from CMakeLists.txt
2017-11-19 10:41:32 +01:00
JosJuice
2ead31c769
Merge pull request #6203 from lioncash/missing-braces-warn
VideoCommon: Resolve -Wmissing-brace warnings
2017-11-19 08:45:13 +01:00
JosJuice
2385a03c2b
Merge pull request #6201 from lioncash/headers
VideoBackends: Remove header inclusions made unnecessary with Hybrid XFB
2017-11-19 08:44:48 +01:00
JosJuice
4c23516b16
Merge pull request #6202 from lioncash/reorder-warn
AbstractTexture: Remove a redundant constructor initializer list entry
2017-11-19 08:44:29 +01:00
Lioncash
518f6a3624 VideoCommon: Resolve -Wmissing-brace warnings
Resolves around 5 -Wmissing-brace warnings on macOS.
2017-11-19 01:49:39 -05:00
Lioncash
2bd88bdb9f AbstractTexture: Remove a redundant constructor initializer list entry
This is already initialized in the class definition. This would
previously cause a -Wreorder warning on macOS, as m_config is
defined after m_currently_mapped.
2017-11-19 01:25:55 -05:00
Lioncash
16a0a58b91 VolumeGC: Correct printf specifier in LoadBannerFile()
Gets rid of a warning when compiling on macOS.
2017-11-19 00:54:47 -05:00
Lioncash
364eaadfe5 VideoBackends: Remove header inclusions made unnecessary with Hybrid XFB
Just some inclusions that weren't removed in the initial Hybrid XFB PR.
2017-11-19 00:53:10 -05:00
Lioncash
05d0d184d7 DolphinQt2: Fix incorrect description string for the immediate XFB option 2017-11-19 00:40:46 -05:00
Lioncash
2ef8ded8ce D3D: Remove non-existent files from CMakeLists.txt
Just a leftover that was missed in the Hybrid XFB PR.
2017-11-19 00:29:23 -05:00
Lioncash
5337e58284 VideoConfig: Make StereoMode an enum class
Makes for more strongly-typed identifiers (and doesn't pollute
surrounding namespaces)
2017-11-18 23:19:53 -05:00
Lioncash
10697bcbe3 VideoConfig: Make AspectMode an enum class
Makes for more strongly-typed identifiers (and doesn't pollute
surrounding namespaces)
2017-11-18 23:17:56 -05:00
Pierre Bourdon
609a17a0cd
Merge pull request #5498 from iwubcode/hybrid_xfb
Hybrid xfb
2017-11-19 04:58:59 +01:00
degasus
6ea3f538b4 JitArm64: Inline GP check in Cleanup.
We're calling this function up to 2M times per second. Let's inline the pre-check.
2017-11-18 17:43:38 +01:00
degasus
6c9bb67ca0 JitArm64: Optimize gather pipe writes. 2017-11-18 17:43:38 +01:00
degasus
6ad63c1b35 Jit64: Inline GP fast check in Cleanup. 2017-11-18 17:43:38 +01:00
degasus
36ad887a19 Jit64: Inline GP writes.
As we're down to 4 instructions now, it is always worth to inline those writes.
2017-11-18 14:45:09 +01:00
degasus
4feddd7748 PowerPC: Include the gather pipe pointer in the ppc state. 2017-11-18 14:14:45 +01:00
iwubcode
dd54617a08 TextureCacheBase: Set uninitialized XFB memory to fuchsia color 2017-11-17 22:11:34 -06:00
iwubcode
8d1cbeb25e Hybrid XFB: Fix lint errors 2017-11-17 22:11:34 -06:00
iwubcode
61541ab243 Enhance xfb dumping to distinguish between the xfbs created from memory and the xfbs created from overlapping copies 2017-11-17 22:11:34 -06:00
iwubcode
8678e8ddd3 Texture Cache Base: Optimization to allow stitched or memory xfb textures to be looked up from cache directly if they were defined previously and their hash hasn't changed 2017-11-17 22:11:33 -06:00
iwubcode
bf7db3f888 Software Backend: Remove reinterpret_cast which violates the strict aliasing rule 2017-11-17 22:11:33 -06:00
iwubcode
332af8aa49 TextureCacheBase: Fix issue in Rogue Squadron 2 where overlapping textures caused a hash change which would cause us to do a lookup from memory that gave us an incorrect result in XFB2Ram 2017-11-17 22:11:33 -06:00
iwubcode
ada37ec642 TextureCacheBase: Remove vertical scaling from EFB path and have copy checks only check EFBs 2017-11-17 22:11:33 -06:00
iwubcode
1a1c3560ce Software Backend: Rename 'copy_region' to 'CopyRegion' 2017-11-17 22:11:33 -06:00
iwubcode
0f7f4ccaf9 Software Backend: allow screenshots/video to be taken with valid data 2017-11-17 22:11:33 -06:00
iwubcode
7248dd47d5 Hybrid XFB: Fix lint errors 2017-11-17 22:11:32 -06:00
iwubcode
2c87a53f11 TextureCacheBase: make sure stitching rectangle bounds don't exceed the
texture size they are meant to represent
2017-11-17 22:11:32 -06:00
iwubcode
74610646ce TextureCacheBase: Add XFB specific functions 2017-11-17 22:11:32 -06:00
iwubcode
4964fc87ae Video Backends: Remove the right of the xfb region for games where the
VI stride does not match the VI width
2017-11-17 22:11:32 -06:00
iwubcode
a129a53e56 Video Common: Improve texture dumping to work with fifoci and
fifo_comparer
2017-11-17 22:11:32 -06:00
iwubcode
53684701fa HybridXFB: Fix lint errors 2017-11-17 22:11:31 -06:00
iwubcode
65418a76f5 Video Common: Use correct aspect ratio when saving screenshots / video 2017-11-17 22:11:31 -06:00
iwubcode
1090549552 Software Backend: Force EFB/XFB to copy to ram 2017-11-17 22:11:31 -06:00
iwubcode
6e686f6ea1 Software Backend: Fix xfb output and add vertical scaling support 2017-11-17 22:11:31 -06:00
iwubcode
e6d85b0915 Video Common: Avoid 'presenting' duplicate frames by detecting when swap
hasn't changed since the last frame
2017-11-17 22:11:31 -06:00
iwubcode
2295d60fdc VideoCommon: Output gamma now comes from the xfb copy 2017-11-17 22:11:30 -06:00
iwubcode
7f0834c919 Add 'immediate xfb' which reduces xfb latency at the cost of graphical errors 2017-11-17 22:11:30 -06:00
iwubcode
a71bc9ebbf Move XFB UI option to be under XFB group 2017-11-17 22:11:30 -06:00
iwubcode
e33ab4117d Video Common: Make auto IR work with HybridXFB 2017-11-17 22:11:30 -06:00
iwubcode
76b775d5be Video Common: Add XFB decoding via the GPU 2017-11-17 22:11:30 -06:00
iwubcode
4d13f69dc1 Remove TODOs 2017-11-17 22:11:29 -06:00