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
bd6d229733
GeometryShader: Disable the geometry shader stage if it is a pass-through shader.
2014-12-18 00:36:48 +01:00
382e1c22db
GeometryShaderGen: Support multiple primitive types.
...
And make more stereoscopy code optional.
2014-12-15 22:47:41 +01:00
aa4242fd9c
GeometryShaderGen: Pass the primitive type and always run the generator regardless of stereoscopy.
2014-12-14 21:23:20 +01:00
b406e4e1f2
VideoCommon: Add a separate constants buffer for the geometry shader.
2014-12-14 21:23:13 +01:00
d02eb3ca59
Merge pull request #1640 from rohit-n/switch-default
...
Silence some -Wswitch-default warnings.
2014-12-13 19:47:06 +11:00
b030d29067
Silence some -Wswitch-default warnings.
2014-12-11 22:23:05 -06:00
ce7c52eca0
Enables stereo rendering with OpenGL ES 3.1 + AEP.
...
If the host device supports GLES 3.1 and AEP we can have stereo rendering.
Just need to make sure to grab the correct function pointer that GL_EXT_geometry_shader provides, and enable AEP in the shaders.
We can't just check if AEP is in the extension list for support because Qualcomm has failed once more.
With the Nexus 6 it reports support for AEP but doesn't support OpenGL ES 3.1, which is an impossible combination.
From reports on their forum it seems that attempting to use any AEP things results in nothing happening, seems like a stub implementation.
2014-12-07 11:14:35 +00:00
38dfc970df
Fixes OpenGL ES rendering.
...
sampler2DArray doesn't have a default precision, so we need to set it ourselves.
2014-11-29 01:27:47 -06:00
4d075c2efb
ProgramShaderCache: Abort shader compilation if geometry shader failed to compile.
2014-11-23 14:27:40 +01:00
aa57feb9a8
ProgramShaderCache: Don't call glAttachShader if no geometry shader was compiled.
2014-11-23 14:27:39 +01:00
9b22e15180
VideoConfigDiag: Add stereoscopy options group.
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
d583720a59
GeometryShaderGen: Support stereoscopy on GPUs without support for instancing.
2014-11-23 14:26:56 +01:00
b005f61a2e
Add geometry shader generator for stereo 3D.
2014-11-23 14:22:55 +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
49b94e5285
OGL: Get rid of error macros
2014-10-26 04:54:58 -04:00
c0f7cab3f5
Remove extra semicolons at the ends of some lines.
2014-09-10 12:17:38 -04:00
32953fd968
OGL: Clean up parameters for some functions.
2014-08-15 14:15:23 -04:00
960b54670c
OGL: Fix brace and body placements
...
Also got rid of void argument specifiers. These are a carryover from C.
2014-08-15 14:12:29 -04:00
bc9ef95643
Support Sampler binding in the shader.
...
In the cases where we support the binding layout keyword, use it for more than binding UBO location.
This changes it so it is supported for samplers as well.
Instances when this is enabled is if a device supports GL_ARB_shading_language_420pack, or if it supports GLES 3.10.
2014-07-18 17:04:03 -05:00
6d3f249dcc
mark all local variables as static
2014-07-11 16:10:20 +02:00
22e1aa5bb4
mark all local functions as static
2014-07-11 16:07:23 +02:00
7db5a4b22d
Statistics: Reformat stats string
2014-06-27 09:36:50 +02:00
ce54c1e571
Kill off replaceable usages of s[n]printf.
2014-06-18 19:53:38 -04:00
c1b6fcc00b
ogl: pixel format shader without resolving
...
v2: Don't use std::to_string as this function is broken on android.
2014-05-19 09:29:40 +02:00
2d8cfb89d7
Changes posmtx vertex attribute to integer.
...
This makes it so we don't need to do some dumb casting from float to integer in our shaders.
Only tested in OpenGL, needs to be tested in D3D.
2014-04-30 19:11:06 -05:00
3251d78f89
Add initial support for GLSL ES 3.10.
...
GLSL ES 3.10 adds implicit support for the binding layout qualifier that we use.
Changes our GLSL version enums to bit values so we can check for both ES versions easily.
2014-04-03 00:46:09 -05:00
8d679e76d2
Merge pull request #164 from lioncash/cstr-cull
...
Kill off some usages of c_str.
2014-03-15 00:57:56 +01:00
fa77e1d2b6
PixelShaderGen: Use integer math for alpha testing.
2014-03-14 22:26:48 +01:00
2af50f04c2
OGL: Force highp for integers.
2014-03-14 22:26:26 +01:00
a82675b7d5
Kill off some usages of c_str.
...
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
31cfc73a09
Fixes spacing for "for", "while", "switch" and "if"
...
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
d802d39281
clang-modernize -use-nullptr
...
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
c89f04a7c5
clang-modernize -loop-convert
...
and some manual adjustments
2014-03-09 21:11:59 +01:00
f628695d31
comment fixes
2014-02-26 12:48:52 +01:00
aaaa5af0b2
remove (ATTR|VARY)(IN|OUT) macros
2014-02-26 11:37:29 +01:00
425f9dcd51
Fix more header sorting issues in VideoBackends/ (now check-includes clean).
2014-02-20 01:01:11 +01:00
2afe215271
Convert all includes to relative paths.
2014-02-18 02:19:10 -05:00
6089e4470a
OGL: remove ubo workaround
...
This was only keeped for some broken mesa versions. Meanwhile most used versions should be fixed for almost a year.
2014-02-01 22:33:45 +01:00
128fcdac26
OpenGL: refactor all of our StreamBuffers
...
The old way was to use big switch/case statements based on a type of buffer.
The new one is to use inheritance.
This change prohibits us to change the buffer type while running, but I doubt we'll ever do so.
Performance should also be a bit better. Also a nice cleanup.
Added some comments about this different kind of buffers.
2014-01-23 15:12:31 +01:00
be1fee6d74
OpenGL: change StreamBuffer in a streaming way
...
This is a bit slower on map_and_* because of flushing and _very_ much slower on buffer(sub)?data because of a new memcpy.
But this design allow us to decode directly into a gpu buffer, eg vertexloader will profit :)
2014-01-23 15:12:31 +01:00
71681de81a
[GLExtensions] Initial code drop for GLExtensions. This drops GLEW entirely from the codebase. This has been tested on Android and Linux+ATI. Of course untested on Windows and Apple. Also untested with Linux + EGL but should be fine there. There are most likely a couple of extensions I'm missing which would result in null pointer runs but not bad for the initial commit.
...
Conflicts:
CMakeLists.txt
Externals/GLew/glew.vcxproj
Externals/GLew/glew.vcxproj.filters
Source/Core/VideoBackends/OGL/CMakeLists.txt
Source/Core/VideoBackends/OGL/GLFunctions.cpp
Source/Core/VideoBackends/OGL/GLFunctions.h
Source/Core/VideoBackends/OGL/GLUtil.h
Source/Core/VideoBackends/OGL/Render.cpp
Source/VSProps/Base.props
2014-01-17 15:50:51 +01:00
c42f274e22
OpenGL: use shader 420pack if available to staticly bind ubo location
...
Bindung locations after compiling a shader stalls the driver. So if we manage not to bind anything after compilation, the lag would be reduced much.
2014-01-05 10:38:45 +01:00
4fff5ac90d
OpenGL: drop UBO-workaround usage for efb2ram shaders
...
It's just brainfuck to use this workaroung there. Just fetch the uniform location like all other util shaders.
2014-01-05 09:52:26 +01:00
34692ab826
Remove unnecessary Src/ folders
2013-12-31 14:03:19 -05:00