Commit Graph

11142 Commits

Author SHA1 Message Date
Ryan Houdek
4247506c00 [AArch64] Implements loadstore instructions in the JIT recompiler.
These instructions are all implemented with fastmem support.
Currently loads with update are disabled due to an issue that I've yet to figure out.
I'm sure I'll figure that out later.
2014-12-21 19:43:59 -06:00
Ryan Houdek
17a4208fe5 [AArch64] Adds backpatching routines.
Currently supports only integer loadstores. Floating point loadstores will come later.

This system is semi based on the ARMv7 backpatching routine, where we need to initialize our backpatch routine sizes prior to actually using them so
we know we won't be overwriting any memory.
2014-12-21 19:40:29 -06:00
Ryan Houdek
13b70c2fbd [AArch64] Add an exception exit function with the exit location already in PC.
This will be used with idle skipping later.
2014-12-20 19:36:48 -06:00
Ryan Houdek
32eb0a9d68 [AArch64] Removes CODE_SIZE variable.
This is in a global location now which conflicts with this one.
2014-12-20 19:36:48 -06:00
Ryan Houdek
edfbb6ab9a [ARM] Adds a ArmCommon folder.
Moves the backpatch flags and struct to a common location for ARM.
I'm sure there will be more things that use this common ARM location in the future.
2014-12-20 19:36:48 -06:00
Ryan Houdek
eaf17b7d7b [AArch64] Register cache improvements.
Adds the ability to flush the cache and maintain state.
Adds the BindToRegister ability.
Sorts register usage as callee saved used first, reduces dumping pressure when jumping to external routines/interpreter.
Adds a function to store a register, for use when flushing a register that won't be used during the rest of a block.
2014-12-20 19:36:48 -06:00
Pierre Bourdon
f2a07e43d1 Merge pull request #1638 from Stevoisiak/DSP-to-Audio
Rename DSP settings to Audio settings
2014-12-21 01:57:39 +01:00
Stevoisiak
91aeb7510f Changed config DSP references to config audio 2014-12-20 19:46:59 -05:00
Ryan Houdek
829132d465 Merge pull request #1732 from Sonicadvance1/stupid_android_garbage
Work around broken Android garbage.
2014-12-20 15:29:38 -06:00
Ryan Houdek
f2d998c938 Work around broken Android garbage.
This fixes running Dolphin on the Nexus 9.

Android's EGL stack has internal arrays that they use for tracking OpenGL function usage. Probably has something to do with their OpenGL profiling
garbage that used to be in ADT.

Android has three of these arrays, each statically allocated.
One array is for all GLES 1.x functions
One array is for all GLES 2.0/3.0/3.1 and a couple of extensions they deem worthy of being in this array.
The last array is for all function pointers grabbed via eglGetProcAddress that isn't in the other two arrays.

The last array is the issue that we are having problems with. This array is 256 members in length.
So if you are pulling more than 256 function pointers that Google doesn't track in their internal array, the function will return NULL and yell at you
in logcat.

The Nvidia Shield Tablet gets around this by replacing part of the EGL stack with their own implementation that doesn't have this garbage.
The Nexus 9 on the other hand doesn't get away with this. So we pull >100 more function pointers than the array can handle, and some of those we need
to use.

