Commit Graph

1943 Commits

Author SHA1 Message Date
Ryan Houdek 83a79c28ca Continuation of the previous commit. I missed a integer. 2013-07-21 11:27:26 +00:00
Ryan Houdek 6194234a54 Fix a issue in the texture conversion shaders that was multiplying an integer with a float. 2013-07-21 11:17:21 +00:00
Ryan Houdek 7d6b36bf73 Fix most ARM warnings 2013-07-05 19:56:15 -05:00
NeoBrainX 1f92ccc228 ShaderGen: Use u8 as uid storage base type. Fixes an off-by-one error introduced in revision bdc28106ee that caused some lighting issues. 2013-07-02 14:48:08 +02:00
NeoBrainX c34c82e7ae VertexShaderGen: Fix a potential bug where vertex shader uids don't change when
pixel lighting is toggled.

Same as revision f524312fd1 but done properly (why is our shader gen code this dumb?).
2013-06-30 14:27:04 +02:00
NeoBrainX b8b5427ba4 VertexShaderGen: Fix a dumb regression from revision f524312fd1. 2013-06-30 11:36:45 +00:00
NeoBrainX eb153cfded PixelShaderGen: Fix a small early-ztest related bug. 2013-06-29 23:14:08 +02:00
NeoBrainX 99301bd158 PixelShaderGen: Store early_ztest as part of shader uid. 2013-06-29 23:01:42 +02:00
NeoBrainX f524312fd1 VertexShaderGen: Fix a potential bug where vertex shader uids don't change when pixel lighting is toggled. 2013-06-29 23:01:42 +02:00
NeoBrainX e3c0a39d5d Merge branch 'shader-uids-awesome-after-hours'. 2013-06-28 17:45:19 +02:00
NeoBrainX 166a9c5637 Finishing touches. 2013-06-28 17:43:53 +02:00
NeoBrainX ba310ce096 PixelShaderManager: Revert code introduced mainly in revision 0fdeb81038.
The shader constant usage profile functionality is still buggy and the code using it wasn't ever meant to be merged to master.
2013-06-25 13:37:38 +02:00
NeoBrainX 597a6b34cb Compactify VertexShader uid struct. 2013-06-23 19:29:02 +02:00
degasus a2e132dd4b small index generator optimiztions
- rewrite loops to not use divisions and multiplications
- remove warnings as the current implementations seems to be correct (ignore additional vertices)
2013-06-23 14:38:25 +02:00
NeoBrainX bdc28106ee Optimize shader uid checks by checking the number of uid values which are actually used. 2013-06-22 21:47:22 +02:00
NeoBrainX 16ada5fa3d Compactify generated UID generator assembly and generally cleanup code by storing tev stage hash values in a struct. 2013-06-22 21:47:22 +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
NeoBrainX c4eb659fec BPMemory: Assign a more descriptive name to a field in the genmode register. 2013-06-18 17:25:16 +02: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
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
degasus c57a90c5b5 don't define clipPos twice
fix issue 6378
2013-06-17 23:24:54 +02:00
NeoBrainX 8816369144 PixelShaderGen: Add some TODOs.
Totally the perfect commit message for a final commit before merging :p
2013-06-17 13:17:25 +02:00
NeoBrainX f724b47f45 PixelShaderGen: Fix more critical issues, some of which are regressions of revision 32b78a85. 2013-06-17 13:08:38 +02:00
NeoBrainX 2b2ca5260f PixelShaderGen: Fixed some bugs, removed unused shader uid fields. 2013-06-17 13:03:38 +02:00
NeoBrainX 7a01ceba73 PixelShaderGen: Fix various merge conflicts and a critical regression from revision 32b78a85. 2013-06-17 12:51:57 +02:00
NeoBrainX c505260ec1 Fix some merge conflicts. 2013-06-17 12:29:47 +02: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
NeoBrainX f0ea525d3b PixelShaderGen: Change a comment slightly. 2013-06-17 11:39:50 +02:00
NeoBrainX 20719081df PixelShaderGen: Move RegisterStates from global storage to stack. 2013-06-17 11:37:41 +02:00
NeoBrainX 7e0db58b1e Fix stuff 2013-06-17 10:50:16 +02:00
NeoBrainX 32b78a8572 First steps of making the pixel shader uid struct more compact. 2013-06-17 10:50:12 +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 fa4ad82878 Fix Windows Compiling? 2013-06-12 03:14:13 -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
skidau 196d152ad7 Invalidate the texture cache using the GPU thread when the CPU thread makes a request.
Fixes issue 6350.
2013-06-08 11:28:54 +10:00
degasus a51d6a6ddd add new statistics for gpu buffer streaming 2013-05-23 21:07:01 +02:00
Rachel Bryk 10d1d19409 Set graphics settings while playing a movie in UpdateActiveConfig(), so settings can't be changed for a frame. 2013-05-21 19:20:22 -04:00
degasus a905b18ef1 Merge branch 'ppd' - per pixel depth
use always ppd is a huge gpu performance drop: 20%-50%
and always disable it cause some rendering issues
so there is an option again
But this time it's called "Fast Depth Calculation"
2013-05-12 07:29:31 +02:00
Ryan Houdek bf67378812 Fix the integer compare in our GLSL fmod function 2013-05-11 00:16:20 -05:00
NeoBrainX f348712d3a BPMemory: Fix a small documentation mistake from revision 9365187f89. 2013-05-10 11:47:06 +00:00
degasus f7c3cacb5c ppd: fix small issues in my last commit 2013-05-10 12:51:06 +02:00
degasus 89be1cbf51 recreate "per pixel depth" option and renamed it to fast depth calculation 2013-05-09 17:48:48 +02:00
degasus c7486609fa fix underflow in IndexGenerator::AddFan
fix issue 6282

The Last Story seems to render a fan with two vertices. It is non-sense as it
shouldn't do anything, but the code underflows at (u32)numVerts-3
2013-05-09 10:17:12 +02:00
NeoBrainX 9365187f89 BPMemory: Add register documentation for texture source adress and EFB configuration. 2013-05-06 22:20:17 +02: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
NeoBrainX 2c7ed2a793 Apply color mask when alpha test parameters change. Required to make the changes in revision be706a3977 work properly.
Fixes issue 6080.
2013-05-01 11:50:37 +02:00
NeoBrainX 9cb263ad48 PixelShaderGen: Set some uid fields that I missed before. 2013-04-29 21:19:48 +02:00
NeoBrainX 02afec5076 Polish shader uid checking. 2013-04-29 21:00:39 +02:00
NeoBrainX 77dae3496a PixelShaderGen: Cleanups. 2013-04-29 19:52:12 +02:00
NeoBrainX adab4e37f7 Fix some mistakes from the master merge; some cleanups. 2013-04-29 19:37:32 +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
NeoBrainX eef95fa4c5 ShaderGenCommon: Adding documentation. 2013-04-25 13:30:41 +02:00
Lioncash 8da425b008 Formatting cleanup for VideoCommon.
Block braces on new lines.

Also killed off trailing whitespace and dangling elses.

