Commit graph

157 commits

Author SHA1 Message Date
Chris Burgener
bfb17d5a9e Add configurable video dump bitrate to INI 2017-02-25 23:58:21 -05:00
Jules Blok
94522d4cf3 OGL: Add support for glDepthRangedNV to handle oversized depth ranges. 2017-02-24 14:54:16 +01:00
Jules Blok
21967b1f6e VideoBackends: Add a developer option to disable the shader cache.
Makes it easier to disable the cache while working on the shaders.
2017-02-19 12:05:44 +01:00
Stenzek
a0a62c0f46 VideoConfig: Add option for full-resolution frame dumping 2016-11-28 20:14:59 +10:00
Stenzek
6d0b9b816f VideoCommon: Support dumping frames to images
This is mainly for potential Android fifoci usage, and thus is not
exposed anywhere in the UI. To enable, set DumpFramesAsImages under
Settings in GFX.ini.
2016-11-23 12:07:49 +10:00
Jules Blok
0a194f8a3e VideoConfig: Remove fullscreen flags.
These weren't actually settings, they were used as a bad way to communicate with the GPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok
365e88e311 VideoConfig: Add an option to force RGB8 EFB format. 2016-10-10 14:31:53 +02:00
Stenzek
77a128ab87 Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00
Stenzek
5346078791 VideoCommon: Add config fields for multithreading and validation layers 2016-10-01 01:09:12 +10:00
Jules Blok
a8a9348913 OGL: Handle cases where reversed depth is already used. 2016-08-23 15:54:04 +02:00
Jules Blok
8c1c7fc2da Cosmetics. 2016-08-15 13:11:30 +02:00
Jules Blok
a141e91dd2 OGL: Check for GL_DEPTH_CLAMP support.
It's not available in OpenGL ES and officially it's not supported on OpenGL 3.0/3.1.

Fallback to old depth range code if there is no method to disable depth clipping.
It's more important to have correct clipping than to have accurate depth values.
Inaccurate depth values can be fixed by slow depth.
2016-08-15 13:11:26 +02:00
Markus Wick
e281273cd7 Merge pull request #4047 from lioncash/enum-fwd
VideoCommon: Make API_TYPE an enum class
2016-07-31 10:38:42 +02:00
Lioncash
14e0b48ae4 VideoCommon: Make API_TYPE an enum class
Allows for forward declarations in most places, which prevents dumping
unrelated VideoCommon.h contents directly into headers.
2016-07-29 19:20:16 -04:00
Aestek
6a0fc4c438 Improve netplay setup dialog UX
* Focus "Hash Code" / "IP address" text box by default in "Connect"
* Focus game list in "Host" tab
* RETURN keypress now host/join depending on selected tab
* Remember last hosted game
* Remove PanicAlertT:
	* Simply log message to netplay window
	* Remove them when they are useless
* Show some netplay message in OSD
	* Chat messages
	* Pad buffer changes
	* Desync alerts
* Stop the game consistently when another player disconnects / crashes
* Prettify chat textbox
* Log netplay ping to OSD

Join scenario:
* Copy netplay code
* Open netplay
* Paste code
* Press enter

Host scenario:
* Open netplay
* Go to host tab
* Press enter
2016-07-23 20:58:51 +02:00
Scott Mansell
2f134c5c36 Remove the rest of ShaderDebugging.
Without UID checking, it's basically a no-op that disables shader cache
and stores the shader source code (without ever reading it back).
2016-06-26 16:25:11 +12:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Scott Mansell
d197f489b9 analytics: Report OpenGL's adapter name too. 2016-06-20 23:54:44 +12:00
Jules Blok
6d1628eda4 Revert "Merge pull request #3578 from Armada651/forced-slow-depth"
This reverts commit e2a1a085b6, reversing
changes made to 2aea549eef.
2016-02-29 00:55:51 +01:00
Jules Blok
9805f70913 VideoConfig: Replace FastDepthCalc by ForcedSlowDepth.
Fast depth is now more accurate than slow depth and should always be used.
The option will be kept in a different form as it is still used as a hack to fix some games.
Also, the slow depth code path will still be relied upon by cards that don't support GL_ARB_clip_control.
2016-02-08 12:26:55 +01:00
degasus
efbe5bc4b6 VideoSW: Use more VideoCommon
Now we require lots of empty functions, but this removes by far more duplicated code.
2016-01-06 22:10:29 +01:00
Jules Blok
8bda12bcfd Revert "Merge pull request #3076 from void-ghost/stereo3d_presets"
This reverts commit 81414b4fa2, reversing
changes made to b926061f64.

Conflicts:
	Source/Core/DolphinWX/Frame.cpp
	Source/Core/VideoCommon/VideoConfig.cpp
	Source/Core/VideoCommon/VideoConfig.h
