Jules Blok
f40cd04a29
PixelShaderGen: Fix uninitialized variables.
2015-01-20 23:15:01 +01:00
Jules Blok
332d5888eb
VideoConfig: Add exclusive mode flag.
...
Allows the UI to easily check the current exclusive mode state.
This simplifies a few checks and prevents the user from ever getting stuck in fullscreen.
2015-01-19 22:55:21 +01:00
Jules Blok
8d69658a9d
Add exclusive mode OSD messages.
2015-01-17 16:11:17 +01:00
Jules Blok
b87fddb027
D3D: Allow borderless fullscreen to be turned on/off during gameplay.
2015-01-17 16:11:12 +01:00
Jules Blok
803bea5004
D3D: Fix Dolphin immediately exiting exclusive fullscreen.
2015-01-16 16:01:29 +01:00
Jules Blok
031096c8d4
FramebufferManager: Remove unnecessary sampler declaration.
...
It's not needed and invalid when declared for the geometry shader.
2015-01-09 14:53:56 +01:00
Jules Blok
399b6248d1
D3D: Further improve exclusive fullscreen state checking.
2015-01-05 00:01:22 +01:00
Jules Blok
b7e056c74d
Host: Add Host_RendererIsFullscreen().
2015-01-04 17:09:56 +01:00
Jules Blok
3b9c070ee0
D3D: Only try to apply exclusive mode when the renderer is in focus.
2015-01-04 16:42:16 +01:00
Jules Blok
dddaa11595
OGL: Fix stereoscopy not being applied properly while the game is running.
2015-01-03 01:36:43 +01:00
Jules Blok
582a15deb3
PostProcessing: Mark all shaders constant.
2015-01-02 20:03:20 +01:00
Jules Blok
6855c098f7
ISOProperties: Add stereoscopy per-game settings.
2015-01-02 19:57:32 +01:00
Jules Blok
b816ee1f79
VideoConfig: Define a per-game minimum convergence value instead of a percentage boost.
2015-01-02 17:07:08 +01:00
Jules Blok
26a9afa0e7
Anaglyph: Use matrices instead of vectors.
2015-01-02 14:32:42 +01:00
Jules Blok
491de39325
PixelShaderCache: Implement Dubois algorithm in anaglyph shader.
2015-01-02 03:06:11 +01:00
Jules Blok
e3969f763e
PostProcessing: Use Dubois algorithm for anaglyph shader.
2015-01-02 03:02:28 +01:00
Jules Blok
0860c02258
VideoConfig: Don't disable stereoscopy if Real XFB is enabled but not in use.
2014-12-29 19:15:31 +01:00
Jules Blok
b474c4229d
VertexShaderManager: Turn off the epsilon hack for Nvidia 3D Vision.
2014-12-29 17:05:39 +01:00
Jules Blok
da058b3078
VideoConfig: Fix convergence parameter.
...
Looks like a rebase failed somewhere.
2014-12-29 12:03:59 +01:00
Jules Blok
813b3808a7
VideoConfigDiag: Remove double space.
2014-12-29 11:20:14 +01:00
Jules Blok
29e05c5ff8
Stereo3D: Don't rely on GetEFBLayers() when dealing with shaders.
...
Shaders may be compiled before the FramebufferManager is initialized.
2014-12-29 11:19:55 +01:00
Jules Blok
3ed777b0f9
PixelShaderGen: Don't assign to input variables.
2014-12-28 23:37:05 +01:00
Jules Blok
8676891f77
VertexShaderGen: Don't read from output variables.
2014-12-28 23:28:00 +01:00
Jules Blok
3f763e6999
DriverDetails: Remove Intel Structs bug since it doesn't affect us anymore.
2014-12-28 23:28:00 +01:00
Jules Blok
7eb353b3bd
VideoCommon: Don't pass structs between shaders, use the interface blocks instead.
2014-12-28 23:28:00 +01:00
Jules Blok
2c0bee5da9
DriverDetails: Update Intel bug description.
2014-12-28 23:28:00 +01:00
Jules Blok
e1dc033113
Renderer: Cosmetics.
2014-12-28 18:35:23 +01:00
Jules Blok
89de7e0526
Renderer: Invalidate the FramebufferManager if the XFB mode is changed.
...
Fixes incorrect texture sizes after switching XFB modes.
2014-12-28 18:26:25 +01:00
Jules Blok
730a6e5f4b
D3D: Fix Virtual XFB viewport.
...
Looks like I was incorrect about swapping the bottom and top members.
2014-12-28 17:34:19 +01:00
Jules Blok
81d1b7f0c2
XFBEncoder: Cosmetics.
2014-12-28 16:30:48 +01:00
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
111b04388c
VideoConfigDiag: Don't enable the post-processing config button when there are no options.
...
The handling of the Anaglyph override was incorrect.
2014-12-25 00:14:15 +01:00
Jules Blok
1bbb323e97
D3D: Remove obsolete Real XFB codepath.
2014-12-24 23:55:04 +01:00
Jules Blok
31a55384b3
VideoConfig: Rename "StereoMonoEFBDepth" to "StereoEFBMonoDepth"
...
Makes a little bit more sense.
2014-12-24 23:30:40 +01:00
Jules Blok
1105dd7dcd
VideoConfigDiag: Enable stereoscopy options.
2014-12-24 23:29:42 +01:00
Jules Blok
c424aa1ac6
GeometryShaderManager: Boost convergence value.
...
Most game don't require much granularity regarding the convergence value.
The default convergence was also too low, this commit increases it tenfold.
2014-12-24 23:29:40 +01:00
Jules Blok
70b898e2c6
VideoConfig: Rename Separation to Depth and update descriptions.
...
More accurate since it's not a real IPD and Nvidia also calls it depth.
2014-12-24 23:28:23 +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