Spaced some things out to make them more readable (only in places where it looked like a bit of a clusterfuck).
2013-04-24 09:21:54 -04: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 bab9963b00 New license header introduced for DiscIO, AudioCommon, InputCommon, VideoCommon, and Common projects. 2013-04-17 23:09:55 -04:00
Ryan Houdek 48927c17d2 Good job Windows. Stop choosing the same names as I do. 2013-04-13 00:54:11 -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 7e630ba920 Merge branch 'primitive_restart' 2013-04-11 14:01:58 +02:00
NeoBrainX 7480f5dfd6 ShaderGenCommon: Clean up. 2013-04-10 14:55:46 +02:00
NeoBrainX e7a5847c30 ShaderGen: Build fix. 2013-04-10 14:44:09 +02:00
NeoBrainX abde070f63 LightingShaderGen: Use a float4 array for lights instead of a struct (uniform management in the non-UBO path is a mess otherwise).
Also fix a small bug (cf. revision  154c533e76).
2013-04-10 14:25:18 +02:00
NeoBrainX 154c533e76 VertexShaderGen: Fix a small GLSL regression in emboss mapping. 2013-04-10 11:44:49 +00:00
NeoBrainX fab4f1d0a5 LightingShaderGen: Improve code flexibility. 2013-04-10 13:38:31 +02:00
NeoBrainX 31d2cab8d3 Add ShaderGenCommon to vcproj file list. 2013-04-10 12:55:42 +02:00
NeoBrainX ec08914905 Move Shader UID mismatch checking to VideoCommon. 2013-04-10 12:54:22 +02:00
degasus 1aa10b579a fix triangle_fan size calculation
wasn't updated for the new primitive restart implementation
2013-04-10 12:45:44 +02:00
degasus a6412f7bd4 render a triangle for a 3 vertice quad
fix issue 6214
2013-04-10 12:36:59 +02:00
NeoBrainX ec5f596b31 VertexShaderGen: More per-pixel-lighting fixes. 2013-04-10 12:17:28 +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 4dca133745 small cleanups 2013-04-08 17:58:23 +02:00
degasus 80b56ddd17 convert triangle_fan to triangle_strip 2013-04-08 17:22:16 +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
Rachel Bryk deece78e19 Seriously, someone kill me. 2013-04-08 03:11:45 -04:00
Rachel Bryk 48f3e962d6 Kill me now.
Fixes issue 6227.
2013-04-08 03:05:12 -04: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
Pierre Bourdon 0ca7ea6c3f D3D11: Fix glitched polygon edges when MSAA is enabled (this time without breaking OpenGL) 2013-04-07 20:58:48 +02:00
Rachel Bryk 4d81e0739d Use an enum for efb scale values. 2013-04-06 01:49:13 -04:00
Rachel Bryk ee163d1e49 Someone take my commit rights away. 2013-04-05 17:26:56 -04:00
Rachel Bryk 6a5a522bba Hastily committing untested code without making sure i didn't miss anything first? I would never! 2013-04-05 17:20:34 -04:00
Rachel Bryk e531970052 Round IR scale down to whole number if using 1.5x/2.5x IR, if game ini specifies -1 for EFBScale.
Fixes issue 6210.
2013-04-05 17:13:48 -04:00
lioncash a7c05dc922 Remove an unused variable in VideoConfig.cpp and SWVideoConfig.cpp 2013-04-04 09:32:28 -04:00
Grant Paul 9f8841e960 Revert "D3D11: Fix glitched polygon edges when MSAA is enabled."
This reverts commit 61c327ba8b.
2013-04-03 21:17:09 -07:00
NeoBrainX 61c327ba8b D3D11: Fix glitched polygon edges when MSAA is enabled. 2013-04-03 18:56:33 +02:00
Jordan Woyak 4ba12be669 We can use unordered_map without pain now! 2013-04-01 19:25:32 -05: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
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
NeoBrainX a60e1a3db8 ShaderGen: Remove some TODOs and fix an issue with per pixel lighting. 2013-03-31 23:57:39 +02:00
NeoBrainX f57b902d33 PixelShaderGen: Cleanups. 2013-03-31 23:53:46 +02:00
NeoBrainX f6d65a636e ShaderGen: Fix per pixel lighting. 2013-03-31 23:29:33 +02:00
NeoBrainX 248d56d930 ShaderGen: Small optimization. 2013-03-31 20:55:57 +02:00
NeoBrainX cdddb26bba Apparently override is less fun than I thought. 2013-03-29 22:29:37 +01:00
NeoBrainX 2afd892e46 ShaderGen: More interface cleanups. Less wtfs :) 2013-03-29 22:24:49 +01:00
NeoBrainX e31c2aa601 ShaderGen: Cleanup uid data writing. 2013-03-29 21:53:57 +01:00
NeoBrainX 9eccd56ef0 PixelShaderGen: Some cleanups. 2013-03-29 20:59:03 +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 41c4108ce6 OpenGL: Reimplement shader uid debugging. 2013-03-29 14:56:01 +01:00
NeoBrainX f2a8fbb314 PixelShaderGen: Slightly reduce the number of redundant shader compilations. 2013-03-29 14:54:13 +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 c10d9ea87a Clean up blending code a bit. 2013-03-28 23:00:19 +01:00
NeoBrainX a171525df6 Fix Windows crash. 2013-03-27 01:33:27 +01:00
NeoBrainX 11fae2e1cb Fix Windows build, try 4. 2013-03-27 00:17:46 +01:00
NeoBrainX 364a5093d9 ShaderGenCommon: Replace the GenOutput enum by using typeid instead. 2013-03-26 23:21:08 +01:00
NeoBrainX 0e31943216 ShaderGenCommon: Introduce a common shader generator interface to make stuff less confusing. 2013-03-26 23:03:10 +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
NeoBrainX b75a617d8a VertexShaderGen: De-uglify VS output structure writing 2013-03-26 19:36:59 +01:00
NeoBrainX 30f1a4b4fe Partially revert "Now CG plays nice with this new stuff."
This reverts commit 3943840d5c.

Suppport for old GLSL versions has been dropped, so to make things less ugly we can use a structure for lights again.
2013-03-26 19:36:59 +01:00
NeoBrainX 0994a5828d VideoSoftware: Improve fog range adjustment by using less magic and more comments. 2013-03-26 00:57:45 +01:00
skidau b00201dcbd Merge branch 'Fast-EE'
* Fast-EE:
  Forced the exception check only for ARAM DMA transfers. Removed the Eternal Darkness boot hack and replaced it with an exception check.
  Reverted rd76ca5783743 as it was made obsolete by r1d550f4496e4.
  Removed the tracking of the FIFO Writes as it was made obsolete by r1d550f4496e4.
  Forced the external exception check to occur sooner by changing the downcount.
2013-03-26 08:24:21 +11:00
skidau 0ccaaee38c Forced the exception check only for ARAM DMA transfers.
Removed the Eternal Darkness boot hack and replaced it with an exception check.
2013-03-26 08:23:20 +11: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
skidau 1d550f4496 Forced the external exception check to occur sooner by changing the downcount.
Fixes issue 5825.
2013-03-25 00:47:44 +11:00
degasus 470c9ff08a check for overflow vertex indices, fixes issue 6135
thx @ JMC47 for identifying the reversion, creating a useful bug report with fifo log :-)
2013-03-23 00:18:35 +01:00
lioncash edd9d0e0ef Clean up more space/tab mismatches in AudioCommon, Common, and VideoCommon.
Not planning to touch Core since it's the most actively changed part of the project.
2013-03-19 21:51:12 -04: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
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
James Dunne f1ef51abc8 Removing `Core::IsGPUThread()` and `Core::IsCPUThread()` calls in favor of simple `bool isCPUThread` parameter value. 2013-03-15 19:42:42 -05:00
James Dunne 4137fc0023 Removed calls to YieldCPU from RunGpuLoop. 2013-03-15 19:42:38 -05:00
degasus 6962929356 GLSL: fix nfs-hp2 2013-03-15 23:32:01 +01: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
NeoBrainX e877b5019b PixelShaderManager: Reload fog range adjustment shader constants upon viewport change.
Fixes issue 5618.
2013-03-15 15:08:51 +01:00
skidau afb6f9127a Corrected a typo. 2013-03-15 19:32:47 +11:00
NeoBrainX 203b1748a3 PixelShaderGen: Force depth textures to be emulated when the result is needed for fog calculation. 2013-03-15 01:01:00 +01:00
degasus 2c84c32ddc decrease d3d vertex buffer size 2013-03-12 17:48:20 +01:00
degasus 382be2aabd Merge branch 'master' into GLSL-master
Conflicts:
	.gitignore
2013-03-12 11:28:56 +01:00
skidau 83fc5f4747 Merge branch 'FIFO-BP'
# By skidau (30) and Pierre Bourdon (1)
* FIFO-BP: (31 commits)
  Set g_bSignalTokenInterrupt on the main thread.  Fixes the random hang in Harry Potter: Prisoner of Azkaban.
  Used a scheduled event to generate the ARAM DMA interrupt if the DMA is greater than a certain size.  Fixes NFS:HP2 GC.
  Bumped up the disc transfer speed enough to prevent audio stuttering in Gauntlet: Dark Legacy.
  Enabled Synchronise GPU on "SPEED CHALLENGE - Jacques Villeneuve's Racing Vision".  Required to go in-game.
  Added direct GameCube controller commands to the Serial Interface emulation.  Fixes the controls in MaxPlay Classic Games Volume 1 and the Action Replay disc.
  Increased the FIFO buffer size to 2MB from 1MB.  Fixes Killer 7's Angel boss.
  Used an immediate GenerateDSPInterrupt when transferring data from ARAM to MRAM and a scheduled DSP interrupt when transferring data from MRAM to ARAM.
  Fixes the audio cutting in and out in the Resident Evil GC games using DSP HLE. Triggered the ARAM interrupt by the scheduler instead of directly in function.
  Implemented proper timing for the sample counter in the AudioInterface, removing the previous hack. Cleaned up some of the audio streaming code.
  Skipped the EE check if there is a CP interrupt pending.
  Disabled "Speed up disc transfer" from the ZTP GC game ini.
  Removed the disc seek times for GC games and removed the disc speed option on Wii games. Checked for external exceptions only in mtmsr.
  Delayed the interrupts in the EXI Channel.
  Merge aram-dma-fixes (r76a13604ef49b522281af75675f044d59a74e871)
  Added a patch that bypasses the FIFO reset code in Wallace and Gromit: Project Zoo, allowing it to go in-game.
  Made vertex loading take constant time.
  Increased the cycle time of the vertex command.  Fixes "Speed Challenge: Jacques Villeneuve's Racing Vision".
  Moved the setting of the Finish interrupt signal back to the main thread as it was causing Wii games like Resident Evil 4 (Wii) to hang.
  Profile stores, fp stores and ps stores only to the fifo write addresses list.  This should make the JIT a little faster as it will not be checking for external exceptions unnecessarily.
  ...

Conflicts:
	Source/Core/VideoCommon/Src/PixelEngine.cpp
2013-03-12 19:47:59 +11:00
skidau d3e431af9e Set g_bSignalTokenInterrupt on the main thread. Fixes the random hang in Harry Potter: Prisoner of Azkaban. 2013-03-07 22:16:00 +11:00
degasus 5dd502df3b Merge branch 'master' into GLSL-master
the only commit on master is to fix vertexloader, so disable jit for osx
2013-03-06 19:07:15 +01:00
degasus 7158c14d7a fix vertexloader without jit 2013-03-06 18:58:15 +01:00
degasus a1c5e90083 Merge branch 'master' into GLSL-master
Conflicts:
	CMakeLists.txt
	Source/Core/DolphinWX/CMakeLists.txt
	Source/Core/DolphinWX/Src/GLInterface.h
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Core/VideoCommon/Src/TextureCacheBase.cpp
	Source/Core/VideoCommon/Src/VertexManagerBase.cpp
	Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj
	Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters
	Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
	Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/main.cpp
2013-03-06 15:59:29 +01:00
degasus 8d5299c20b Merge branch 'vertex-loader-cleanup' 2013-03-06 14:08:02 +01:00
degasus 10983b0eae fix VertexManager::GetRemainingIndices
the old implementation returns the amound of primitives fit into index buffers
but also gc needs more than one index per primitve
2013-03-06 12:33:02 +01:00
Jordan Woyak f3f89e1d00 Merge branch 'master' into vertex-loader-cleanup
Conflicts:
	Source/Core/Common/Src/CommonFuncs.h
	Source/Core/VideoCommon/Src/VertexLoader.cpp
