Ryan Houdek
5d26bf6d9d
Rename our GLInterface class function 'GetProcAddress' in order to not have clashing function names due to Windows.
2014-01-18 14:18:32 +00:00
Ryan Houdek
bea484e12f
Move Win32 specific function grabbing fallback to WGL.cpp. Fixes issue 6964.
2014-01-18 14:10:24 +00:00
Ryan Houdek
839df31347
Merge of GL-AutoChoose.
...
This branch is the final step of fully supporting both OpenGL and OpenGL ES in the same binary.
This of course only applies to EGL and won't work for GLX/AGL/WGL since they don't really support GL ES.
The changes here actually aren't too terrible, basically change every #ifdef USE_GLES to a runtime check.
This adds a DetectMode() function to the EGL context backend.
EGL will iterate through each of the configs and check for GL, GLES3_KHR, and GLES2 bits
After that it'll change the mode from _DETECT to whichever one is the best supported.
After that point we'll just create a context with the mode that was detected
2014-01-18 04:11:59 +00:00
Ryan Houdek
29e0a90b88
[GLExtensions] Rename internal GetProcAddress function since it clashes with the global Windows function. Fix Windows function pointer grabbing.
2014-01-17 16:06:46 +01:00
Ryan Houdek
cd145cb63e
[GLExtensions] Refix GLES3 build. Until we clean up the platform detection this'll need to be here.
2014-01-17 16:06:40 +01:00
Ryan Houdek
c744aca323
[GLExtensions] Move the include directory location for Externals/GL so no other library includes global GL folder first.
2014-01-17 16:06:35 +01:00
Ryan Houdek
3d4d3f6b11
[GLExtensions] Remove a bunch of unneeded headers. Fix Linux+EGL compiling. Move include to glx.h around to work around it including global GL/gl.h
2014-01-17 16:06:29 +01:00
Ryan Houdek
6cdb05b633
[GLExtensions] OpenGL 3.0 also added GL_ARB_map_buffer_range to core.
2014-01-17 16:06:23 +01:00
Ryan Houdek
a5ffe9932a
[GLExtensions] Future proof ourself by putting the default: instance on the top, so we'll grab extensions if they support something newer. Handle older GLVersions in the case they get that far.
2014-01-17 16:06:18 +01:00
Ryan Houdek
2a11fead5c
[GLExtensions] Populate the extension list for OpenGL implementations that don't show core extensions.
2014-01-17 16:06:13 +01:00
Ryan Houdek
0ea6718d99
[GLExtensions] Fix OS X build.
2014-01-17 16:06:08 +01:00
Ryan Houdek
34c9a33807
[GLExtensions] Remove AGL GetProcAddress. Change dlsym to using RTLD_NEXT. Enable dlsym fallback for OS X
2014-01-17 16:06:03 +01:00
Ryan Houdek
ca96274936
[GLExtensions] Make sure to link against libdl since we use it to grab GL function pointers in Linux/Android in the case the GLInterface->GetProcAddress fails.
2014-01-17 16:05:57 +01:00
Ryan Houdek
45dfa3a481
[GLExtensions] Missed a couple USE_GLES3 compile time differences.
2014-01-17 16:05:52 +01:00
Ryan Houdek
95ab2380c9
[GLExtensions] wxWidgets expects to statically link in to GL 1.1 functions like any sane project. Let them do this.
2014-01-17 16:05:47 +01:00
Ryan Houdek
97dc20d1be
[GLExtensions] Pull in all the function pointers for OpenGL 1.1, This removes the need for a couple compile time differences between GL and GLES3 mode.
2014-01-17 16:05:40 +01:00
Ryan Houdek
f308b878b2
[GLExtensions] Oops. Don't just outright disable these helper functions.
2014-01-17 16:05:34 +01:00
Ryan Houdek
cfb8b43b4a
[GLExtensions] Don't fail out loading funciton pointers in both ES2 and ES3 modes.
2014-01-17 16:05:25 +01:00
Ryan Houdek
fc1f8291d6
[GLExtensions] Make sure to initialize our function pointers with VideoSoftware as well.
2014-01-17 16:05:07 +01:00
Ryan Houdek
eba0c21b5a
[GLExtensions] Fix Windows build.
...
Conflicts:
Source/VSProps/Base.props
2014-01-17 16:04:05 +01:00
Ryan Houdek
17955fa025
[GLExtensions] Still had a GLEW lib hanging out in the CMake file for the software renderer.
2014-01-17 16:01:49 +01:00
Ryan Houdek
2a8ee1a7ff
[GLExtensions] Hopefully fix OS X build.
2014-01-17 16:01:35 +01:00
Ryan Houdek
10bd61a9d2
[GLExtensions] Dynamically pull in the GL 1.3 and 1.4 functions as well.
2014-01-17 15:56:54 +01:00
Ryan Houdek
d5a7ea2041
[GLExtensions] KHR_debug on OpenGL ES 3 has a KHR suffix on their function pointers. In Desktop OpenGL there is no suffix. So handle this correctly. Make the GrabFunction macro slightly less evil, so update the init_* to reflect it. Thanks Bh44L for the suggestion.
2014-01-17 15:56:28 +01:00
Ryan Houdek
d093276e93
[GLExtensions] Fix a typo in KHR_debug
2014-01-17 15:56:20 +01:00
Ryan Houdek
a024c515c8
[GLExtensions] Remove glew includes from wgl and agl.
2014-01-17 15:56:04 +01:00
Ryan Houdek
cf8865a6e5
[GLExtensions] Add ARB_buffer_storage to negate at least one null pointer instance.
2014-01-17 15:52:34 +01:00
Ryan Houdek
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
Ryan Houdek
e3d103f60c
Update some of the comments in DriverDetails.h for drivers that have fixed their bugs.
2014-01-11 07:31:47 -06:00
Ryan Houdek
67f099af33
Enable buffer_storage for Nvidia drivers 332.21 and above.
2014-01-09 12:06:12 -06:00
Ryan Houdek
b55a4bb087
Slight optimization in the pixel shader. We are using pow(2.0, X) in place of exp2(X). This can be faster in places that don't optimize a pow to a exp2 in this case.
...
Notice this from here: http://cgit.freedesktop.org/mesa/mesa/commit/?id=847bc36a38d42967ad6bf0492fe90a4892d9d799
Intel Haswell GPU is 24 cycles for POW and 14 cycles for EXP2.
Maybe other GPUs don't optimize this either. Just be safe.
2014-01-08 16:40:31 -06:00
Ryan Houdek
cdf69adcb0
Fix for previous commit. I was supposed to use GL_VERSION, not GL_RENDERER.
2014-01-07 19:35:06 -06:00
Ryan Houdek
d2e62796fc
Probe the GL_RENDERER string on Nvidia to grab the driver version.
2014-01-07 18:29:04 -06:00
Ryan Houdek
7acc64eb0a
[Android] Reenable the bug for dynamic UBO array member accesses.
...
Some information on this bug since this isn't quite true.
Seemingly with the v53 driver, Qualcomm has actually fixed this bug. So we can dynamically access UBO array members.
The issue that is cropping up is actually converting our attribute 'fposmtx' to an integer.
int posmtx = int(fpostmtx);
This line causes some seemingly garbage values to enter in to the posmtx variable.
Not sure exactly why it is failing, probably them just not actually converting the float to an integer and just handling the float directly as a integer.
So the bug is going to stay active with Qualcomm devices until we convert this vertex attribute from a float to a integer.
2014-01-07 07:56:30 -06:00
Ryan Houdek
0faf696be7
Merge Fail. We don't disable BaseVertex on broken pinned memory.
2014-01-01 17:20:09 -06:00
Ryan Houdek
d36355e45c
Merge branch 'buffer_storage'
2014-01-01 17:14:35 -06:00
Ryan Houdek
1118226f27
Merge branch 'master' into buffer_storage
2013-12-31 19:18:30 -06:00
Ryan Houdek
8d8b0fc884
Merge branch 'master' into buffer_storage
...
Conflicts:
Source/Core/VideoBackends/OGL/Src/Render.cpp
Source/Core/VideoCommon/Src/DriverDetails.cpp
Source/Core/VideoCommon/Src/DriverDetails.h
2013-12-31 15:41:50 -06:00
Ryan Houdek
6d63db96e9
Disable primitive restart on buggy OS X Intel HD 3000 drivers.
2013-12-30 18:26:55 -06:00
Ryan Houdek
a5bfdbf6cd
Free performance for AMD+Linux. Instead of disabling BaseVertex due to pinned_memory. Just disable pinned_memory for the ELEMENT_ARRAY_BUFFER type which has issues with baseVertex(ELEMENT_ARRAY_BUFFER)+pinned_memory. In my two tests with this, I went from 5FPS to 11FPS in one test, and 2FPS to 6FPS in another.
2013-12-28 08:00:44 -06:00
Ryan Houdek
0b31fc8f52
[buffer_storage] Temporary fix for Android/GLES3 just like how everything else is. Cleanup for this will be in a new branch.
2013-12-28 05:16:39 -06:00
Ryan Houdek
8fdcba0c06
[buffer_storage] Code formatting changes suggested by Bh44L
2013-12-28 05:15:43 -06:00
Ryan Houdek
935e1fdf99
[Android] Enable shader cache.
2013-12-28 04:55:39 -06:00
Ryan Houdek
c8cdc81ce3
[ARM] Implement tw/twi
2013-12-28 04:43:07 -06:00
Ryan Houdek
d8b7f4d73f
[Android] Support grabbing OpenGL extensions and a function for checking for support.
2013-12-28 01:08:52 -06:00
Ryan Houdek
e04edd89cc
Support grabbing whichever OpenGL mode we are running under from GLInterface. GLES or GL
2013-12-28 00:58:08 -06:00
Ryan Houdek
77ba051361
[buffer_storage] Add the CLIENT_STORAGE_BIT since we access the buffer more frequently on the client side than the server side. That is exactly what the hint is for.
2013-12-27 22:58:36 -06:00
Ryan Houdek
d8ceb97a60
[buffer_storage] Require GLEW 1.10 which has the new OpenGL 4.4 methods. Fixes linux build.
2013-12-27 15:37:31 -06:00
Ryan Houdek
ce99921c20
[buffer_storage] Implement ARB_buffer_storage. Disable it for GL_ARRAY_BUFFER due to a bug in Nvidia's drivers that causes black screen with it.
2013-12-27 10:56:03 -06:00
Ryan Houdek
2ed24d5311
[Android] Fix the gradle build system to allow for building from terminal. It will now copy the library files correctly and sign the resulting apk.
2013-12-24 15:28:24 -06:00
Ryan Houdek
a87e0e7489
Remove our GLU dependency. Fix static zlib
2013-12-23 16:01:34 -07:00
Ryan Houdek
86b3719d14
[Android] Add a gradle build file for use with Android Studio 4.0
2013-12-23 12:26:55 -07:00
Ryan Houdek
42217fbd75
Fix the extended information status line that shows emulated mhz + idles skipped.
2013-12-21 17:58:04 -06:00
Ryan Houdek
6737904c83
[Android] Stop copying assets that don't need to be copied anymore.
2013-12-21 16:20:14 -06:00
Ryan Houdek
e697d7a2dd
[Android] Work around Qualcomm's broken garbage in their v53 drivers. This doesn't fix the issue, just a work around. This is the stupidest issue coming from Qualcomm. Now Dolphin Mobile won't crash immediately, but there are new SPS issues.
2013-12-19 17:30:39 -06:00
Ryan Houdek
945b903499
Work around AMD's broken Linux drivers when it comes to pinned memory and base_vertex usage. It seems that using pinned memory with base_vertex disabled is quicker than the other way around.
2013-12-19 09:40:13 -06:00
Ryan Houdek
a35b62358a
[Android] Things fixed in Qualcomm driver v53. GLSL Centroid usage. SHADER_INFO_LOG reporting 0 at all times. Some crazy nonsense that broke the FPS counter. Those are all fixed. glBufferSubData still makes the device do a OOM error, and is still stupidly slow to use. Many more bugs remain in this latest Qualcomm driver.
2013-12-18 22:23:26 -06:00
Ryan Houdek
8c264a3964
In the shader log message, say if the error came from a PS or VS.
2013-12-18 22:21:14 -06:00
Ryan Houdek
2e1aa64958
[Android] Fix joysticks only capable of right/down movements. Also make it capable of using onscreen joystick even if controller 1 is bound.
2013-12-12 21:24:39 -06:00
Ryan Houdek
d7be993889
Oops, I left a bit being set when it shouldn't have been.
2013-12-12 22:35:05 +00:00
Ryan Houdek
09680ccee6
Small cleanup in the EGL GLInterface.
2013-12-12 22:08:54 +00:00
Ryan Houdek
63ab203923
Fix ARM unix build.
2013-12-12 21:17:42 +00:00
Ryan Houdek
50df037bb5
[Android] Fix gamepad input.
2013-12-12 14:42:25 -06:00
Ryan Houdek
c21003feab
If we are using OpenGL ES 3, then don't check for OpenGL/GLU
2013-12-12 13:42:15 -06:00
Ryan Houdek
7ff429152d
Fix Cmake failure.
2013-12-12 13:35:22 -06:00
Ryan Houdek
5443f14fe4
Add CMakeLists.txt.user to the .gitignore file. Closes issue 6873.
2013-12-12 12:54:36 -06:00
Ryan Houdek
f9ff0bc55d
Have our OpenGL/ES context creation be less stupid.
2013-12-12 12:43:49 -06:00
Ryan Houdek
2a0adc3972
[Android] Make our OpenGL ES 3 check in the UI less stupid.
2013-12-12 11:58:38 -06:00
Ryan Houdek
40b3534319
[Android] Remove the now unused texture loader on the JNI side of things.
2013-12-11 20:09:54 -06:00
Ryan Houdek
0e1e14b3a1
Fix Linux build.
2013-12-11 16:06:19 -06:00
Ryan Houdek
424f7b094e
Fix Windows Build
2013-12-11 15:23:09 -06:00
Ryan Houdek
eb3b933dd0
Remove all instances of OpenCL in the Dolphin Project. A brief history of OpenCL in Dolphin. OpenCL was originally added to the Dolphin codebase 1 month after it was released with OS X Snow Leopard in 2009. OpenCL was one of the largest group projects that Dolphin ever has had. The OpenCL texture decoder was originally aded with version 1.0 of the OpenCL spec; This version didn't have the capability of a OpenCL-OpenGL interop which would allow for uploading textures once and have it decoded directly to a OpenGL texure. This was to be worked out when the OpenCL 1.1 spec was released and allowed the interop. This work has never been done, and no one in the team is willing to work on it for various reasons. OpenCL has had the unreasonable expectation that it increases the performance of video games that require a large amount of EFB copies like NSMBW. In reality, enabling OpenCL just put the graphics card in a higher power mode which increased the game speed. This is due to the unfortunate effect of Dolphin tending to not push GPUs out of their lower frequency power savings modes. Thanks to everyone that had contributed to the OpenCL texture decoder.
2013-12-11 15:15:55 -06:00
Ryan Houdek
4867937355
Add Read16/Read8 to the CBlobBigEndianReader so the key check is reading 8bit from the correct location to determin which key to use. Also change check to == 1 as suggested in the IRC channel on first implementation. Potentially fixes 6852.
2013-12-06 20:40:12 -06:00
Ryan Houdek
14d9802ea4
Oops. Fix a typo in the DriverDetails change.
2013-12-06 12:18:20 -06:00
Ryan Houdek
faf8792351
Support OS specific bugs in our DriverDetails.
2013-12-05 09:32:27 -06:00
Ryan Houdek
bc01785264
[Android] Fix an issue that occurs due to the warning dialog.
2013-11-30 19:48:08 -06:00
Ryan Houdek
65ce711a21
[Android] 0.13 release.
2013-11-30 14:28:48 -06:00
Ryan Houdek
020331383a
[Android] Fix alert when using crappy Qualcomm drivers.
2013-11-30 14:28:00 -06:00
Ryan Houdek
1dfe303119
[ANDROID] Fix ARMv5 build.
2013-11-30 12:25:01 -06:00
Ryan Houdek
2ad686a2a2
[Android-overlay] Z-button support.
2013-11-29 21:50:42 -06:00
Ryan Houdek
b9f03444cd
[Android-overlay] Fix Java imports.
2013-11-29 21:32:27 -06:00
Ryan Houdek
7bdd8191db
Merge branch 'master' into android-new-control-input-overlay
...
Conflicts:
Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-29 21:27:17 -06:00
Ryan Houdek
00a25cdaf5
[Android-overlay] Disable Wiimote configuration until it is wired up.
2013-11-29 21:12:36 -06:00
Ryan Houdek
49eef423a8
[Android-overlay] Add the new overlay icons. Support configuring them. Disable hardfloat since it has issues since Dalvik doesn't understand passing floats due to ABI differences.
2013-11-29 18:37:33 -06:00
Ryan Houdek
db9c586356
Revert "jit: change our linking module to be able to handle arbitrary exit addresses"
...
This shouldn't cause issues, but does in Windows. Revert for now.
This reverts commit 1aa06b8fa4 .
2013-11-25 16:56:04 -06:00
Ryan Houdek
7718c9959e
[Android-overlay] Multiple physical gamepad support.
2013-11-25 10:58:05 -06:00
Ryan Houdek
421fd0e16e
Fix OpenGL ES 3.
2013-11-25 15:36:24 +00:00
Ryan Houdek
9dbb262aab
Fix for OpenGL ES 3.
2013-11-25 15:11:06 +00:00
Ryan Houdek
7ed8e6a29c
[Android] Fix the check for the Qualcomm graphics driver version for v53 drivers with the screen being rotated 90 degrees. Initialize the OpenGL information grabbing only once. Check for v14 Qualcomm drivers and spit out an error if the user tries selecting OpenGL ES 3.
2013-11-24 22:45:48 -06:00
Ryan Houdek
da3eef1019
Fix the issue with COLOROUT not being defined anymore. Fix a issue where Mali shader compiler is idiotic in finding an overload for the mix function.
2013-11-25 00:06:29 +00:00
Ryan Houdek
cb3dd6b94b
Merge branch 'master' into android-new-control-input-overlay
2013-11-24 17:10:24 -06:00
Ryan Houdek
2c09e8fc5a
[Android] Enable hard-float support. Requires Android NDK r9b.
2013-11-24 16:43:53 -06:00
Ryan Houdek
13578dc0b3
[Android] Enable the ability to find OpenMP on Android...which isn't used in the generic texture decoder so no win.
2013-11-24 16:28:20 -06:00
Ryan Houdek
ba18f38e70
Merge branch 'master' into android-new-control-input-overlay
...
Conflicts:
Source/Android/res/values-ja/strings.xml
Source/Android/res/values/strings.xml
Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java
Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-24 16:12:00 -06:00
Ryan Houdek
f292819ff5
[Android] Due to recent changes in code breaking Tegra 4 support, and also the upcoming code which will be breaking GLES2 support entirely. Taking the initiative to drop the remaining support code from the codebase in preparation for the upcoming changes. For a look at how Dolphin on Tegra 4 looked like prior and would not have been able to be fixed at all due to Tegra 4 not supporting the precision we need in our shaders; Look at this Youtube video http://youtu.be/Ga7Jc_Ote7U
2013-11-24 15:49:23 -06:00
Ryan Houdek
f6f2b1fc60
[Android-overlay] Support multiple gamepads with touch screen controls.
2013-11-24 15:04:53 -06:00
Ryan Houdek
6f73162df4
[ARM] Implement the Acid test in the JIT core. This test is currently broken in JIT64 since it uses cr instead of cr_fast.
2013-11-24 10:51:07 +00:00
Ryan Houdek
531f840720
Fix OpenGL ES 3 in the recent changes. texelFetch doesn't require the lod argument in desktop GLSL versions, but in GLSL ES 3 it is a required argument.
2013-11-24 07:45:42 +00:00
Ryan Houdek
ea9ac07ec9
Merge branch 'master' into jit_exit_addresses
2013-11-21 21:17:58 -06:00
Ryan Houdek
ae11fba069
[Android] Make joysticks less dumb from a configuration standpoint.
2013-11-18 14:48:08 -06:00