Jules Blok
a565317a6a
VideoConfigDiag: Update convergence description.
...
The switch to the Nvidia formula reversed this setting.
2014-11-23 14:30:12 +01:00
Jules Blok
72c01e3083
VideoConfigDiag: Remove value labels.
2014-11-23 14:30:12 +01:00
Jules Blok
77078a8d75
GameSettings: Force mono EFB depth copies in Luigi's Mansion.
...
This game uses stencil shadows which should not be stereoized.
2014-11-23 14:30:12 +01:00
Jules Blok
24e4de3643
VideoConfig: Move stereoscopy settings to the Enhancements section.
2014-11-23 14:30:12 +01:00
Jules Blok
6e62dd3415
Add stereoscopy hotkeys.
2014-11-23 14:30:12 +01:00
Jules Blok
21eabc1b9d
OGL: Add warning message when stereoscopic 3D is enabled but unsupported.
2014-11-23 14:27:40 +01:00
Jules Blok
0f63186371
TextureCache: Add "Mono EFB Depth Copy" stereoscopy option.
2014-11-23 14:27:40 +01:00
Jules Blok
9994ccb342
PostProcessing: Invalidate shader when anaglyph stereoscopy is toggled.
2014-11-23 14:27:40 +01:00
Jules Blok
f3ddf37d07
VideoCommon: Switch to Nvidia stereoscopy offset formula.
2014-11-23 14:27:40 +01:00
Jules Blok
8210b9c915
TextureCache: Ensure that all render target textures have as many layers as the frame buffer.
...
Also fixes a case where the D3D code path did not initialize num_layers leading to undefined behaviour.
2014-11-23 14:27:40 +01:00
Jules Blok
02ad1a36ea
VideoConfigDiag: Update descriptions.
...
Since we cannot accurately calculate the eye seperation or the focal length without headtracking these values are purely virtual.
2014-11-23 14:27:40 +01:00
Jules Blok
27f3f804a0
ShaderGen: Only pass VS_OUTPUT between shaders if stereo 3D is enabled.
...
GLSL130 doesn't support passing structs between shaders.
This is not a problem for stereo 3D which has a GLSL150 requirement.
2014-11-23 14:27:40 +01:00
Jules Blok
51a4d6a4be
GeometryShader: Adjust positions after projection.
...
By adjusting the positions in clip space we can avoid the re-projection.
2014-11-23 14:27:40 +01:00
Jules Blok
ee76c03160
TextureCache: Recompile EFB2Tex shaders when stereo 3D is toggled.
2014-11-23 14:27:40 +01:00
Jules Blok
4d075c2efb
ProgramShaderCache: Abort shader compilation if geometry shader failed to compile.
2014-11-23 14:27:40 +01:00
Jules Blok
6642af2404
OGL: Remove Virtual XFB SBS support.
2014-11-23 14:27:40 +01:00
Jules Blok
acc65ee608
GeometryShader: Replicate missing position manipulations from vertex shader.
2014-11-23 14:27:40 +01:00
Jules Blok
940c628eb7
Shaders: Remove fake stereoscopic shaders.
...
We have actual stereoscopy now, no need to pretend.
2014-11-23 14:27:39 +01:00
Jules Blok
ab76cf8b5e
PostProcessing: Apply color correction to the anaglyph shader.
...
The eyes were accidentally swapped, the left filter only allows red to pass so the left eye texture should be used in the red channel.
2014-11-23 14:27:39 +01:00
Jules Blok
081212b765
TextureCache: Force mono copies of the depth buffer.
...
Fixes stereoscopic stencil shadows in some games.
2014-11-23 14:27:39 +01:00
Jules Blok
3baa01fc73
VideoConfig: Use a smaller focal length default.
2014-11-23 14:27:39 +01:00
Jules Blok
6b2261deca
VideoConfigDiag: Update descriptions of stereoscopy settings.
2014-11-23 14:27:39 +01:00
Jules Blok
2cb2290910
TextureCache: Fix invalid cast.
2014-11-23 14:27:39 +01:00
Jules Blok
c0a5ae1746
OGL: Also redefine glFramebufferTexture on OpenGL ES.
2014-11-23 14:27:39 +01:00
Jules Blok
aa57feb9a8
ProgramShaderCache: Don't call glAttachShader if no geometry shader was compiled.
2014-11-23 14:27:39 +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
0eb0c47eba
Render: Improve SBS presentation.
...
New calculation properly takes pillar boxing into account.
2014-11-23 14:27:39 +01:00
Jules Blok
d7804a4d3e
Cosmetics.
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
4d9589b35f
Cosmetics.
2014-11-23 14:27:38 +01:00
Jules Blok
9b4185ffdf
ShaderGen: Make use of padding to store the stereo flag.
2014-11-23 14:27:38 +01:00
Jules Blok
35342664e3
OGL: Disable stereoscopy if the GPU does not support geometry shaders.
2014-11-23 14:27:38 +01:00
Jules Blok
f370cb386c
ProgramShaderCache: Always generate a geometry shader UID, even if stereoscopy is disabled.
2014-11-23 14:27:38 +01:00
Jules Blok
6cacfad010
GeometryShader: Transform the projection within the geometry shader.
...
Reduces the amount of data transferred through uniforms.
The shearing transformation is reduced to a single multiplication/addition for optimization.
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
284be96cd5
OGL: Recreate the framebuffers when the stereo setting changes.
2014-11-23 14:26:56 +01:00
Jules Blok
63b37e29d1
ShaderGen: Rename "eye" to "layer".
...
Keeping things generic.
2014-11-23 14:26:56 +01:00
Jules Blok
d583720a59
GeometryShaderGen: Support stereoscopy on GPUs without support for instancing.
2014-11-23 14:26:56 +01:00
Jules Blok
176191dc16
ShaderGenCommon: Move uniforms into a common static string.
2014-11-23 14:24:09 +01:00
Jules Blok
0a72cf94cb
TextureCache: Ignore the geometry shader if stereoscopy is disabled.
2014-11-23 14:24:09 +01:00
Jules Blok
fa32f751d3
ShaderGen: Handle ShaderCode objects directly.
...
ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.
2014-11-23 14:24:09 +01:00
Jules Blok
b236c363de
ShaderGen: Add a stereoscopy flag in the UID data.
2014-11-23 14:23:42 +01:00
Jules Blok
4fe9ceeee2
TextureCache: Set proper vertex limit in geometry shader.
...
Without instancing 6 vertices are output instead of 3.
2014-11-23 14:23:42 +01:00
Jules Blok
5944d15021
TextureCache: Check the number of layers before reusing a texture.
2014-11-23 14:23:42 +01:00
Jules Blok
272ea90ca5
GeometryShaderGen: Allow stereoscopy to be disabled.
...
Will facilitate future use of this generator for other purposes.
2014-11-23 14:23:41 +01:00
Jules Blok
80616c6e9e
TextureCache: Implement layered framebuffer support.
...
Stereoscopic EFB2Tex is now supported.
2014-11-23 14:23:41 +01:00
Jules Blok
d9e280e338
PixelShaderGen: Sample the correct texture layer.
2014-11-23 14:23:41 +01:00
Jules Blok
f6ea293027
VertexShaderManager: Compute stereoscopy projection matrices.
2014-11-23 14:23:41 +01:00
Jules Blok
c64486075d
PostProcessing: Add layered stereoscopy support.
2014-11-23 14:23:41 +01:00
Jules Blok
81e9004679
VideoConfigDiag: Add Stereo 3D option.
2014-11-23 14:23:41 +01:00
Jules Blok
2d8ec62beb
Pass VS_OUTPUT structs between shaders.
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
Jules Blok
03e1bd0995
Limit Borderless Fullscreen to Windows systems.
2014-10-09 11:30:26 +02:00
Jules Blok
39f421d45d
Support the borderless fullscreen option in all backends.
2014-10-07 16:48:43 +02: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
Jules Blok
9818bd3edf
CFrame: Render to a child on Linux and Mac OS X.
...
This is needed to fix the hotkeys on those platforms.
2014-08-04 13:22:41 +02:00
Jules Blok
b67ec4ea58
CFrame: Always exit fullscreen before showing the stop dialog.
2014-08-03 23:38:20 +02:00
Jules Blok
857c116210
CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL.
...
This is not implemented within the backend, but relies purely on driver heuristics.
2014-08-03 23:36:54 +02:00
Jules Blok
b6e7e0d57f
CFrame: Only re-assign focus when "Render to main" is enabled.
...
It may cause fullscreen loops and since m_RenderFrame == m_RenderParent now it's not necessary to re-assign focus anymore.
2014-08-03 13:37:19 +02:00
Jules Blok
6ab6d07948
FrameTools: Add a wxPanel as the child of the RenderFrame.
...
Needed for hotkeys to be captured on Linux.
2014-08-02 13:55:23 +02: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
5bbd34637b
CFrame: Don't check the video config fullscreen setting.
...
Checking this flag could sometimes incorrectly have the UI assume fullscreen is already off when we're still exiting.
2014-07-30 12:15:32 +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
e07c06cb16
CFrame: Handle close events that can't be vetoed.
...
This can happen during shutdown.
As long as we don't call event.Skip() the CFrame won't be closed yet, so even if we can't veto the shutdown will still happen in the correct order.
2014-07-29 12:36:10 +02:00
Jules Blok
1f24122d35
Frame: Only prevent exclusive fullscreen switches when the emulator is paused.
...
This fixes the "Use Fullscreen" setting in which case the switch is done while the emulator is uninitialized.
2014-07-27 00:08:27 +02:00
Jules Blok
ec402a0d5f
FPSCounter: Initialize members.
2014-07-26 14:37:18 +02:00
Jules Blok
ed2c74a024
D3D: Set s_last_fullscreen_mode when constructing the renderer.
2014-07-26 13:47:11 +02:00
Jules Blok
06b13f12d3
D3D: Make the global swapchain static again.
2014-07-26 13:04:46 +02:00
Jules Blok
6724ce6275
Cosmetic changes based on feedback on PR #506 .
2014-07-26 13:04:39 +02:00
Jules Blok
eea7086b23
CFrame: Prevent fullscreen switches if the renderer is halted.
2014-07-26 12:45:19 +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
4b3d579573
Renderer: Only notify the host when exiting fullscreen
2014-07-21 20:50:50 +02:00
Jules Blok
0c81494c89
Frame: Make the fullscreen transitions more reliable.
2014-07-21 20:50:49 +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
36ea1890c8
Let the Renderer decide when to exit fullscreen.
...
This ensures the transition from/to exclusive mode happens while the RenderFrame is fullscreen.
This prevents fullscreen loops and relieves us of having to restore the window size after we exit fullscreen.
2014-07-21 17:11:13 +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
3400871992
Renderer: Don't attempt to switch to exclusive fullscreen if "render to main" is enabled.
2014-07-19 21:14:49 +02:00
Jules Blok
9064bf147d
D3D: Don't set the windowed mode size when we initialize in fullscreen.
2014-07-19 21:14:48 +02:00
Jules Blok
d00e76b3ef
Cosmetic changes based on feedback on PR #506 .
2014-07-19 21:14:47 +02:00
Jules Blok
5837b35add
Renderer: Restore exclusive mode after focus has been regained.
2014-07-19 21:14:47 +02:00
Jules Blok
5f04e9c526
D3D: Make the swapchain available outside of the namespace.
...
This commit reverts a part of pull request #579 .
2014-07-19 21:14:46 +02:00
Jules Blok
643c9ff173
D3D: Initialize the renderer in exclusive fullscreen mode if it is enabled.
2014-07-19 21:14:46 +02:00
Jules Blok
961076a3d5
D3D: Return to windowed mode before destroying the swapchain.
2014-07-19 21:14:45 +02:00
Jules Blok
77bc879384
D3D: Add exclusive fullscreen support.
2014-07-19 21:14:44 +02:00
Jules Blok
d72375fdfa
D3D: Request desktop resolution before overriding the buffer size.
...
This fixes issues where the wrong refresh rate is selected for some monitors.
2014-07-19 21:14:44 +02:00
Jules Blok
c323b386ae
Prevent DXGI from making changes to the window.
...
Prevents DXGI from responding to Alt+Enter and messing up our fullscreen handling.
2014-07-19 21:14:43 +02:00
Jules Blok
8d76dca30d
Frame: Make RendererHasFocus() compatible with the new window structure.
2014-07-19 21:14:38 +02:00
Jules Blok
66fec6d0bd
Remove CPanel.
...
Let the RenderFrame handle those messages.
2014-07-19 21:13:15 +02:00
Jules Blok
1b70bebb5a
Don't create a Panel for a seperate render window.
...
Instead of setting RenderParent to null and raising complexity RenderFrame can be its own parent.
2014-07-19 15:56:49 +02:00
Jules Blok
eaa7460636
FPSCounter: Remove redundant destructor.
2014-07-18 12:49:40 +02:00
Jules Blok
3b978f7c27
Turn the FPSCounter namespace into a class.
2014-07-16 20:40:40 +02:00
Jules Blok
aa2495205e
Shutdown the Core before other components.
...
Other components depend on the EmuThread being stopped.
2014-07-13 23:47:59 +02:00
Jules Blok
64801008a0
NoGUI: Add missing call to Core::Shutdown().
...
Fixes a crash when exiting the application.
2014-07-13 01:05:09 +02:00
Jules Blok
6def4ead01
FPSCounter: Flush the logs every second and close them when the renderer is shut down.
2014-07-10 23:11:28 +02:00
Jules Blok
1754cbda9d
Move FPSCounter calls to RenderBase.
2014-07-10 23:11:09 +02:00
Jules Blok
09304cab57
FPSCounter: Change format string to match value.
2014-07-09 19:45:56 +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