2013-03-04 15:47:56 -06:00
Jordan Woyak bf58c70e9b Move copy-pasted code into function. 2013-03-04 15:35:29 -06:00
degasus 642eab92bc disable per pixel depth if depth textures aren't used 2013-03-04 20:12:58 +01:00
Jordan Woyak b1a2915304 Merge branch 'master' into windows-unicode 2013-03-03 15:05:10 -06:00
Ryan Houdek a01f793f59 Fix ARM build. 2013-03-03 07:37:22 +00:00
Jordan Woyak 2b1af36900 Merge branch 'master' into windows-unicode 2013-03-02 15:33:32 -06:00
skidau 5bb6ac8164 Increased the FIFO buffer size to 2MB from 1MB. Fixes Killer 7's Angel boss.
Fixes issue 5415.
2013-03-02 16:18:55 +11:00
NeoBrainX 008fdc7310 Merge branch 'perfqueries'.
Adds support for PE performance metrics.
Used in Super Mario Sunshine's "Scrubbing Sirena Beach" level to determine when enough goop has been cleaned up to finish the level.
Also used in TimeSplitters: Future Perfect to determine the appearance of flares around light sources (e.g. sun).

OpenGL and D3D11 only. D3D9 support unlikely to be added unless anyone bothers to do the work.
Initial work and D3D11 support by me. Kudos go to Billiard for adding the OpenGL support and reviving development of this branch that way :D

Slightly (~7%) decreases performance when performance metrics are used (and only then).

