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
marcosvitali
41652d6b1f
I've 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.
I didn't test Metroid 2 desync reported in Issue 4336 but I think is the same.
About the flickering in MP2, I don't know for my is not related or yes, but you can test anyway.
Fixed Issue 3902
Well now the FIFO is 99.99% finished :)
2012-03-09 01:33:29 -03:00
marcosvitali
c2e6fdf09f
- I've fixed possibles random hangs in DC mode.
...
- I've fixed hangs in DC mode in (Simpsons, Monkey Island, Pokemon XD, etc)
- I've implemented accurate manage of Pixel Engine Interrupts, now the GPU loop is stopped when a PE Interrupt needs to be managed and resume when Pixel Engine finish,
I think now, the Fifo in DC mode is more accurate than SC mode. :)
Time to close the big fifo Issue 3694 (snif), please if you have a possible fifo issue report this like a game issue.
I was working with Skid_AU together, especially thanks for him.
Test a lot all games, and compare the performance with the master maybe this accuracy has a cost (not a lot).
I think now the fifo is very stable, overflow fixed, random hang fixed, if you have a game with a hang with this rev and not in master please report this.
2012-03-08 02:47:55 -03:00
LPFaint99
6fc8cdf12d
revert r90a2096a24f4 behavior changes in PixelEngine.cpp. Thanks to Autoran1 for finding the responsible commit. Fixes Scrubbing Serena Beach Countdown in both SC and DC.
...
Fixes issue 1498.
2012-03-07 20:08:14 -08:00
marcosvitali
b0f75f17ae
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.
Shuffle2: I've delete the hacky line, I think is not necessary anymore. Additional some clean in CommandProcessor.
Please test The Last Story and others games affected in the previous commits and give me a feedback.
2012-03-05 02:40:10 -03:00
Henrik Rydgard
f5d4fe0bfe
Fix some minor bugs pointed out by PVS Studio (thanks!)
2012-03-03 20:07:20 +01:00
skidau
9e398fd418
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.
...
Fixes issue 5209.
Fixes issue 5150.
Fixes issue 5055.
Fixes issue 4889.
Fixes issue 4061.
Fixes issue 4010.
Fixes issue 3902.
2012-03-02 18:53:41 +11:00
Jordan Woyak
f92d1e1e93
fix some clang compilation errors
2012-02-24 14:25:02 -06:00
NeoBrainX
3a9fed0ba2
PixelShaderGen: Fix a bug introduced in revision 9adc119e3c
.
...
D3D11: Fix shader constant mapping.
2012-02-21 12:51:41 +01:00
NeoBrainX
9adc119e3c
PixelShaderGen: For custom textures and scaled EFB copies, use correct texel to pixel mapping when sampling textures
...
(D3D9 only)
This is basically the same as revision e58692653a
, just for scaled textures and with a LOT more work...
2012-02-20 20:32:08 +01:00
NeoBrainX
e58692653a
PixelShaderGen: Use correct texel to pixel mapping when sampling textures
...
(D3D9 only)
Fixes issue 2068.
Fixes issue 5158.
2012-02-17 17:09:17 +01:00
NeoBrainX
439613b833
TextureCacheBase: Remove a superfluous TODO (texture hashing takes care of that stuff)
2012-02-04 13:01:52 +01:00
NeoBrainX
eb01a110c9
Implement texture preloading
2012-02-03 21:21:13 +01:00
NeoBrainX
dabb35afce
Prepare texture preloading support
2012-02-03 21:20:34 +01:00
NeoBrainX
d1605abfa9
Add license header for TextureCacheBase files
2012-01-31 19:52:02 +01:00
NeoBrainX
1446fb33d5
TextureCacheBase: Replace the efbcopy_state member variable of texture cache entries with a more general "texture type"
2012-01-31 19:52:02 +01:00
NeoBrainX
cf899781f9
TextureCacheBase: Update and improve documentation for EFB copies
2012-01-31 19:52:02 +01:00
NeoBrainX
b34b6e47f2
TextureCacheBase: Remove a redundant variable
2012-01-31 19:52:02 +01:00
NeoBrainX
9fed10fc75
Remove SaveTexture declaration in VideoCommon since it's only actually defined in OpenGL
2012-01-31 19:52:02 +01:00
NeoBrainX
3b38295cbd
TextureCacheBase: De-uglify hybrid EFB copies (documentation needs updating though)
...
TextureCacheBase: Fixed dynamic EFB copies being set to normal textures.
2012-01-31 18:09:35 +01:00
NeoBrainX
67129404dd
TextureCacheBase: Small bugfix
...
Added documentation for hybrid EFB copy stuff
2012-01-31 18:09:35 +01:00
NeoBrainX
5239ba88c9
TextureCache: Remove unsafe texture cache
2012-01-31 18:09:35 +01:00
NeoBrainX
8c2d87f668
TextureCacheBase: Move around stuff, add some TODOs
2012-01-31 18:09:35 +01:00
NeoBrainX
93dbd93a8d
TextureCacheBase: More cleanup...
2012-01-31 18:09:35 +01:00
NeoBrainX
0c1e015ec3
TextureCacheBase: Small change
2012-01-31 18:09:35 +01:00
NeoBrainX
f68ee87e0e
TextureCacheBase: De-uglify texcache entry lookup even more + documentation
2012-01-31 18:09:35 +01:00
NeoBrainX
dcf18fbaaf
TextureCacheBase: Force autogenerating mipmaps if custom textures are used
2012-01-31 18:09:35 +01:00
NeoBrainX
8bc9e443fd
TextureCacheBase: De-uglify entry lookup a bit
2012-01-31 18:09:35 +01:00
NeoBrainX
9c39952c34
TextureCacheBase: Kill deprecated entry member isNonPow2
...
TextureCacheBase: Add a TODO about a potential bug
2012-01-31 18:09:35 +01:00
NeoBrainX
94a8536b8c
TextureCacheBase: Simplify texture cache entry initialization
2012-01-31 18:09:34 +01:00
NeoBrainX
c5008fe9de
TextureCache: Renaming some variables
...
OGL: Fix a possible bug at texture dumping
OGL: Add a TODO about a possible bug
2012-01-31 18:09:34 +01:00
NeoBrainX
2d6d73df95
[maintenance] Add a note explaining why we aren't emulating CP clear register writes.
...
For further reference, see also r700f5eabc752.
2012-01-21 14:58:29 +01:00
NeoBrainX
ad1a4d7ce3
FifoPlayer: Add a search function for the analyzer tab.
...
Also some tiny fixes.
2012-01-21 13:49:24 +01:00
NeoBrainX
ecb616f7ff
FifoPlayer: Make sure that we actually display "Yes" if some variable is true...
...
FifoPlayer: More consistency of output (display "0x" in front of hex numbers, write hex numbers in capital letters)
2012-01-21 13:49:24 +01:00
NeoBrainX
5eb24a51cf
FifoPlayer: Add a description label for the currently selected object command.
...
Requires adding such descriptions for all BP/CP/XF registers. For now, I added descriptions for EFB copy related BP registers.
2012-01-21 13:49:24 +01:00
Ryan Houdek
d355ad7055
More 'stuff'
2012-01-11 16:00:30 -06:00
Ryan Houdek
0b74ead13f
More "stuff" for SS, also a small fix in the program shader cache cache setup."
2012-01-11 04:10:43 -06:00
Ryan Houdek
576955c145
Change 'stuff'
2012-01-11 01:18:54 -06:00
nitsuja
39613a95a8
initialize the uninitialized
2012-01-04 01:36:09 -08:00
Ryan Houdek
6a5b56d25f
Get the program binary type correctly or else ATI makes massive (~400MB) shader caches. Also, don't need the line in the PixelShaderGen.
2011-12-29 01:35:50 -06:00
Ryan Houdek
8a48b42e4c
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.
2011-12-29 00:32:06 -06:00
Ryan Houdek
88d20f1a2b
Had a few vec4 and float4(0) calls floating around.
2011-12-27 12:35:35 -06:00
Shawn Hoffman
4bc14c3473
fix formatting uglies introduced in glsl-master branch
2011-12-26 00:15:54 -05:00
Shawn Hoffman
f59063c8e7
default to GLSL instead of Cg
2011-12-25 22:00:24 -05:00
Ryan Houdek
8e0172374c
Give OSX users more of a chance of supporting Single pass DSB in the future.
2011-12-21 01:29:29 -06:00
Ryan Houdek
a10656b1b2
Implement Program shaders cache. Seems to reduce a small amount of stuttering when F-Zero starts. Did it because I can :|
2011-12-21 00:15:48 -06:00
nitsuja
3e773f093d
fixed a freeze on emu shutdown in windows build
2011-12-19 15:13:26 -08:00
Ryan Houdek
3513dd7115
Looky, OSX found an issue for me.
2011-12-18 21:06:28 -06:00
Maarten ter Huurne
ed1bfdf293
Merge branch 'cmake-osx2'
2011-12-17 16:30:02 +01:00
Ryan Houdek
e85a3d68b0
Looks like we make use of fmod, make a GLSL function for it!
2011-12-11 07:02:13 -06:00
Pierre Bourdon
df283a56a0
More coding style fixes because I suck at sed
2011-12-11 11:14:02 +01:00
Pierre Bourdon
014c474024
8 spaces indentation -> tabs
2011-12-11 11:08:18 +01:00
Ryan Houdek
97c3c156e6
Use UBOs in every shader. I had missed a few. Only cache Uniform locations if we aren't using UBOs.
2011-12-10 15:40:10 -06:00
Ryan Houdek
c72a244809
Make sure to support everything even if GPU doesn't.
2011-12-10 14:35:37 -06:00
NeoBrainX
3d9c35f58e
VideoCommon: Fix upper and lower depth bytes being switched when performing Z16L EFB copies (EFB to texture only).
...
Fixes issue 4989.
Fixes issue 5056.
2011-12-10 16:08:26 +01:00
Ryan Houdek
5925feb6e0
yay, UBOs work 100% now.
2011-12-10 08:07:13 -06:00
Ryan Houdek
7ab38cff68
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.
2011-12-10 07:38:30 -06:00
Ryan Houdek
126dfa073b
Firin ma lazer
2011-12-10 01:56:37 -06:00
Ryan Houdek
54a90d08ce
Fix one error.
2011-12-09 21:15:15 -06:00
Ryan Houdek
e8087aa1a9
Remove bSupportsGLSLLocation since it won't work how I expect it.
2011-12-09 19:14:02 -06:00
Ryan Houdek
8e5bb59cb6
Add in UBOs, doesn't work yet. Still debugging here.
2011-12-09 17:30:05 -06:00
Ryan Houdek
9119399547
Put Vertex Uniforms in to the correct places to get ready for UBOs.
2011-12-09 16:13:04 -06:00
Ryan Houdek
c89c484dd0
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.
2011-12-08 05:32:17 -06:00
Ryan Houdek
0ccba2b581
Support Dual Source Blending in OGL plugin with GLSL.
2011-12-08 05:09:48 -06:00
Ryan Houdek
62b9a779c1
Playing through SSBM story made me find this.
2011-12-08 04:11:30 -06:00
Ryan Houdek
cecc3c3873
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.
2011-12-08 03:20:31 -06:00
Ryan Houdek
1201988fe4
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.
2011-12-08 01:51:08 -06:00
Ryan Houdek
b01c973689
Missed one
2011-12-07 23:01:14 -06:00
Ryan Houdek
bf4ef054d3
Shader Compile fixes. Played SMS for two shines.
2011-12-07 22:47:13 -06:00
Ryan Houdek
33c24f0a15
Almost there.
2011-12-07 22:04:34 -06:00
Maarten ter Huurne
bb182d88b7
Link against systemwide OpenCL on OS X.
2011-12-05 05:26:28 +01:00
Ryan Houdek
164b56ff73
This is the terrible bit that can't be removed until we use UBOs in the GLSL shaders.
2011-12-02 20:20:53 -06:00
Ryan Houdek
804938e9fc
More stuff
2011-12-02 20:17:26 -06:00
Ryan Houdek
ae6ac5b439
moe
2011-12-02 19:04:37 -06:00
Ryan Houdek
f8eb45637f
Now CG plays nice with this new stuff.
2011-12-01 00:33:12 -06:00
Ryan Houdek
b20176b74f
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).
2011-11-30 22:02:25 -06:00
Glenn Rice
e5d051a4e9
Update linux libav frame dump code for recent api changes.
2011-11-22 19:24:05 -06:00
Pierre Bourdon
8f31968466
Revert "Merge branch 'zcomploc-support'"
...
This reverts commit 9dad9ebe89
, reversing
changes made to e76bc71efe
.
2011-11-01 01:37:54 +01:00
crudelios
dd551814c9
Bounding Box bugfixes.
...
- Fixes all (I hope) BBox-related unknown pointer crashes.
- Fixes wrong BBox values with Frame Skip on (and the resulting unknown pointer crashes).
- Fixes a small oversight on the change I made to the ISO Properties dialog.
This should also be a (very very little) bit faster than the previous version.
2011-10-28 21:12:12 +01:00
crudelios
852fe9c4be
Added proper Bounding Box support.
...
Should fix most graphical issues with Paper Mario: TTYD and Super Paper Mario. Fixes issue 360.
Since only those two games seem to require BBox support, and as per ector's suggestion, BBox is only enabled for those two games.
BBoxes and Display List Caches don't get along too well, causing Paper Mario: TTYD to hang during certain effects where BBoxes are used. For now, I disabled DList Cache for the Paper Mario games, hopefully both will be compatible in the future.
2011-10-26 01:19:10 +01:00
skidau
5d14bb5e70
Changed the save state system to load/save only after the screen has been drawn. This should help stabilise the save states.
2011-10-15 22:19:42 +11:00
Pierre Bourdon
59072adc32
Align stack variables on a 16-bytes boundary in SSSE3 functions
...
Fixes issue 4450. Thanks to pholklore1 for his patch.
2011-10-08 17:36:01 +02:00
Pierre Bourdon
9dad9ebe89
Merge branch 'zcomploc-support'
...
zcomploc is a feature of the BP which switch depth test from before the alpha
test to after the alpha test. This way, transparent fragments are written to
the depth buffer too.
The current implementation is quite hacky and does not cover all cases but is
enough to fix problems in a lot of game. A complete implementation would
require a multipass rendering method and is attempted in the
zcomploc-experimental branch.
According to testers feedback, fixes bugs in the following games:
- Baten Kaitos
- Baten Kaitos Origins
- 007: Everything or Nothing
- Ty the Tasmanian Tiger
- Tony Hawk's Pro Skater 3
And probably other games too.
Conflicts (because of new-shadercache-uids):
Source/Core/VideoCommon/Src/PixelShaderGen.cpp
2011-10-04 07:56:13 +02:00
Pierre Bourdon
266cafb82d
Add a call to VertexManager::Flush() when changing TC gen settings
...
In previous revisions of Dolphin, changing texture generation settings (via
GX_SetTexCoordGen for example) did not regenerate the vertex shader and flush
the vertices. Adding this flush should fix texture problems in a few game, for
example in Superman: Shadow of Apokolips:
Before: http://i.imgur.com/mHmfb.jpg
After: http://i.imgur.com/2ThES.png
2011-10-01 02:36:03 +02:00
NeoBrainX
81c614fa07
Clean up various things.
2011-09-29 23:32:39 +02:00
NeoBrainX
ddfe219293
Fixup line endings.
2011-09-29 23:32:39 +02:00
NeoBrainX
ca7e8a9e88
Fix pixel lighting.
2011-09-29 23:32:39 +02:00
NeoBrainX
f041eee23b
Compile fix.
2011-09-29 23:32:38 +02:00
NeoBrainX
c710ea33f9
Merge some frame dumping code to VideoCommon, fixes a memory leak in D3D9 and OpenGL if emulation is stopped while dumping frames.
...
Breaks D3D11 frame dumping for some weird reason (memory corruption or whatever?).
2011-09-29 23:32:38 +02:00
NeoBrainX
bd4a5b5ef6
Implement frame dumping in D3D11.
...
Fixes issue 4831.
2011-09-29 23:32:38 +02:00
NeoBrainX
8c691767da
Various changes which improve FreeBSD support.
...
Patches by martymac, all credits go to him ;)
2011-09-29 23:32:38 +02:00
NeoBrainX
5d075ce507
- D3D9: pass the correct API type to ValidatePixelShaderIDs
...
- don't load shader cache from disk in d3d9/11 if shader debugging is enabled (we won't have any info about the source shader code otherwise, etc)
- dump shader source codes on safe UIDs mismatch
Thanks to LordMark and [SS] for reporting those to me ;)
2011-09-10 03:10:28 +02:00
NeoBrainX
a021dd7b79
Small fix to the previous commit.
2011-09-09 21:45:11 +02:00
NeoBrainX
5c14a24ce1
Make shader ID validation optional by adding a gfx setting called "EnableShaderDebugging".
...
Setting this to True will enable additional checks if the shader cache misses any relevant register changes.
2011-09-09 21:34:46 +02:00
NeoBrainX
b28348066e
Improve the shader UID debugging stuff and merge it to VideoCommon, effectively enabling it in D3D9 and D3D11 as well.
2011-09-09 00:32:04 +02:00
NeoBrainX
349a3ae91d
Merge remote-tracking branch 'remotes/origin/master' into new-shadercache-uids
2011-09-08 02:14:18 +02:00
NeoBrainX
6c7bda6851
Various fixes and cleanups.
2011-09-08 02:09:44 +02:00
NeoBrainX
98b62d8362
Track alpha blending paramaters in the pixel shader UID.
2011-09-07 21:15:14 +02:00
NeoBrainX
3939f9595a
Add runtime checks to make sure we aren't overoptimizing the pixel shader cache.
2011-09-07 21:15:09 +02:00
NeoBrainX
4702de591e
Added safe pixel shader UIDs for debugging purposes.
2011-09-07 21:10:06 +02:00
NeoBrainX
231c13d6ce
Added safe vertex shader UIDs for debugging purposes.
2011-09-07 21:03:10 +02:00
NeoBrainX
df4e337ac9
Fix various pixel shader compilation errors caused by the Direct3D shader compiler going nuts due to uninitialized (and unused) shader variables.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7693 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-09-06 18:37:01 +02:00
NeoBrainX
17fcd406fc
Merge some scissor rect related code to VideoCommon.
2011-09-05 22:04:28 +02:00
Shawn Hoffman
b867c21fea
apply to dx9 and dx11 backends as well
2011-09-05 12:19:11 -07:00
Shawn Hoffman
95517a9741
vs2010: Disable LTCG for realz
2011-09-05 09:43:23 -07:00
Pierre Bourdon
d3ecf98213
Include the zcomploc bit in the shader UID
...
Fixes issues with switching zcomploc on/off during execution.
2011-09-04 05:38:32 +02:00
Pierre Bourdon
0bdf8646f0
Proof of concept zcomploc implementation
...
Fixes a few depth related graphics bugs. Example in Baten Kaitos (GKBEAF):
Before: http://i.imgur.com/EDdVA.png
After: http://i.imgur.com/h6GuY.png
Still a few bugs in this implementation: zcomploc switching is not yet
implemented, and the color is wrong with this test: http://codepad.org/7GpxklOi
(red on Dolphin, gray on Wii).
2011-09-04 05:08:09 +02:00
Pierre Bourdon
d710eda0c5
Clean up a bit the shader code generation for alpha test fails
2011-09-04 04:44:50 +02:00
NeoBrainX
bcb8d11c1b
Reduced the number of redundant vertex shader compilations (possibly to zero).
...
That one was almost too easy ;P
2011-08-31 20:46:03 +02:00
NeoBrainX
4137f287fd
Fix a critical bug which caused shaders to be redundantly recompiled when disabling per-pixel depth.
...
As a nice side effect, the number of redundant shader compilations is now next to zero ;)
2011-08-31 19:45:28 +02:00
NeoBrainX
7f01139d13
Replace the pixel shader UID generation algorithm with a better one which reduces the number of redundant shader compilations by around 30% (can be optimized even further though).
...
This should help some games which suffer from heavy stuttering like e.g. F-Zero GX or Red Steel 2.
2011-08-31 18:03:33 +02:00
NeoBrainX
08e06b2293
Partially revert revision d511b50612
.
...
Slightly slows down emulation, but deobfuscates the pixel shader gen greatly...
2011-08-31 16:09:54 +02:00
NeoBrainX
8a17e15943
Various cleanups and TODOs.
2011-08-31 16:09:46 +02:00
Shawn Hoffman
c0dd84cf7d
buildfix ON MASTER!! :<
...
(I am sonic's babysitter)
2011-08-26 21:19:40 -07:00
Ryan Houdek
62e790f109
Have the ability to disable screensaver due to Nvidia + Displayport can cause annoying flickering
...
Bring up to standards guidelines and also support Windows
Switch this around...
2011-08-26 13:29:01 -07:00
Jordan Woyak
e8fe15c3f7
Make titlebar and about dialog fancy for cmake build.
...
Windows needs fixing.
2011-08-21 17:43:05 -05:00
NeoBrainX
0655ee571d
Shader compilation error message modified to contain some helpful information for noobs (includes a reference to the full bad shader dump).
...
Removed the "Hide Shader Errors" option; hide shader errors if panic handlers are disabled now.
Removed superfluous error messages about shader compilations; display only one error message instead.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7688 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-29 22:18:11 +00:00
Shawn Hoffman
fc261b32bf
add definitions of some bp mem bits relating to interlacing (no behavior change)
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7683 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-18 08:27:30 +00:00
Marko Pusljar
cac36b8161
added 1.5x, 2.5x, 4x internal resolution
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7669 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-05 01:11:03 +00:00
pierre
1f2adf0563
VideoCommon: Always update pixel shader constants when tevregs change
...
This time, it doesn't break the games i tested, and still fixes
Metroid Prime 3 texts/colors.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7668 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-04 13:49:40 +00:00
pierre
951e20ae73
Revert r7665. Breaks about all other games.
...
Sorry, MP3 users will have to wait a bit longer.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7666 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-03 21:57:49 +00:00
pierre
e090a92c7e
VideoCommon: Always update pixel shader constants when tevregs change
...
Fixes texts staying visible and strange colors in Metroid Prime 3.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7665 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-03 20:48:22 +00:00
NeoBrainX
3c10f9f3e9
Various UI and documentation improvements to the GFX debugger.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7661 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-01 20:59:57 +00:00
Sonicadvance1
693f276a68
Small update for disabled Fog for older hardware that fails to divide by zero in shaders
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7612 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-20 05:48:12 +00:00
Rodolfo Osvaldo Bogado
e5210de9d5
just a little cleanup to maintain minimal interfaces
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7591 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-10 19:16:09 +00:00
Sonicadvance1
db0c2bca5b
Allows DX9 shaders to be SM2 compatible again at the loss of accuracy. SM3 is recommended. Fixes issue 4546.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7585 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-04 19:56:18 +00:00
NeoBrainX
84906edf61
Fix applying anti-aliasing without having to open the gfx config. Thanks to skid for pointing out the VerifyValidity problem to me ;)
...
Fixes issue 4498.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7574 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-31 20:16:59 +00:00
Rodolfo Osvaldo Bogado
0e225a5ad1
some code cleanup i have left in my folder :)
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7560 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-25 18:14:29 +00:00
Rodolfo Osvaldo Bogado
fa7a521086
A long time since my last commit but i have a lot of work. hope to find some time to fix more things.
...
some little corrections in dlist cache code, i thing they will not have effect in the remaining issues but now the code behaves more correctly in some situations.
i discover the solution for the remaining issues bur requires some changes in the vertex translator so will work on them after the upcoming Release.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7556 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-25 02:05:48 +00:00
Nolan Check
8024783502
Don't resize render target to handle out-of-bounds viewports. Instead, adjust the projection matrix.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7538 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-12 02:14:45 +00:00
NeoBrainX
fe2d09576d
Fix "Disable Lighting" in D3D9 and D3D11.
...
Fixes issue 3185.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7498 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-30 17:34:08 +00:00
NeoBrainX
8791c1c372
Use the recommended video settings as the default configuration:
...
- Fast Mipmaps enabled
- Safe Texture Cache enabled at "fast"
- showing shader errors by default
- using Native as internal resolution
- using EFB to Texture by default
- ignoring EFB format changes by default (turns out r7436 made this in Super Mario Sunshine unnecessary anyway :P)
Any game which depends on other settings has that specified in the game ini, so I think this should be fine.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7497 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-30 14:27:35 +00:00
NeoBrainX
770b0d4552
- Do not parse numerous video options from the game inis, like:
...
Show FPS, Input Display, Statistics, Projection Statistics, EFB Copy Regions, Dump Textures, Dump EFB target, Dump Frames, Free Look, Use FFV1, Show Shader Errors, Texture Format Overlay, WireFrame, Hotkeys and Adapter
- Also removed various game ini config values which were still parsed from the Video section.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7489 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-29 23:43:37 +00:00