Commit Graph

20119 Commits

Author SHA1 Message Date
25a516bae3 Merge pull request #6403 from degasus/master
OGL: Use glBufferData on Mali.
2018-02-27 17:54:41 +10:00
a3fd99032c IsSettingSavable: Make GFX_CACHE_HIRES_TEXTURES savable 2018-02-26 19:04:06 +01:00
4ae48e10e5 Include <endian.h> for byte swap macros on OpenBSD
There is code below that assumes the presence of those macros (by #undef'ing them), but none of the included headers provided them.

This fixes a build failure on OpenBSD where the undef'd macros _do_ get picked up later on in a compilation unit (through which include, I don't know), and thus shadow the Common::swap* functions.
2018-02-26 00:07:05 +02:00
227db66e4f OGL: Use glBufferData on Mali.
tl;dr: This PR speedups dolphin on mobiles with the Mali GPU and ES 3.2
drivers by a factor of 10 by using the method with the biggest overhead.
Please keep care not to buy this shit!

The ARM driver team seems to care very well about their customers. But
bad luck, users and open source developers are *not* their customers. So
even device-independent feature requests are just ignored for *years*:

https://community.arm.com/graphics/f/discussions/4645/gl_ext_buffer_storage-support

The bad point, they neither implement any of the other common ways to
stream dynamic content in unextented GL:
- They just ignore the GL_MAP_UNSYNCHRONIZED_BIT flag
- They don't support on-device buffer updates and just stall with
glBufferSubData

It seems like no benchmark is using any dynamic content - and like no
customer cares about anything but benchmarks, or users...

We have a flag to disable the glBufferSubData way, this PR adds the flag
to also disable the unsychronized mapping way. The second one is
available since their ES 3.2 update, but slow as hell.

So how to continue? The last remaining technical way to stream dynamic
content at all is to alloc a new buffer per draw call with glBufferData.
This is very gross, but still a factor 10 speedup compared to stalling
the GPU. Small tests shows that you can expect another 3-5 times speedup
with EXT_buffer_data, so Mali would be on pair with Adreno here. So if
you have bought such a device unfortunately, please try to make noise on
your vendor forums/support and ask for this extension. If you are going
to buy a new mobile, I'd recormend to avoid *any* mobile with a Mali GPU
in it.
2018-02-25 17:12:36 +01:00
e4d3b5f626 OGL: Only create bad shader files in Dump when compile failed
Warnings are still logged.
2018-02-25 18:03:58 +10:00
a3674e3f73 Merge pull request #6396 from spycrab/qt_osx_theme
CMake/OSX: Fix missing QMacStylePlugin
2018-02-24 15:44:43 -08:00
7f3c1a2de4 Qt/OSX: Fix icon 2018-02-24 21:12:22 +01:00
5ddbb3459b CMake/OSX: Fix missing QMacStylePlugin 2018-02-24 18:48:29 +01:00
b66f96c617 Merge pull request #6042 from stenzek/videocommon-pipelines
VideoCommon pipelines ("Abstract Pipeline")
2018-02-23 09:18:19 -08:00
2ba8f67feb OGL: Call GLInterface->Update() on window resize
macOS in particular requires the context be updated manually when the window
is resized.
2018-02-23 22:27:10 +10:00
1e6dc196aa Qt: Fix warning about parentheses
The original code had parentheses placed in weird locations IMO, which
even caused compilers to issue warnings.
2018-02-22 17:55:16 +01:00
f1f2bd9c94 Qt: Fix warning about array initialisation 2018-02-22 17:54:58 +01:00
fd063bdc31 Qt: Use std::abs instead of abs
...since <cmath> is included, not <math.h>. May or may not fix
https://bugs.dolphin-emu.org/issues/10906
2018-02-22 17:54:19 +01:00
fec6bb4d56 VideoBackends: Add AbstractShader and AbstractPipeline classes 2018-02-22 22:02:34 +10:00
31111ef143 D3D: Remove state stack from tracker, set explicitly instead 2018-02-22 19:40:55 +10:00
e18c7b1c33 D3D: Support state tracking of compute shaders 2018-02-22 19:11:27 +10:00
e8ff2b2006 D3D: Support compiling compute shaders 2018-02-22 19:11:25 +10:00
aaea515d71 GLUtil: Drop now-unused attributeless VAO helpers 2018-02-22 19:09:28 +10:00
052d78bcb1 OGL: Log warnings from shader compiles, even if it compiled successfully 2018-02-22 19:08:54 +10:00
3fd4142f36 OGL: Track state of last bound vertex array object
This reduces the overhead of calling glBindVertexArray() every time
RestoreAPIState() is called, even when it is redundant.
2018-02-22 19:08:52 +10:00
abfaff8ca9 Qt: Remove unnecessary <iostream> includes
<iostream> injects a static constructor into the translation units that
it's included into. This is trivially avoidable in these cases.
2018-02-21 16:38:08 -05:00
619f98b97b Merge pull request #6389 from spycrab/fix_wiimote
Fix emulated Wiimotes
2018-02-20 21:37:30 +01:00
de1af2e45d Fix emulated Wiimotes 2018-02-20 20:41:29 +01:00
f9445bb119 IOS: Remove ec_wii functions 2018-02-19 20:34:06 +01:00
5e5c9e1772 IOSC: Add Sign
Equivalent of IOSC_GenerateCertificate + IOSC_GeneratePublicKeySign.

