Commit Graph

2145 Commits

Author SHA1 Message Date
9b22e15180 VideoConfigDiag: Add stereoscopy options group. 2014-11-23 14:27:38 +01:00
4d9589b35f Cosmetics. 2014-11-23 14:27:38 +01:00
35342664e3 OGL: Disable stereoscopy if the GPU does not support geometry shaders. 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
4fd943aedd VideoConfig: Limit the Stereo 3D option to the OpenGL backend. 2014-11-23 14:27:38 +01:00
284be96cd5 OGL: Recreate the framebuffers when the stereo setting changes. 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
0a72cf94cb TextureCache: Ignore the geometry shader if stereoscopy is disabled. 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
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
5944d15021 TextureCache: Check the number of layers before reusing a texture. 2014-11-23 14:23:42 +01:00
80616c6e9e TextureCache: Implement layered framebuffer support.
Stereoscopic EFB2Tex is now supported.
2014-11-23 14:23:41 +01:00
c64486075d PostProcessing: Add layered stereoscopy support. 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
36fe8ccf46 OGL: also show driver warnings on release builds 2014-11-22 15:07:52 +01:00
2fdeefb65b Adds support for OpenGL ES draw_elements_base_vertex.
This is the same extension that we all know and love but under a different name with some different requirements.
In regular OpenGL fashion, you can't just move a desktop OpenGL extension to OpenGL ES without ratifying a new extension, which is why this falls
under a EXT extension, which in turn causes it to have suffixes attached to their function names.

This is the first step in our way towards conquering all mobile GPUs that don't support desktop OpenGL, hopefully we also can add support for
buffer_storage to OpenGL ES as well so we can make full use of this extension.
2014-11-21 18:57:32 -06:00
3ddf82a318 Vertex Loader: SSE implementations of more position/texcoord/normal formats
~35-45% faster NFS:HP2, possibly other vertex-bound games.
2014-11-20 02:13:19 -08:00
fb50cb6d99 Merge pull request #1550 from degasus/bbox
OGL: implement bounding box support with ssbo
2014-11-19 20:25:23 -05:00
a3f9f21e08 Merge pull request #1571 from degasus/master
OGL: fix buffer destruction
2014-11-19 02:13:36 -06:00
32f2cd8c7f Merge pull request #1566 from Sonicadvance1/fix_gl21
Fixes GLExtensions for GL 2.1 or GLES 2 devices.
2014-11-19 12:47:23 +11:00
ff942d44b5 OGL: fix buffer destruction
This buffer will be unbound in the StreamBuffer class itself, so no need to unbind them before.
2014-11-18 23:13:06 +01:00
c211450b99 OGL: implement bounding box support with ssbo
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
b94dbca160 Host: Kill off GetRenderWindowSize 2014-11-17 13:44:49 -05:00
3bfa15d2e1 Fixes GLExtensions for GL 2.1 or GLES 2 devices.
This wasn't too much of a concern since we normally don't care about this feature set, but it is nice when testing on new devices and they don't
support the higher feature sets but want to run under software renderer.

The Mesa softpipe and PowerVR 5xx drivers don't support higher GL versions, but they shouldn't exit out just because they couldn't get a GL3 function
pointer that isn't even going to be used at that point.
2014-11-16 22:59:29 -06:00
b25e1a2eb4 Various formatting and consistency fixes 2014-11-13 22:42:18 -05:00
890b788633 Merge pull request #1467 from waddlesplash/dolphin-qt
DolphinQt: Games now boot!
2014-11-02 18:08:55 -05:00
29593d403b Move GLInterface to the OGL VideoBackend's directory. 2014-11-02 12:16:33 -05:00
13d58b3f16 Merge pull request #1460 from phire/moreGetPointer
Remove GetPointers in VideoSoftware.
2014-11-02 09:57:16 -06:00
59c673aec6 Merge pull request #1161 from rohit-n/ogl-vector
OGL: Use unique_ptr instead of pointer when taking screenshot.
2014-11-02 14:19:00 +11:00
9ab924513e VideoCommon/VideoBackends: Remove unnecessary wxWidgets references.
EmuWindow doesn't even exist anymore. wxWidgets is also decoupled from the backends.
2014-11-01 19:19:00 -04:00
b929f764f2 Remove GetPointers in VideoSoftware.
This same code was previously fixed in VideoCommon, just
updating this to match.

We are down to 121 GetPointers.
2014-11-01 16:29:19 +13:00
3e82cb4628 Merge pull request #1440 from Sonicadvance1/attributeless-workaround
Implements PP shader system using attribute workaround.
2014-10-30 12:46:40 -06:00
181ff6750e Implements PP shader system using attribute workaround.
This is pretty much a step backwards in our code. We used to use attributes in our PP shader system a long time ago but we changed it to attributeless
for code simplicity and cleanliness. This reimplements the attribute code path as an optional path to take in the case your system doesn't work with
attributeless rendering. In this case the only shipping drivers that we can know for sure supports attributeless rendering is the Nexus 5's v95 driver
that is included in the Android 5.0 image.

I hadn't planned on implementing a work around to get post processing working in these cases, but due to us force enabling the PP shader system at all
times it sort of went up on the priority list. We can't be having a supported platform black screening at all times can we?
2014-10-30 10:49:03 -05:00
2a878d7726 OGL: Use unique_ptr instead of pointer when taking screenshot. 2014-10-29 20:59:34 -05:00
e0393be347 Merge pull request #1418 from degasus/master
OGL: fix interpolation of PP shaders
2014-10-30 12:49:21 +11:00
daabcfd6fc Removes Qualcomm's rotated framebuffer bug from DriverDetails.
Due to changes in how we render to the final framebuffer we no longer encounter this bug.
With the change to post processing being enabled at all times and no longer using glBlitFramebuffer, Qualcomm no longer has the chance to rotate our
framebuffer underneath of us.
2014-10-29 19:57:51 -05:00
52e6a940cf Merge pull request #1414 from kayru/d3d_optimization
D3D: Couple of small optimizations
2014-10-29 13:26:50 -06:00
073cce959a Create userdir/Dump/Frames as needed.
This is used for framedump.raw in non-Windows builds without libav
support.
2014-10-28 17:24:07 -04:00
ce9ef2c438 OGL: fix interpolation of PP shaders 2014-10-27 21:15:32 +01:00
88d11ec5b2 D3D: RestoreState no longer resets PS resources 2014-10-27 00:02:30 +01:00
0c5a572f8d D3D: Use two buffers for VertexManager 2014-10-26 23:38:15 +01:00
c35847b795 D3D: Using start index and base vertex instead of buffer offsets 2014-10-26 23:38:14 +01:00
48ba55203b D3D: Vertex and index data in one buffer 2014-10-26 23:38:14 +01:00
49b94e5285 OGL: Get rid of error macros 2014-10-26 04:54:58 -04:00
7c58eb344d Merge pull request #1378 from lioncash/gl
GLUtil: Change return type from GLuint to GLenum for OpenGL_ReportGLError.
2014-10-26 13:44:34 +11:00
bc26cb1b19 Merge pull request #1322 from degasus/ogl-pp
OGL: force enable postprocessing
2014-10-25 13:48:27 +11:00
b1bdce7d77 TextureCache: Get rid of explicit deletes in SaveTexture 2014-10-24 08:47:06 -04:00
3509a6d03e GLUtil: Change return type from GLuint to GLenum for OpenGL_ReportGLError. 2014-10-23 13:04:19 -04:00
a2c8783417 Enables EarlyZ support in OpenGL ES 3.1. 2014-10-23 07:34:07 -05:00