Leo Lam
ca49de80c5
Merge pull request #5826 from JonnyH/WIP/add-option-to-prefer-GLES-when-using-EGL
...
Add "PreferGLES" option to EGL GLInterface
2017-07-31 16:43:38 +08:00
Stenzek
447aeb8f77
EGLInterface: Create shared context with same attributes as main context
2017-07-30 12:38:50 +10:00
Stenzek
3e508fc0a2
GLInterface: Support shared contexts on AGL
2017-07-30 12:38:49 +10:00
Ryan Houdek
01ae02482c
GLInterface: Support shared contexts in GLX
2017-07-30 12:38:49 +10:00
Jonathan Hamilton
0fbd0cab6a
Add "PreferGLES" option to EGL GLInterface
...
This makes the EGL interface select OpenGL|ES contexts over "desktop"
OpenGL ones.
Possibly not useful for anyone outside my own debugging, but you never
know
2017-07-26 19:26:36 -07:00
Jonathan Hamilton
184e4d7b4a
Fix an incorrect OES suffix on glMultiDrawElementsBaseVertex
...
The spec says it should have an EXT not OES suffix, as it's enabled as
an interaction with GL_EXT_multi_draw_arrays.
On some drivers GetProcAddress() returns NULL, which causes the
GLExtensions init to fail
This 'happened' to work if GetProcAddress() doesn't return NULL on missing
functions (as allowed in EGL) - as the function appears to never be called so
this would not have been noticed.
Mesa also (incorrectly?) exports the EXT version, so this would all
happen to work there, but appears to be contrary to the spec.
This invalid prefix even ended up in the upstream khronos registry, the
issue was reported here:
https://github.com/KhronosGroup/OpenGL-Registry/issues/81
2017-07-25 12:52:39 -07:00
Jules Blok
f3508742ac
OGL: Support Quad-Buffered stereoscopy.
2017-07-05 22:43:39 +02:00
Shawn Hoffman
9357cee2ef
do not assign in conditional statements
2017-06-07 20:09:44 -07:00
shuffle2
192fec50b9
Merge pull request #5276 from ligfx/macosheadless
...
Add headless support on macOS
2017-06-05 20:49:02 -07:00
Léo Lam
d9fd056803
Fix minor formatting issues
...
These were not caught by the lint script while it was broken.
2017-06-05 02:32:19 +02:00
Stenzek
12bde06dc3
GLExtensions: Add GL_EXT_texture_compression_s3tc
2017-04-29 00:14:23 +10:00
Michael Maltese
c63925dc21
AGL: small style fixes
2017-04-15 20:54:19 -07:00
Michael Maltese
4770e66811
AGL: refactor some functions
2017-04-15 20:53:47 -07:00
Michael Maltese
5298328cb1
Add headless support on macOS
2017-04-15 19:34:42 -07:00
Stenzek
c8cbbd831d
GLExtensions: Seperate GL_ARB_compute_shader from GL 4.3
...
Allows the usage of glDispatchCompute from GLES (requires GLES 3.1).
2017-04-01 12:31:40 +10:00
Stenzek
4e24bfd0ce
GLExtensions: Seperate GL_ARB_shader_image_load_store from GL 4.2
...
Allows the usage of glBindImageTexture and glMemoryBarrier from GLES
(requires GLES 3.1).
2017-04-01 12:31:40 +10:00
Stenzek
bd15d0352a
GLExtensions: Seperate GL_ARB_texture_storage from GL 4.2
...
This allows us to use glTexStorage on GL3.3 implementations that support
the extension.
2017-04-01 12:31:40 +10:00
Matthew Parlane
85d74a506f
Merge pull request #4951 from waddlesplash/haiku-2
...
Initial support for Haiku.
2017-03-28 17:19:35 +13:00
Augustin Cavalier
0831dad467
Initial support for Haiku.
2017-03-27 23:46:19 -04:00
Michael Maltese
3f8a471d64
EGL: Fix missing-braces warning
...
Fixes warning:
```
../Source/Core/Common/GL/GLInterface/EGL.cpp:57:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
EGL_OPENGL_BIT, (1 << 6), /* EGL_OPENGL_ES3_BIT_KHR */
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2017-03-25 17:09:50 -07:00
Michael Maltese
418a7723c8
GLExtensions: remove NV_depth_buffer_float from OpenGL 3.0
...
Regression introduced in e99cd57
/ 4935: VideoBackends: Set the maximum
range when the depth range is oversized[1]. The NV_depth_buffer_float
extension is not part of OpenGL 3.0, and requiring it causes a hard
crash when it's not supported (e.g. macOS).
[1]: https://github.com/dolphin-emu/dolphin/pull/4935
2017-03-10 12:54:46 -08:00
Jules Blok
94522d4cf3
OGL: Add support for glDepthRangedNV to handle oversized depth ranges.
2017-02-24 14:54:16 +01:00
Michael Maltese
713ec5ffd5
Add includes for building on Windows without PCH
2017-01-23 01:37:41 -08:00
Stenzek
7353cae707
GLInterface: Implement core and shared context creation for WGL
2016-11-29 20:04:32 +10:00
Emmanuel Gil Peyrot
c9e6b05ce9
Core: Remove double newlines at the end of *_LOG messages.
2016-11-02 02:09:33 +00:00
shuffle2
8fcc3b04e0
Merge pull request #4227 from ligfx/clean_objc
...
Don't force compile everything as Objective-C++ on macOS
2016-10-02 19:42:04 -07:00
aldelaro5
f0aa9b3751
Reorganise a ton of logs level
...
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Michael Maltese
cd19c9fa22
Don't force compile everything as Objective-C++ on macOS
2016-09-18 17:33:51 -07:00
Pierre Bourdon
5fcb4bb3ab
Further fixes to the formatting change. WX sucks.
2016-06-24 12:16:10 +02:00
Pierre Bourdon
3570c7f03a
Reformat all the things. Have fun with merge conflicts.
2016-06-24 10:43:46 +02:00
Karol Herbst
c0e21871cd
EGL: specify version first
...
allthough this is a mesa bug, this is a simple enough workaround for context
creation fails with EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR set.
Otherwise dolphin will fail to create 3.3+ core context with current mesa
version
2016-05-29 22:12:31 +02:00
sigmabeta
c92f7ef173
Fix builds when using newest version of NDK
2016-05-25 14:23:35 -04:00
degasus
c04cff57da
GLExtensions: Fix OpenGL ES 3.2 handling.
2016-05-18 23:22:46 +02:00
degasus
64f9941595
EGL: Also check for higher GL versions.
...
Seems like NVidia just ignores the forward compatible flag.
Additionally, they neither enable any extension which was designed later...
So either compatible profile, or a huge list of core profiles....
2016-03-01 07:55:57 +01:00
Ryan Houdek
d4dfbbf214
Make sure to get the right function pointer for DSA+buffer_storage
2016-02-15 06:05:38 -06:00
Ryan Houdek
64cb57c5ee
Disable a few OpenGL 4.5 functions that AMD fails to expose.
2016-02-15 06:05:09 -06:00
Ryan Houdek
2685ebaed1
Add support for GL 4.3
2016-02-14 20:35:38 -06:00
Ryan Houdek
e253fafe42
Add support for GL 4.4
2016-02-14 20:16:33 -06:00
Ryan Houdek
87afa2c277
Add support for GL 4.5
2016-02-14 20:15:40 -06:00
Ryan Houdek
23787f709c
Change GL 4.2 defines over to the proper naming convention.
2016-02-14 20:01:02 -06:00
Ryan Houdek
018625e54f
Rearrange GLInterface interface generation.
...
This will be important when we enable headless on Android
2016-02-05 10:53:32 -06:00
Ryan Houdek
19cd9ecf16
Fix a few missing includes
2016-02-05 10:50:08 -06:00
Ryan Houdek
31523b7e80
Merge pull request #3572 from Sonicadvance1/egl_support_headless
...
Egl support headless
2016-01-30 11:15:07 -05:00
Ryan Houdek
5edc7705fe
Merge pull request #3550 from Sonicadvance1/egl_support_core_profile
...
Support the OpenGL core profile in EGL.
2016-01-29 19:37:24 -05:00
Ryan Houdek
c50efb17e5
Merge pull request #3546 from Sonicadvance1/egl_shared_context
...
Implement shared contexts in the EGL context.
2016-01-29 19:33:52 -05:00
Ryan Houdek
628e9bad92
Support a headless EGL option.
...
This is a new option to support completely headless running of Dolphin without X11 on systems that can properly support it.
2016-01-27 15:04:14 -06:00
Ryan Houdek
184a7a3e0d
Include the EGL defines we need for KHR_create_context ourselves.
...
This is because Google decided it was in their best interest to update eglext.h for android-21/arch-arm only and completely neglect all the other
architectures.
Sucks to suck.
2016-01-27 14:54:44 -06:00
Ryan Houdek
34d0e7835b
Support the OpenGL core profile in EGL.
...
This should make our Mesa EGL users happy.
2016-01-27 14:54:32 -06:00
Ryan Houdek
921c7139c5
Implement support for GL 4.2 in GLExtensions
2016-01-27 13:58:34 -06:00
Ryan Houdek
aed693eded
Implement shared contexts in the EGL context.
...
This is being implemented here first under EGL since the infrastructure is already in place for this due to the Android code requiring some bits.
The rest of the interfaces will come in a little bit.
This will be required for threaded shader compiling in the near future.
2016-01-27 13:15:02 -06:00
Ryan Houdek
6448e5e5ee
Add support to EGL to on the fly destroy the resulting surface
2016-01-10 12:28:05 -06:00
Ryan Houdek
8c37498230
Fix typo in GLExtensions
...
I had changed a variable name and forgot to update it everywhere.
Should fix Adreno devices.
2016-01-09 15:06:36 -06:00
Ryan Houdek
0a42a0ab1b
Merge pull request #3428 from Sonicadvance1/proper_glextensions
...
Make GLExtensions no longer require slghtly modified GL headers
2016-01-06 15:24:47 -05:00
Lioncash
f3c05d39b9
GLInterface: Make GLInterfaceMode an enum class
2016-01-02 14:26:43 -05:00
Lioncash
df9c9ad706
GLInterfaceBase: In-class initialize protected members
...
Gives the class a well-defined initial state
2016-01-02 14:26:42 -05:00
Lioncash
11a7defdba
WGL: Make class member private
2016-01-02 14:26:41 -05:00
Lioncash
df2f6089be
GLInterface: Add missing override specifiers
2016-01-02 14:26:36 -05:00
Ryan Houdek
37525f3fcf
Make GLExtensions no longer require slghtly modified GL headers.
...
In fact, removes the need for external headers at all.
2016-01-02 10:34:13 -06:00
Ryan Houdek
b4e9bbb551
Merge pull request #3336 from Sonicadvance1/improve_glextensions
...
[GLExtensions] Improve the extension loader.
2016-01-01 13:01:51 -05:00
Lioncash
f295182833
VideoBackends: Simplify initialization and deinitialization of resources
...
Approximately three or four times now, the issue of pointers being
in an inconsistent state been an issue in the video backend renderers
with regards to tripping up other developers.
Global (ugh) resources are put into a unique_ptr and will always have a
well-defined state of being - null or not null
2015-12-20 22:40:37 -05:00
Ryan Houdek
d9999bf30c
Fix minor memory leak in WGL interface.
...
Would have a memory leak on game end
2015-12-13 11:42:18 -06:00
Ryan Houdek
b620b26f8f
[GLExtensions] Improve the extension loader.
...
This removes some nonsense in the extension loader where under an ES context we would still pull all function pointers and just continue onward if we
fail to pull one.
Now function pointers are only pulled if the version of GL or ES actually supports that function.
2015-12-13 11:37:07 -06:00
Ryan Houdek
6d2fd8ae37
[GLExtensions] Support ORing of extensions when checking for support.
...
Makes my life easier.
2015-12-13 11:35:55 -06:00
Tillmann Karras
32cdd31200
GLExtensions: remove duplicate typedefs
2015-11-03 17:50:41 +01:00
Scott Mansell
1ba600b688
Merge pull request #3145 from catzilla4/master
...
FreeBSD Compilation fix
2015-10-19 17:29:34 +13:00
degasus
b69bff0690
VideoSW: Use OpenGL Core context
2015-10-14 00:13:54 +02:00
catzilla4
867a1beb9f
Added some headers to allow Dolphin to compile in my environment.
2015-10-06 19:09:57 -05:00
Lioncash
cc036ca86c
Common: Remove other Common prefixed headers from Common.h
2015-09-26 18:51:58 -04:00
Lioncash
19ac565e0d
Common: Move asserts to their own header
2015-09-26 18:51:27 -04:00
Scott Mansell
c9836ff592
EGL: Don't depend on VideoCommon or Core
2015-09-22 00:36:48 +12:00
Scott Mansell
72249b8085
GLX: Don't depend on Core or VideoCommon
2015-09-22 00:36:47 +12:00
Scott Mansell
01ed925fec
AGL: Don't depend on VideoCommon
2015-09-22 00:36:46 +12:00
Scott Mansell
93f6563789
WGL: Don't depend on Core/VideoCommon
2015-09-22 00:36:45 +12:00
Scott Mansell
95f3c956a8
Move GL interface code out of the OpenGL video backend.
2015-09-22 00:36:45 +12:00