Jules Blok
|
6c7bed25a5
|
Cosmetics
|
2014-12-14 13:29:27 +01:00 |
|
Jules Blok
|
cec5b0ce01
|
ShaderGen: Remove the GS_OUTPUT struct for OpenGL.
And remove the generator for it since it is no longer used outside of the geometry shader.
|
2014-12-14 13:28:50 +01:00 |
|
Jules Blok
|
fd6b588627
|
D3D: Define decimals in floating point numbers
|
2014-12-14 13:28:49 +01:00 |
|
Jules Blok
|
a6ac7dd5bd
|
D3D: Fix Nvidia 3D Vision memory leak
|
2014-12-14 13:28:49 +01:00 |
|
Jules Blok
|
ea2bcb44f0
|
Cosmetics
|
2014-12-14 13:28:48 +01:00 |
|
Jules Blok
|
6fe7d530ed
|
PixelShaderCache: Fix MSAA shaders.
Various typos were introduced due to lack of testing.
|
2014-12-14 13:28:48 +01:00 |
|
Jules Blok
|
b2e73400be
|
Cosmetics
|
2014-12-14 13:28:48 +01:00 |
|
Jules Blok
|
b06280e866
|
D3D: Add anaglyph stereoscopy support.
|
2014-12-14 13:28:47 +01:00 |
|
Jules Blok
|
4b3e784949
|
TextureCache: Add stereoscopy support for EFB to texture copies.
|
2014-12-14 13:28:47 +01:00 |
|
Jules Blok
|
3355d8086d
|
D3DUtil: Use a geometry shader to clear all slices.
|
2014-12-14 13:28:46 +01:00 |
|
Jules Blok
|
799697ad80
|
PSTextureEncoder: Add texture array support.
We only read the first slice, because EFB2RAM doesn't support texture arrays.
|
2014-12-14 13:28:46 +01:00 |
|
Jules Blok
|
ced733ccdf
|
PixelShaderCache: Add texture array support to static shaders.
|
2014-12-14 13:28:46 +01:00 |
|
Jules Blok
|
d58e389f67
|
D3D: Recreate the framebuffer when stereoscopic 3D is toggled.
|
2014-12-14 13:28:45 +01:00 |
|
Jules Blok
|
b769da23d0
|
PixelShaderGen: Sample the correct texture slice.
|
2014-12-14 13:28:45 +01:00 |
|
Jules Blok
|
7c05b9a6d0
|
D3D: Set the geometry shader for triangle primitives.
|
2014-12-14 13:28:44 +01:00 |
|
Jules Blok
|
4f6ce0f236
|
D3D: Add geometry shader instancing support.
|
2014-12-14 13:28:44 +01:00 |
|
Jules Blok
|
ca766747a8
|
D3DTexture: Bind textures as texture arrays.
|
2014-12-14 13:28:43 +01:00 |
|
Jules Blok
|
cf12c93c86
|
D3D: Use common GetEFBLayers() instead of GetEFBSlices().
|
2014-12-14 13:28:43 +01:00 |
|
Jules Blok
|
9d9bd5341d
|
D3D: Restore viewport after stereo blitting.
|
2014-12-14 13:28:43 +01:00 |
|
Jules Blok
|
a689db0e48
|
D3D: Add 3D vision support.
|
2014-12-14 13:28:42 +01:00 |
|
Jules Blok
|
e53705784b
|
D3D: Add SBS/TAB output support.
|
2014-12-14 13:28:42 +01:00 |
|
Jules Blok
|
9253bb7d96
|
D3D: Add geometry shader stereoscopy support.
|
2014-12-14 13:28:41 +01:00 |
|
Jules Blok
|
d5ebdf7a97
|
D3D: Add GeometryShaderCache.
|
2014-12-14 13:28:41 +01:00 |
|
Jules Blok
|
9a312e2b83
|
D3D: Use two slices for most of our textures.
|
2014-12-14 13:28:40 +01:00 |
|
Jules Blok
|
14792c3402
|
D3DState: Set the pixel shader in m_current when linking dynamically.
|
2014-12-13 22:09:34 +01:00 |
|
Jules Blok
|
a2b43b21fe
|
D3DState: Always update the m_pending members in the setters.
Fixes unintentional behaviour when a setter is called twice before the state is applied.
|
2014-12-13 21:51:18 +01:00 |
|
Jules Blok
|
42bb48bd46
|
FramebufferManager: Bind only the first framebuffer layer when the EFB only has one layer.
|
2014-12-05 00:36:10 +01:00 |
|
Jules Blok
|
40920b3823
|
OGL: Don't use texture arrays for MSAA.
This solves a performance regression on AMD cards.
We don't currently support stereoscopy for MSAA anyway.
|
2014-12-03 01:39:43 +01:00 |
|
Jules Blok
|
6d51455195
|
VideoConfig: Further optimize convergence and separation values and update their descriptions.
Previous convergence distance was much too large.
|
2014-11-27 16:19:26 +01:00 |
|
Jules Blok
|
b3c6602d06
|
OGL: Only show the options when stereoscopy was enabled in the INI file.
We'll enable the stereoscopy options globally when it is ready for release.
|
2014-11-27 16:17:37 +01:00 |
|
Jules Blok
|
145e0cc84c
|
OGL: Display the stereoscopy support warning before the stereo setting is reset.
Previously the message would never display, because stereoscopy would be turned off before the warning.
|
2014-11-24 15:11:00 +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
|
9b2cd82da5
|
GeometryShaderGen: Set the properties of the VS_OUTPUT struct in the uid.
|
2014-11-23 14:30:12 +01:00 |
|
Jules Blok
|
106df04e8e
|
GeometryShaderGen: Declare the vertex array size.
|
2014-11-23 14:30:12 +01:00 |
|
Jules Blok
|
422125c1a9
|
GeometryShaderGen: Add comments.
|
2014-11-23 14:30:12 +01:00 |
|
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 |
|