2015-12-23 00:35:19 +01:00
Scott Mansell
ebe3c49c5f Merge pull request #3332 from degasus/master
MSAA: Store samples in ini files.
2015-12-19 01:37:10 +13:00
degasus
e26d9f7c35 MSAA: Store samples in ini files. 2015-12-15 09:41:01 +01:00
Jules Blok
ee657c04fe VideoConfig: Change convergence setting to percentage value. 2015-12-13 22:58:16 +01:00
Scott Mansell
51c984dde3 Remove the "Show EFB Copy Regions" debug option.
It was only implemented in OpenGL, though the option was visible in both
backends, leading to memory leaks if you enabled it in DirectX.

And it wasn't particularly useful as a debug feature as it only showed
where in the EFB the copies were taken from, not what format it was, or
what the copy was used for, or what content was in the EFB at that point
in time.

Also, it stretched the copy regions relative to the window, so the
on-screen regions don't even line up with the window unless the game used
the full EFB (some pal games) and you game image stretched to the full
window.
2015-11-05 18:15:46 +13:00
shuffle2
81414b4fa2 Merge pull request #3076 from void-ghost/stereo3d_presets
Stereo3d presets
2015-10-03 18:10:23 -07:00
Anthony Serna
df189c3ea3 Improved D3D and OGL AA option UI
Removed Quality Levels from D3D AA options

Dropdown text now shows whether you're applying MSAA or SSAA

Added a description for SSAA

Moved SSAA checkbox

Cleaned up AA in backends slightly. Supported modes is now a list of ints.
2015-09-25 09:05:18 -07:00
ghost
7c1565b201 VideoConfig/LocalConfig/HotkeyManager: Added hotkeys for switching stereo-3d presets.
Added 3 depth/convergence presets. They are adjustable via (existing) hotkeys - changes to depth and convergence are applied to current preset.
Added 3 hotkeys for activating presets. Added hotkey for toggle between first and second preset.
Added OSD message for convergence/depth changes.
Presets are saved into per-game configs.
2015-09-24 15:19:55 +03:00
degasus
74b20e627c VideoCommon: Drop "Disable destAlpha" hack
This option has no use any more, neither performance nor driver workaround.
2015-09-09 21:31:54 +02:00
Ryan Houdek
7650117c26 Properly support MSAA and SSAA as separate features(+GLES)
SSAA relies on MSAA being active to work. We only supports 4x SSAA while in fact you can enable SSAA at any MSAA level.
I even managed to run 64xMSAA + SSAA on my Quadro which made some pretty sleek looking games. They were very cinematic though.

With this, it properly fixes up SSAA and MSAA support in GLES as well. Before they were broken when stereo rendering was enabled.
Now in GLES they can properly support MSAA and also stereo rendering with MSAA enabled(with proper extensions).
2015-09-05 05:23:29 -05:00
booto
acc9a74174 VI: Restore forced-progressive hack with option
Bugfix: TargetRefreshRate uses rounded result
NTSC's 59.94 was becoming 59 with integer division.
2015-09-01 20:24:40 +08:00
degasus
e2f42f8fd0 OGL: Move copy_image variable into backend. 2015-08-06 19:41:36 +02:00
mirrorbender
0faba3b018 Changed the aspect ratio settings to account for NTSC/PAL pixel aspect ratios and VI scaling. 2015-07-31 19:58:02 -04:00
mimimi085181
0ed6b5623f Support partial texture updates via efb copies 2015-06-21 14:02:44 +02:00
Fog
6e7fedd4d0 Add UI Support for up to 8x Internal Resolutions 2015-06-10 20:17:30 -04:00
Markus Wick
a6412fb41e Merge pull request #2162 from degasus/prefetch_tex
CustomTexture: prefetch all available textures
2015-05-26 13:30:26 +02:00
Ryan Houdek
69963dc4b0 Merge pull request #2274 from degasus/disable_bbox
Disable bbox
2015-05-25 08:46:12 -04:00
Tillmann Karras
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
degasus
acd074e291 VideoCommon: Make BBox emulation optional 2015-05-25 09:33:34 +02:00
Jules Blok
88cc91030e VertexShaderGen: Use correct depth output when glClipControl is supported. 2015-05-22 23:52:21 +02:00
degasus
242f7d964d CustomTexture: prefetch all available textures 2015-05-16 15:12:07 +02:00
degasus
967eaad8df VideoCommon: rename efb2tex and efb2ram 2015-02-24 23:10:13 +01:00
degasus
1313d3461f VideoCommon: always enable efb copy 2015-02-24 23:01:01 +01:00
magumagu
c0a4760f0e Decode EFB copies used as paletted textures.
A number of games make an EFB copy in I4/I8 format, then use it as a
texture in C4/C8 format.  Detect when this happens, and decode the copy on
the GPU using the specified palette.

