Commit Graph

3652 Commits

Author SHA1 Message Date
Rodolfo Bogado ba6a67a5f1 Merge branch 'master' of https://code.google.com/p/dolphin-emu into dx9-ssaa-fix 2013-08-15 13:49:53 -03:00
Jasper St. Pierre 863fb9f95b D3DBase: Fall back to creating a normal context when debug fails
This can happen if the user does not have an up to date version of
the DirectX SDK, as Microsoft intentionally broke it and requires
users to install the W8 SDK.
2013-08-15 10:19:14 -04:00
Jasper St. Pierre 605e3e8f65 Revert "D3DBase: Don't pass the DEBUG flag when creating a device"
This reverts commit 0e6b5bc5c8.
2013-08-15 10:07:52 -04:00
Jack Frost d16f089e88 properly clean up PerfQuery on OGL 2013-08-15 13:52:31 +02:00
Rodolfo Bogado 979718484f Merge branch 'master' of https://code.google.com/p/dolphin-emu into dx9-ssaa-fix 2013-08-15 00:21:28 -03:00
Jasper St. Pierre 0e6b5bc5c8 D3DBase: Don't pass the DEBUG flag when creating a device
In order for this flag to not fail, you either need a Windows 8 machine
or upgrade to the paid version of Visual Studio 2012. Not gonna happen.
2013-08-14 18:04:44 -04:00
Pierre Bourdon e60e50a198 Respect ShouldEmulate() in PerfQuery implementations for DX11 and OGL (ugly implem, but the current state of VideoCommon does not allow much better) 2013-08-14 23:18:00 +02:00
Rodolfo Bogado 0ec92f986b small correction, we cannot use dual source blending if separate alpha function is not supported 2013-08-13 17:31:50 -03:00
Rodolfo Bogado 9e0fc8b42d Merge branch 'master' of https://code.google.com/p/dolphin-emu into dx9-ssaa-fix 2013-08-12 21:32:25 -03:00
NeoBrainX 057551ada7 Software Renderer: Show each backend's display name instead of its short name in the config dialog. 2013-08-12 18:30:42 +02:00
Rodolfo Bogado f4000b6b42 Add the ability to force Dual Source Blending in the configuration file.
this way everyone can check if their hardware support this feature in dx9
2013-08-11 18:48:31 -03:00
Rodolfo Bogado a1d8d8ce87 fix for 4x super sampling AA.
make the distance of the samples from the center smaller to minimize errors.
2013-08-11 12:26:20 -03:00
Rodolfo Bogado 3066d8471e Mark the Direct3D9 backend deprecated.
sadly one important functionality is impossible to implement correctly in this backend(zcomplock).
Still, I will  try to fix as many issues as i can.
2013-08-11 11:55:13 -03:00
NeoBrainX eed36cbf78 D3D11: Implement zcomploc for hardware supporting D3D 11.0. 2013-08-09 22:20:35 +02:00
degasus dc23a076be disable emulate format changes on glsl120
The current shader uses bit operations which aren't supported by glsl120.
A workaround with round + frac + lots of additions would be possible, but unreadable.
So I think it isn't worth

