Commit Graph

100 Commits

Author SHA1 Message Date
c579637eaf Run code through the advanced tool 'sed' to remove trailing whitespace. 2013-11-03 20:54:05 -05:00
92fdac412b VideoCommon: drop UpdateViewportWithCorrection
It's only used once in BPFunction which itself is also only used once.
So the setter is moved to BPStructs like all other ones.
2013-10-29 18:55:50 +01:00
97cd42f5c3 Remove some unnecessary includes as well as simplifying exisiting ones if possible. 2013-10-19 19:58:56 -04:00
2754c1132e VideoCommon: reimplement Dirty() in PixelShaderManager
This isn't needed in VertexShaderManager as it's still in the old dirty flag way.

But it's very importend for PixelShaderManager as some float4s aren't initialized as 0.0f
2013-10-12 20:31:59 +02:00
cc6c454898 VideoCommon: refactor PixelShaderManager setters
The old way was to use a dirty flag per setter. Now we just update the const buffer per setter directly.
The old optimization isn't needed any more as the setters don't call the backend any more.

The follow parts are rewritten:

Alpha

ZTextureType

zbias

FogParam

FogColor

Color

TexDim

IndMatrix

MaterialColor

FogRangeAdjust

Lights
2013-10-12 20:31:25 +02:00
3ec9f9b64a videoCommon: also reset logicOp on mode switch 2013-09-09 02:30:44 +02:00
7622d5b354 Only call SetGenerationMode from BPWritten if the cull mode changed.
Should decrease CPU usage on the GPU thread by a bit in the OGL backend.
2013-08-15 00:26:03 +02:00
c4eb659fec BPMemory: Assign a more descriptive name to a field in the genmode register. 2013-06-18 17:25:16 +02:00
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
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
bab9963b00 New license header introduced for DiscIO, AudioCommon, InputCommon, VideoCommon, and Common projects. 2013-04-17 23:09:55 -04:00
4a929f85b6 GLSL: fix transparency issues on dual source blend. fix issue 6104 2013-03-17 00:36:13 +01:00
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
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
b94f65b666 Remove two incorrect lines. How did those even get there?! 2013-03-01 01:37:47 +01:00
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
eae20b77a8 Remove some unneeded sampler-related calls in BPStructs. 2013-02-20 02:01:54 -06:00
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
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
efe8c75424 Duplicate condition fix.
Thanks j4ck.fr0st
2013-01-25 21:30:29 -05:00
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
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
714ff50fdf set blending if dual source might be triggered 2013-01-18 00:44:35 +01:00
ddf23094c2 Fix two unsigned/signed mismatch warnings. 2013-01-15 21:15:31 -05:00
e7c883d6be VideoCommon: Implement proper RGBA8 texture loading from tmem. 2013-01-10 18:30:22 +01:00
d26bcb0847 Move alpha pretest to BPMemory.h and rename a bunch of alpha testing related stuff 2013-01-08 18:56:01 +01:00
bd0abb3d2f revert last commit, add CheckInvalidState to VideoBackend 2012-12-23 13:32:23 +01:00
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
cf8744cf2c OGL: Implement pixel metrics (untested) 2012-08-26 20:26:10 +02:00
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
6e02ad55bc Maintenance. 2012-08-07 18:57:53 +02:00
0d577d886a Remove some TODOs. 2012-06-02 19:23:20 +02:00
d74c50b942 OSX build fix for BPStructs. Thanks to pauldacheez for the fix. 2012-06-02 11:28:43 +10:00
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
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
5a77cae2e3 Check if BP and XF changes actually change values before flushing 2012-05-18 23:13:53 +02:00
f30aebf8d7 Added a check for TMEM overflows while preloading textures. Thanks to NeoBrainX for the tip. 2012-03-25 21:35:57 +11:00
c4fbb6e377 Checked PRELOAD_MODE to determine if TMEMODD or TMEMEVEN should be used.
Fixes issue 5212.
2012-03-23 22:10:48 +11:00
dabb35afce Prepare texture preloading support 2012-02-03 21:20:34 +01:00
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
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
17fcd406fc Merge some scissor rect related code to VideoCommon. 2011-09-05 22:04:28 +02:00
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
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
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
426f187642 VideoCommon: Update color writing mask if pixel format changes.
Possibly fixes issue 4340.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7436 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-03 18:08:04 +00:00
e16e177148 Missed a critical section.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7295 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-05 12:05:58 +00:00
f0c5cc76a9 Add EFB encode-to-RAM support in DX11 backend. It could probably be simplified a lot, and not all the possible formats are implemented. I tried to use the dynamic-linking feature of shader model 5, but Microsoft's HLSL compiler is broken. "Dynamic mode" is implemented, but disabled for now.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7253 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-26 23:41:02 +00:00
8b309e26dc Remove PluginSpecs.h. Merge the few needed enums from that file into Common.h for now. I am up for suggestions on a better place for those.
Fix frame dumping on linux.
Make sure that on screen messages get cleared between games.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7039 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 04:40:27 +00:00
4c58c7ea03 initial implementation of fog range adjust, I don't think is correct or work right but is a start.
some tweaks and fixes.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6957 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29 04:31:56 +00:00