Fixes issue 1498.
Fixes issue 5368.
2013-03-02 00:17:37 +01:00
NeoBrainX 4058b4c38a Add documentation to PerfQueryBase interface.
Remove the config field for perf queries (wasn't used for the new interface anyway).
Few other cleanups.
2013-03-01 23:02:11 +01:00
NeoBrainX 5a7bb2abfa D3D11: Port perf queries code to the PerfQueryBase interface.
Remove deprecated PerfQuery methods from RenderBase.
Windows build fix.
2013-03-01 19:30:37 +01:00
degasus ef7083d78c also don't cleanup efb copys on efb2ram
these may be upscaled and this high res textures would be lost
2013-03-01 11:31:52 +01:00
skidau 73da6f4f3f Merge branch 'master' into FIFO-BP
# By Jordan Woyak (46) and others
# Via Jordan Woyak (2) and others
* master: (70 commits)
  Fixes two memory leaks, one is pretty bad for OSX. Yell at pauldachz if this doesn't work. Or... say thanks.
  Added a BluetoothEnumerateInstalledServices call so that the wiimote remembers the pairing.
  Make ARMJit core default CPU core on ARM architecture
  Fix a StringUtil regression from the arm-noglsl merge
  Small improvement to cmpli/cmpi in ARMJit.
  Merge latest ArmEmitter changes from ppsspp while we're at it.
  Ah. I blame vim on this typo entirely.
  Add disabled code for authenticating wiimotes on Windows.
  Add the missing FPR cache
  Buildfix.
  Yell at the user if they change window size while dumping frames, and some other avi dumping stuff.
  Not sure if this is the right way to handle this, but it makes the save states perfectly stable. That's all that really matters, right?
  Abort loading states from incompatible graphics backends.
  ARM Support without GLSL
  Improve VideoSoftware save states. They are fairly stable, but not perfect. OpcodeDecoder::DoState() needs to be fixed.
  Begin implementing save states to video software. Kind of works, sometimes.
  Make error message for loading save state with wrong dsp engine shorter.
  Abort load state if it uses a different dsp engine, instead of crashing.
  Update the gameini of F-zero. Efb to Ram is no longer the default choice.
  fix last commit by neobrain
  ...

Conflicts:
	Source/Core/VideoCommon/Src/Fifo.cpp
2013-03-01 20:12:56 +11:00
Jordan Woyak dea1e2827d Open std::fstream in a unicode-safe manner. 2013-02-28 19:33:39 -06:00
NeoBrainX b94f65b666 Remove two incorrect lines. How did those even get there?! 2013-03-01 01:37:47 +01:00
NeoBrainX cbf5efe191 Some cleanups.
PE perf metrics officially declared unsupported for the D3D9 project (out of pure laziness, anyone who cares can implement them :P).
2013-03-01 01:31:57 +01:00
NeoBrainX 7682ed22c6 Merge branch 'master' into perfqueries.
Conflicts:
	Source/Core/VideoCommon/Src/VideoConfig.h
	Source/Core/VideoCommon/VideoCommon.vcxproj.filters
	Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp
	Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp
2013-03-01 01:07:34 +01:00
Rachel Bryk 0c16489c39 Merge branch 'VideoSoftware-savestates' 2013-02-28 13:36:29 -05:00
Jordan Woyak 6b80e6f83c Tweak Vertex/Index buffer handling a bit. 2013-02-27 01:57:02 -06:00
Ryan Houdek 692e39d1bb Merge branch 'arm-noglsl' 2013-02-27 02:22:08 +00:00
Jordan Woyak a680d17eef Buildfix. 2013-02-26 19:59:33 -06:00
Jordan Woyak f1c990069c Yell at the user if they change window size while dumping frames, and some other avi dumping stuff. 2013-02-26 20:47:48 -05:00
Rachel Bryk 08fe3c213a Abort loading states from incompatible graphics backends. 2013-02-26 18:28:56 -05:00
degasus a650ae8c7b workaround for base vertex. damn old nvidia driver 2013-02-26 23:15:55 +01:00
Ryan Houdek 717b976875 ARM Support without GLSL 2013-02-26 13:49:00 -06:00
degasus 8b7141d3de Revert "Fix performance issues on certain legacy graphics hardware that isn't capable of copying an integer."
This reverts commit 380f22ca0e.

Yeah, reverting a revert.
2013-02-26 08:57:35 +01:00
Jordan Woyak 380f22ca0e Fix performance issues on certain legacy graphics hardware that isn't capable of copying an integer.
This reverts commit 52dacaa3e3.
2013-02-25 20:52:30 -06:00
Jordan Woyak bd14ad5300 Merge branch 'master' into vertex-loader-cleanup 2013-02-25 17:55:44 -06:00
Jordan Woyak 46adbfa9ed Merge branch 'real-wiimote-scanning' 2013-02-25 17:33:34 -06:00
degasus d173d646de fix last commit by neobrain 2013-02-25 16:11:24 +01:00
NeoBrainX 73a0bdd379 Build fixing. 2013-02-25 12:42:52 +00:00
NeoBrainX 1141af64f6 TextureCacheBase: Do not assume EFB copies can safely be deleted when we think they're "unused".
Fixes issue 6040.
2013-02-25 12:36:50 +00:00
degasus c86b892f95 Revert "remove numTexGens=7 hack. only cg wasn't able to handle more then 8 texcoords"
This reverts commit 4653adecf1.

Also dx9 isn't able to hanlde more than 11 varying registers.
More frustrating is the lightning issue by this commit. I don't know why it happens...
2013-02-24 20:51:44 +01:00
Jordan Woyak 52dacaa3e3 Make the posmtx vertex attribute an int instead of converting to and from a float. 2013-02-23 20:54:30 -06:00
degasus 0a05fcade4 fix glsl compilation error on intel 2013-02-22 12:19:52 +01:00
degasus d9adc26332 real Star Fox fix 2013-02-22 12:14:39 +01:00
Jordan Woyak 86935ab4fd forceinline IndexGenerator::WriteTriangle 2013-02-22 03:22:20 -06:00
degasus e270c8b153 fix Star Fox 2013-02-22 09:54:19 +01:00
Jordan Woyak d3f1bb93f2 Use DataWrite in a few more places. 2013-02-22 02:19:59 -06:00
Jordan Woyak db1be085c2 VertexManager cleanup 2013-02-22 01:41:52 -06:00
Jordan Woyak 21bd5be753 Buffer size changes. 2013-02-21 23:12:53 -06:00
Jordan Woyak f16dcfe6f6 Remove logic from IndexGenerator which does not seem to match that of Video Software. 2013-02-21 21:02:49 -06:00
Jordan Woyak 368c78dd5c IndexGenerator cleanup. 2013-02-21 19:11:07 -06:00
Jordan Woyak 677c6229ad Experimental VertexLoader cleanup! 2013-02-21 14:41:06 -06:00
Jordan Woyak a92c93f870 Automate some calculations, with templates! 2013-02-21 13:29:05 -06:00
Jordan Woyak 7987d6babb Use templates for 8+16 bit indexed versions of SSSE3/SSE4 TextCoord reading. 2013-02-21 12:42:09 -06:00
degasus 40e17b4cb8 add option for hacked upload and disable it by default 2013-02-21 18:18:44 +01:00
degasus d0e8217714 remove intel pixel shader hack
did not work correctly and made warnings on dx11
2013-02-21 17:44:56 +01:00
degasus c7f4d6b9ac wrapper for s_pCurBufferPointer 2013-02-21 13:45:48 +01:00
degasus 4b4dce1bd9 build fix 2013-02-21 13:00:19 +01:00
degasus 76e6085e31 consistently usage of buffer pointers 2013-02-21 12:36:29 +01:00
degasus a849bb5242 Merge branch 'vertexloader_cleanup' into vertex-loader-cleanup
Conflicts:
	Source/Core/VideoCommon/Src/VertexLoader_TextCoord.cpp
2013-02-21 12:18:50 +01:00
degasus 66d0c1c301 small cleanups of s_pCurBufferPointer 2013-02-21 11:45:29 +01:00
degasus 0d33e20026 bbox: replace s_pCurBufferPointer with locale buffer, so it can be read without read from the writeonly buffer 2013-02-21 11:41:14 +01:00
degasus 7a89faf13f converting the last vertices again instead of copying from buffer on buffer split
for mapping, this buffer must be write only, so we cannot copy anthing.
converting again needs more cpu, but should happen rarely
2013-02-21 11:36:10 +01:00
Jordan Woyak dc776a19a0 Cleanup VertexLoader's Color functions a bit. 2013-02-21 02:49:17 -06:00
Jordan Woyak 660fc12927 Cleanup Position loader functions. 2013-02-21 02:19:06 -06:00
Jordan Woyak 5efdcef34a No longer have the signed/unsigned hack I guess. 2013-02-21 00:49:47 -06:00
Jordan Woyak 3938d3713b Fix what I broke. 2013-02-21 00:40:22 -06:00
Jordan Woyak 5b63472ad7 Templatify Normal Loader functions. 2013-02-21 00:10:06 -06:00
Jordan Woyak 5e78f8a176 Templatify TextCord Loader functions. 2013-02-20 20:43:53 -06:00
Jordan Woyak 8f256237a3 Templatify DataReader a bit. 2013-02-20 20:21:25 -06:00
skidau 36f2082a5f Made vertex loading take constant time. Fixes a hang in Gladius. 2013-02-20 23:38:25 +11:00
Jordan Woyak 6e6d8af6dd Revert "Don't load level 0 twice for 1-level textures in DX11." and fix it properly.
All backend TextureCaches now load level 0 in CreateTexture.

This reverts commit 294cb165ba.
2013-02-20 05:42:22 -06:00
Jordan Woyak eae20b77a8 Remove some unneeded sampler-related calls in BPStructs. 2013-02-20 02:01:54 -06:00
skidau 351c741906 Merge branch 'master' into FIFO-BP
# By Jordan Woyak (9) and others
* master:
  Fixed a buffer overflow in the OpenAL buffer.
  TextureCache: Fix D3D backends crashing when a game uses multiple 1x1-sized LODs.
  WII_IPC_HLE_Device_FileIO: don't rebuild the filename on every operation.
  Some cleanup of CWII_IPC_HLE_Device_FileIO: The real file was never kept open for longer than a single operation so there was no point in dealing with it in DoState. Saving the real path in the savestate was also probably a bad idea. Savestates should be a bit more portable now.
  Removing destination on rename when source isn't present doesn't make sense. IOCTL_RENAME_FILE still might not be totally correct.
  Change some CNANDContentLoader logic to what was probably intended. Kills some warn logs when opening Dolphin.
  Let's not CreateDir an empty string every time CreateFullPath is used, logging an error every time.
  Fix a memleak. Probably/maybe improve USBGecko performance.
  Remove the core count from the cpu info OSD message. It was often wrong and not rather important.
  Use omp_get_num_procs to set the number of OpenMP threads rather than our core count detection.
  Bulk send TCP data to the client with the emulated USB Gecko.
  Added the ability to reverse the direction of the force feedback by allowing negative range values.
  Changes/cleanup to TextureCache::Load and other mipmap related code. The significant change is what is now line 520 of TextureCacheBase.cpp: ((std::max(mipWidth, bsw) * std::max(mipHeight, bsh) * bsdepth) >> 1) to TexDecoder_GetTextureSizeInBytes(expanded_mip_width, expanded_mip_height, texformat);
2013-02-19 23:19:29 +11:00
degasus a629dea4dc Merge branch 'master' into GLSL-master
Conflicts:
	CMakeLists.txt
	Source/Core/DolphinWX/Dolphin.vcxproj
	Source/Core/DolphinWX/Src/GLInterface/WX.cpp
	Source/Core/DolphinWX/Src/GLInterface/WX.h
	Source/Core/VideoCommon/Src/TextureCacheBase.cpp
	Source/Core/VideoCommon/Src/TextureCacheBase.h
	Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp
	Source/Plugins/Plugin_VideoDX11/Src/TextureCache.h
	Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
	Source/Plugins/Plugin_VideoDX9/Src/TextureCache.h
	Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h
	Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp

damn mipmap_fixes ...
2013-02-18 18:49:20 +01:00
NeoBrainX 19ab5bf50d TextureCache: Fix D3D backends crashing when a game uses multiple 1x1-sized LODs. 2013-02-18 17:14:56 +01:00
degasus 4653adecf1 remove numTexGens=7 hack. only cg wasn't able to handle more then 8 texcoords 2013-02-17 22:37:00 +01:00
Jordan Woyak 537d5ea942 Use omp_get_num_procs to set the number of OpenMP threads rather than our core count detection. 2013-02-16 23:48:20 -06:00
Jordan Woyak 53aec6c476 Fix OGL perf queries and make them not slow! 2013-02-16 19:30:24 -06:00
skidau 0e2c3f3483 Increased the cycle time of the vertex command. Fixes "Speed Challenge: Jacques Villeneuve's Racing Vision". 2013-02-16 22:54:10 +11:00
skidau 45efced280 Moved the setting of the Finish interrupt signal back to the main thread as it was causing Wii games like Resident Evil 4 (Wii) to hang. 2013-02-16 18:30:20 +11:00
Jordan Woyak d994e56b60 Changes/cleanup to TextureCache::Load and other mipmap related code.
The significant change is what is now line 520 of TextureCacheBase.cpp:
((std::max(mipWidth, bsw) * std::max(mipHeight, bsh) * bsdepth) >> 1)
to
TexDecoder_GetTextureSizeInBytes(expanded_mip_width, expanded_mip_height, texformat);

Fixes issue 5328.
Fixes issue 5461.
2013-02-15 22:56:29 -06:00
skidau 9bff8e00c8 Added preliminary support to synchronise the timing of the CPU and GPU threads. A new option has been added to the game properties for this purpose. This option may help with random freezes in Dual Core mode.
Fixes Gladius and Baten Kaitos: Eternal Wings and the Lost Ocean

Fixes issue 5150.
2013-02-16 12:51:09 +11:00
skidau 51795d8811 Merge branch 'master' into FIFO-BP
# By Jordan Woyak (24) and others
# Via Jordan Woyak (3) and others
* master: (66 commits)
  Reduce some DI command delays. Fix DKCR hanging with DSP HLE. My other games continue to work.
  Video_Software: Fix ZComploc option breaking stuff.
  Video_Software: Fix the ZFreeze option doing nothing.
  Video_Software: Toggable zfreeze and early_z support for testing.
  Fix header guard and definitions not being set to 1
  Add the option to turn on only the EGL interface to use desktop OpenGL with it.
  Change the ugly "no banner" banner to the sexy "X" from the website.
  Fix a crash in the FifoPlayer dialog.
  Use different reply delays for various DI commands. Fixes issue 5983.
  Revert "[bugfix] DX9::TextureCache: Use max_lod instead of min_lod where necessary."
  Fix some potential issues when blending on EFB formats without alpha. Clean up state transition tables.
  Disable play and record buttons if an iso was selected, but is later deselected.
  Disable start/play recording buttons when no iso is selected.
  Only delay DI and fs IPC replies. Fixes issue 5982.
  Fix compilation with SDL2. (based on a patch from matthewharveys) Fixes issue 5971.
  "Fix" using SDL from externals.
  Clean up SDL includes a bit. Maybe fix an SDL2 problem.
  Number "unknown" axes in OSX rather than call them all "unk".
  Revert "Only delay DI command replies." Fix "Wii Party" again.
  Hopefully make wiimote speaker less crappy.
  ...
2013-02-16 11:10:03 +11:00
degasus 334bd52f2c NaNs handling in pixel shader 2013-02-15 15:46:31 +01:00
degasus 0325e37bfb merge glsl headers into one place 2013-02-13 21:34:48 +01:00
skidau 0cafc33eda Moved the token update to the CPU thread. 2013-02-10 18:24:30 +11:00
skidau 5f672baca3 Used Atomic functions to update variables shared between the CPU and GPU threads.
Changed the variables from bool to u32 to match the atomic functions.
2013-02-09 17:46:48 +11:00
Jordan Woyak 8ce58759e3 Remove some old nonsense. 2013-02-07 23:52:50 -06:00
NeoBrainX ed0abc9dc5 Merge branch 'mipmap_fixes'. 2013-02-07 20:40:33 +01:00
NeoBrainX 6870c1fdd5 Fix some potential issues when blending on EFB formats without alpha.
Clean up state transition tables.
2013-02-07 18:01:24 +01:00
degasus 10567cb23f always write to uv coords 2013-02-07 13:23:20 +01:00
degasus dae1226e1b workaround for division by zero on fog calculation 2013-02-07 02:21:30 +01:00
degasus e7a8d3f854 check for GL_ARB_sync, it's in ogl 3.2 2013-02-06 01:05:19 +01:00
degasus f677b8cba3 update to glew1.9, win binaries also from official release 2013-02-04 21:11:12 +01:00
skidau 2c8c8db731 Used AtomicStore to write to the signal interrupts. 2013-02-03 23:52:18 +11:00
skidau 9a4e9da7c2 Set the token and finish interrupt signal from the video thread. This fixes the inconsistent state caused by lag from the scheduler. Fixes Rayman 3: Hoodlum Havoc and Shamu's Deep Sea Adventures.
Fixes issue 5401.
Fixes issue 5589.
2013-02-03 18:05:46 +11:00
skidau 867bfaa696 Changed cmdidle to match the isGpuReadingData flag. Fixes the random freezes in The Last Story. 2013-02-02 20:50:40 +11:00
Jordan Woyak 0e04e0c305 Fix some shadowing warnings. 2013-01-29 16:43:22 -06:00
NeoBrainX 76148a52b8 Fix a few other things 2013-01-28 22:51:15 +01:00
NeoBrainX 9f1582843d PixelShaderManager: Reduce number of redundant shader constant updates 2013-01-28 22:15:23 +01:00
NeoBrainX 0fdeb81038 Add some code for generating a shader constant usage profile. 2013-01-28 22:15:23 +01:00
NeoBrainX 700cce9588 More work on making new pixel shader uids work 2013-01-28 22:10:07 +01:00
NeoBrainX 67be1e939a PixelShaderGen: Some more work... 2013-01-28 21:59:49 +01:00
NeoBrainX 8902c6e38b Some cleanups, add more fields to pixel shader uid. 2013-01-28 21:56:27 +01:00
NeoBrainX b519d37128 Move new lighting shader uids to LightingShaderGen.h 2013-01-28 21:52:03 +01:00
NeoBrainX dc0f470215 Added new shader cache uids for pixel shader gen. 2013-01-28 21:44:39 +01:00
NeoBrainX 3c8df842bb Moved some of the new shader uid stuff to a common header file. 2013-01-28 21:05:29 +01:00
NeoBrainX ca0e292dd4 Replace the shader uid system with a new one which quasi-automatically generates uids for shaders.
Currently used in the vertex shader only (had to fork lighting shaders for now).
2013-01-28 21:05:29 +01:00
degasus c5fa3e0f3d move RestoreAPIState and ResetAPIState into backends
it's a backend specific hack, so it should be here
should give a small speedup in dx11 efb2tex
2013-01-28 18:16:03 +01:00
Lioncash efe8c75424 Duplicate condition fix.
Thanks j4ck.fr0st
2013-01-25 21:30:29 -05:00
skidau 1b6240f7f9 Changed cmdidle to be idle on breakpoint.
Added low watermark interrupts generated by the gather pipe.

Fixes Gladius from not booting.

Fixes issue 5518.
2013-01-25 20:04:31 +11:00
degasus e0ffdda26e Merge branch 'immediate-removal' into GLSL-master
Conflicts:
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp

immediate-removal is a new created branch seperated from master but reverted the revert of immediate-removal
so we get less conflicts by merging
2013-01-24 16:58:28 +01:00
degasus d60cc373d1 Revert "Revert 30dd9c2 e9d00bf db5f4c8 and bff0fae"
This reverts commit d0301ca89d.

Conflicts:
	.gitignore
2013-01-24 16:11:07 +01:00
lioncash 2db0c4270e Fix a potential memory leak on non-windows systems.
Also added a FIXME to BPStructs.cpp and BPMemLoader.cpp
2013-01-24 08:21:08 -05:00
degasus f69b6b595e change projection_type to u32
Fix issue 5740

thx @ erwan_taf for debuging all the week
2013-01-24 13:10:13 +01:00
degasus d5748ebaef fix small dx9 slowdown 2013-01-22 10:49:46 +01:00
degasus 6afc30240a partial revert of 8a6f747408
texture_rect isn't in core 3.0, so the long texture function must be used
2013-01-22 00:18:42 +01:00
NeoBrainX 6c0f6ffecf Fix a dumb regression from revision 4925a28f94. 2013-01-19 22:40:20 +01:00
degasus 8a6f747408 glsl: remove usage of old texture2D* function 2013-01-19 11:07:06 +01:00
degasus e7d5b274c0 add stage parameter for texture load, so ogl can bind to the correct sampler 2013-01-19 00:47:48 +01:00
degasus 074f73c641 move utils texture to sampler 8+9
rasterfont tex will aways bound to samp8.
efb copy utils will be done in samp9.
2013-01-19 00:39:31 +01:00
degasus 714ff50fdf set blending if dual source might be triggered 2013-01-18 00:44:35 +01:00
lioncash 0ef3bd9c77 Revert "Made several variables/parameters unsigned in the DX9, DX11 and OGL plugins. They make more sense like this (given their names)."
Turns out I was wrong in my previous commit. My bad.

This reverts commit 8743166663.
2013-01-16 15:46:11 -05:00
lioncash 8743166663 Made several variables/parameters unsigned in the DX9, DX11 and OGL plugins. They make more sense like this (given their names).
This also gets rid of some more typecasts in some cases.
2013-01-16 09:42:51 -05:00
lioncash ddf23094c2 Fix two unsigned/signed mismatch warnings. 2013-01-15 21:15:31 -05:00
Ryan Houdek 9165ac5a67 Fix clipPos not being declared in DX backends. 2013-01-15 10:48:01 -06:00
degasus ff889c0e65 use attrib pointers in nativeVertexFormat 2013-01-14 22:59:08 +01:00
degasus 2f78986e2c Merge branch 'Graphic_Update' into GLSL-master
Conflicts:
	Source/Core/VideoCommon/Src/VertexManagerBase.cpp
	Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp
	Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp
2013-01-14 21:36:31 +01:00
degasus 5fe3def64c videoConfig cleanup 2013-01-14 20:00:33 +01:00
degasus 4c2dd093a3 fix d3d error 2013-01-14 19:17:07 +01:00
degasus b18c0a5d1b remove ubo for efb2ram 2013-01-14 12:37:31 +01:00
NeoBrainX f7b0c8684b BPMemory: Expose more register descriptions for FifoPlayer 2013-01-12 15:25:50 +01:00
Glenn Rice 2cd415dd83 Fix the signed/unsigned comparison warnings created by a recent commit. 2013-01-11 22:00:36 -06:00
Lioncash dfc0c4b08d Fix two signed/unsigned mismatch warnings.
Also tidied up SDCardUtil - made the variables make more sense (typewise)
2013-01-11 19:38:04 -05:00
NeoBrainX ad05d568b9 PixelShaderGen: Change error strings to be unique so that we can identify unexpected behavior more easily. 2013-01-11 15:49:20 +01:00
degasus 60b8e4fb1c vertex shader for texture converter 2013-01-11 11:59:42 +01:00
Lioncash f21f097e7a Redundant line of code in VertexShaderManager::Dirty()
Also cleaned it up.
2013-01-10 21:44:12 -05:00
NeoBrainX e7c883d6be VideoCommon: Implement proper RGBA8 texture loading from tmem. 2013-01-10 18:30:22 +01:00
NeoBrainX 304814e7cc Video_Software: Implement proper RGBA8 texture loading from tmem.
For RGBA8 textures, AR and GB tiles are stored in separate tmem banks. TextureDecoder did not support that previously.
2013-01-10 18:30:16 +01:00
degasus bff02b3b73 Merge branch 'arb_framebuffer' into GLSL-master
Conflicts:
	Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp
	Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp
	Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp
2013-01-09 11:00:26 +01:00
Lioncash d9ea718559 Fix an issue where an iterator would become invalidated in TextureCache::ClearRenderTargets() 2013-01-08 23:46:30 -05:00
NeoBrainX d3882771aa Fix an assert that had been wrong for ages, apparently. 2013-01-08 18:56:01 +01:00
NeoBrainX 4925a28f94 PixelShaderGen: Shader uid maintainance 2013-01-08 18:56:01 +01:00
NeoBrainX be706a3977 Disable color writing when alpha test always fails. 2013-01-08 18:56:01 +01:00
NeoBrainX d26bcb0847 Move alpha pretest to BPMemory.h and rename a bunch of alpha testing related stuff 2013-01-08 18:56:01 +01:00
NeoBrainX c80f6e8b84 Reword a comment about early_ztest a bit. 2013-01-08 18:55:45 +01:00
NeoBrainX b06f30f845 Remove the per pixel depth option.
Depth calculations are always done in the pixel shader now.

Due to the unpredictability of our zcomploc hacks this commit probably changes the behavior of some games which use zcomploc.
2013-01-08 18:16:48 +01:00
NeoBrainX 876eee5e60 PixelShaderGen: Don't disable depth texture emulation if z writing is disabled (this is what VideoSoftware is doing). 2013-01-08 18:16:48 +01:00
NeoBrainX 09197e0ffc X11: Disable OSD hotkeys when the corresponding option is disabled. 2013-01-08 18:16:47 +01:00
Ryan Houdek 446d9279b1 Fix clearing of render targets. We were skipping every other one. 2013-01-08 11:14:53 -06:00
Ryan Houdek d0301ca89d Revert 30dd9c2 e9d00bf db5f4c8 and bff0fae 2013-01-07 13:47:34 -06:00
degasus b38b62afc6 remove glsl binding support. convert every shader to version 130 2013-01-02 16:56:08 +01:00
Ryan Houdek ff3b22e1ff Clear up some warnings that crop up from -Wextra 2012-12-30 03:28:50 -06:00
Ryan Houdek e5d5365bac Fix the last few warnings in Dolphin on my system. 2012-12-30 02:34:14 -06:00
Ryan Houdek ba6564b0b5 Missed a write to depth before discard in PreAlphaTest 2012-12-28 14:48:04 -06:00
Ryan Houdek 9e76a457ff Beautify the generate pixel shader code 2012-12-28 14:18:39 -06:00
Ryan Houdek 76fc1fe95a This discard was missing in the alpha pretest area. 2012-12-28 12:18:34 -06:00
Ryan Houdek 3eeebcae45 Another small bit of cleanup as I'm reading it 2012-12-28 12:05:43 -06:00
Ryan Houdek a25a00640e Very small cleanup in PixelShaderGen 2012-12-28 11:49:21 -06:00
degasus 48ede4dd30 switch to glsl 130, more than OpenGL 3.1 isn't needed 2012-12-28 16:05:14 +01:00
Ryan Houdek 7d93834cd8 Bit more cleanup from removing Nvidia CG 2012-12-27 22:53:07 -06:00
degasus 316a33d1e6 Merge branch 'master' into GLSL-master
Conflicts:
	Source/Core/DolphinWX/Src/VideoConfigDiag.h
	Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
	Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp
2012-12-27 10:36:54 +01:00
degasus bff0faea2d Merge branch 'immediate-removal'
Conflicts:
	Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
2012-12-25 12:39:00 +01:00
NeoBrainX e3e14af0dd Revert "VertexShaderGen: Fix a shader compilation error.". I'm an idiot :p
This reverts commit 4d868705fd.
2012-12-24 21:29:24 +01:00
NeoBrainX 4d868705fd VertexShaderGen: Fix a shader compilation error. 2012-12-24 19:50:16 +01:00
NeoBrainX 5a78351033 TextureCacheBase: Fix a potential bug when using custom textures. 2012-12-24 19:50:16 +01:00
Ryan Houdek 9209253e0d Initial removal of Nvidia CG. Still some more cleanup to go 2012-12-24 11:09:52 -06:00
degasus bd0abb3d2f revert last commit, add CheckInvalidState to VideoBackend 2012-12-23 13:32:23 +01:00
degasus ffddfd8662 do only invalid hashes instead of all textures on loading
this is a hack, but only the gpu thread is allowed to call ogl commands
suggestion: create an unused texture cache, so we can move all textures there
2012-12-22 17:30:13 +01:00
degasus 2df0c31d13 add invalid flag for BPStructs (fix issue 5790)
this flag will be set on loading a state and checked before every rendering.
2012-12-21 21:04:53 +01:00
degasus cf8f936abb fix efb2ram decoder 2012-12-19 23:43:05 +01:00
degasus 85ac76e8e2 fix gcc compilation 2012-12-19 23:42:22 +01:00
NeoBrainX 0811311604 TextureCacheBase: Delete textures completely instead of just invalidating them in ClearRenderTargets.
That's what would've been done in the next TCB::Load() call, anyway.
Fixes issue 5742.

Additionally, change efb copies to specify 1 as the number of mipmaps because that makes more sense than anything else.
2012-12-17 19:36:31 +01:00
degasus 8b62be2025 fix ShowEFBCopyRegions
those fancy colors were the result of the usage of non-allocated heap

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:49 -06:00
NeoBrainX c82136abdc PixelShaderGen: Drop some useless and potentially buggy code.
Thanks to glennrics for noticing.
2012-12-10 16:13:22 +01:00
Glenn Rice f6df3d1513 OSX build fix for the unordered_map/hash_map issue. 2012-12-10 08:40:27 -06:00
Glenn Rice e85438cba0 Clean up gcc/g++ compiler warnings that have accumulated. 2012-12-10 00:40:28 -06:00
NeoBrainX bed260aa14 VertexShaderManager: Fix redundant shader constant updates.
Thanks to konpie for spotting this.

Might give a fairly perceivable speedup in the D3D11 backend.
2012-12-01 14:23:24 +01:00
rog db458a234a Merge branch 'desync-fixes' into movie-fixes 2012-11-26 12:40:56 -05:00
rog 97f5b1665f what is this even... 2012-11-26 02:11:52 -05:00
NeoBrainX 0fcb246b7e Enable GFX debugger functionality in Release builds. 2012-11-20 17:54:48 +01:00
NeoBrainX 4f652c4086 Partially revert "Check if BP and XF changes actually change values before flushing". Dolphin code sucks too much to get optimizations.
This reverts commit 5a77cae2e3.

Fixes issue 5459.
Fixes issue 5606.
2012-11-19 21:09:31 +01:00
NeoBrainX 4ff9e03509 Merge branch 'efb_scaling_fixes'. 2012-11-19 13:18:57 +01:00
NeoBrainX b02bb7617f Fix some fractional EFB scaling issues. 2012-11-19 13:10:32 +01:00
XtraFear d6697d50c7 Added option to toggle the display of On-Screen Display messages in the Interface tab. 2012-11-16 23:54:48 +01:00
NeoBrainX f88e7d3b73 Fix an off-by-one error. 2012-11-16 14:29:11 +01:00
NeoBrainX a38bb488d2 Remove Renderer::xScale and Renderer::yScale. 2012-11-16 14:29:09 +01:00
NeoBrainX 78031c2d54 Move ComputeDrawRectangle() to Renderer::UpdateDrawRectangle(). 2012-11-16 14:25:49 +01:00
rodolfoosvaldobogado ee72852491 implement some code to reduce the amounts of calls to setup vertex format, in d3d9 it gives no noticeable speedup, in opengl it still does not work right.
thanks to neobrain for the idea
2012-10-26 23:18:09 -03:00
rodolfoosvaldobogado eaa1ea71c1 Implement the new buffer approach in opengl. sadly in my machine it gives my only 2 more fps and if your hardware does not support ARB_map_buffer_range is even slower than plain vertex arrays.
change naming in all the backends vertex managers to make more easy to continue with the merge an some future improvements.
please test this as i'm interested in knowing the performance in linux and windows with the different hardware platforms.
2012-10-26 11:34:02 -03:00
rog 5133ac551b merge relevant changes from bc61dbdf58a8 in otu0001-desync-fix clone 2012-10-23 02:10:49 -04:00
NeoBrainX 069d949a57 [cleanup] TextureCache: Kill the autogen_mipmap parameter 2012-10-20 21:07:02 +02:00
NeoBrainX ee3d6d66d7 [cleanup] [bugfix] TextureCacheBase: Cleanup and simplify mipmapping logic. Possibly fixes a bug or two. 2012-10-20 21:07:02 +02:00
NeoBrainX c859aaae84 [optimization] TextureCacheBase: Slightly loosen the requirements for reusing mipmapped textures 2012-10-20 21:07:02 +02:00
rodolfoosvaldobogado@gmail.com 5230146c73 Hey, long time no commits :).
So to compensate lets bring back some speed to the emulation.
change a little the way the vertex are send to the gpu,
This first implementation changes dx9 a lot and dx11 a little to increase the parallelism between the cpu and gpu.
ogl: is my next step in ogl is a little more trickier so i have to take a little more time.
the original concept is Marcos idea, with my little touch to make it even more faster.
what to look for: SPEEEEEDDD :).
please test it a lot and let me know if you see any problem.
in dx9 the code is prepared to fall back to the previous implementation if your card does not support the amount of buffers needed.
So if you did not experience any speed gains you know where is the problem :).
for the ones with more experience and compression of the code please test changing the amount and size of the buffers to tune this for your specific machine.
The current values are the sweet spot for my machine.
All must Thanks Marcos, I hate him for giving good ideas when I'm full of work.
2012-10-20 10:22:15 -03:00
Ryan Houdek 57426ee726 Forced commit 2012-10-13 13:00:04 -05:00
Ryan Houdek 3f0d7312fa A couple missed lines on the rebase. 2012-10-13 12:43:00 -05:00
Ryan Houdek 10666a9b87 More 'stuff' 2012-10-09 23:56:00 -05:00
Ryan Houdek eb7a0c485a More "stuff" for SS, also a small fix in the program shader cache cache setup." 2012-10-09 23:56:00 -05:00
Ryan Houdek 71f6b1eec6 Change 'stuff' 2012-10-09 23:56:00 -05:00
Ryan Houdek 03b09bed5d Get the program binary type correctly or else ATI makes massive (~400MB) shader caches. Also, don't need the line in the PixelShaderGen. 2012-10-09 23:56:00 -05:00
Ryan Houdek 2e15440896 Add support for Dual source blending to older ATI cards that don't support 420pack but do support GL_ARB_blend_func_extended. This is more proper as well anyways. 2012-10-09 23:56:00 -05:00
Ryan Houdek e88d35d1c1 Had a few vec4 and float4(0) calls floating around. 2012-10-09 23:55:59 -05:00
Shawn Hoffman 31a8424bcc fix formatting uglies introduced in glsl-master branch 2012-10-09 23:54:17 -05:00
Shawn Hoffman 4a4833e617 default to GLSL instead of Cg 2012-10-09 23:43:22 -05:00
Ryan Houdek 9996f27120 Give OSX users more of a chance of supporting Single pass DSB in the future. 2012-10-09 23:42:41 -05:00
Ryan Houdek d012c75005 Implement Program shaders cache. Seems to reduce a small amount of stuttering when F-Zero starts. Did it because I can :| 2012-10-09 23:42:41 -05:00
Ryan Houdek c76593f6a2 Looky, OSX found an issue for me. 2012-10-09 23:42:40 -05:00
Ryan Houdek 7f12daa014 Looks like we make use of fmod, make a GLSL function for it! 2012-10-09 23:41:49 -05:00
Pierre Bourdon 3bcec51334 More coding style fixes because I suck at sed 2012-10-09 23:41:48 -05:00
Pierre Bourdon 3c6d0fc710 8 spaces indentation -> tabs 2012-10-09 23:41:48 -05:00
Ryan Houdek 5b06bbf87d Use UBOs in every shader. I had missed a few. Only cache Uniform locations if we aren't using UBOs. 2012-10-09 23:41:06 -05:00
Ryan Houdek 5bcbf92f43 Make sure to support everything even if GPU doesn't. 2012-10-09 23:41:06 -05:00
Ryan Houdek d4a80ca3ec yay, UBOs work 100% now. 2012-10-09 23:41:05 -05:00
Ryan Houdek 1f75ee49bf UBO works for Pixel Shaders if Binding for UBO is zero, otherwise fails. Probably why Vertex shader UBO is failing. Too tired to investigate right now. 2012-10-09 23:41:05 -05:00
Ryan Houdek b105d70339 Firin ma lazer 2012-10-09 23:41:05 -05:00
Ryan Houdek c82b92bfc2 Fix one error. 2012-10-09 23:41:05 -05:00
Ryan Houdek 2fbca145cb Remove bSupportsGLSLLocation since it won't work how I expect it. 2012-10-09 23:41:05 -05:00
Ryan Houdek 4a84c6f742 Add in UBOs, doesn't work yet. Still debugging here. 2012-10-09 23:41:05 -05:00
Ryan Houdek 76e5766a1b Put Vertex Uniforms in to the correct places to get ready for UBOs. 2012-10-09 23:41:04 -05:00
Ryan Houdek d897491f94 Few compiler errors that got exposed once I got Dual Source Blending working. Seems it isn't working quite 100% either. Good chance I missed something anyway. 2012-10-09 23:41:04 -05:00
Ryan Houdek d83ead5914 Support Dual Source Blending in OGL plugin with GLSL. 2012-10-09 23:39:16 -05:00
Ryan Houdek eff019442f Playing through SSBM story made me find this. 2012-10-09 23:37:52 -05:00
Ryan Houdek b24990ca28 Bit of cleanup. Clean up my massive hack in the ShaderManagerFiles. Almost feature parity with Nvidia CG now I think. Just need to do Alpha test with Dual source blending now. 2012-10-09 23:37:52 -05:00
Ryan Houdek cf68cc0c61 Add support for GL_ARB_shading_language_420pack so we don't have to binding sampler locations. Also add support for GL_ARB_separate_shader_objects which doesn't currently work for some reason....investigating. 2012-10-09 23:37:52 -05:00
Ryan Houdek 8058f2f32f Missed one 2012-10-09 23:33:02 -05:00
Ryan Houdek 9064b76deb Shader Compile fixes. Played SMS for two shines. 2012-10-09 23:33:02 -05:00
Ryan Houdek 7cec31dbf3 Almost there. 2012-10-09 23:33:02 -05:00
Ryan Houdek 8123b137aa This is the terrible bit that can't be removed until we use UBOs in the GLSL shaders. 2012-10-09 23:31:31 -05:00
Ryan Houdek 0fc755c4df More stuff 2012-10-09 23:31:31 -05:00
Ryan Houdek 66a5334158 moe 2012-10-09 23:30:48 -05:00
Ryan Houdek 3943840d5c Now CG plays nice with this new stuff. 2012-10-09 23:27:59 -05:00
Ryan Houdek a357c77257 Add in GLSL setting again.
PS and VS making. Untested and won't work for now.