But this fixes the annoying shader compilation error message
2013-08-06 10:34:30 +02:00
Ryan Houdek 7d187dc597 Change a glClear in the OpenGL renderer to improve performance on Mali chips. 2013-08-02 23:19:16 +00:00
Ryan Houdek 4aba0135e1 [Android] Qualcomm Swap hack isn't needed anymore due to the new StreamBuffer type. 2013-07-26 21:49:48 -05:00
Ryan Houdek bab2534c36 Didn't mean to disable hacked buffer. 2013-07-27 00:51:26 +00:00
Ryan Houdek 8db9b61be6 Enable the shader cache on GLES3 now that the shaders compile fine on Mali and Adreno. 2013-07-27 00:42:20 +00:00
Ryan Houdek f786f0f0c6 Remove the broken buffers bug on Mali hardware since it isn't needed anymore using the glBufferData route in the StreamBuffer class. 2013-07-27 00:41:38 +00:00
Ryan Houdek 319e29e7d0 Add the new glBufferData stream buffer type to the streambuffer class which is hugely more efficient on Mali drivers. 2013-07-27 00:40:16 +00:00
Ryan Houdek a9ebd7d3e5 Fix Android Build. 2013-07-26 15:02:03 +00:00
Ryan Houdek 6887a0c341 Change from using glDrawElements/glDrawElementsBaseVertex to glDrawRangeElements/glDrawRangeElementsBaseVertex. On Mali, this reduces a internal function usage from 8% to off the charts. 2013-07-26 14:51:04 +00:00
Ryan Houdek 3e697b363e Fix an issue where TextureConverter.cpp was creating a renderbuffer with the wrong format. Also a few minor shader issues where they were using integers in place of floats. 2013-07-25 18:39:00 +00:00
Ryan Houdek 672871b3be Add in the Mali driver bug so we can call glFlush every flush. It seemingly is quicker calling flush every time instead of every n times. 2013-07-25 05:44:20 +00:00
NeoBrainX 9795d10dcb OGL/SamplerCache: Treat lod_bias as a signed integer. 2013-07-22 18:24:56 +00:00
degasus c6ae08fc39 implement emulate efb format changes on ogl backend 2013-07-22 15:41:10 +02:00
degasus 15b8ac64ef Implement zcomploc on OpenGL4.2+ 2013-07-22 12:02:16 +02:00
Ryan Houdek 737df2a68c Patch from Degasus that removes the last of the the GL_TEXTURE_RECTANGLE usages. This is needed to have GLES3 support. 2013-07-13 17:24:23 -05:00
Lioncash 3de5b1bed9 Fix vendor retrieval for Tegra in VideoOGL. 2013-07-02 21:58:09 -04:00
degasus 72d49e05a7 fix opengl debug build on win32 2013-06-27 10:34:53 +02:00
degasus 99d32e756f only provide ES2_compatibility workaround for non gles devices 2013-06-26 13:14:46 +02:00
degasus 21ca344a21 provide GL_ARB_ES2_compatibility workaround
ES2 is in ogl core since 4.1, but not all drivers support it
2013-06-25 18:14:41 +02:00
degasus fb310f2247 Revert "Create our OGL context on the same thread in the OpenGL backend. Same issue with Qualcomm not working with threading correctly."
This reverts commit 2697b8c04f.

The context creation may be moved to Video_Prepare, but the window creation isn't allowed to.
Eg we set the window title or read the mouse position, both need the window.
Also the readback of the window size didn't worked any more.
2013-06-19 09:17:33 +02:00
Ryan Houdek 02cbcc8ec4 [Android] When running OpenGL ES 3 backend, we've got to switch the screen coordinates or bad things happen. Adds a Driver bug that causes swap every single flush. Hard requirement currently to see /anything/ on screen. 2013-06-18 12:44:06 -05:00
Ryan Houdek 9c32c923bc Remove saturate function define in GLSL since we use clamp everywhere instead. Change the function defines over to just regular defines since Qualcomm can't handle function defines at all it seems. 2013-06-18 12:42:14 -05:00
Ryan Houdek 6143594db6 [Android] Qualcomm glGetShaderInfoLog returns a max of 1024 bytes(tested) for the log, and glGetShaderiv with GL_INFO_LOG_LENGTH /always/ returns 0 on compile failure. 2013-06-18 10:24:36 -05:00
Lioncash fbb82ccab3 Whoops, look like the previous commit was also the case with VideoDX9 2013-06-18 10:48:16 -04:00
Lioncash f59f059fbf Fix a char buffer destination size in Render.cpp for VideoDX11. 2013-06-18 10:45:57 -04:00
Ryan Houdek 7df8a9cae8 Partial revert of 0247b2a97a. I'll add a work around for Qualcomm in a bit. Qualcomm shader compiler failing was only due to floating suffixes not whole function defines. Qualcomm video driver devs seem to have a good response time when it comes to OpenGL ES 3 issues. 2013-06-18 07:52:36 -05:00
NeoBrainX ca22872dae Merge 'master' into shader-uids-awesome.
Conflicts:
	Source/Core/VideoCommon/Src/LightingShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.h
	Source/Core/VideoCommon/Src/VertexShaderGen.cpp