This has a few advantages: it allows using EFB2Tex for a few more games,
it, it preserves the resolution of scaled EFB copies, and it's probably a
bit faster.

D3D only at the moment, but porting to OpenGL should be straightforward..
2015-02-19 15:09:27 -08:00
Markus Wick
43605f8716 Merge pull request #1948 from magumagu/remove-efb-cache
Remove EFB to RAM cache, and simplify code.
2015-01-27 09:42:15 +01:00
Jules Blok
262c3b19ec PostProcessing: Add support for user-supplied anaglyph shaders.
There are lots of different anaglyph glasses out there and there may be even more creative uses for stereoscopic post-processing shaders.
2015-01-25 22:07:03 +01:00
magumagu
6659c15bed Remove EFB to RAM cache, and simplify code. 2015-01-23 10:48:15 -08:00
degasus
84c8645d22 CustomTexture: Convert old format automatically 2015-01-21 21:22:55 +01:00
Jules Blok
332d5888eb VideoConfig: Add exclusive mode flag.
Allows the UI to easily check the current exclusive mode state.
This simplifies a few checks and prevents the user from ever getting stuck in fullscreen.
2015-01-19 22:55:21 +01:00
Markus Wick
7069450ce5 Merge pull request #1872 from degasus/texcache
Texcache cleanup 2
2015-01-13 22:45:49 +01:00
degasus
744b1c1624 TexCache: rewrite level calculation 2015-01-11 22:23:35 +01:00
Jules Blok
b816ee1f79 VideoConfig: Define a per-game minimum convergence value instead of a percentage boost. 2015-01-02 17:07:08 +01:00
Jules Blok
da058b3078 VideoConfig: Fix convergence parameter.
Looks like a rebase failed somewhere.
2014-12-29 12:03:59 +01:00
Jules Blok
31a55384b3 VideoConfig: Rename "StereoMonoEFBDepth" to "StereoEFBMonoDepth"
Makes a little bit more sense.
2014-12-24 23:30:40 +01:00
Jules Blok
70b898e2c6 VideoConfig: Rename Separation to Depth and update descriptions.
More accurate since it's not a real IPD and Nvidia also calls it depth.
2014-12-24 23:28:23 +01:00
Jules Blok
7e8f96f0d3 OGL: Don't generate a geometry shader if the backend doesn't support it.
This commit repurposes the bSupportsStereoscopy flag as the bSupportsGeometryShaders flag.
2014-12-18 00:36:49 +01:00
Jules Blok
b06280e866 D3D: Add anaglyph stereoscopy support. 2014-12-14 13:28:47 +01:00
Jules Blok
a689db0e48 D3D: Add 3D vision support. 2014-12-14 13:28:42 +01:00
Jules Blok
a04edbcb9a VideoConfig: Add separation and convergence modifiers to the game ini. 2014-11-24 15:10:52 +01:00
Jules Blok
f64aadd362 VideoConfig: Limit the StereoMonoEFBDepth option to the game ini and introduce a separate section for it. 2014-11-24 12:25:35 +01:00
Jules Blok
0f4d59f612 VideoConfig: Rename StereoFocalLength to StereoConvergence. 2014-11-24 11:58:38 +01:00
Jules Blok
0f63186371 TextureCache: Add "Mono EFB Depth Copy" stereoscopy option. 2014-11-23 14:27:40 +01:00
Jules Blok
f74d1b16ed OGL: Add Top-and-Bottom stereoscopy mode. 2014-11-23 14:27:39 +01:00
Jules Blok
1261bd02ca VertexShaderManager: Add stereoscopy options to swap the left and right eye. 2014-11-23 14:27:39 +01:00
Jules Blok
c3ad6e7820 PostProcessing: Add support for anaglyph stereoscopy mode. 2014-11-23 14:27:39 +01:00
Jules Blok
6c8f3fa861 VideoConfig: Add StereoMode enumeration. 2014-11-23 14:27:39 +01:00
Jules Blok
9b22e15180 VideoConfigDiag: Add stereoscopy options group. 2014-11-23 14:27:38 +01:00
Jules Blok
4fd943aedd VideoConfig: Limit the Stereo 3D option to the OpenGL backend. 2014-11-23 14:27:38 +01:00
Jules Blok
d583720a59 GeometryShaderGen: Support stereoscopy on GPUs without support for instancing. 2014-11-23 14:26:56 +01:00
Jules Blok
f6ea293027 VertexShaderManager: Compute stereoscopy projection matrices. 2014-11-23 14:23:41 +01:00
Jules Blok
b005f61a2e Add geometry shader generator for stereo 3D. 2014-11-23 14:22:55 +01:00
degasus
c211450b99 OGL: implement bounding box support with ssbo
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
Jasper St. Pierre
44b879dac2 Destroy OpenMP 2014-11-06 18:38:24 -08:00
Fog
467ab1a629 Moved Input Display to Movie Menu 2014-10-17 21:08:34 -04:00
crudelios
d281b4d7e1 Remove setting to enable or disable Bounding Box calculation. 2014-10-15 19:02:54 +01:00
Fog
8d424b114a Move bDumpFrames to SConfig (and it's references) 2014-10-12 23:56:16 -04:00
Jules Blok
7344f752b7 Replace BorderlessFullscreenEnabled by ExclusiveFullscreenEnabled.
Special handling was associated with this function, which only applies to exclusive fullscreen.
2014-10-07 16:43:32 +02:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Jasper St. Pierre
a8e591dc73 VideoCommon: Remove support for decoding to ARGB textures
The D3D / OGL backends only ever used RGBA textures, and the Software
backend uses its own custom code for sampling. The ARGB path seems to
just be dead code.

Since ARGB and RGBA formats are similar, I don't think this will make
the code more difficult to read or unable to be used as
reference. Somebody who wants to use this code to output ARGB can simply
modify the MakeRGBA function to put the shift at the other end.
2014-09-04 18:36:56 -07:00
Jules Blok
3b5625c76b VideoConfig: Ignore Borderless Fullscreen setting when the backend does not support exclusive fullscreen.
This was expected to be handled by VerifyValidity(), but that only verifies the validity of the INI files.
2014-07-30 12:15:58 +02:00
Jules Blok
4501aeefbe CFrame: Check borderless fullscreen setting before enabling exclusive fullscreen in the video config.
Fixes a bug where "Use Fullscreen" would initialize into exclusive fullscreen regardless of the borderless fullscreen setting.

Also relieves the need for the video renderer to check the borderless fullscreen setting each time.
2014-07-30 12:15:26 +02:00
Jules Blok
6724ce6275 Cosmetic changes based on feedback on PR #506. 2014-07-26 13:04:39 +02:00
Jules Blok
bd9953d97e Remove the 3D Vision hack.
The hack was needed because the Nvidia 3D Vision heuristics are documented to only support surfaces that are the same size as the backbuffer. This would be the case if you enabled the hack and selected the "Auto (Window Size)" internal resolution.

However, on recent drivers the same effect is achieved by selecting the "Auto (Multiple)" internal resolution. Therefore the hack is no longer required.
2014-07-26 12:45:10 +02:00
Jules Blok
009b4dd376 Exit exclusive fullscreen when the stop confirmation is shown.
Also have the renderer remember its own fullscreen state. This is done to prevent a case where we exit exclusive fullscreen through the configuration and a focus shift at the same time. In this case the renderer would fail to detect that the fullscreen state was changed.
2014-07-21 20:50:48 +02:00
Jules Blok
cd94ff1966 VideoConfig: Add "Borderless Fullscreen" option.
This option will disable exclusive fullscreen for users who prefer the old behaviour.
2014-07-20 22:02:57 +02:00
Jules Blok
77bc879384 D3D: Add exclusive fullscreen support. 2014-07-19 21:14:44 +02:00
Jules Blok
95b579746f Replace "Log FPS to file" by the "Log render time to file" feature. 2014-07-09 17:56:11 +02:00
Jules Blok
efeadb7fe9 FPSCounter: Add "Log render time to file" feature.
Allows for a more accurate performance measurement.
2014-07-09 17:53:31 +02:00
magumagu
9d87818853 VideoCommon: small cleanups. No functional change. 2014-06-16 14:03:29 -07:00
Rachel Bryk
c38e8e25dd Remove unused video config variable. 2014-06-09 00:02:38 -04:00
magumagu
fd9c1fa746 VideoBackend: remove unused config vars.
No point to keeping around variables which are always "true".
2014-04-11 14:53:12 -07:00
Ryan Houdek
3251d78f89 Add initial support for GLSL ES 3.10.
GLSL ES 3.10 adds implicit support for the binding layout qualifier that we use.
Changes our GLSL version enums to bit values so we can check for both ES versions easily.
2014-04-03 00:46:09 -05:00
Lioncash
a9adaa5601 Prevent VideoConfig inheritance. 2014-03-16 17:00:29 -04:00
Linktothepast
82f772fdcc Remove the extra parameters field from the PH.
Metroid: Other M was the only game which required this field, but the
issue in that game can be fixed properly by enabling format change
emulation. Hence, there's no point in having this around anymore.
Fixes issue 6644.
2014-03-15 15:04:39 +02:00
Lioncash
a82675b7d5 Kill off some usages of c_str.
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
Lioncash
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash
6c4ee1753a Fix some vertical alignments
ie. uses spaces for alignment.
2014-02-16 20:12:05 -05:00
lioncash
d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00