Commit Graph

26632 Commits

Author SHA1 Message Date
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
Anthony 066471be07
Merge pull request #4601 from stenzek/celdamage-lighting
ShaderGen: Always calculate lighting for both color channels
2017-11-21 20:17:18 -08: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
Leo Lam f2f50d4fe5
Merge pull request #6213 from ligfx/restoresysconf
BootManager: RestoreSYSCONF without resetting all other config
2017-11-20 13:16:31 +01: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
Leo Lam a4c057b315
Merge pull request #6212 from ligfx/qtimmediatexfb
Qt: show "Immediately present XFB" option
2017-11-20 00:48:16 +01:00
Michael M 5dc3ecdb72 Qt: show "Immediately present XFB" option 2017-11-19 15:37:24 -08:00
Leo Lam 88bfbda157
Merge pull request #6211 from sepalani/dsy-net
totaldb.dsy: RecvFrom and SendTo added
2017-11-20 00:11:32 +01:00
Sepalani b4b80e1be9 totaldb.dsy: RecvFrom and SendTo added 2017-11-19 23:18:50 +01:00
Leo Lam 901e29f080
Merge pull request #5995 from spycrab/qt_fifoplayer
Qt: Implement FIFO Player
2017-11-19 22:23:51 +01: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
Leo Lam 28f9034536
Merge pull request #6207 from JosJuice/dtm-immediate-xfb
Move Immediate XFB down in DTM header
2017-11-19 19:57:34 +01: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
Leo Lam 01794126ad
Merge pull request #6191 from lioncash/file-static
D3DUtil: Make file-scope variables internally linked where applicable
2017-11-19 18:36:32 +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
Stenzek 175db0d817
Merge pull request #6206 from spycrab/qt_fix_bs
Qt: Fix blackscreen
2017-11-20 02:55:41 +10:00
spycrab 9388852e05 Qt: Fix blackscreen 2017-11-19 17:49:51 +01:00
Leo Lam 38f44b2839
Merge pull request #4853 from ligfx/always_connected
GCPadEmu: only connected if default device connected
2017-11-19 16:53:23 +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