The workaround for this is to grab OpenGL 1.1 functions last because we won't actually be using those functions, so we get away with not grabbing the
function pointers.
2014-12-20 15:15:57 -06:00
Dolphin Bot
f978d141c8 Merge pull request #1720 from Armada651/stereo-msaa
FramebufferManager: Support resolving a multi-layered EFB
2014-12-20 20:35:36 +01:00
degasus
a858db1d27 OGL: move osd warning for not supported stereo mode into config validation 2014-12-20 19:54:00 +01:00
degasus
ed9c14e0d5 OGL: Fix OGL3 with stereo enabled 2014-12-20 19:13:34 +01:00
Markus Wick
9122c868fe Merge pull request #1734 from Armada651/stereo-fixes
GeometryShaderManager: Set stereo parameters in a SetConstants() call.
2014-12-20 17:48:31 +01:00
Pierre Bourdon
dad7911214 Merge pull request #1486 from rohit-n/goto
Remove some gotos.
2014-12-20 16:47:55 +01:00
Pierre Bourdon
cee4a85a12 Merge pull request #1633 from JosJuice/dvd-speed-tweak
DVDInterface: Tweak speeds
2014-12-20 16:46:22 +01:00
Pierre Bourdon
24a2ca4d28 Merge pull request #1703 from FioraAeterna/saveregs
JIT: free up a register by eliminating RCODE_POINTERS
2014-12-20 16:45:08 +01:00
Pierre Bourdon
e7eb4c06e2 Merge pull request #1634 from JosJuice/disc-drive-unification-lite
Make WII_IPC_HLE_Device_DI call DVDInterface
2014-12-20 16:41:52 +01:00
Jules Blok
d37b65c117 FramebufferManager: Support resolving a multi-layered EFB in OGL. 2014-12-20 16:08:00 +01:00
degasus
3322c55484 OGL: don't clear the stencil buffer
We don't have one. This should remove some spamming of the nvidia driver.
2014-12-20 15:17:20 +01:00
Jules Blok
d09af2dbba GeometryShaderManager: Set stereo parameters in a SetConstants() call.
Doing it in SetProjectionChanged() is too early because the projection type is not set yet.
2014-12-20 13:16:26 +01:00
JosJuice
d1c8a8bd9f Make WII_IPC_HLE_Device_DI call DVDInterface 2014-12-20 13:02:04 +01:00
Dolphin Bot
a560d8f150 Merge pull request #1716 from Armada651/geom-wireframe
VideoCommon: Handle wireframe mode in the geometry shader.
2014-12-20 12:22:40 +01:00
Matthew Parlane
6a785af280 Merge pull request #1704 from phire/wii_ssl_segfault
De-memsetify Wii_SSL and fix segfault.
2014-12-20 21:16:55 +13:00
comex
fba3abe4cf Manually revert d34418100b 2014-12-20 00:33:15 -05:00
skidau
31bc51072b Merge pull request #1712 from skidau/GC-Adapter-thread-fix
Corrected the buffer that is used by the GCAdapter thread.
2014-12-20 13:09:19 +11:00
Jules Blok
bc3ed44050 OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks. 2014-12-19 23:56:02 +01:00
skidau
f913cb6ab6 Removed redundant code from the GC Adapter interface. 2014-12-20 09:44:35 +11:00
skidau
9eecfca71d Corrected the buffer that is used by the GCAdapter thread. 2014-12-20 09:44:35 +11:00
Ryan Houdek
b30802e2f0 Merge pull request #1721 from Sonicadvance1/fix_adreno_400
Fixes Adreno 400 performance.
2014-12-19 15:55:50 -06:00
Jules Blok
0d79e8f32b VideoCommon: Don't specify the redundant in/out qualifier if GL_ARB_shading_language_420pack is supported.
Some driver developers interpreted "can" as "must" in the OpenGL specs. (I'm looking at you AMD)
2014-12-19 22:45:39 +01:00
Ryan Houdek
8c0e26d969 Minor changes to DriverDetails
Fixes a typo where the official IMGTec drivers were said to be the OSS driver support.
Removes Mali GPU family detection just like I removed the Adreno family detection.
We don't support Mali Utgard anyway.
If we need family detection we can properly add it, right now it isn't needed.
2014-12-19 21:41:12 +00:00
Jules Blok
761749e07f FramebufferManager: Support resolving a multi-layered EFB in D3D. 2014-12-19 22:37:28 +01:00
Jules Blok
0ae082fb61 FramebufferManager: Return the depth texture instead of the color texture in GetResolvedEFBDepthTexture() when AA is enabled. 2014-12-19 22:37:28 +01:00
Ryan Houdek
0fec69001b Fixes Adreno 400 slow performance.
Adreno 300 and 400 have the same video driver performance issues because they are very similar architectures which use basically the same thing with
everything.
There isn't any need to detect the family of the driver with Qualcomm anyway. If we ever need family specific bugs then we can implement real support
for that.
Performance issue on Adreno 400 series was due to us only detecting Adreno 300 series, and with Adreno 400 it wouldn't use the bugs, which would cause
it to use glBufferSubData, causing the huge performance hit.
2014-12-19 21:31:37 +00:00
Jules Blok
531b3941ff GeometryShaderGen: Re-emit the first vertex when wireframe mode is enabled. 2014-12-19 14:24:08 +01:00
Jules Blok
1b9fe70d7c VideoCommon: Make IsPassthrough() a function of the ShaderUid. 2014-12-19 14:10:53 +01:00
Jules Blok
c9e469f832 D3DState: Remove wireframe rasterizer support. 2014-12-19 14:10:52 +01:00
Jules Blok
925bbcb85b VideoCommon: Handle wireframe mode in the geometry shader. 2014-12-19 14:10:52 +01:00
Jules Blok
cdd9e07522 VideoCommon: Add in/out qualifiers to centroid storage qualifier.
Fixes shaders for GPUs that don't support GL_ARB_shading_language_420pack.
2014-12-19 12:19:15 +01:00
Ryan Houdek
02f22152be Merge pull request #1706 from Armada651/line-width
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
2014-12-18 19:43:12 -06:00
Jules Blok
e7e8a4f1cb GeometryShaderGen: Don't use the reserved keyword "point" in D3D. 2014-12-19 02:24:41 +01:00
Markus Wick
c7b809d46b Merge pull request #1669 from degasus/swvertexloader
Video Software Vertex Loader
2014-12-18 19:30:56 +01:00
shuffle2
717e155ce1 Merge pull request #1689 from kayru/d3d_efb_copy_fix
D3D: Fixed D3D validation error during EFB to texture copy
2014-12-18 02:59:51 -08:00
Stevoisiak
200097f25d Renamed dsp.png to audio.png
Note: This will break custom themes.
2014-12-18 01:01:57 -05:00
Jules Blok
8dc3653ac9 VideoCommon: Don't pass structs between shader stages when geometry shaders are unsupported. 2014-12-18 00:37:16 +01:00
Jules Blok
1f84f4632d OGL: Check OpenGL version for geometry shader support. 2014-12-18 00:37:16 +01:00
Jules Blok
93ce95b48e D3D: Use ROUND_UP macro for rounding buffer sizes. 2014-12-18 00:37:15 +01:00
Jules Blok
69df23f725 VideoCommon: Only use interface blocks when geometry shaders are supported. 2014-12-18 00:37:14 +01:00
Jules Blok
1af3d8447a GeometryShaderManager: Set the constants within the callbacks. 2014-12-18 00:37:09 +01:00