Rachel Bryk
4a81baff3f
Reenable vsync after releasing tab even if frame limit is disabled.
2014-01-19 02:48:59 -05:00
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
degasus
5a599d472e
Merge branch 'GLExtensions'
2014-01-17 16:49:51 +01:00
degasus
304adc6e0d
IndexGenerator: inline all variables
...
As we do lots of writes to *Iptr, the compiler isn't allowed to cache any shared variable (neither index nor Iptr itself).
This commit inlines Iptr + index into the index generator functions, so the compiler know that they are const.
2014-01-17 16:34:53 +01:00
degasus
1d6425bd5e
IndexGenerator: drop unused variable
2014-01-17 16:34:53 +01:00
degasus
6b01839525
VideoCommon: merge triangle+list+point index buffers
...
We are used to render them out of order as long as everything else matches, but rendering order does matter, so we have to flush on primitive switch. This commit implements this flush.
Also as we flush on primitive switch, we don't have to create three different index buffers. All indices are now stored in one buffer.
This will slow down games which switch often primitive types (eg ztp), but it should be more accurate.
2014-01-17 16:34:53 +01:00
degasus
e932a349e8
[GLExtensions] fixup for missing changes on rebase
2014-01-17 16:10:10 +01: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
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
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
Jack Frost
f4bd7bdef0
fix windows build
...
add the GL include (back) to Base.props
use a similar technique to GLX.cpp (by Sonic) in WGL.cpp to get
wglSwapIntervalEXT without the WGLEW check
Conflicts:
Source/Core/VideoBackends/OGL/OGL.vcxproj
Source/Core/VideoBackends/OGL/OGL.vcxproj.filters
Source/VSProps/Base.props
2014-01-17 16:01:17 +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
degasus
770485ad04
VertexLoader: don't check for possible range
...
I(index) < std::numeric_limits<I>::max() is always true, so we don't have to check it
2014-01-16 22:07:48 +01:00
degasus
5eae39766b
enable buffer_storage on nvidia 331.38 on linux
...
it works fine here, and as the VSH is removed, this is the newest driver.
2014-01-16 17:51:38 +01:00
degasus
331af32038
fixup "Remove the ZTP speedup hack"
...
This fixes revision b49c09c36b
2014-01-16 00:26:49 +01:00
Tony Wasserka
f1adc56a56
Remove vertex streaming hack.
...
NV has buffer_storage, AMD has pinned memory.
Both are better than that hack which shouldn't ever have been introduced in the first place.
2014-01-16 00:11:12 +01:00
Tony Wasserka
b49c09c36b
Remove the ZTP speedup hack. Also remove useless debugging code, and a presumably outdated workaround (which was commented out).
...
Fixes issue 6875.
2014-01-16 00:11:12 +01:00
degasus
5e5db9fbc6
VideoCommon: cleanup of "components" usage
...
This "u32 components" is a list of flags which attributes of the vertex loader are present.
We are used to append this variable to lots of vertex generation functions, but some of them don't need it at all.
2014-01-15 16:58:36 +01:00
Pierre Bourdon
a561c436fc
Change the default GFX backend from D3D11 to OGL.
...
Rationale and discussion:
https://ml.dolphin-emu.org/archives/dolphin-dev/2014-January/000003.html
2014-01-14 21:57:32 +01:00
skidau
8b53385c54
Added a check for a redundant mov in the fastmem writes code.
...
Fixes issue 6905.
2014-01-13 22:18:19 +11:00
degasus
e00c3ce363
TextureConverter: remove implicit int->float convertion
...
They was used to check if we're writing to the first or second part of one pixel.
So this is now done with a boolean and a ternary operator.
2014-01-13 12:10:17 +01:00
Scott Mansell
9aff16e7c1
Fix stupid bug in Z16L depth texture efb2ram encoding shader.
2014-01-12 13:32:06 +13: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
degasus
95aa977d81
OGL: remove masking from streambuffer
...
We used this to disable pinned memory for index buffer, but as the detection
was reworked completely, it's just unused code.
2014-01-09 18:52:05 +01:00
degasus
eb310cbd1d
VideoCommon: disable efb access + perf querys on cph thread
...
The usual way to handle this kind of request is to rise a flag which the gpu thread polls.
The gpu thread itself either generates the result or just write zeros if disabled.
After this, it rise another flag which says that this work is done.
So if disabled, we still have the cpu-gpu round trip time. This commit just returns 0 on the cpu thread
instead of playing ping pong...
2014-01-09 18:37:59 +01:00
Pierre Bourdon
45f74840d6
Do not fastmem addresses that were constant propagated
2014-01-09 08:28:45 +01:00
Rachel Bryk
48470a20ca
Code cleanup
...
Move enums for max SI and EXI devices to their respective .h file, and rename them.
Use only those enums in BootManager.cpp. Same thing in Movie.cpp
Change one instance of MAX_BBMOTES to MAX_WIIMOTES in Movie.cpp, since movies do not support balance board.
2014-01-08 20:36:27 -05:00
Jasper St. Pierre
3046d0e701
NetPlay: Sync CPU engine between NetPlay clients/servers
2014-01-08 19:42:02 -05:00
Rachel Bryk
216f4c927a
Fix copy and paste error in BootManager.cpp.
2014-01-08 19:37:51 -05:00