Commit graph

26395 commits

Author SHA1 Message Date
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
Anthony
c48ccdb1cd
Merge pull request #6228 from JosJuice/usb-keyboard-background-input
Make USB keyboard input respect the background input setting
2017-12-02 09:48:42 -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
Markus Wick
7498d80a6f
Merge pull request #5882 from degasus/efb2tex_copies
Use VideoCommon shader generators for efb2tex copies.
2017-12-02 16:28:12 +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
JosJuice
2b2941d0c9 Translation resources sync with Transifex 2017-12-01 20:34:09 +01:00
Anthony
05b67c7f7c
Merge pull request #6209 from lioncash/file-statics
D3DBase: Mark file-scope variables as internally linked where applicable
2017-11-30 21:13:55 -08: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
Leo Lam
0773a48c6c
Merge pull request #6223 from JosJuice/dont-force-immediate-xfb
Don't forcibly enable immediate XFB in game INIs
2017-11-30 19:09:55 +01: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
JosJuice
6344997fad Don't forcibly enable immediate XFB in game INIs
Forcing people to use hacks is a bad idea in general, and there are
two practical problems with doing it for immediate XFB in particular:

1. It breaks the GC IPL, which some users run when launching games.

2. Competitive players don't necessarily want the lowest possible
   latency - they might want the latency that's the closest to console,
   so if they're playing locally with a low-latency monitor, they might
   not want to use immediate XFB. (This isn't a theoretical concern -
   I've seen Melee players want to increase their latency.)

Besides, it feels arbitrary that just these five specific games should
have immediate XFB forced on.
2017-11-27 14:32:27 +01:00
Leo Lam
9fe5dd7fa9
Merge pull request #6221 from leoetlino/qt-small-fixes
Qt: Small fixes
2017-11-27 13:21:34 +01: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
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
7e24b09301
Merge pull request #6218 from Armada651/uber-interpolation
UberShaderPixel: Fix the interpolation qualifier for interface blocks.
2017-11-26 02:19:14 +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
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
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