Add in program shader cache files.

Readd NativeVertexFormat stuffs.

Add in PS and VS cache things.

SetShaders in places.

Fixed EFB cache index computations in OpenGL renderer.

The previous computation was very likely to go out of array bounds,
which could result in crashes on EFB access.

Also, the cache size was rounded down instead of up. This is a problem
since EFB_HEIGHT (528) is not a multiple of EFB_CACHE_RECT_SIZE (64).
2012-10-09 23:23:37 -05:00
Pierre Bourdon 8cefcaa94c Implement a simple benchmarking mode which logs FPS to a file
Very useful to compare performance between two builds, check the impact of
a configuration option, etc. FPS log is stored in User/Logs/fps.txt and is
reset each time you launch a game. Only enabled if you check the "Log FPS
to file" option in your graphics settings.

Could be improved a bit: currently logs only every 1s (so you can't really
see small variations), maybe output more infos to the fps.txt like
average/stddev (but Excel/Libreoffice/Google Docs can compute that easily
too).
2012-10-04 05:41:02 +02:00
NeoBrainX 035840e7b5 Move last XFB size from Render to FramebufferManager. 2012-10-03 13:44:35 +02:00
NeoBrainX 6e4a61a991 Minor cleanups. 2012-10-03 13:44:04 +02:00
NeoBrainX bb8b5936c0 Revert "Partially revert revision d511b506120c."
This reverts commit 08e06b2293.
2012-09-27 18:15:44 +02:00
Glenn Rice d2e057d137 Update libav code to remove deprecation warnings. 2012-08-28 22:34:24 -05:00
NeoBrainX 1c1ae63b69 Windows build fix. 2012-08-26 20:26:10 +02:00
NeoBrainX cf8744cf2c OGL: Implement pixel metrics (untested) 2012-08-26 20:26:10 +02:00
NeoBrainX 4d8d86bd6a D3D11: Implement some PE pixel performance metrics.
Super Mario Sunshine is using a cool trick: To determine how much goop has been cleaned in ep. 6 of Sirena Beach, it counts the number of pixels that are input to the blending stage. For that it's using the PE performance registers ;)