2013-06-17 12:05:47 +02:00
Armada 9594cac42c Build fix: Android NDK doesn't support any locale switching.
Also, Mac OS X doesn't support DX9.
2013-06-16 14:51:38 +02:00
Armada fc7099a905 Set the locale per-thread instead of globally when generating shaders. Add cross-compatible versions of newlocale, uselocale and freelocale.
This commit fixes a rare race condition when generating shaders because setlocale is global.
2013-06-16 12:33:13 +02:00
Ryan Houdek ab6151a5ba Build Fix 2x 2013-06-11 08:41:30 -05:00
Ryan Houdek 9df3dbe13c Build Fix 2013-06-11 08:38:45 -05:00
Ryan Houdek 703a51e4c0 [Android] Start of *working* GLES3 support. Needs to be able to compile in Windows still. 2013-06-11 08:33:56 -05:00
Ryan Houdek 2697b8c04f Create our OGL context on the same thread in the OpenGL backend. Same issue with Qualcomm not working with threading correctly. 2013-05-26 22:30:38 -05:00
Ryan Houdek 61aa272bfb [Android] Qualcomm drivers require that the EGL context is created on the same thread that the OpenGL commands are run on. Crappy driver limitation since eglMakeCurrent should work to let it be on a different thread. 2013-05-25 22:20:34 -05:00
degasus a51d6a6ddd add new statistics for gpu buffer streaming 2013-05-23 21:07:01 +02:00
Ryan Houdek 39c9516197 [Android] Qualcomm driver has a bug where it returns an invalid length for GL_INFO_LOG_LENGTH with glGetShaderiv. Qualcomm drivers seem to max out at ~512bytes returned from glGetShaderInfoLog so this is a reasonable max. 2013-05-17 21:13:02 -05:00
Ryan Houdek 0247b2a97a [Android] More GLES3 things. Disable Framedumping and MSAA rendering. Remove the HLSL->GLSL shader defines since Qualcomm doesn't support this in their shader compiler. Now they get chosen in our shader generator instead. 2013-05-06 06:43:04 -05:00
Ryan Houdek 5ac58a34ea [Android] Beginning of GLES3 support. 2013-05-05 23:37:02 -05:00
Ryan Houdek cb5b9c0327 [Android] Add GLSLES3 to the GLSL version enums. Add in the version and precision qualifier to the shader header. 2013-05-05 23:37:02 -05:00
Ryan Houdek 028a1a4971 GL_DEPTH_COMPONENT can't have type of GL_UNSIGNED_BYTE with glTexImage2D. Qualcomm drivers get hit with this but all else don't care. 2013-05-05 23:37:02 -05:00
Ryan Houdek 09def3ed3f [Android] Add in a compiling option for GLES3 2013-05-05 23:37:01 -05:00
degasus a295a3eb56 ogl: report shader compilation issues in the same way as other backends 2013-05-04 23:30:13 +02:00
skidau 8bcd9a74c8 Clear the texture cache when a new dol is loaded via ES_LAUNCH. Fixes the black screen in The House of the Dead 2.
Abbreviated some of the information in the window titlebar.
2013-05-01 23:51:43 +10:00
NeoBrainX 02afec5076 Polish shader uid checking. 2013-04-29 21:00:39 +02:00
NeoBrainX 5e6b712651 Merge 'master' into shader-uids-awesome.
Conflicts:
	Source/Core/VideoCommon/Src/BPMemory.h
	Source/Core/VideoCommon/Src/LightingShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.h
	Source/Core/VideoCommon/Src/PixelShaderManager.cpp
	Source/Core/VideoCommon/Src/VertexShaderGen.cpp
	Source/Core/VideoCommon/Src/VertexShaderGen.h
2013-04-25 14:05:54 +02:00
degasus 673d256f45 glew1.8 debug build fix 2013-04-24 16:24:55 +02:00
degasus 4a48485482 Revert "Revert "Fix performance issues on certain legacy graphics hardware that isn't capable of copying an integer.""
This reverts commit 8b7141d3de.

