Commit Graph

3605 Commits

Author SHA1 Message Date
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
degasus 6958822f19 only apply vsync on changes
nvidia over bumblebee slows down on changes
2013-03-30 22:17:39 +01:00
NeoBrainX 2afd892e46 ShaderGen: More interface cleanups. Less wtfs :) 2013-03-29 22:24:49 +01:00
NeoBrainX 3c02f227db PixelShaderManager: Disable constant cache (won't work in the non-UBO path of the opengl backend).
ShaderGen: Replace typeid usage with more general code.
2013-03-29 20:35:31 +01:00
NeoBrainX b2517c0308 More build fixes. 2013-03-29 15:08:00 +01:00
NeoBrainX 4e9c3db545 OSX build fix. 2013-03-29 15:03:16 +01:00
NeoBrainX 41c4108ce6 OpenGL: Reimplement shader uid debugging. 2013-03-29 14:56:01 +01:00
degasus ca8554e7d1 first try of primitive restart index generator
Convert all quads+triangles into trangle_strip and uses primitive restart to split them.
Speed up triangle_strip, but slows down all others primitive formats.
Only implemented in ogl.
2013-03-29 14:27:33 +01:00
Rodolfo Bogado c743e75d92 fixes for my last commit 2013-03-29 00:41:36 -03:00
Rodolfo Bogado 40d919b352 Implement dual source blending to avoid unneeded alpha pass.
this implementation does not work in windows xp (sorry no support for dual source blending there).
this should improve speed on older hardware or in newer hardware using super sampling.
disable partial fix for 4x supersampling as I'm interested in knowing the original issue with the implementation to fix it correctly.
remove the deprecation label from the plugin while I'm working on it.
2013-03-28 20:08:51 -03:00
NeoBrainX fb28349056 VideoSoftware: Fail less at clamping. 2013-03-28 23:34:14 +01:00
NeoBrainX c10d9ea87a Clean up blending code a bit. 2013-03-28 23:00:19 +01:00
Rodolfo Bogado 8a33d49de2 buildfix for my last commit on Mac OSX 2013-03-28 18:32:59 -03:00
Rodolfo Bogado 246907d371 Small Blending logic fix for opengl backend 2013-03-28 18:04:33 -03:00
degasus 53377425d1 OGL: enable buffersubdata in detection 2013-03-28 12:18:39 +01:00
NeoBrainX 45c70be83f Fix Windows build, try 5. 2013-03-27 00:20:25 +01:00
NeoBrainX f8d2936840 Fix Windows build, try 3. 2013-03-27 00:13:23 +01:00
NeoBrainX 98362e5934 Fix Windows build, try 2. 2013-03-26 23:44:41 +01:00
NeoBrainX 24ab51f9f6 Fix Windows build, try 1. 2013-03-26 23:35:14 +01:00
NeoBrainX 3253603ae7 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/PixelShaderManager.cpp
	Source/Core/VideoCommon/Src/VertexShaderGen.cpp
	Source/Core/VideoCommon/Src/VertexShaderGen.h
	Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.h
	Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.h
2013-03-26 22:21:19 +01:00
lioncash ae62af8a93 Array overrun fixed in VertexShaderCache for the DX11 plugin.
vs_constant_offset_table only has a size of 239. It was originally iterating up to element 241.
2013-03-26 09:19:19 -04:00
NeoBrainX 0994a5828d VideoSoftware: Improve fog range adjustment by using less magic and more comments. 2013-03-26 00:57:45 +01:00
degasus 3ab4e35582 revert RasterFont for VideoSoftware
Backends shouldn't depend on each other. Here RasterFont depends on ProgramShaderCache, which itself depends on global config again ...
2013-03-26 00:05:46 +01:00
degasus e5841f233a ogl: fix virtual xfb 2013-03-25 23:23:32 +01:00
NeoBrainX beb083721a Windows build fix from web interface... 2013-03-25 21:43:32 +00:00
NeoBrainX ae146e8bc7 VideoSoftware: Implement fog range adjustment, fixing issue 6147. 2013-03-25 21:13:31 +01:00
degasus d4fadf4b6f implement 4xSSAA for OGL
I don't think it's needed, but its requested often
2013-03-25 15:45:10 +01:00
degasus 3d5e0a6d3d move ogl-only settings into backend 2013-03-25 15:14:24 +01:00
Ryan Houdek 7034c79ab9 Big commit. Fix running the APK, I had missed a view in the manifest. Clean up the Android EGL context creation to fit more in line with how Dolphin works. This breaks input at the moment as well. Change the memarena from 768MB to 64MB to allow 1GB phones to potentially run it. Rename EGL_X11 back to EGL since this merge brings in some of soreau's changes to more easily allow different platforms like Wayland and Android. Not quite all of the code because some needs to be cleaned up still. 2013-03-24 21:06:34 -05:00
NeoBrainX bb3ce1f8d3 Mark the Direct3D9 backend deprecated. 2013-03-23 23:53:19 +01:00
Ryan Houdek ff61dc3840 Switch to using bitfields in the streambuffer class so we can exclude buggy streambuffer types. This disables pinned memory on ATI for GL_ELEMENT_ARRAY_BUFFER because it seems to be buggy. This fixes ATI for me. 2013-03-23 15:37:01 -05:00
Ryan Houdek 086252380d Had this sitting around for a while to fix nogui. 2013-03-23 14:57:55 -05:00
degasus 04943cb852 more restrict disable of pinned memory, disable ubo for intel/mesa-9.1.1 2013-03-21 09:26:32 +01:00
Ryan Houdek d11679a06e Android mega commit of trash. 2013-03-19 21:53:09 -05:00
degasus 7514b41966 GLSL: fix msaa egdes
MSAA is a optimiztion to execute the fragment shader just once per pixel instead per sample.
It sounds great, but has a big issue: At edges where the center isn't in the polygon, the
fragment would still be executed, but still with the center of the pixel as position.
So if some calculations aren't allowed outside the polygon, the result would be invalid.

But the nice one: we can give a hint to each input to be choosen from a valid pixel,
so now every pixel will be calculated with valid source.
2013-03-19 13:50:43 +01:00
Rachel Bryk 7c2c4662a7 Disable Vsync while holding tab to disable the frame limit, and allow toggling vsync while emulation is running in OGL.
D3D9 still doesn't support changing vsync while emulation is running.

Fixes issue 6111.
2013-03-18 20:42:18 -04:00
Ryan Houdek 12f5f102c7 Set GLES Tex2D function to texture2D, texture is only available in GLES3. Fix some tabs in the config file. 2013-03-18 07:50:52 +00:00
degasus 234604e067 GLSL: also define pinned_memory in renderer.cpp 2013-03-17 19:03:23 +01:00
degasus 106d7c37e8 GLSL: store and use exact ubo sizes 2013-03-17 16:49:42 +01:00
degasus f480697b9b remove some ogl error
but it doesn't resolve any issue
2013-03-17 12:46:30 +01:00
degasus 7597b8b8d5 fix software backend
ogl rasterfont sets vao and vbo, but both aren't used on software backend
2013-03-17 12:37:37 +01:00
degasus 2312a8d9d5 GLSL: don't apply unsupported msaa settings 2013-03-17 10:44:57 +01:00
degasus 4a8ab0fafa disable pinned memory for fglrx 2013-03-17 10:06:16 +01:00
Jordan Woyak 98fa5006fd Fix some warnings. 2013-03-16 18:53:34 -05:00
degasus 4a929f85b6 GLSL: fix transparency issues on dual source blend. fix issue 6104 2013-03-17 00:36:13 +01:00
degasus c7d75ee437 GLSL: explicitly check for gl errors for pinned memory 2013-03-16 10:08:46 +01:00
Ryan Houdek 363d0be9f9 Derp. No Windows to test compile on. 2013-03-15 11:29:12 -05:00
Ryan Houdek 8c1091a21f Merge branch 'master' into GLSL-master
Conflicts:
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp
2013-03-15 11:19:52 -05:00