Fixes issue 1498.
2012-08-26 20:26:10 +02:00
Pierre Bourdon 54fc4029dd Use do { ... } while (0) for the *_LOG macros
Without this patch, such code would not compile:

if (cond)
    WARN_LOG(FOO, "msg");
else
    WARN_LOG(FOO, "msg2");
2012-08-20 13:12:49 +02:00
NeoBrainX 08a9c66037 Revert the recent zcomploc changes including the Graphic_Fixes merge.
Reason:
- It's wrong, zcomploc can't be emulated perfectly in HW backends without severely impacting performance.
- It provides virtually no advantages over the previous hack while introducing lots of code.
- There is a better alternative: If people insist on having some sort of valid zcomploc emulation, I suggest rendering each primitive separately while using a _clean_ dual-pass approach to emulate zcomploc.

This reverts commit 0efd4e5c29.
This reverts commit b4ec836aca.
This reverts commit bb4c9e2205.
This reverts commit 146b02615c.
2012-08-10 20:12:02 +02:00
NeoBrainX 6e02ad55bc Maintenance. 2012-08-07 18:57:53 +02:00
NeoBrainX ec859009b7 Add a sanity check for viewports with zero width/height.
Fixes issue 5466.
2012-08-07 01:37:31 +02:00
skidau 0efd4e5c29 Skipped the ZCompLoc pass if the result can be determined at compile time. Brings back the speed lost by r146b02615c07. 2012-08-06 09:29:01 +10:00
Pierre Bourdon 228172d656 Fix a typo in the indexed color vertex loader
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:16 +02:00
Pierre Bourdon 8597660855 Replace all of the opcode data read functions by their SSSE3 equivalent, not only the first one.
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:08 +02:00
skidau b4ec836aca Removed the offset if the ZCompLoc GREATER or LESS function is used. Fixes the invisible player in THPS3. 2012-06-29 18:47:49 +10:00
Pierre Bourdon b27d8ff0d6 Add a missing Invalidate() call in ~TextureCache(). Fixes a regression from 8bed27a3d1 causing textures to load improperly when a game is run two times in the same Dolphin instance 2012-06-27 20:20:28 +02:00
NeoBrainX 7dabba5095 Fix a small bug. 2012-06-20 18:18:20 +02:00
NeoBrainX 043a85f8a6 Minor cleanup. 2012-06-20 18:18:19 +02:00
NeoBrainX 8a5abbddc4 Enable texture format overlay on the fly. 2012-06-20 18:18:18 +02:00
NeoBrainX 8bed27a3d1 Enable hires textures even when texture dumping is enabled.
Remove some deprecated code.
2012-06-20 18:18:17 +02:00
NeoBrainX 8d30ac462a Instead of invalidating texcache whenever the graphics configuration dialog gets opened, clean up textures on configuration changes. 2012-06-20 18:18:05 +02:00
NeoBrainX 227580d1a5 Remove "Disable Textures". 2012-06-11 23:35:46 +02:00
NeoBrainX 1dd6b978c1 Remove "Disable Lighting". 2012-06-11 23:30:20 +02:00
NeoBrainX b5ad382b07 Fast mipmaps deserves to die!! 2012-06-08 00:22:57 +02:00
NeoBrainX 0d577d886a Remove some TODOs. 2012-06-02 19:23:20 +02:00
skidau d74c50b942 OSX build fix for BPStructs. Thanks to pauldacheez for the fix. 2012-06-02 11:28:43 +10:00
skidau bb4c9e2205 Fixed "Failed to compile pixel shader" error when Per-Pixel Lighting is enabled. Thanks to slmpika for the fix. 2012-06-02 11:25:44 +10:00
NeoBrainX 372e00632d Fix changing internal resolution via hotkeys (settings above 1.5x weren't accessible anymore before). 2012-05-29 13:11:28 +02:00
Pierre Bourdon bfde41895f Update the viewport when the scissor offset is changed
Fixes a bug with Another Code: R that was noticed when gx-optimization was
merged.
2012-05-27 08:03:26 +02:00
Pierre Bourdon 1efabea9b4 Fix compilation errors with g++4.7 2012-05-26 08:09:50 +02:00
skidau 146b02615c Merge rodolfoosvaldobogado's zcomploc code (Graphic_Fixes branch) 2012-05-26 13:47:07 +10:00
nitsuja 99b202fd2e savestate vertexmanager (base) since it affects VertexLoader::RunVertices which affects g_pVideoData 2012-05-26 13:18:08 +10:00
nitsuja ae242e5675 added some missing VideoBackendHardware data to savestates. I think this makes savestates more stable (fewer "GFX FIFO: Unknown Opcode" errors) in dual core mode.
also added some extra verification markers around here, to potentially give better info on future version mismatches
2012-05-26 13:18:08 +10:00
nitsuja 2be579e8ba fixed some graphics problems with loading savestates (for example, wrong colors on title screen of metroid prime 3) 2012-05-26 13:18:07 +10:00
nitsuja a81631b58e made savestates synchronous and immediate. this allows saving or loading while the emulator is paused, fixes issues where savestate hotkeys would get ignored if pressed too close together, might speed up savestates in some cases, and hopefully makes savestates more stable too.
the intent is to replace the haphazard scheduling and finger-crossing associated with saving/loading with the correct and minimal necessary wait for each thread to reach a known safe location before commencing the savestate operation, and for any already-paused components to not need to be resumed to do so.
2012-05-26 13:09:38 +10:00
Pierre Bourdon cf69e7ca8a Merge branch 'gx-optimization'
This branch reduces the number of useless state flushes in the video
emulation layer by checking whether a BP/XF change will have an effect
or not. Greatly reduces the number of GL calls per frame.

Thanks to degasus for his help!
2012-05-24 21:49:37 +02:00
Pierre Bourdon fee2d83f68 Fix a data endianness problem introduced by r7cccb4baa724. 2012-05-20 22:16:21 +02:00
Pierre Bourdon c95baf614d Avoid changing video state on useless BP writes
When a game writes the same value that was already configured to a BP
register, Dolphin previously flushed the GPU pipeline and reconfigured
the internal video state (calling SetScissor/SetLineWidth/SetDepthMode).

Some of these useless writes still need to perform actions, for example
writes to the EFB copy trigger or the texture preload registers (which
need to reload the texture from memory).
2012-05-20 20:56:03 +02:00
Pierre Bourdon 7cccb4baa7 Check if data was modified in LoadIndexedXF too 2012-05-19 10:54:40 +02:00
Pierre Bourdon b8d4d013f6 Compute the comparison size properly (transferSize is in u32, not in u8) 2012-05-18 23:27:02 +02:00
Pierre Bourdon 5a77cae2e3 Check if BP and XF changes actually change values before flushing 2012-05-18 23:13:53 +02:00
NeoBrainX 54aeec7a8f Dump the redundant "save textures" function. Use TextureCache's dumping feature instead. 2012-05-13 17:48:23 +02:00
NeoBrainX 72e83140f0 TextureCacheBase: Remove the texture size limit for custom textures. Only the GPU restrictions for maximum texture size remain. 2012-05-13 17:43:14 +02:00
NeoBrainX 41d37ab0a0 TextureCacheBase: Support loading custom mipmaps. 2012-05-13 17:42:22 +02:00
NeoBrainX a5e68ab10e TextureCacheBase: Support dumping individual mipmaps. 2012-05-13 17:41:04 +02:00
NeoBrainX a8ad59ee3e TextureCacheBase: Move texture dumping to a helper function. 2012-05-13 17:41:03 +02:00
NeoBrainX 3ecc5e879c TextureCacheBase: Move custom texture loading to a helper function 2012-05-13 17:41:03 +02:00
skidau 1587cb3738 Fixed texture encoding. Fixes the interaction with objects in Another Code R. Thanks to wordmanwords for the patch.
Fixes issue 5405.
2012-05-05 11:21:05 +10:00
Pierre Bourdon beb4204bbb Include libavutil/mathematics.h explictly in AVIDump.cpp. Fixes issue #5266. 2012-05-02 07:29:15 +02:00
Jordan Woyak 722480cb2e Fix compilation with g++ 4.7 and some warnings. Fixes issue 5347. 2012-04-07 15:45:32 -05:00
rodolfoosvaldobogado 5650b3b5f6 more fixes. take in account when depth textures are used and alpha test fails :)( i really forgot that). 2012-04-03 15:08:58 -03:00
rodolfoosvaldobogado 4fafbd0700 Fix for my last commit thanks to Lolaker for pointing the error 2012-04-03 09:56:11 -03:00
rodolfoosvaldobogado 6a446efd5f Second Stage: re implement zcomplock and correct all the logic error in PixelShaderGen.cpp. i disable fastzcomlock for the moment to avoid confusions.
please test for regressions
2012-04-03 00:08:36 -03:00
rodolfoosvaldobogado a0d60210fd First Stage:
Fix depth related errors in dstalpha pass.
best place to test: water splash effect in super mario galaxy
2012-04-02 14:26:12 -03:00
NeoBrainX 460610ea0e Revert Rodolfo's recent zcomploc commits until they actually work correctly.
This reverts commit 402006a83a.
This reverts commit 48d8d71391.
This reverts commit 450dcc9d2c.
2012-03-30 01:57:53 +02:00
rodolfoosvaldobogado 402006a83a more fixes to zcomplock and opengl implementation 2012-03-29 18:26:58 -03:00
NeoBrainX 2356def0d4 Merge branch 'fifoplayer_updates'.
This adds an "Analyzer" tab to the fifoplayer dialog which allows to conveniently browse through all register pokes that are being sent by the game each frame.
There's also a search function, but it doesn't work all that well for anything but simple searches at the moment. However, I'm merging this anyway since I'm not sure if I'm going to finish this.

