Commit Graph

10509 Commits

Author SHA1 Message Date
Pierre Bourdon
59e2179172 Merge pull request #35 from lioncash/videocommons-kill-xchg-in-statistics
[VideoCommon] Eliminate the function Xchg in Statistics.cpp. std::swap does the same thing.
2014-02-04 16:40:25 -08:00
Lioncash
6d9cd07bb9 [VideoCommon] Eliminate the function Xchg in Statistics.cpp. std::swap does the same thing. 2014-02-04 19:35:27 -05:00
Lioncash
a73a600343 Fix name conventions of some of the foreach loop variables. 2014-02-04 19:30:46 -05:00
Lioncash
63700ad28a Change some for+iterator loops in GeckoCode.cpp and GeckoCodeConfig.cpp into foreach loops. 2014-02-04 19:19:48 -05:00
Tony Wasserka
af24ed782d Merge pull request #14 from degasus/uboWorkaroundRemove
OGL: Remove non-UBO code path.
2014-02-04 14:05:55 -08:00
Ryan Houdek
00089433a6 Merge pull request #31 from Sonicadvance1/slowmemfix
[JITARM] Fixes an issue in the slowmem path that causes grey THP movies,...
2014-02-04 12:55:43 -08:00
Ryan Houdek
57f86f7f52 [JITARM] Fixes an issue in the slowmem path that causes grey THP movies, and issues of games not working like Mario Kart being incapable of getting ingame. This was due to me forgetting an instruction. 2014-02-04 13:44:26 -06:00
Tillmann Karras
442796b681 Jit64IL: nits 2014-02-04 09:09:06 +01:00
Matthew Parlane
0c2a826693 Merge pull request #29 from lioncash/remove-pointless-cstr
Remove a pointless c_str() call in FileUtil.cpp.
2014-02-03 19:48:53 -08:00
Lioncash
7ebc829b17 Remove a pointless c_str() call in FileUtil.cpp. The function takes a string in it's parameter 2014-02-03 21:31:12 -05:00
Pierre Bourdon
36f6ec8b89 Merge pull request #27 from delroth/swcp-struct-fix
SWCommandProcessor: fix the CPReg structure fields
2014-02-03 16:42:05 -08:00
Tillmann Karras
8ef57064b2 Silence warning 2014-02-04 01:30:39 +01:00
Pierre Bourdon
8ab6ed4b49 SWCommandProcessor: fix the CPReg structure fields
This structure fields should match byte-to-byte the layout of MMIO registers:
it is addressed using the MMIO reg address when doing a CP MMIO read. This was
unfortunately not the case, causing CP reads to be mostly broken with the
software renderer.
2014-02-04 01:16:14 +01:00
Pierre Bourdon
3363b396af Merge pull request #23 from lioncash/sorta-large-input-cleanup
Larger cleanup to input-related source files (this time using unique_ptr).
2014-02-02 15:11:15 -08:00
Lioncash
e96f464eb5 [VideoCommon] Remove references to now non-existant files OpenCL.h and OpenCL/OCLTextureDecoder.h in the Visual Studio vcxproj file. 2014-02-01 21:52:06 -05:00
Lioncash
3efb0aa5f7 Purely stylistic cleanup of Core/HW/WiimoteEmu/Attachment/* files.
Also cleaned up WiimoteEmu.h as well.
2014-02-01 19:13:38 -05:00
Lioncash
c31a623780 Clean up InputConfigDiag.cpp.
Changes a bunch of for+iterator loops into foreach loops.
2014-02-01 19:02:32 -05:00
Lioncash
557015626a Introduce the usage of unique_ptr into the InputCommon ControlEmu.h class. Allows for the automatic handling of resource deallocation. 2014-02-01 17:20:35 -05:00
degasus
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
Pierre Bourdon
97119d0e89 Merge pull request #18 from lioncash/small-jit-macro-cleanup
Move two macros (JITDISABLE and INSTRUCTION_START) into JitBase.h.
2014-02-01 09:29:00 -08:00
degasus
31c3bee5bc VertexShaderGen: fix D3D posmtx attribute regression by VertexLoaderCleanup branch
Sorry, I'm too dumb too test my code. I hope this will work fine now.
2014-02-01 11:35:46 +01:00
Tony Wasserka
3dd31fe22b Merge pull request #11 from degasus/VertexLoaderCleanup
Vertex loader cleanup.
2014-01-31 06:13:26 -08:00
neobrain
0735fb7a52 Merge pull request #13 from degasus/dlCacheRemove
Remove Display List caching.
2014-01-31 03:42:06 -08:00
degasus
3437c7f060 VideoCommon: small VertexLoader(Manager)? refactoring 2014-01-31 07:31:03 +01:00
degasus
010a0d481a VideoCommon: remove Cache Displaylist
This option was known to break every second game and only boost a bit.
It also seems to be broken because of streaming into pinned memory and buffer storage buffers.

v2: also remove dlc_desc
2014-01-31 07:30:55 +01:00
degasus
a65162f1cd PortableVertexFormat: use AttributeFormat for posmtx attribute format 2014-01-31 07:19:34 +01:00
degasus
6c59b691b0 PortableVertexFormat: use AttributeFormat for texcoord attribute format 2014-01-31 07:19:34 +01:00
degasus
ef2d6e7d53 PortableVertexFormat: use AttributeFormat for color attribute format 2014-01-31 07:19:34 +01:00
degasus
b38ef39ab7 PortableVertexFormat: use AttributeFormat for normal attribute format 2014-01-31 07:19:34 +01:00
degasus
210f4f3e55 PortableVertexFormat: add a struct which hold all needed information for every vertex and use this for position
atm, position attribute is hardcoded both in VertexLoader and in backends.

v2: fix coding style + cleanup lookup table
2014-01-31 07:19:25 +01:00
Lioncash
89001accd8 Move two macros that literally doesn't change across all JIT platforms (JITDISABLE and INSTRUCTION_START) and simply have it in the JitBase.h source file. This way the macro is just located in one spot rather than 6 places. 2014-01-30 22:11:39 -05:00
Lioncash
825c5f689b Remove some unnecessary comments, as pointed out by Matt_P. 2014-01-30 20:21:18 -05:00
Lioncash
d91a5abba1 Light cleanup to a little bit of InputCommon. Replaces much of the iterators that litter this section of the codebase.
Also clean up a little bit of the comments that describe the interface classes.
2014-01-30 19:51:21 -05:00
Lioncash
fea3076241 Fix an unused variable within function GetScheduledEventsSummary() in CoreTiming.cpp. 2014-01-30 15:52:27 -05:00
degasus
02d1d8e6a0 NativeVertexFormat: swap unsigned / signed formats to match GX order 2014-01-30 11:12:10 +01:00
Pierre Bourdon
72cc6431e5 Merge pull request #9 from Sonicadvance1/Fix-AndroidRender
[Android] Fix Android not calling eglSwapBuffers
2014-01-29 15:08:32 -08:00
Ryan Houdek
99b6c82ac3 [Android] Fix Adreno v53 development drivers rotating framebuffer
Older Qualcomm drivers rotated the framebuffer 90 degrees and this fix didn't work.
Now for some obscene reason it rotates a full 180 degrees.
This can at least be worked around by flipping around the image on our end.
2014-01-29 16:39:45 -06:00
Ryan Houdek
990be70eb7 [Android] Fix Android not calling eglSwapBuffers
This isn't the cleanup that GLInterface needs, but for now it makes it so it'll swap and not just black screen
A cleanup to GLInterface will be coming in a couple weeks.
2014-01-29 15:54:55 -06:00
Lioncash
0f555d3a47 Remove two references to DX9 in VideoCommon.
DX9 isn't a backend anymore, so may as well get rid of them
2014-01-29 14:39:13 -05:00
Ryan Houdek
ac2ebd264d Merge pull request #5 from lioncash/android-info-fix
[Android] Fix three limits in GLES2InfoFragment.java.
2014-01-29 04:46:01 -08:00
Lioncash
74d9d7923e Fix three limits in GLES2InfoFragment.java. 2014-01-29 07:35:07 -05:00
Buildbot system user
7ed9f5e63e Upgrade Android API. 2014-01-28 23:35:13 +00:00
neobrain
7b459d2463 Merge pull request #4 from lioncash/android-about-menu-info
Expand the Android app's about menu to include additional info about a user's device.
2014-01-28 15:19:05 -08:00
degasus
b1290a8630 OGL: remove version check for buffer_storage on windows
On Windows, nvidia don't give us their driver version, so we can't workaround any issues.
As buffer_storage is broken on some drivers, we wanted to disble it for them.
So we can't.

Luckyly only "some" released driver versions are affected as this extension is only available since some months. Let's hope that nobody have to use one of this driver version, else they will get a black screen ...
2014-01-28 15:15:26 +01:00
Jules Blok
5d1db5d717 Fix compilation 2014-01-27 21:40:28 +09:00
Jules Blok
76019848a4 Fix coding style 2014-01-27 21:24:35 +09:00
Zakk
0eadc2e2a4 Implement SwapInterval for AGL interface 2014-01-27 21:11:03 +09:00
Lioncash
b9e7749fe6 [Android] Implement CPU info retrieval within the about menu.
ARM only at the moment. Could potentially support x86 and MIPS if necessary.
Capable of parsing the manufacturer codes and part IDs of some (but not all part numbers). If anyone knows of part numbers that aren't in the list, please report them.
2014-01-26 21:37:43 -05:00
crudelios
9b6c6fa9e4 BBox: Changed the rounding again, the old one fixed Paper Mario but had bugs in Mickey's Magical Mirror. This change fixes the glitches in both games.
Also fixed some compiler warnings.
2014-01-26 13:21:22 +00:00
degasus
d3fd0eddbb OSX: don't avoid unsync mapping on nvida gpus just because the windows driver doesn't like it
OSX has their own driver, so performance issues aren't shared with the nvidia driver (unlike the closed source linux and windows nvidia driver). So now they'll also use the MapAndSync backend like all other osx drivers.

fixes issue 6596

I've also cleaned up the if/else block selecting the best backend a bit.
2014-01-26 11:00:29 +01:00
Lioncash
6f74f59427 [Core] Remove an unnecessary pragma directive from EXI_Channel.h.
Dolphin uses warning level 3 in VS. This warning is only triggered in warning level 4.
2014-01-25 17:12:59 -05:00
Tillmann Karras
e94a6f07f4 Fix warning 2014-01-25 21:42:44 +01:00
crudelios
23b8465621 BBox: fix for a small rounding issue.
The new chapter title in Paper Mario TTYD had a small graphical bug due to the new code because it read one extra pixel, this fixes it.

I hope this gets everything, I though I had checked most bugs and yet here I am, commit-spamming...
2014-01-25 19:13:32 +00:00
crudelios
90a7e053c5 Merge branch 'master' of https://code.google.com/p/dolphin-emu 2014-01-25 18:06:58 +00:00
crudelios
5f14f0e3ce BBox: read from the proper world matrix index when transforming vertexes to screen coordinates.
Fixes some remaining bbox related bugs in Mickey's Magical Mirror and a slight graphical glitch in Paper Mario: TTYD when flipping and Vivian as your companion (I've been scratching my head for days to find this one).
2014-01-25 18:04:15 +00:00
Tillmann Karras
b34fe2b8f1 x64: fix parameter names of WriteModRM() 2014-01-25 17:36:09 +01:00
crudelios
cdfe58f7ed Rewrote bounding box algotithm. Fixes issues 5967, 6154, 6196, 6211.
Instead of being vertex-based, it is now primitive (point, line or dissected triangle) based, with proper clipping.
Also, screen position is now calculated based on viewport values, instead of "guesstimating".

This fixes many graphical glitches in Paper Mario: TTYD and Super Paper Mario.

Also, the new code allows Mickey's Magical Mirror and Disney's Hide & Sneak to work (mostly) bug-free. I changed their inis to use bbox.

These changes have a slight cost in performance when bbox is being used (rare), mostly due to the new clipping algorithm.

Please check for any regressions or crashes.
2014-01-25 15:36:23 +00:00
Scott Mansell
dd42af9a7c Videosoftware: Fix memory cleanup code. 2014-01-25 11:06:18 +13:00
Rachel Bryk
a3d1b9aba7 Increase save state version. 2014-01-24 00:15:56 -05:00
Scott Moreau
202054708b EGL: Fix android build broken by last commit 2014-01-23 19:41:07 -07:00
Scott Moreau
d4ff195cad EGL: Properly set parent window.
In X with EGL and WX frontend enabled, running the emulator created
two windows. This was because the parent window was set incorrectly.
2014-01-23 19:20:22 -07:00
degasus
1898524c96 VideoCommon: fix "Buffer not large enough for all vertices!" 2014-01-24 00:10:21 +01:00
Ryan Houdek
fd8757a64b Fix OpenGL 2.1 devices that support everything we need.
The only two devices that do this are Mesa software rasterizer and Intel Ironlake(With a few hacks).
Basically since it doesn't support OpenGL 3.0, it can't grab the version the new way.
So failing that, it sets to GL 2.1, and continues.

Further along, on Ironlake at least, it tries grabbing the extensions the new GL 3.0 way and fails.
So have a fallback that grabs the extensions string the old way, in probably the most elegant way possible.
2014-01-23 16:02:53 -06:00
degasus
65121cf9a9 OpenGL: remove unused OpenGL headers 2014-01-23 18:52:57 +01:00
degasus
1ff681a412 D3D: move streaming buffer fallback into D3D backend
Neith OGL nor VideoCommon doen't use it, so there is no need to have it in VideoCommon.
2014-01-23 15:27:18 +01:00
degasus
62f1905978 VideoCommon: don't save streaming fifos into savestate 2014-01-23 15:12:31 +01:00
degasus
ff002320a5 OpenGL: Stream vertices + indices 2014-01-23 15:12:31 +01:00
degasus
52feed04db VideoCommon: allow backends to set the buffer pointer as they want to 2014-01-23 15:12:31 +01:00
degasus
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
degasus
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
Ryan Houdek
650bae12e1 Bit of a failure. Fixes 6964.
I was attempting to grab wglSwapIntervalEXT prior to having a valid WGL context.
This was doomed to fail.
2014-01-23 08:04:33 -06:00
Ryan Houdek
07db7520bf [GLExt-Cleanup] This cleans up some extra bits unneeded in the extension headers
gl.h and glext.h provide most of the function pointer typedefs and defines for extensions and core features.
The only one it doesn't provide is GL 1.1 function typedefs, but this is to be expected.
If anything needs defines or typedefs in their header in the future, that's as easy as before.
2014-01-23 07:11:13 -06:00
Lioncash
391d26d3bf [DolphinWX] Prevent hotkeys from being assigned to more than one button/function.
Prior to this commit it was possible to assign the same keycode to more than one button.

ie. Say I assigned Open with the hotkey Ctrl+O; well, it was possible to also add it to another function as well, which leads to hotkey clashing.

Now, say I assign Open with Ctrl+O, but then assign that same hotkey to Refresh List; it will unbind the hotkey from Open and then assign it to refresh list.
2014-01-22 18:28:59 -05:00
Lioncash
521aa631dc [Android] Parse integer ranges in the GLES3 info tab.
The info we retrieve will only ever have 2 elements given back to us.
2014-01-22 12:28:46 -05:00
Lioncash
36863bf7b8 [Android] Get rid of the version check class in VideoSettingsFragment.java. Not needed anymore since the introduction of the EGLHelper class. Also decouples some classes from the VideoSettingsFragment.java class (yay).
- Minor other change is that the EGL helper fields in GLES3InfoFragment.java, GLES2InfoFragment.java, and GLInfoFragment.java are made final.
2014-01-22 11:56:25 -05:00
Lioncash
5c4d087e8f [Android] Greatly clean up the previous commits. Now here is the long list of cleaned up things:
- Spaces -> Tabs | Consistency
- Javadoc everything that was added and not documented.
- Remove duplicated code regarding the adapter that used to reside in DolphinInfoFragment.java. Now it resides in AboutActivity.java without a second duplication of it.
- Properly retrieve all of the contexts in the EGL initialization in EGLHelper.java.
- Remove the attribute EGL_RENDERABLE_TYPE from the pbuffersurface attributes in EGLHelper.java. With this present, the EGL context will always fail to reinitialize if destroyed and attempted to be recreated.
- Break the inner class Limit within GLES2InfoFragment.java, GLES3InfoFragment.java, and GLInfoFragment.java into its own single class. Greatly reduces code duplication.
- Introduce a Type enum into Limit.java (one of the wildly rare cases in Java where an enum is actually an OK solution). Removes duplicated constants from the Java files stated in the previous bullet note.
- Add a copyright comment to the top of EGLHelper.java. Forgot to do this initially, my bad.
- Add some missing override annotations to GLES2InfoFragment.java, GLES3InfoFragment.java, and GLInfoFragment.java.
- Use StringBuilders in the previously mentioned three Java files. This is better than using a String in this instance, as the String object won't have to be recreated multiple times (ala concatenation).
- Fix some constant accessors in the previously mentioned three Java files.
- Added the 'final' modifier to the above three classes and to Limit.java. These classes serve a single purpose only, and are not intended to be inherited.
2014-01-22 00:41:23 -05:00
Ryan Houdek
7e9b8d18a7 [android-about-menu-info] Add desktop OpenGL tab population.
Since showing every single limit that desktop OGL supports is crazy, Let's just show the basic information, and extensions.
2014-01-21 17:55:00 -06:00
Ryan Houdek
d3ccf1c7b5 [android-about-menu-info] Have information populate the GLES2 and GLES3 tabs.
There is a /lot/ of information in these tabs, we may have to think about changing how the information looks
OpenGL isn't done yet since there are a million limits on desktop GL, may just show a few things and extensions there.
2014-01-21 17:45:39 -06:00
degasus
3cb5bb3b30 VertexLoader: temp class for reader/writer 2014-01-21 23:44:51 +01:00
degasus
0b97b33ceb VertexLoader: inline destionation buffer 2014-01-21 19:23:07 +01:00
degasus
c613868f57 VertexLoader: load scale factor as const, this will save some assembler instructions 2014-01-21 18:54:16 +01:00
degasus
f90fe90320 fix windows debug comile
This is broken because of revision ebbf1d392b
2014-01-21 14:23:50 +01:00
degasus
ebbf1d392b VideoCommon: merge trivial parts of VertexManager::Flush 2014-01-21 10:47:00 +01:00
degasus
60632fda6f OpenGL: remove small optimization
This one was introduced to reduce the glBindTexture and glActiveTexture calls. But it was quite a bit of logic and only an improvment on uploading/creating a texture, which is done rarely.
2014-01-21 10:34:48 +01:00
degasus
fe02833f13 OpenGL: fix our ubo workaround when blend_func_extended is missing 2014-01-21 10:03:05 +01:00
Lioncash
0dc437e94d [Android] Finally check if regular OpenGL is possible on devices and display/hide it's fragment based upon this in AboutActivity.java.
Also added another constructor to EGLHelper which can be used to quickly query for information.
2014-01-21 00:12:40 -05:00
Scott Mansell
8b2c540544 Finally Merge branch 'videosoftware-xfb'
This adds xfb support to the videosoftware backend, which increases it's
accuracy and more imporantly, enables the usage of many homebrew apps
which write directly to the xfb on the videosoftware backend.

Conflicts:
	Source/Core/VideoBackends/Software/SWRenderer.cpp
	Source/Core/VideoBackends/Software/SWmain.cpp
2014-01-21 00:10:00 +13:00
Scott Moreau
2c8340e1dc Move GLInterface.h into GLInterface directory 2014-01-20 00:46:21 -07:00
Scott Moreau
4b3c338930 Merge Platform.h into GLInterface.h 2014-01-20 00:32:01 -07:00
Lioncash
f8abdbf91a [Android] Initial introduction of the EGLHelper utility class. Should simplify all interop with the EGL/GL APIs. Not hooked up yet. However it is entirely functional. 2014-01-19 18:29:43 -05:00
Ryan Houdek
683dbc09ac Stop building GLExtensions.cpp twice(One in GL, one in software). We don't need to build it twice, this'll save a bit of time in the build process.
Also a bit of spacing cleanup.
2014-01-19 11:37:37 -06:00
Scott Moreau
84aa98a5a4 wayland: Add bits required to run as a wayland client. 2014-01-19 10:36:20 -07:00
Tillmann Karras
21b0252e27 Jit64: disable non-IEEE mode emulation
I give up. Merging the ppc_fp branch has caused issues in numerous games
and I can't find the bug. I'm leaving this merged to enable easy
recompilation for people who would like to play games that benefit from
non-IEEE mode emulation (e.g. Starfox Assault).
2014-01-19 09:36:08 +01:00
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