Commit Graph

15268 Commits

Author SHA1 Message Date
ed9f258b27 GeometryShader: Don't read from output variables 2014-11-23 14:30:12 +01:00
106df04e8e GeometryShaderGen: Declare the vertex array size. 2014-11-23 14:30:12 +01:00
422125c1a9 GeometryShaderGen: Add comments. 2014-11-23 14:30:12 +01:00
a565317a6a VideoConfigDiag: Update convergence description.
The switch to the Nvidia formula reversed this setting.
2014-11-23 14:30:12 +01:00
72c01e3083 VideoConfigDiag: Remove value labels. 2014-11-23 14:30:12 +01:00
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
24e4de3643 VideoConfig: Move stereoscopy settings to the Enhancements section. 2014-11-23 14:30:12 +01:00
6e62dd3415 Add stereoscopy hotkeys. 2014-11-23 14:30:12 +01:00
21eabc1b9d OGL: Add warning message when stereoscopic 3D is enabled but unsupported. 2014-11-23 14:27:40 +01:00
0f63186371 TextureCache: Add "Mono EFB Depth Copy" stereoscopy option. 2014-11-23 14:27:40 +01:00
9994ccb342 PostProcessing: Invalidate shader when anaglyph stereoscopy is toggled. 2014-11-23 14:27:40 +01:00
f3ddf37d07 VideoCommon: Switch to Nvidia stereoscopy offset formula. 2014-11-23 14:27:40 +01:00
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
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
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
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
ee76c03160 TextureCache: Recompile EFB2Tex shaders when stereo 3D is toggled. 2014-11-23 14:27:40 +01:00
4d075c2efb ProgramShaderCache: Abort shader compilation if geometry shader failed to compile. 2014-11-23 14:27:40 +01:00
6642af2404 OGL: Remove Virtual XFB SBS support. 2014-11-23 14:27:40 +01:00
acc65ee608 GeometryShader: Replicate missing position manipulations from vertex shader. 2014-11-23 14:27:40 +01:00
940c628eb7 Shaders: Remove fake stereoscopic shaders.
We have actual stereoscopy now, no need to pretend.
2014-11-23 14:27:39 +01:00
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
081212b765 TextureCache: Force mono copies of the depth buffer.
Fixes stereoscopic stencil shadows in some games.
2014-11-23 14:27:39 +01:00
3baa01fc73 VideoConfig: Use a smaller focal length default. 2014-11-23 14:27:39 +01:00
6b2261deca VideoConfigDiag: Update descriptions of stereoscopy settings. 2014-11-23 14:27:39 +01:00
2cb2290910 TextureCache: Fix invalid cast. 2014-11-23 14:27:39 +01:00
c0a5ae1746 OGL: Also redefine glFramebufferTexture on OpenGL ES. 2014-11-23 14:27:39 +01:00
aa57feb9a8 ProgramShaderCache: Don't call glAttachShader if no geometry shader was compiled. 2014-11-23 14:27:39 +01:00
f74d1b16ed OGL: Add Top-and-Bottom stereoscopy mode. 2014-11-23 14:27:39 +01:00
1261bd02ca VertexShaderManager: Add stereoscopy options to swap the left and right eye. 2014-11-23 14:27:39 +01:00
c3ad6e7820 PostProcessing: Add support for anaglyph stereoscopy mode. 2014-11-23 14:27:39 +01:00
6c8f3fa861 VideoConfig: Add StereoMode enumeration. 2014-11-23 14:27:39 +01:00
0eb0c47eba Render: Improve SBS presentation.
New calculation properly takes pillar boxing into account.
2014-11-23 14:27:39 +01:00
d7804a4d3e Cosmetics. 2014-11-23 14:27:39 +01:00
9b22e15180 VideoConfigDiag: Add stereoscopy options group. 2014-11-23 14:27:38 +01:00
4d9589b35f Cosmetics. 2014-11-23 14:27:38 +01:00
9b4185ffdf ShaderGen: Make use of padding to store the stereo flag. 2014-11-23 14:27:38 +01:00
35342664e3 OGL: Disable stereoscopy if the GPU does not support geometry shaders. 2014-11-23 14:27:38 +01:00
f370cb386c ProgramShaderCache: Always generate a geometry shader UID, even if stereoscopy is disabled. 2014-11-23 14:27:38 +01:00
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
4fd943aedd VideoConfig: Limit the Stereo 3D option to the OpenGL backend. 2014-11-23 14:27:38 +01:00
284be96cd5 OGL: Recreate the framebuffers when the stereo setting changes. 2014-11-23 14:26:56 +01:00
63b37e29d1 ShaderGen: Rename "eye" to "layer".
Keeping things generic.
2014-11-23 14:26:56 +01:00
d583720a59 GeometryShaderGen: Support stereoscopy on GPUs without support for instancing. 2014-11-23 14:26:56 +01:00
176191dc16 ShaderGenCommon: Move uniforms into a common static string. 2014-11-23 14:24:09 +01:00
0a72cf94cb TextureCache: Ignore the geometry shader if stereoscopy is disabled. 2014-11-23 14:24:09 +01:00
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
b236c363de ShaderGen: Add a stereoscopy flag in the UID data. 2014-11-23 14:23:42 +01:00
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
5944d15021 TextureCache: Check the number of layers before reusing a texture. 2014-11-23 14:23:42 +01:00