Note that due to recent fifo changes, it's not yet possible to run fifoplayer in dual-core mode.
2012-03-29 22:50:45 +02:00
Shawn Hoffman 2ee5e5cebc Merge branch 'scons-removal' 2012-03-28 00:02:04 -07:00
rodolfoosvaldobogado 450dcc9d2c As requested, this is my implementation of zcomploc using a multi-pass algorithm. My apologize to the others devs for committing in the main branch but is the only way to get this tested as soon as possible.
please test for regressions, speed and for other issues fixed, as a example, the black color in water splash in super mario galaxy are fixed with this rev.
please as soon as yo find a bug let me know.
2012-03-27 15:44:58 -03:00
Shawn Hoffman 48eb791a4e Merge remote-tracking branch 'timowiren/master' 2012-03-25 13:21:25 -07:00
Shawn Hoffman d15740daf1 Merge branch 'wxw3-update' 2012-03-25 12:27:38 -07:00
skidau f30aebf8d7 Added a check for TMEM overflows while preloading textures. Thanks to NeoBrainX for the tip. 2012-03-25 21:35:57 +11:00
Timo Wiren cb92805445 Spaces to tabs. Removed a comment. 2012-03-25 13:01:26 +03:00
rodolfoosvaldobogado 9ed83765e6 long time no commits :)
a little code cleaning to avoid duplicated execution of AlphaPreTest and a little correction to some comments from the previous commits.
this change must behave exactly like last revision, if something is broken please let me know
2012-03-25 00:01:47 -03:00
Pierre Bourdon b5ba2eb030 Merge branch 'master' into zcomploc-support 2012-03-24 18:41:51 +01:00
Timo Wiren 11959a3781 Matching new and delete. 2012-03-24 19:41:13 +02:00
NeoBrainX 7a1744575d D3D9: Fix texel to pixel mapping when sampling textures properly. 2012-03-24 17:23:03 +01:00
NeoBrainX fee98b426b Revert r41bcf657f89d, r3a9fed0ba285, r9adc119e3c2f and re58692653afd (all of them are wrong). 2012-03-24 15:58:44 +01:00
skidau 41bcf657f8 Adjusted the DX9 offset of the Sampling address to more closely match what we are seeing in games.
Fixes issue 5305.
2012-03-23 23:20:19 +11:00
skidau c4fbb6e377 Checked PRELOAD_MODE to determine if TMEMODD or TMEMEVEN should be used.
Fixes issue 5212.
2012-03-23 22:10:48 +11:00
Shawn Hoffman 56b1373baf Remove scons-related files 2012-03-25 12:55:02 -07:00
Shawn Hoffman f7423a0a4f Merge branch 'master' into wxw3-update
Conflicts:
	Source/Core/DolphinWX/Src/LogWindow.cpp