GLSL120 can't handle integer attributes :-(
2013-04-24 03:03:52 +02:00
lioncash d244bca1f5 Fix a bunch of random typos in comments and logging.
Also update the comment headers for two functions in GCMemcard.cpp.
2013-04-19 09:21:45 -04:00
Lioncash e78d99e5c1 New license header introduced to all Video based projects. 2013-04-17 23:29:41 -04:00
lioncash 8bb845e646 Buildfix for the last commit. 2013-04-15 16:40:48 -04:00
lioncash ef85b9af45 Update the license file text (change SVN to Git) in all projects except Core since I was told a merge was happening soon. So for the sake of the merge going smoothly, I'll fix that when I remove the tab/space mismatches from the Core project.
Also, some tab/space mismatches removed from VideoOGL, and some places I missed in VideoDX[number] projects.

Now, the Core is literally the only project with tab/space mismatches (on a large scale).
2013-04-15 16:28:55 -04:00
Ryan Houdek 7772f0d071 Merge branch 'Android-trash' since it is no longer quite so trashy. 2013-04-14 23:36:00 -05:00
Ryan Houdek 37b67971e7 Merge remote-tracking branch 'origin/master' into Android-trash
Conflicts:
	Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp
2013-04-14 20:43:42 -05:00
Ryan Houdek bde7ea00ef Removes the Java ButtonManager for one in the C++ source so the OSD class can call in to it each frame for drawing the buttons. Copy our assets to the dolphin-emu directory for now. Remove NativeRenderer, ButtonManager, and Button Java classes since they aren't used anymore. Buttons A, B, and Start all work and are drawn on screen now. Button input on Android is still a bit hacky, needs a proper controller interface still. Android specific button drawing code is still hanging out in SWRenderer.cpp 2013-04-14 20:39:56 -05:00
Lioncash 7ab0cca645 Clean up most (99.99%) of the tab/space mismatches in the VideoSoftware project.
Got rid of trailing spaces that were unnecessary too.

Also update the license header for this project. We don't use SVN anymore.
2013-04-13 23:54:02 -04:00
Ryan Houdek 605bbf5ca8 Merge remote-tracking branch 'origin/master' into Android-trash 2013-04-13 00:58:37 -05:00
Ryan Houdek 39a7096711 Extend our OSD class to support callbacks on init, onframe, and shutdown. 2013-04-13 00:48:53 -05:00
degasus addd3926d9 ogl: remove GL_TRIANGLE_FAN on utils rendering
wtf have I done? fans aren't supported well on hardware
2013-04-11 16:27:32 +02:00
degasus 7e630ba920 Merge branch 'primitive_restart' 2013-04-11 14:01:58 +02:00
degasus 3c87512180 ogl: fix single core crash
osx is missing, sorry but I'm too stupid for objective-c
2013-04-11 03:32:07 +02:00
degasus 26b428539a small cleanup suggested by neobrain 2013-04-10 14:12:35 +02:00
degasus b9ba82ec03 proper ogl primitive restart code 2013-04-10 12:58:52 +02:00
NeoBrainX ec08914905 Move Shader UID mismatch checking to VideoCommon. 2013-04-10 12:54:22 +02:00
Jordan Woyak 385d8e2b15 ChunkFile has allowed me to accidentally "Do" a non-POD for the last time! 2013-04-09 19:02:22 -05:00
degasus b0108631f6 use templates for primitive restart 2013-04-08 19:39:43 +02:00
degasus cf98ef8cf3 enable primitive restart on dx11 2013-04-08 16:34:47 +02:00
degasus 702198f39b Merge branch 'master' into primitive_restart
Conflicts:
	Source/Core/VideoCommon/Src/VideoConfig.h
	Source/Plugins/Plugin_VideoDX9/Src/main.cpp
	Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