This is copied from ec_wii/MakeAPSigAndCert.
2018-02-19 20:34:06 +01:00
b3c7874a3a IOSC: Add GetDeviceId and GetDeviceCertificate 2018-02-19 20:34:06 +01:00
f3c63b3108 IOSC: Load built-in key entries directly from keys.bin
Preliminary commit for merging ec_wii into IOSC.
2018-02-19 20:34:06 +01:00
1f4ddea5f7 IOSC: Change misc_data to a u32
It's always 4 bytes long, so let's just make it a u32.
2018-02-19 20:34:05 +01:00
e01fe46068 Merge pull request #6367 from stenzek/gl-flush
OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT
2018-02-19 16:26:35 +01:00
de632fc9c8 Renderer: Handle resize events on-demand instead of polling
We now differentiate between a resize event and surface change/destroyed
event, reducing the overhead for resizes in the Vulkan backend. It is
also now now safe to change the surface multiple times if the video thread
is lagging behind.
2018-02-20 01:15:55 +10:00
5baf3bbe2e OGL: Clear backbuffer before presenting instead of at start of frame 2018-02-20 01:11:40 +10:00
c1b39ecc58 BPFunctions: Move upscaling of scissor rect to VideoCommon 2018-02-20 00:49:32 +10:00
5359396099 BPFunctions: Move GX viewport conversion to VideoCommon 2018-02-20 00:49:32 +10:00
a2d2a0a356 Merge pull request #6384 from jeffythedragonslayer/master
Jit64: fixed some signed to unsigned integer warnings
2018-02-19 15:28:06 +01:00
4876b9d8e0 Merge pull request #6362 from spycrab/qt_indicators
Qt/Mapping: Implement indicators
2018-02-18 11:45:12 -08:00
caf721fb3f Jit64: fixed some signed to unsigned integer warnings 2018-02-16 17:41:16 -05:00
340ee8fff8 PixelShaderGen: Implement table-based fog range as in software renderer 2018-02-15 22:19:21 +10:00
e7d0aae5be Merge pull request #6335 from stenzek/membp
Jit64: Fix incorrect PC in PPC state during fastmem trampoline
2018-02-15 11:13:52 +01:00
ec54b421a4 Qt/Mapping: Implement indicators 2018-02-15 05:01:44 +01:00
7c517226ed Vulkan: Remove redundant YUYV conversion shaders
These are no longer used as of hybrid XFB.
2018-02-14 15:26:35 +10:00
a9b89b35fb DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow 2018-02-13 20:20:58 +01:00
dbdf964f2e Merge pull request #6376 from sepalani/es-fix
ES: Make it not fail on something that isn't IOS
2018-02-13 16:42:17 +01:00
68f7a03d05 ES: Make it not fail on something that isn't IOS 2018-02-13 15:47:38 +01:00
f9b809a57e Merge pull request #6361 from spycrab/qt_fix_layout
Qt/GCMemcardManager: Misc. improvements
2018-02-12 13:59:31 -08:00
5fe72700fa Qt: TAS input window - Fix mac os 2018-02-13 08:03:01 +11:00
a8d482d8e1 IR widget is now a rectangle 2018-02-13 07:17:16 +11:00
d07e212cef Qt: Implement Wii TAS input window 2018-02-13 07:15:54 +11:00
3f1ffbad0d Qt: Implement GC TAS input window 2018-02-13 07:15:53 +11:00
35c43e74d0 Merge pull request #6371 from rukai/dolphinQtHotkeyFixes
Qt: Various fixes to hotkeys
2018-02-12 09:28:58 -08:00
5b744146f3 Merge pull request #6336 from spycrab/qt_additional_wiimote_settings
Qt: Implement Wiimote pane
2018-02-12 09:28:15 -08:00