2012-03-22 17:57:38 -07:00
Pierre Bourdon 339ee98e62 Add a comment before the zcomploc test explaining the implementation/hack 2012-03-22 22:10:23 +01:00
Pierre Bourdon 0ffc12bbfd Merge branch 'master' into zcomploc-support
Conflicts:
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
2012-03-22 15:21:52 +01:00
skidau 006923e871 Disabled zcomploc while update_enable has been set in zmode. Fixes zcomploc in F-Zero GX. 2012-03-22 20:36:41 +11:00
NeoBrainX 6202714efd Fix some regressions from r3b38295cbd08. 2012-03-20 22:36:21 +01:00
skidau a60a0825a3 Merged 'FifoBusy' branch. Thanks
to marcosvitali.

Added an external exception check when the CPU writes to the FIFO.  This allows
the CPU time to service FIFO overflows.  Fixes random hangs caused by FIFO
overflows and desyncs like in "The Last Story" and "Battalion Wars 2".  Thanks
to marcosvitali for the research.

Added some code to unlink invalidated blocks so that the recompiled block can be
linked (speed-up).

This release still fixed the hangs produced by fifo overflow without sacrifice
performance. For example you can test Tutorial moves at the beginning of The last history now
is fluid 30/60.

Fixed possibles random hangs in DC mode.
Fixed hangs in DC mode in (Simpsons, Monkey Island, Pokemon XD, etc)
Implemented accurate management of Pixel Engine Interrupts.  Now the GPU loop
is stopped when a PE Interrupt needs to be managed and resumed when Pixel Engine
finish.

Fixed Metroid Prime 3 and 2 desync. And other games with desync because of
FIFO Reset. That happens because  FIFO_RW_DISTANCE_HI must be written first, for checking
fifo.CPReadWriteDistance == 0, so some fifo resets was not managed in the right
way.

Fixed Super Monkey Ball in some cases when the game write the
WriteReadDistance need to be safe like the SafeCPRead.

Improved the CheckException for the GatherPipe writes in JIT, now only the
External Exceptions are processed.

Fixed definitely Pokemon XD in dual core mode. This game is doing something
not allowed. It attach to CPU the same fifo attached to the GPU in multibuffer
mode. I added a check to prevent overwrite the GPU FIFO with the CPU FIFO. If
the game do that on breakpoint the solution can fail.

Fixed ReadWriteDistance calc when CPRead > CPWrite.

Added Token and Finish cause to GP Jit checking.

Additional cleanup in CommandProcessor.



Fixes issue 5209
Fixes issue 5055
Fixes issue 4889
Fixes issue 4061
Fixes issue 4010
Fixes issue 3902
2012-03-20 19:37:25 +11:00
marcosvitali 20eca1bf7e Ive fixed definitely Pokemon XD in dual core mode. This game is doing something not allowed. It attach to CPU the same fifo attached to the GPU in multibuffer mode. I added a check to prevent overwrite the GPU FIFO with the CPU FIFO. If the game do that on breakpoint the solution can fail.
Fixed ReadWriteDistance calc when CPRead > CPWrite.
Added Token and Finish cause to GP Jit checking.
2012-03-18 22:54:58 -03:00
Shawn Hoffman c5d746f3d8 remove scons files from VS projects 2012-03-18 06:41:12 -07:00
skidau dc79d68e72 Added the corresponding change from r352ab2ba4394 into JITIL.
Tidied some code.
2012-03-13 22:35:11 +11:00
marcosvitali fedf6055ce I've fixed Super Monkey Ball in some cases when the game write the WriteReadDistance need to be safe like the SafeCPRead.
This fix is not related with the previous commits, but the previous commits help me to see that because in the new scenery SMB was hanging. May be in the past also doesn't boot some times because of that.

Please Test FZero boot also. Thanks.
2012-03-11 12:40:39 -03:00
marcosvitali 104603467b This commit fix games hanging because of my prior Revision c2e6fdf09f
The external exceptions in dolphin are checking frequently but is different to real HW, so sometime the game is in a loop checking GPU STATUS, the exceptions doesn't checked, and the game hang.\
For solve this I need a trick: still waiting for the exception handler be linked but if CommandProcecsor is reading the GPStatus, resume this.

This fixed "TimeSplitters: Future Perfect" broken in the Revision c2e6fdf09f and surely others games.
2012-03-09 18:58:23 -03:00