Jules Blok
|
d09af2dbba
|
GeometryShaderManager: Set stereo parameters in a SetConstants() call.
Doing it in SetProjectionChanged() is too early because the projection type is not set yet.
|
2014-12-20 13:16:26 +01:00 |
|
Jules Blok
|
bc3ed44050
|
OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks.
|
2014-12-19 23:56:02 +01:00 |
|
Jules Blok
|
0d79e8f32b
|
VideoCommon: Don't specify the redundant in/out qualifier if GL_ARB_shading_language_420pack is supported.
Some driver developers interpreted "can" as "must" in the OpenGL specs. (I'm looking at you AMD)
|
2014-12-19 22:45:39 +01:00 |
|
Jules Blok
|
531b3941ff
|
GeometryShaderGen: Re-emit the first vertex when wireframe mode is enabled.
|
2014-12-19 14:24:08 +01:00 |
|
Jules Blok
|
1b9fe70d7c
|
VideoCommon: Make IsPassthrough() a function of the ShaderUid.
|
2014-12-19 14:10:53 +01:00 |
|
Jules Blok
|
c9e469f832
|
D3DState: Remove wireframe rasterizer support.
|
2014-12-19 14:10:52 +01:00 |
|
Jules Blok
|
925bbcb85b
|
VideoCommon: Handle wireframe mode in the geometry shader.
|
2014-12-19 14:10:52 +01:00 |
|
Jules Blok
|
cdd9e07522
|
VideoCommon: Add in/out qualifiers to centroid storage qualifier.
Fixes shaders for GPUs that don't support GL_ARB_shading_language_420pack.
|
2014-12-19 12:19:15 +01:00 |
|
Jules Blok
|
e7e8a4f1cb
|
GeometryShaderGen: Don't use the reserved keyword "point" in D3D.
|
2014-12-19 02:24:41 +01:00 |
|
Jules Blok
|
8dc3653ac9
|
VideoCommon: Don't pass structs between shader stages when geometry shaders are unsupported.
|
2014-12-18 00:37:16 +01:00 |
|
Jules Blok
|
1f84f4632d
|
OGL: Check OpenGL version for geometry shader support.
|
2014-12-18 00:37:16 +01:00 |
|
Jules Blok
|
93ce95b48e
|
D3D: Use ROUND_UP macro for rounding buffer sizes.
|
2014-12-18 00:37:15 +01:00 |
|
Jules Blok
|
69df23f725
|
VideoCommon: Only use interface blocks when geometry shaders are supported.
|
2014-12-18 00:37:14 +01:00 |
|
Jules Blok
|
1af3d8447a
|
GeometryShaderManager: Set the constants within the callbacks.
|
2014-12-18 00:37:09 +01:00 |
|
Jules Blok
|
3d9dfad6a2
|
D3D: Set the geometry shader before every draw call.
And refactor the VertexManager draw call.
|
2014-12-18 00:36:50 +01:00 |
|
Jules Blok
|
7e8f96f0d3
|
OGL: Don't generate a geometry shader if the backend doesn't support it.
This commit repurposes the bSupportsStereoscopy flag as the bSupportsGeometryShaders flag.
|
2014-12-18 00:36:49 +01:00 |
|
Jules Blok
|
782a5adb94
|
VideoCommon: Pass interface blocks between shader stages to resolve naming conflicts.
|
2014-12-18 00:36:49 +01:00 |
|
Jules Blok
|
bd6d229733
|
GeometryShader: Disable the geometry shader stage if it is a pass-through shader.
|
2014-12-18 00:36:48 +01:00 |
|
Jules Blok
|
f2e52b46c3
|
GeometryShaderGen: Cosmetics.
|
2014-12-18 00:36:47 +01:00 |
|
Jules Blok
|
2850c9a206
|
VertexManager: Disable culling for lines and points.
|
2014-12-18 00:36:47 +01:00 |
|
Jules Blok
|
0ac7103391
|
GeometryShaderGen: Pack uniforms more tightly.
|
2014-12-18 00:36:40 +01:00 |
|
Jules Blok
|
d115048615
|
GeometryShaderGen: Remove redundant declaration.
|
2014-12-15 23:20:56 +01:00 |
|
Jules Blok
|
16af00d515
|
GeometryShaderGen: Use signed integers for the texture offset flags.
|
2014-12-15 23:05:16 +01:00 |
|
Jules Blok
|
861fa1af23
|
GeometryShaderGen: Declare a prototype for EmitVertex().
|
2014-12-15 22:47:43 +01:00 |
|
Jules Blok
|
8ae738ff30
|
VideoCommon: Merge PointGeometryShader into GeometryShaderGen.
This adds point-width emulation support to OpenGL.
|
2014-12-15 22:47:43 +01:00 |
|
Jules Blok
|
55e60a9c22
|
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
This adds line-width emulation support to OpenGL.
|
2014-12-15 22:47:42 +01:00 |
|
Jules Blok
|
275af9c5e4
|
VideoCommon: Assume we always use a geometry shader, not just for stereoscopy.
|
2014-12-15 22:47:41 +01:00 |
|
Jules Blok
|
382e1c22db
|
GeometryShaderGen: Support multiple primitive types.
And make more stereoscopy code optional.
|
2014-12-15 22:47:41 +01:00 |
|
Jules Blok
|
887c669c28
|
GeometryShaderGen: Redefine gl_InvocationID so we can use the same variable name in both backends.
|
2014-12-15 22:47:40 +01:00 |
|
Jules Blok
|
332ba4b210
|
GeometryShaderManager: Upload Line/Point width constants.
|
2014-12-15 22:47:35 +01:00 |
|
Jules Blok
|
aa4242fd9c
|
GeometryShaderGen: Pass the primitive type and always run the generator regardless of stereoscopy.
|
2014-12-14 21:23:20 +01:00 |
|
Jules Blok
|
b406e4e1f2
|
VideoCommon: Add a separate constants buffer for the geometry shader.
|
2014-12-14 21:23:13 +01:00 |
|
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 |
|