Commit Graph

7847 Commits

Author SHA1 Message Date
Ryan Houdek 8d8b0fc884 Merge branch 'master' into buffer_storage
Conflicts:
	Source/Core/VideoBackends/OGL/Src/Render.cpp
	Source/Core/VideoCommon/Src/DriverDetails.cpp
	Source/Core/VideoCommon/Src/DriverDetails.h
2013-12-31 15:41:50 -06:00
Jasper St. Pierre 34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00
Jasper St. Pierre 43e618682e Convert all vcxproj files to UNIX line endings 2013-12-31 14:03:18 -05:00
Jasper St. Pierre b6ad8bd712 HW: Remove unnecessary "../HW/" in include paths 2013-12-31 14:03:17 -05:00
Jasper St. Pierre 70d4d973f9 TAP_Win32: Remove unnecessary Memmap.h include 2013-12-31 14:00:06 -05:00
Ryan Houdek 6d63db96e9 Disable primitive restart on buggy OS X Intel HD 3000 drivers. 2013-12-30 18:26:55 -06:00
Tony Wasserka de16b7207c D3D/OGL: Add a TODO noting that we don't support GX_CULL_ALL, most notably required for accurate zfreeze emulation. 2013-12-30 20:37:59 +01:00
Tony Wasserka 3aa0a63fe6 VertexShaderGen: Remove Sonic Unleashed hack. Doesn't seem to be required anymore.
Either way, even if it's still needed for anything, this is not the correct way to fix the issue.
2013-12-30 20:28:07 +01:00
NeoBrainX 3cfa04b5cf VertexShaderManager: Remove a hardcoded projection hack. 2013-12-30 19:26:10 +00:00
Tony Wasserka bbde075420 Software renderer: Add a zfreeze related TODO. 2013-12-30 20:18:53 +01:00
Ryan Houdek a5bfdbf6cd Free performance for AMD+Linux. Instead of disabling BaseVertex due to pinned_memory. Just disable pinned_memory for the ELEMENT_ARRAY_BUFFER type which has issues with baseVertex(ELEMENT_ARRAY_BUFFER)+pinned_memory. In my two tests with this, I went from 5FPS to 11FPS in one test, and 2FPS to 6FPS in another. 2013-12-28 08:00:44 -06:00
Ryan Houdek 0b31fc8f52 [buffer_storage] Temporary fix for Android/GLES3 just like how everything else is. Cleanup for this will be in a new branch. 2013-12-28 05:16:39 -06:00
Ryan Houdek 8fdcba0c06 [buffer_storage] Code formatting changes suggested by Bh44L 2013-12-28 05:15:43 -06:00
Ryan Houdek 935e1fdf99 [Android] Enable shader cache. 2013-12-28 04:55:39 -06:00
Ryan Houdek c8cdc81ce3 [ARM] Implement tw/twi 2013-12-28 04:43:07 -06:00
Ryan Houdek d8b7f4d73f [Android] Support grabbing OpenGL extensions and a function for checking for support. 2013-12-28 01:08:52 -06:00
Ryan Houdek e04edd89cc Support grabbing whichever OpenGL mode we are running under from GLInterface. GLES or GL 2013-12-28 00:58:08 -06:00
Ryan Houdek 77ba051361 [buffer_storage] Add the CLIENT_STORAGE_BIT since we access the buffer more frequently on the client side than the server side. That is exactly what the hint is for. 2013-12-27 22:58:36 -06:00
Jordan Woyak 8230da26fe Fixed issue 6245. (ISO Path's "Remove" button not being disabled when it should be) 2013-12-27 17:16:28 -06:00
Jordan Woyak 620bf0b304 Eliminate some Wiimote acceleration logic redundancy.
Yeah, I eliminated a total of 3 LSB of accel data in the process, but no one will notice.
2013-12-27 16:35:11 -06:00
Jordan Woyak c5695c987b Revert "Reading shake force from calibration rather than a constant"
It didn't make sense. The math was nonsensical. Calibration data was somehow applied twice. I don't even.

This reverts commit 4dad640d5f.

Fixed issue 6702.
2013-12-27 16:00:59 -06:00
Ryan Houdek d8ceb97a60 [buffer_storage] Require GLEW 1.10 which has the new OpenGL 4.4 methods. Fixes linux build. 2013-12-27 15:37:31 -06:00
Ryan Houdek ce99921c20 [buffer_storage] Implement ARB_buffer_storage. Disable it for GL_ARRAY_BUFFER due to a bug in Nvidia's drivers that causes black screen with it. 2013-12-27 10:56:03 -06:00
Jordan Woyak 4d1f113ab1 Fix some emulated wiimote turntable stupidness (DJ Hero controller). Happy Christmas!
Fixed issue 6865.
2013-12-25 15:33:33 -06:00
Ryan Houdek a87e0e7489 Remove our GLU dependency. Fix static zlib 2013-12-23 16:01:34 -07:00
Rachel Bryk 04b87e1dcc Change a PanicAlert to OSD message. 2013-12-23 07:18:28 -05:00
Ryan Houdek 42217fbd75 Fix the extended information status line that shows emulated mhz + idles skipped. 2013-12-21 17:58:04 -06:00
Ryan Houdek e697d7a2dd [Android] Work around Qualcomm's broken garbage in their v53 drivers. This doesn't fix the issue, just a work around. This is the stupidest issue coming from Qualcomm. Now Dolphin Mobile won't crash immediately, but there are new SPS issues. 2013-12-19 17:30:39 -06:00
Ryan Houdek 945b903499 Work around AMD's broken Linux drivers when it comes to pinned memory and base_vertex usage. It seems that using pinned memory with base_vertex disabled is quicker than the other way around. 2013-12-19 09:40:13 -06:00
Ryan Houdek a35b62358a [Android] Things fixed in Qualcomm driver v53. GLSL Centroid usage. SHADER_INFO_LOG reporting 0 at all times. Some crazy nonsense that broke the FPS counter. Those are all fixed. glBufferSubData still makes the device do a OOM error, and is still stupidly slow to use. Many more bugs remain in this latest Qualcomm driver. 2013-12-18 22:23:26 -06:00
Ryan Houdek 8c264a3964 In the shader log message, say if the error came from a PS or VS. 2013-12-18 22:21:14 -06:00
degasus 5eab3239bb Jit64: load second operator for double intrutions
SSE do support non-vector instructions, but they _all_ overwrite the dest register
if the src location isn't a register. (wtf?)
So we have to load the src into a temporay register :(
2013-12-17 08:49:06 +01:00
degasus 2fad2a3e88 Revert "Jit64: use AVX instructions in some places"
and the fixes afterwards

This reverts commit ff91789773.
This reverts commit bcefa880e4.
This reverts commit 710a0ff435.
This reverts commit ddaf29e039.
2013-12-17 08:49:06 +01:00
comex 1b617c736c Add a non-tiny warning about CPUs that will silently desync. 2013-12-16 22:41:52 -05:00
comex d619ccee21 Remove the flawed, unused attempt to manually emulate Gecko codes.
Parsing Gecko codes (in any manner) is much like parsing HTML with regex
- that w̷a̶y̸ l̵i̷e̴s̵ m̴̲a̵͈d̵̝n̵̙ę̵͎̞̼̙̼͔̞͖͎̝s̵̨̬̱͍͓͉̠̯̤͙̝s̷͍̲̲̭̼͍͎͖̤̭̘.  Luckily, with the embedded codehandler.bin,
the monstrosity may remain at only one implementation.  Anyway, removing
the inserted_asm_codes thing probably speeds up the interpreter a bit.
2013-12-16 22:27:13 -05:00
Tony Wasserka 07820aaa9e Software renderer: Add linear interpolation of fog range adjustment factors. 2013-12-16 18:42:46 +01:00
Ryan Houdek 2e1aa64958 [Android] Fix joysticks only capable of right/down movements. Also make it capable of using onscreen joystick even if controller 1 is bound. 2013-12-12 21:24:39 -06:00
Ryan Houdek d7be993889 Oops, I left a bit being set when it shouldn't have been. 2013-12-12 22:35:05 +00:00
Ryan Houdek 09680ccee6 Small cleanup in the EGL GLInterface. 2013-12-12 22:08:54 +00:00
Ryan Houdek 50df037bb5 [Android] Fix gamepad input. 2013-12-12 14:42:25 -06:00
Ryan Houdek f9ff0bc55d Have our OpenGL/ES context creation be less stupid. 2013-12-12 12:43:49 -06:00
Ryan Houdek 40b3534319 [Android] Remove the now unused texture loader on the JNI side of things. 2013-12-11 20:09:54 -06:00
Ryan Houdek 0e1e14b3a1 Fix Linux build. 2013-12-11 16:06:19 -06:00
Ryan Houdek eb3b933dd0 Remove all instances of OpenCL in the Dolphin Project. A brief history of OpenCL in Dolphin. OpenCL was originally added to the Dolphin codebase 1 month after it was released with OS X Snow Leopard in 2009. OpenCL was one of the largest group projects that Dolphin ever has had. The OpenCL texture decoder was originally aded with version 1.0 of the OpenCL spec; This version didn't have the capability of a OpenCL-OpenGL interop which would allow for uploading textures once and have it decoded directly to a OpenGL texure. This was to be worked out when the OpenCL 1.1 spec was released and allowed the interop. This work has never been done, and no one in the team is willing to work on it for various reasons. OpenCL has had the unreasonable expectation that it increases the performance of video games that require a large amount of EFB copies like NSMBW. In reality, enabling OpenCL just put the graphics card in a higher power mode which increased the game speed. This is due to the unfortunate effect of Dolphin tending to not push GPUs out of their lower frequency power savings modes. Thanks to everyone that had contributed to the OpenCL texture decoder. 2013-12-11 15:15:55 -06:00
Tony Wasserka c9d9081bf9 Use less brain damaged names for DLCache and TextureDecoder. 2013-12-11 20:35:12 +01:00
Lioncash e0aa674c72 Minor const-correctness for some functions in FifoPlayer and some AudioCommon headers. 2013-12-11 08:43:58 -05:00
comex 101bded6b3 Oops, don't use -lrt on Android either. 2013-12-10 16:35:44 -05:00
comex eaacf10f71 Fix an idiotic race condition when starting games in multiple Dolphin instances at the same time on Unix.
MemArena mmaps the emulated memory from a file in order to get the same
mapping at multiple addresses.  A file which, formerly, was located at a
static filename: it was unlinked after creation, but the open did not
use O_EXCL, so if two instances started up on the same system at just
the right time, they would get the same memory.  Naturally, this caused
extremely mysterious crashes, but only in Netplay, where the game is
automatically started when the client receives a broadcast from the
server, so races are actually quite likely.

And switch to shm_open, because it fits the bill better and avoids any
issues with using /tmp.
2013-12-10 16:20:52 -05:00
degasus 2d8515c0cf VideoCommon: remove outdated copy of OGL::VertexManager::vFlush 2013-12-09 23:49:09 +01:00
degasus 134c89ef98 OpenGL: disable shader cache when ShaderDebugging is enabled
fixes 6859
2013-12-09 16:45:20 +01:00
degasus 42619c1d2d Merge branch 'ogl-tex2d'
Conflicts:
	Source/Core/VideoBackends/OGL/Src/TextureConverter.cpp
2013-12-09 13:04:14 +01:00
degasus 687097d4bc OGL: use integer uniforms for efb2ram texture converter 2013-12-09 12:33:50 +01:00
Chanwoong Kim c405d92c41 fixed issue 6852. 2013-12-07 16:07:47 +09:00
Ryan Houdek 4867937355 Add Read16/Read8 to the CBlobBigEndianReader so the key check is reading 8bit from the correct location to determin which key to use. Also change check to == 1 as suggested in the IRC channel on first implementation. Potentially fixes 6852. 2013-12-06 20:40:12 -06:00
Ryan Houdek 14d9802ea4 Oops. Fix a typo in the DriverDetails change. 2013-12-06 12:18:20 -06:00
Ryan Houdek faf8792351 Support OS specific bugs in our DriverDetails. 2013-12-05 09:32:27 -06:00
degasus 2cbefa2905 PixelShaderManager: clear s_bViewPortChanged flag
This flag wasn't cleared at all, so we set our constants dirty every time...

This could fix some performance regressions because of revision 6798a4763e
2013-12-03 09:37:45 +01:00
degasus edc879ce48 OpenGL: fix crash in revision 95aeedec19
Real xfb didn't provide any read_stride, so there is a division by zero.

This commit calculates the correct read_stride for real_xfb, so there is also no hack for texture vs xfb needed.
2013-12-03 00:09:37 +01:00
Ryan Houdek 7bdd8191db Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-29 21:27:17 -06:00
Ryan Houdek 49eef423a8 [Android-overlay] Add the new overlay icons. Support configuring them. Disable hardfloat since it has issues since Dalvik doesn't understand passing floats due to ABI differences. 2013-11-29 18:37:33 -06:00
degasus 69137cff4c Merge X11+D3D FreeLook feature into DolphinWX
This removes the redundant code and also implements this feature for OSX and Wayland.
But so it's dropped for non-wx builds...

imo DolphinWX still isn't the best place for this, but now it's in the same file as all other hotkeys. Maybe they'll be moved to InputCommon sometimes at once ...
2013-11-29 06:09:54 +01:00
degasus 95aeedec19 OpenGL: readback efb2ram with different strides at once
This is done with a pixel buffer object. We still have to stall the GPU, but
we only do it once per efb2ram call.
As the cpu can't access the vram, it has to queue a memcpy for the gpu and
wait for the gpu to finish this copy. We did this for every cache line which
is just stupid. Now we copy the complete texture into a pbo and readback this
at once. So we don't have to wait for lots of round-trip-times.
2013-11-26 20:05:49 +01:00
degasus 1138c2e155 OpenGL: reset EFB after efb2ram FB initialization 2013-11-26 04:07:59 +01:00
Ryan Houdek db9c586356 Revert "jit: change our linking module to be able to handle arbitrary exit addresses"
This shouldn't cause issues, but does in Windows. Revert for now.
This reverts commit 1aa06b8fa4.
2013-11-25 16:56:04 -06:00
degasus 0b4cb2e15f OpenGL: split real xfb + efb2ram framebuffers 2013-11-25 22:27:11 +01:00
Ryan Houdek 7718c9959e [Android-overlay] Multiple physical gamepad support. 2013-11-25 10:58:05 -06:00
degasus 11973d31c1 TextureConverter: remove WriteIncrementSampleX 2013-11-25 17:11:41 +01:00
Ryan Houdek 421fd0e16e Fix OpenGL ES 3. 2013-11-25 15:36:24 +00:00
degasus 64a1969e36 TextureConverter: fix scoping 2013-11-25 16:34:08 +01:00
degasus 2a2f2fd4eb TextureConvertion: merge Write*Swizzler 2013-11-25 16:19:08 +01:00
Ryan Houdek 9dbb262aab Fix for OpenGL ES 3. 2013-11-25 15:11:06 +00:00
degasus 6750a81972 TextureConverter: Use integer math for swizzling
also move int(efb_coord) -> float(ogl_fb_coord) into WriteSampleColor
2013-11-25 15:49:13 +01:00
degasus bcb31b09d3 TextureConverter: Use gl_FragCoord instead of uv0 2013-11-25 15:01:18 +01:00
degasus a289e0604f TextureConverter: remove D3D9 foo
This file is in VideoCommon, but as D3D11 doesn't use it and D3D9 is dropped, it's time to clean up.
2013-11-25 14:53:44 +01:00
degasus 454e1dd9a2 OpenGL: attributeless rendering for efb2ram
This wasn't as easy as we now have to cache also the uniform locations.
2013-11-25 13:03:35 +01:00
degasus 6ed3f82aff OpenGL: attributeless rendering for postprocessing 2013-11-25 12:36:17 +01:00
degasus 38fe05b1df OpenGL: attributeless rendering in emulate format changes
only cleanup
2013-11-25 12:27:54 +01:00
degasus dd0b74ac15 OpenGL: cleanup efb2tex
Also use attributeless rendering. But we need the src rect, so set it by uniform.
If there is a slowdown here (I doubt as the driver likely has a fast path to update uniforms)
then we should check if this rect changes and only then update the uniform.
2013-11-25 12:19:34 +01:00
degasus b93756df87 OpenGL: drop texture_rect hack
Everything is moved to texture2d (but often in a hacky way), so we don't need this global hack any more.
2013-11-25 09:05:50 +01:00
degasus afcf0e65d1 OpenGL: fix emulate format changes for texture2d 2013-11-25 08:59:04 +01:00
degasus 146e435009 OpenGL: fix efb2ram for texture2D
This was hacky as hell. Our efb2ram shader generator is just freaked out.
2013-11-25 08:56:01 +01:00
degasus b904d56036 OpenGL: fix efb2tex for texture2d 2013-11-25 08:43:55 +01:00
degasus 1a3e790d9e OpenGL: fix xfb for texture2d 2013-11-25 08:38:00 +01:00
degasus e8f23af10b OpenGL: always use texture2d as efb 2013-11-25 08:32:41 +01:00
degasus 230e12ae8c OpenGL: also remove VAO from xfb convertion
We use attributeless rendering, so officially we have to bind _any_ VAO.
As the state of this VAO doesn't matter, we don't have to switch it.

Also fix an AMD issue as they don't like to render from an empty VAO.
2013-11-25 07:38:20 +01:00
Ryan Houdek da3eef1019 Fix the issue with COLOROUT not being defined anymore. Fix a issue where Mali shader compiler is idiotic in finding an overload for the mix function. 2013-11-25 00:06:29 +00:00
Ryan Houdek cb3dd6b94b Merge branch 'master' into android-new-control-input-overlay 2013-11-24 17:10:24 -06:00
Ryan Houdek 2c09e8fc5a [Android] Enable hard-float support. Requires Android NDK r9b. 2013-11-24 16:43:53 -06:00
Ryan Houdek ba18f38e70 Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Android/res/values-ja/strings.xml
	Source/Android/res/values/strings.xml
	Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java
	Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
	Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
	Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
	Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-24 16:12:00 -06:00
Ryan Houdek f292819ff5 [Android] Due to recent changes in code breaking Tegra 4 support, and also the upcoming code which will be breaking GLES2 support entirely. Taking the initiative to drop the remaining support code from the codebase in preparation for the upcoming changes. For a look at how Dolphin on Tegra 4 looked like prior and would not have been able to be fixed at all due to Tegra 4 not supporting the precision we need in our shaders; Look at this Youtube video http://youtu.be/Ga7Jc_Ote7U 2013-11-24 15:49:23 -06:00
Ryan Houdek f6f2b1fc60 [Android-overlay] Support multiple gamepads with touch screen controls. 2013-11-24 15:04:53 -06:00
degasus d410fe7c96 OpenGL: cleanup yuv2rgb (real xfb) workflow
We neither scale nor render from subimages, so we by using gl_Position, we don't have to generate _any_ vertices for this converting.

Also remove the glTexSubImage optimization as every driver does it when needed. But there are some workflows (eg on APU) where it's better to realloc this texture instead of a second memcpy or stall.
2013-11-24 15:56:50 +01:00
Scott Mansell 12741f6406 Add comments for anybody attempting accuracy improvements in the future. 2013-11-25 01:30:53 +13:00
Scott Mansell b5bd2ba847 OpenGL: Enable filtering for EFB to Real XFB copies.
This fixes Real XFB Jaggies in OpenGL on games which use yscaling, such
as most PAL games.

This fixes the last of the "Real XFB Macroblocking" issues for opengl,
see issue #6503
2013-11-25 01:11:42 +13:00
Ryan Houdek 6f73162df4 [ARM] Implement the Acid test in the JIT core. This test is currently broken in JIT64 since it uses cr instead of cr_fast. 2013-11-24 10:51:07 +00:00
Scott Mansell e6b35642df Fix Desktop GLSL versions in the recent changes.
Seems OpenGL ES 3 Requires you must have an lod argument, while Desktop
versions require you must not have a lod argument if you are using a
Sampler2DRect (which doesn't do Mipmapping).
2013-11-24 22:48:10 +13:00
Ryan Houdek 531f840720 Fix OpenGL ES 3 in the recent changes. texelFetch doesn't require the lod argument in desktop GLSL versions, but in GLSL ES 3 it is a required argument. 2013-11-24 07:45:42 +00:00
degasus 994426b3dc Opengl: fix real XFB sample positions
(0,0) and (1,0) aren't accurate xfb sample positions. This fixes the image shift to the left and some blocking on higher IR.
2013-11-24 05:39:40 +01:00
Scott Mansell eef2cddfd7 Opengl: Fix opengl realxfb "macroblocking"/bluring issue.
YUYV textures should NEVER be interpolated/filtered in RGB colour space.
Use TexelFetch to always fetch an actual texture sample.

issue 6503
2013-11-24 17:15:11 +13:00
degasus 09f4439d0c VideoCommon: reorder cbufid in orderer. We've used once two times 2013-11-24 04:43:54 +01:00