5c3bbf7409
Works around broken Intel Windows video drivers.
...
Just use regular boolean negation in our pixel shader's depth test everywhere except on Qualcomm.
This works around a bug in the Intel Windows driver where comparing a boolean value against true or false fails but boolean negation works fine.
Quite silly.
Should fix issues #7830 and #7899 .
2014-12-03 00:33:42 -06:00
239eaf122a
VideoCommon: Fix -Wsign-compare warnings.
2014-11-29 17:40:14 -06:00
a886d8a8ee
Renamed DEPTHPARAMS to PIXELCENTERCORRECTION
...
This shader constant was previously used for depth remapping in D3D and for pixel center correction. Now it only serves one purpose and the new name makes it clear.
2014-11-29 11:42:52 +01:00
cc2227fbc3
D3D: Replaced shader-based depth range remap with viewport
...
This fixes UI rendering in some games mentioned in https://code.google.com/p/dolphin-emu/issues/detail?id=7785
2014-11-29 11:11:28 +01:00
7acd5eba17
Vertex loader: use ABI_CallFunction
...
Should result in faster/shorter code sequences on platforms where generated
code is close enough to the code segment (e.g. Windows).
2014-11-28 20:26:00 -08:00
ce059769f6
Merge pull request #1439 from Armada651/ogl-stereo-3d
...
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
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
4afb85ef33
Merge pull request #1584 from degasus/master
...
OGL: also show driver warnings on release builds
2014-11-25 12:41:47 -05:00
6da394a4d0
More formatting and consistency fixes
2014-11-24 17:16:59 -05:00
a04edbcb9a
VideoConfig: Add separation and convergence modifiers to the game ini.
2014-11-24 15:10:52 +01:00
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
0f4d59f612
VideoConfig: Rename StereoFocalLength to StereoConvergence.
2014-11-24 11:58:38 +01:00
9b2cd82da5
GeometryShaderGen: Set the properties of the VS_OUTPUT struct in the uid.
2014-11-23 14:30:12 +01:00
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
24e4de3643
VideoConfig: Move stereoscopy settings to the Enhancements section.
2014-11-23 14:30:12 +01:00
0f63186371
TextureCache: Add "Mono EFB Depth Copy" stereoscopy option.
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
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
acc65ee608
GeometryShader: Replicate missing position manipulations from vertex shader.
2014-11-23 14:27:40 +01:00
3baa01fc73
VideoConfig: Use a smaller focal length default.
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
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
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
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
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
5944d15021
TextureCache: Check the number of layers before reusing a texture.
2014-11-23 14:23:42 +01:00
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
d9e280e338
PixelShaderGen: Sample the correct texture layer.
2014-11-23 14:23:41 +01:00
f6ea293027
VertexShaderManager: Compute stereoscopy projection matrices.
2014-11-23 14:23:41 +01:00
c64486075d
PostProcessing: Add layered stereoscopy support.
2014-11-23 14:23:41 +01:00
2d8ec62beb
Pass VS_OUTPUT structs between shaders.
2014-11-23 14:23:41 +01:00
b005f61a2e
Add geometry shader generator for stereo 3D.
2014-11-23 14:22:55 +01:00
6670cacddc
use GL_TEXTURE_2D_ARRAY for most of our textures
2014-11-23 14:22:22 +01:00
6f3e20ac42
OGL: disable bbox writes if not supported
2014-11-22 15:17:57 +01:00