Jules Blok
|
d7037ae492
|
PixelShaderCache: Don't use GetDimensions() for the sample count.
This function is bugged on Windows 7, and statically declaring the sample count is trivial anyway.
|
2014-12-27 14:45:15 +01:00 |
|
Jules Blok
|
86120bfc97
|
GeometryShaderManager: Set viewport in SetConstants().
Setting it in the callback is too early.
|
2014-12-26 17:58:59 +01:00 |
|
Jules Blok
|
833513f384
|
XFBEncoder: Sample the first layer of the resolved EFB texture.
Using the multisampled EFB texture is invalid, as the XFB encoder does not have a multisampling shader.
|
2014-12-25 12:09:35 +01:00 |
|
Jules Blok
|
af8ac328e5
|
Renderer: Use old method of calculating the source rectangle.
|
2014-12-25 02:37:22 +01:00 |
|
Jules Blok
|
46bb4fd364
|
FramebufferManagerBase: Remove obsolete parameters.
|
2014-12-25 00:58:16 +01:00 |
|
Jules Blok
|
49137c7c2c
|
FramebufferManager: Return framebuffer target size in GetTargetSize().
|
2014-12-25 00:57:52 +01:00 |
|
Jules Blok
|
1bbb323e97
|
D3D: Remove obsolete Real XFB codepath.
|
2014-12-24 23:55:04 +01:00 |
|
Jules Blok
|
9590ea0cf6
|
VideoConfig: Turn off stereoscopy when Real XFB is enabled.
|
2014-12-24 18:45:24 +01:00 |
|
Jules Blok
|
4a86234a79
|
D3D: Support stereoscopic XFB blit to screen.
|
2014-12-24 18:45:24 +01:00 |
|
Jules Blok
|
a845aeeb3d
|
FramebufferManager: Copy all EFB layers to the XFB.
|
2014-12-24 18:45:19 +01:00 |
|
Jules Blok
|
59bea317d7
|
GeometryShaderCache: Cosmetics.
|
2014-12-24 17:22:24 +01:00 |
|
Jules Blok
|
b109b31f61
|
FramebufferManagerBase: Only allocate one layer for Real XFB.
|
2014-12-24 17:22:23 +01:00 |
|
Jules Blok
|
a9364cd5db
|
OGL: Support stereoscopic XFB blit to screen.
|
2014-12-24 17:22:23 +01:00 |
|
Jules Blok
|
12412ac5b7
|
FramebufferManager: Copy all EFB layers to the XFB framebuffer.
|
2014-12-24 17:22:22 +01:00 |
|
Jules Blok
|
b2efbdaf44
|
Cosmetics.
|
2014-12-23 13:16:09 +01:00 |
|
Jules Blok
|
01718eafa6
|
FramebufferManager: Use a separate layer variable.
|
2014-12-23 13:16:03 +01:00 |
|
Jules Blok
|
bcfd431e9a
|
Frame: Fix a crash-on-exit on Mac OS X.
A null pointer exception is triggered when Dolphin is quit from the dock.
|
2014-12-22 02:06:23 +01:00 |
|
Jules Blok
|
737bc0e7ad
|
PixelShaderCache: Support stereoscopic EFB format changes.
|
2014-12-21 15:46:12 +01:00 |
|
Jules Blok
|
ba242d27c8
|
FramebufferManager: Support stereoscopic EFB format changes.
|
2014-12-21 15:25:58 +01:00 |
|
Jules Blok
|
d37b65c117
|
FramebufferManager: Support resolving a multi-layered EFB in OGL.
|
2014-12-20 16:08:00 +01:00 |
|
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
|
761749e07f
|
FramebufferManager: Support resolving a multi-layered EFB in D3D.
|
2014-12-19 22:37:28 +01:00 |
|
Jules Blok
|
0ae082fb61
|
FramebufferManager: Return the depth texture instead of the color texture in GetResolvedEFBDepthTexture() when AA is enabled.
|
2014-12-19 22:37:28 +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 |
|