2013-04-08 15:57:51 +02:00
degasus 4c40e70b8a ogl: support glsl120 2013-04-08 14:50:58 +02:00
degasus 3897e1959e ogl: one framebuffer per efb2tex texture
suggestion from nvidia/valve. let's see if it helps
2013-04-08 14:36:58 +02:00
Lioncash 195336021f Fix a few typos in the comments/logging in VideoDX9, VideoCommon, and VideoSoftware projects.
See Render.cpp, PixelShaderGen.cpp, and PixelShaderManager.cpp for most of the changes.

See VertexShaderManager.cpp for a logging typo fix.

See SWRenderer.cpp for a small typo fix for a message that gets swprintf'd in DrawDebugText.

See SWVertexLoader.cpp for a typo fix of an assert message.

Should slightly improve the readability of some of those files.
2013-04-07 17:11:29 -04:00
NeoBrainX 5f32febcf3 Apply re07a91930df0 to the software renderer. 2013-04-07 16:54:22 +02:00
degasus 3e8ba3f3e8 fix msaa detection 2013-04-05 07:08:32 +02:00
degasus a2ebb2b324 ogl: remove "Missing Extension" from osd
I think it was the best place, but I can't see "this issue is because of ..." any more
2013-04-04 18:55:37 +02:00
Rodolfo Bogado d032f3fd79 Fix for the hang after close caused by my previews perf queries commit.
Sorry for that.
fix issue 6205
2013-04-04 12:53:06 -03:00
degasus e11f5630b1 OGL: use GLEW_ARB_debug_output in debug builds
should also be used in normal build, but as our ubo "workaround" throws too much errors, it's disabled atm
2013-04-04 17:37:16 +02:00
lioncash a7c05dc922 Remove an unused variable in VideoConfig.cpp and SWVideoConfig.cpp 2013-04-04 09:32:28 -04:00
Rodolfo Bogado 0c4713a152 ups missing file for my last commit sorry 2013-04-03 19:56:35 -03:00
Rodolfo Bogado c4bc20b4d9 Adds support for PE performance metrics in the D3D9 backend 2013-04-03 19:53:48 -03:00
Ryan Houdek 1dd1ebb8bd Fix ARM building. 2013-04-03 05:20:41 +00:00
Glenn Rice 6371a6f15d Fix some more strings for translation, and update the catalog. 2013-04-02 17:44:27 -05:00
Rodolfo Bogado a562c7c1f6 As requested apply the same changes made by rev 6958822f19 to the D3D9 backend.
handle v-sync changed while the emulation is running.
thanks to neobrain for pointing the missing functionality.
2013-04-01 14:23:48 -03:00
Lioncash 58159a1693 Some more logging typos and clarifications. Missed these in my last commit.
This commit mainly elaborates on some messages a little more. Also fixes some typos that slipped through the last commit.

A large change in text can be seen in EXI_DeviceMemoryCard.cpp. I added more info as to why a write to a memory card may fail. (This actually was a reason I was unable to write to a memcard recently).

Elaborations can be seen in WGL.cpp

I did change some comments in some files that I was correcting logging messages in, however this is only if I spot a typo or if an abbreviation is lower-cased. Even in that case, the amount of changes done to comments is very minimal.
2013-04-01 00:10:54 -04:00
Rodolfo Bogado 5ae8bec2fd Disable dual source blend until a valid support test is found 2013-03-31 21:15:58 -03:00
Lioncash f432d6038e Fix some typos and correct some capitalizations in the log messages.
Makes the logging look more orderly and less spammy when spitting out things.
2013-03-31 19:13:30 -04:00
Rodolfo Bogado 45651098f6 Use a brute force approach to test for Dual source blend support.
Sorry for a direct commit to the main branch but i need fast feedback, and i don't want to leave problematic code in the main branch for a long time.
if this approach does not work for the drivers with problems will transform dual source blend to an option in the D3D9 backend.
I appreciate the help of the people that tested my last commit and thanks to neobrain for pointing this solution.
2013-03-31 20:02:13 -03:00
Ryan Houdek 31500f2522 Fix Intel Ironlake since it doesn't support version 120 of GLSL. I don't have Ironlake so it is hard to test. Dropping the shaders to version 120 worked here for me, ATI may be giving me some slack though. 2013-03-30 23:27:24 -05:00