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 |