Markus Wick
3860219899
VideoCommon: Flush the GPU pipeline on async requests.
2018-06-06 09:22:01 +02:00
Markus Wick
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
Markus Wick
cb7eede193
VideoCommon: Apply custom texture scale for arbitrary mipmaps.
...
We want to get the same mipmap level. And if the IR and the custom
texture upscaling fits, we don't need to modify the LOD bias.
2018-01-17 09:02:36 +01:00
Markus Wick
56d153f548
VideoCommon: Apply the yscale as upscaling of the XFB.
2018-01-06 10:36:33 +01:00
Markus Wick
491c10ec96
VideoBackends: Use VideoCommon shader generators for efb2tex copies.
...
This will generate one shader per copy format. For now, it is the same
shader with the colmat hard coded. So it should already improve the GPU
performance a bit, but a rewrite of the shader generator is suggested.
Half of the patch is done by linkmauve1:
VideoCommon: Reorganise the shader writes.
2017-12-02 15:17:39 +01:00
Markus Wick
d791e5d3a8
JitArm64: Use the updated wrappers.
...
They are faster, no need to use the slow path in the CPU.
2017-08-12 00:00:41 +02:00
Markus Wick
d78009877b
JitArm64: Fix LSL/LSR/ROR/ASR wrappers.
...
The other method has a latency of 2 cycles. This also improves the
throughput a lot.
2017-08-12 00:00:41 +02:00
Markus Wick
5ee7f86199
JitArm64: Optimize rlwinmx.
...
The new code adds fast paths for most usages which fits in one
instruction with one cycle latency.
2017-08-12 00:00:41 +02:00
Markus Wick
ec5cfd2aae
JitArm64: Update CR helpers to reflect their usage.
...
This helpers are not for general CR calculation, they are just for the
common case of the sign extended result of integer instructions if the
rc bit is set.
They must not be used by other instructions like cmp, so there is no
need to be as flexible.
2017-08-11 21:17:13 +02:00
Markus Wick
7d4c14feba
JitArm64: Fix and improve the cmpXX instructions.
2017-08-11 21:17:13 +02:00
Markus Wick
b89e4b5258
Interpreter: Fix cmpi.
...
cmpi shall compare two signed 32 bit values. The used difference a-b
may overflow and so the resulting 32 bit value can't represent it.
A correct way would be cr = s64(a) - s64(b) and it should be done in
this way in the JITs, but the Interpreter shall implement the most
readable way.
Also drops the now unused helper function.
2017-08-11 17:35:22 +02:00
Markus Wick
35ecc2701d
Merge pull request #3027 from lioncash/constexpr
...
LookUpTables: Make functions constexpr
2015-09-12 09:39:38 +02:00
Markus Wick
257f2ef739
Merge pull request #3000 from mimimi085181/efb-copies-garbage-collection
...
Perform garbage collection for efb copies
2015-09-10 12:52:54 +02:00
Markus Wick
81c07d4919
Merge pull request #2990 from lioncash/noncopy
...
Common: Alter semantics of the NonCopyable mixin
2015-09-08 11:08:58 +02:00
Markus Wick
5585c5adc2
Merge pull request #2994 from aserna3/master
...
Properly implemented confirm on stop CLI switch
2015-09-07 14:00:17 +02:00
Markus Wick
60e0339ae5
Merge pull request #2963 from Sonicadvance1/AArch64_improved_vertexloader
...
[AArch64] Minor improves to the vertex loader JIT
2015-09-05 15:44:52 +02:00
Markus Wick
0f3263ac63
Merge pull request #2969 from Sonicadvance1/qualcomm_hack_removal
...
Remove all of our workarounds for Qualcomm devices we don't support anymore
2015-09-05 10:10:19 +02:00
Markus Wick
e7660325b4
Merge pull request #2967 from Sonicadvance1/GLES_blend_func_extended
...
Support EXT_blend_func_extended in GLES.
2015-09-05 03:43:28 +02:00
Markus Wick
34407ed3d7
Merge pull request #2964 from Sonicadvance1/EGL_fix
...
Implement ClearCurrent on the EGL GLInterface
2015-09-05 03:42:46 +02:00
Markus Wick
7ada372ed9
Merge pull request #2944 from degasus/arm
...
JitArm64: Cleanup floating point regcache
2015-09-04 13:14:29 +02:00
Markus Wick
9f49708954
Merge pull request #2955 from booto/less-vi-log
...
VI: Less log spam in Release build
2015-09-04 12:01:01 +02:00
Markus Wick
39ab0ebbd3
Merge pull request #2953 from lioncash/macro
...
CommonFuncs: Remove SLEEP macro
2015-09-04 09:01:11 +02:00
Markus Wick
ad978122d9
Merge pull request #2942 from booto/xfb_lines
...
VideoCommon: xfb height calculation adjusted
2015-09-03 09:40:24 +02:00
Markus Wick
66e9395d5d
Merge pull request #2937 from lioncash/enums
...
VideoCommon: Convert some defines into enums
2015-09-02 13:27:09 +02:00
Markus Wick
0aba5a62fc
Merge pull request #2938 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-09-01 20:51:19 +02:00
Markus Wick
a16669231a
Merge pull request #2917 from Sonicadvance1/android_fix_sgs6
...
[Android] Workaround Mali driver issue on the Samsung Galaxy S6.
2015-08-29 08:56:32 +02:00
Markus Wick
6004ecc521
Merge pull request #2920 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-08-28 23:08:24 +02:00
Markus Wick
b11de5bddb
Merge pull request #2918 from lioncash/memcpy
...
DataReader: Get rid of pointer casts
2015-08-28 20:45:15 +02:00
Markus Wick
54f882704a
Merge pull request #2914 from JosJuice/fix-volumedirectory
...
Fix VolumeDirectory
2015-08-26 22:12:23 +02:00
Markus Wick
3e9dac3910
Merge pull request #2810 from Sonicadvance1/disassembler_improv
...
Have the disassembler show the PC next to host instructions.
2015-08-26 17:01:39 +02:00
Markus Wick
2be69ae747
Merge pull request #2912 from Tilka/coretiming
...
CoreTiming: small cleanup
2015-08-26 16:38:42 +02:00
Markus Wick
a36b135473
Merge pull request #2911 from Sonicadvance1/aarch64_regcache_optimization
...
[AArch64] Optimize paired registers being used in double operations.
2015-08-26 13:10:04 +02:00
Markus Wick
5716d18d10
Merge pull request #2910 from Sonicadvance1/aarch64_regcache_fix
...
[AArch64] Fix a bug in the register cache.
2015-08-26 08:31:24 +02:00
Markus Wick
43d17cb360
Merge pull request #2904 from Sonicadvance1/aarch64_more_inst
...
[AArch64] Implement fdivx/fdivsx/mfcr/mtcrf.
2015-08-26 07:48:24 +02:00
Markus Wick
bd08c1b01a
Merge pull request #2901 from Sonicadvance1/aarch64_stfiwx
...
[AArch64] Implement stfiwx
2015-08-25 22:47:39 +02:00
Markus Wick
24cb650078
Merge pull request #2663 from degasus/dcbx
...
Jit64: dcbf + dcbi
2015-08-25 12:16:56 +02:00
Markus Wick
0ad6fa8f62
Merge pull request #2903 from lioncash/cast
...
Memmap: Remove pointer casts
2015-08-24 15:42:56 +02:00
Markus Wick
8bc311ab3c
Merge pull request #2897 from degasus/arm
...
JitArm64: Implement subfex, subfcx, addex, subfic, divwux, srwx
2015-08-23 23:52:35 +02:00
Markus Wick
73067b1ef1
Merge pull request #2888 from degasus/jit64
...
Jit64: Faster linking of continuous blocks
2015-08-23 13:24:15 +02:00
Markus Wick
8b881a6c34
Merge pull request #2891 from Sonicadvance1/aarch64_implement_crxxx
...
[AArch64] Implement the cr instructions
2015-08-23 00:44:47 +02:00
Markus Wick
a39c0910c4
Merge pull request #2893 from Sonicadvance1/aarch64_memory_base_register
...
[AArch64] Use a register as a constant for the memory base.
2015-08-22 15:41:57 +02:00
Markus Wick
3f5ff98c1b
Merge pull request #2890 from lioncash/ptr
...
x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
2015-08-22 10:09:28 +02:00
Markus Wick
2d505bc2a6
Merge pull request #2894 from Sonicadvance1/no_more_eaten_canary
...
Fix the shader overrunning our max shader size.
2015-08-22 10:08:14 +02:00
Markus Wick
c2f38f1d16
Merge pull request #2892 from Sonicadvance1/aarch64_frsp
...
[AArch64] Implement frspx
2015-08-22 09:44:14 +02:00
Markus Wick
c325c310d6
Merge pull request #2884 from lioncash/emitter
...
x64Emitter: Minor cleanup
2015-08-21 13:03:51 +02:00
Markus Wick
4f45d71840
Merge pull request #2760 from Sonicadvance1/aarch64_fcmp
...
[AArch64] Implement fcmp{u,o}
2015-08-21 11:03:20 +02:00
Markus Wick
6cb87a9227
Merge pull request #2837 from Sonicadvance1/aarch64_faster_nonpaired
...
[AArch64] Optimize cases when an FPR is only used for non-paired ops.
2015-08-21 09:51:45 +02:00
Markus Wick
cb264df64c
Merge pull request #2874 from barat/master
...
VideoCommon: Allow more Ram for HiresTexture if system memory is over 4GB
2015-08-20 11:08:42 +02:00
Markus Wick
869c5d7a8c
Merge pull request #2875 from degasus/hle
...
DSP HLE: Remove timing informations from ucodes
2015-08-19 16:47:38 +02:00
Markus Wick
bdbe723d6e
Merge pull request #2870 from Sonicadvance1/GLInterface_Fix
...
Fix a memory leak in the EGL GLInterface.
2015-08-19 11:14:25 +02:00
Markus Wick
ff95fa8a6d
Merge pull request #2861 from lioncash/param
...
VideoCommon: Remove unused parameters
2015-08-17 15:02:44 +02:00
Markus Wick
239ad678f1
Merge pull request #2855 from Armada651/revert-clamp
...
Revert "VideoCommon: Clamp integer conversions."
2015-08-17 15:01:27 +02:00
Markus Wick
b8a35f6996
Merge pull request #2856 from mathieui/netplay-free
...
[netplay] Fix a crash
2015-08-15 23:13:18 +02:00
Markus Wick
cd1071c3a1
Merge pull request #2857 from Danbsky/gameini
...
Gameini: Add ZTP Hyrule Field Speed Hack to GC NTSC-J version
2015-08-15 21:28:01 +02:00
Markus Wick
b3045f9664
Merge pull request #2852 from aserna3/master
...
Changed GC adapter "Direct Connect" to false by default
2015-08-15 21:25:23 +02:00
Markus Wick
e60018abd4
Merge pull request #2854 from Tilka/valgrind
...
Fix some small stuff found with Valgrind
2015-08-15 20:52:12 +02:00
Markus Wick
b5a5883792
Merge pull request #2851 from JosJuice/unknown-instruction
...
Restore old assert message for unknown instruction
2015-08-15 20:10:16 +02:00
Markus Wick
3469694b46
Merge pull request #2676 from Stevoisiak/SpellingCorrections
...
Minor spelling corrections
2015-08-15 18:36:56 +02:00
Markus Wick
c306095684
Merge pull request #2841 from Tilka/andn
...
Jit64: use BMI1's ANDN for andcx
2015-08-14 08:29:58 +02:00
Markus Wick
7c944f83cc
Merge pull request #2839 from degasus/arm
...
JitArm64: fix addzex
2015-08-13 20:45:59 +02:00
Markus Wick
63480da4ee
Merge pull request #2792 from degasus/arm
...
JitArm64: fix cmpli and disable addzex
2015-08-13 12:43:29 +02:00
Markus Wick
4c5fec4772
Merge pull request #2838 from Sonicadvance1/fix_gles_xfb
...
[GLES] Fix real XFB.
2015-08-13 08:29:42 +02:00
Markus Wick
40818c4aad
Merge pull request #2835 from degasus/master
...
Wiimotes: Initialize all atomic<bool> globally.
2015-08-12 21:14:04 +02:00
Markus Wick
c78fcb2512
Merge pull request #2836 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-08-12 19:41:22 +02:00
Markus Wick
ccf14e1ba4
Merge pull request #2719 from moncefmechri/bugfix-7729
...
Don't busy wait in the audio thread (ALSA)
2015-08-11 13:33:29 +02:00
Markus Wick
e297e3e666
Merge pull request #2825 from lioncash/log
...
AudioCommon: Log to AUDIO, not DSPHLE
2015-08-10 10:25:51 +02:00
Markus Wick
68a54daec3
Merge pull request #2817 from comex/clientca-typo
...
Forgot to add a slash in one bit of code I switched from D_WIIUSER_IDX to D_SESSION_WIIROOT_IDX.
2015-08-09 11:08:54 +02:00
Markus Wick
93e8ba8824
Merge pull request #2805 from Tilka/fres_dup
...
Jit64: duplicate fres result into ps1
2015-08-08 18:37:38 +02:00
Markus Wick
59e48e0fcf
Merge pull request #2801 from Tilka/stuff
...
x64Emitter: add MOVSLDUP/MOVSHDUP
2015-08-07 10:37:38 +02:00
Markus Wick
debb1fbfdd
Merge pull request #2775 from degasus/master
...
DriverDetails: Disable GL_ARB_copy_image on mesa.
2015-08-06 19:46:58 +02:00
Markus Wick
5f256164a7
Merge pull request #2799 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-08-04 20:25:12 +02:00
Markus Wick
972faf42ed
Merge pull request #2785 from lioncash/def
...
GeckoCode: Remove GetAddress function prototype
2015-08-04 17:44:15 +02:00
Markus Wick
19af6e0d93
Merge pull request #2787 from lioncash/memset
...
CPUDetect: Remove a memset call on the this pointer
2015-08-04 17:43:36 +02:00
Markus Wick
ab2e68aa16
Merge pull request #2789 from lioncash/virt
...
Remove unnecessary virtual keywords
2015-07-30 17:53:35 +02:00
Markus Wick
9bed03fbf1
Merge pull request #2786 from lioncash/ref
...
UICommon: Pass string by const reference for HostDisassemblerLLVM
2015-07-29 08:05:43 +02:00
Markus Wick
93492a0e5a
Merge pull request #2784 from sigmabeta/android-enable-cache-interpreter
...
Android: Allow usage of Cached Interpreter core.
2015-07-28 23:29:12 +02:00
Markus Wick
f800a5b93f
Merge pull request #2695 from degasus/jit64
...
Jit64: Fallback support of branching instructions
2015-07-28 16:37:41 +02:00
Markus Wick
0c4209a0f9
Merge pull request #2716 from degasus/jitgeneric
...
CachedInterpreter: New kind of jit which always fallback to interpreter.
2015-07-28 16:37:25 +02:00
Markus Wick
9ca177354a
Merge pull request #2781 from aserna3/master
...
[AARCH64] Optimized addx()
2015-07-27 20:52:37 +02:00
Markus Wick
428e2ef971
Merge pull request #2778 from booto/im-sorry-d3d
...
Video: Trying to fix D3D/XFB disabled regression
2015-07-26 20:52:29 +02:00
Markus Wick
96b77aaa81
Merge pull request #2720 from booto/efb-copy
...
[WIP] Video: respect stride of efb copies to xfb
2015-07-25 12:03:03 +02:00
Markus Wick
6bcdae616b
Merge pull request #2679 from Tinob/master
...
Implement scaled partial texture updates
2015-07-22 19:04:04 +02:00
Markus Wick
deef164c7b
Merge pull request #2761 from lioncash/unused
...
DolphinWX: Remove unused code from MemcardManager
2015-07-22 09:39:53 +02:00
Markus Wick
b5fe028e18
Merge pull request #2752 from Armada651/osx-beep
...
CFrame: Claim all keyboard events on OS X.
2015-07-20 13:55:05 +02:00
Markus Wick
d622ae3e7b
Merge pull request #2699 from Tilka/fnma
...
Interpreter: fix rounding of negating FMA instructions
2015-07-19 17:39:19 +02:00
Markus Wick
b71430723a
Merge pull request #2748 from Tilka/drop
...
Jit64: small cleanup
2015-07-19 08:26:42 +02:00
Markus Wick
8beb67fd3e
Merge pull request #2747 from endrift/fix-non-libusb
...
DolphinWX: Fix build if libusb is disabled
2015-07-18 10:10:23 +02:00
Markus Wick
ced89be3b7
Merge pull request #2735 from aserna3/workshop
...
Adding new flag icons.
2015-07-11 11:02:58 +02:00
Markus Wick
31c083bf64
Merge pull request #2725 from lioncash/ref
...
DolphinWX: Pass string by const reference in CISOProperties constructor
2015-07-08 15:58:24 +02:00
Markus Wick
f6766dd347
Merge pull request #2722 from lioncash/statement
...
VertexLoaderBase: Adjust the scope of a boolean variable
2015-07-08 09:37:06 +02:00
Markus Wick
b6ee886540
Merge pull request #2708 from lioncash/override
...
MMIO: Add missing override specifiers
2015-07-06 12:36:37 +02:00
Markus Wick
009148d401
Merge pull request #2701 from mickdermack/pr-jitnull
...
Prevent nullptr dereference on a crash with no JIT present
2015-07-05 16:37:29 +02:00
Markus Wick
3fc070c4fc
Merge pull request #2680 from degasus/idle
...
Interpreter: Idle skipping support
2015-07-03 19:52:05 +02:00
Markus Wick
6193e7b5b2
Merge pull request #2690 from sigmabeta/android-tv-selection
...
Android TV: Use accent color to highlight games on selection screen.
2015-07-03 19:51:24 +02:00
Markus Wick
45fde6caf5
Merge pull request #2669 from stgn/new-dsp-coef
...
Audio: new dsp_coef.bin with windowed sinc filter coefficients
2015-06-30 22:02:05 +02:00
Markus Wick
12fe42b2a3
Merge pull request #2666 from Linktothepast/master
...
Gameini updates.
2015-06-29 23:23:22 +02:00
Markus Wick
134a18fdad
Merge pull request #2674 from lioncash/emplace
...
Use emplace() instead of insert() where applicable for maps.
2015-06-29 17:19:08 +02:00
Markus Wick
8493feb89f
Merge pull request #2602 from mimimi085181/partial-texture-updates2
...
Support partial texture updates via efb copies
2015-06-24 09:22:50 +02:00
Markus Wick
3f780c2628
Merge pull request #2626 from Parlane/fix_aniso_2
...
Fix aniso filtering on d3d to not set aniso filter when using 1x
2015-06-22 13:50:54 +02:00
Markus Wick
1003d08d81
Merge pull request #2632 from lioncash/var
...
RenderBase: Remove an unused variable
2015-06-20 09:28:27 +02:00