Commit graph

53 commits

Author SHA1 Message Date
Rodolfo Osvaldo Bogado
19d7bb2c84 big commit, implemented depth textures with hardware support in D3D, so now they will be correct as in opengl. please test a lot because i only tested the ati path, nvidia path is "Theoretical" :).
Also reimplemented screen clearing as a color quad to support alpha blending when clearing as in the original hardware.
the funny thing is how is implemented peeking, as locking depth textures is not supported, implemented peeking copying the values form the depth texture to a r32f render target and then reading back the data.
please a lot of testing to this commit.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4599 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-22 02:37:00 +00:00
Rodolfo Osvaldo Bogado
802c112ad9 Well this commit has 2 parts:
first part if fixing, fixed, i thing, the flickering that everyone has reported, at least in my case i only have flickering in the one texture in one game and now is fixed. The other fix is not for an reported issue, is more a correctness fix, running dolphin with pix to review debug errors, result in a ton of warnings and error, now with this commit, at least for ati, there no more error or warnings, this means, correct management and state change, no accurate emulation, for this still a lot of work to do.
for this part of the commit please give me feedback and let me know of remaining issues

Te second part is the partial implementation of efb to ram copy in d3d, this won't brake anything because is commented but i commit this to ask for help from ector and donko in some errors remaining in the implementation related to differences between opengl an d3d.
if you want to test this you have to uncomment line 150 to 155 of bpstruct.cpp

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4594 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-20 18:46:30 +00:00
Rodolfo Osvaldo Bogado
f8c2dcaa4e fix for re missing characters in both plugins, thanks to autoran for the testing. also modified depth efb copy behavior to work accordantly to this change.
in opengl  efb copy, set the destination texture format and not use argb always.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4575 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-14 23:15:09 +00:00
Shawn Hoffman
4622bd0c8b reapply changes from 4550-4551,4556-4559 correctly...sigh...some files were ignored by tortoisesvn, and myself :|
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4570 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-14 17:50:51 +00:00
Shawn Hoffman
06aa62504c revert to r4531, but keep the changes from the following revisions: 4533,4550-4551,4556-4559
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4566 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-14 17:08:32 +00:00
Rodolfo Osvaldo Bogado
e56ca08b4f some minor changes preparing for future commits, and a correction to texture alignment that must solve the efb misalignments in various games
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4556 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-13 11:55:14 +00:00
Rodolfo Osvaldo Bogado
c2a4e33313 Implemented secondary path for hardware with no multiples render target support, so please a lot of testing from people with problems in the last release.
corrected a little depth textures still broken but now at least i discover the reason, the ultra bad news for d3d lover is, the only correct way to implement depth textures will be do a firs depth only pass disabling blending. 
This is because blending is affecting the values stored in the depth texture, so to store the true values, blending mus be deactivated.
this will degrade performance but is the only "Correct" way in d3d 9. the other possibility is dx10 but that's a complete different story ;)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4526 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-10 12:45:03 +00:00
Rodolfo Osvaldo Bogado
0ac07e8aa8 Big Commit this will break a lot, fix a lot, but i thing is a good step:
Implemented all the correct format conversions in efb to texture copy.
replaced all the stretcrect calls with quad draws this must improve speed a bit.
A BIGGGGGGGGGG cleanup in the code and reorganization.
reimplemented zpeek using a secondary render target ( this still is buggy so many issues left)
please a lot off feedback.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4520 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-08 20:35:11 +00:00
rice1964
81e7ce9ad2 D3D: get rid of flickering in various games by changing way and time to flip backbuffer to frontbuffer. Also added some debugging messages. ZTP intro seems to be additionally 10%+ faster now, maybe only for me in windows mode.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4303 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-20 03:29:43 +00:00
hrydgard
7a8f6bdd6d D3D various: "Safe texture cache" option, texture replace instead of destroy/create when possible, a commented out "optimization" that didn't speed things up (use DrawPrimitive instead of DrawIndexedPrimitive when possible), reduce code duplication in Flush(), don't periodically clean out the shader caches since it's not really beneficial - shaders are cheap to keep. some code cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4302 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-19 13:14:55 +00:00
rice1964
2bd989d4c8 D3D: More not very interesting debugger fixes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4298 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-18 03:12:32 +00:00
hrydgard
ef6e574ea1 D3D: Handle device resets (resizes) a little bit better .. not quite there yet. some random cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4279 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 21:05:31 +00:00
hrydgard
a7c70ddb66 D3D: Eliminate black borders, add 4:3 and 16:9 settings, and the widescreen hack. Unfortunately this temporarily breaks MSAA (in d3d only) until I have time to fix it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4263 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 17:46:33 +00:00
hrydgard
512053fa5e Kill some horribly ugly hackery :( It's just not right to pass entire IniFile objects across DLLs. Only POD (plain-old-data, like int, float, char, char[] etc) are safe to pass across DLL boundaries.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4257 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 08:54:46 +00:00
hrydgard
700f2ff694 Lots of code and warning cleanup. OGL/D3D: Moved to a shared config class in VideoCommon. This lets VideoCommon code read the config without ugly hacks. Fixed various config race conditions by keeping a copy (g_ActiveConfig) of the g_Config struct which is updated once per frame.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4256 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 08:21:35 +00:00
rice1964
f46aab0d3f D3d: safeTextureCache fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4250 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-11 05:05:00 +00:00
death2droid
0ccd9d1e8f DiscIO:Fix the includes up Dolphin should now compile.
D3D and OGL: A minute clean up with texture dumping

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4199 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 13:46:04 +00:00
hrydgard
5345c98a9c quickfix slowness caused by 4193
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4195 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 06:43:46 +00:00
sl1nk3.s
5a21d72693 Fix screen flickering with frameskip on D3D plugin, also fix occasional hang when turning frameskip off
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4194 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 06:09:21 +00:00
death2droid
08d3dee74c D3D: Some more small texture dumping changes, It should be even more like the OpenGL now.
Need to find out a better way to check if a texture is already dumped.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4193 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 05:26:19 +00:00
hrydgard
efc74c77a9 D3D: Basic EFB copy-to-texture support. Fixes star domes in SMG (but does not fix the pull star, need EFB reads for that) and some other things.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4188 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 21:56:08 +00:00
hrydgard
562a4e25ac Some housecleaning around the D3D plugin, start of preparations to share even more code with the GL plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4183 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 19:24:16 +00:00
hrydgard
e97bc516e6 Warning fixes/suppressions(aui), assorted code cleanup, d3d vertex shader cache expiration interval increased.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4165 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 18:55:36 +00:00
daco65
dd7eba0bb9 nothing special >_>
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4161 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 15:38:04 +00:00
rice1964
d616f132d7 Debugger for DX9 plugin.
Debugger panel is displayed only if Dolphin is started with /d option.
Dump features are not implemented.
Pause/Resume buttons works, only if the plugin is built in DEBUG or DEBUGFAST configuration, not in RELEASE. These features are really only for devs, not for regular gamers.

You will be able to pause frame by frame, or by n frames, or by n primitive flushes. Other pausing options are not implemented yet.

When other pausing and dumping features are implemented, debugging will be much easier.

I have changed the DX9 project setting to use unicode character set in order to use wxWidge tools. If this causes Dolphin building problems for you, check your project setting.txt




git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4154 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 06:33:41 +00:00
hrydgard
28495eae47 D3D: Fix IA4 textures
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4147 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-01 20:21:59 +00:00
death2droid
bd227d3831 D3D: Change the dumping method to match the OpenGL one.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4136 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-01 11:14:58 +00:00
rice1964
0dcf03b898 This should fix the per-vertex PositionMatrix, the famous "Posmtx" problem, for DX9. My DX9 plugin still crashes, for some other reasons. Verified with Luigi's Mansion, it almost works.
BTW, this is Rice from emutalk, one of the 1964 emulator authors, and author of Rice video plugin for N64 emulators.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4115 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-31 06:35:43 +00:00
XTra.KrazzY
c86d2e5129 Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3898 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-28 21:32:10 +00:00
death2droid
73a7686044 Fix up all copyright dates.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3886 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-26 11:51:40 +00:00
nakeee
6b2855de5e revert last 2 commits
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3533 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-22 09:31:30 +00:00
omegadox
6de0cd1e4b They should be called SU Registers (Setup Unit/Rasterization). BP (Bypass) is really the name of the commands that are passed in.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3531 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-22 07:40:28 +00:00
Nolan Check
dcad8a779d TextureDecoder now indicates I4 and IA4 texture formats. It also decodes paletted textures more efficiently.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3213 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-05-13 02:06:02 +00:00
XTra.KrazzY
7419475959 One step closer to fixing D3D. Now textures are set properly.
Still, memory leak exists for some unknown reason (we don't allocate more pages and we release every texture)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2601 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-07 18:05:29 +00:00
XTra.KrazzY
e8556a5391 Migrated a stop-fixing patch to DX9. Stopping works!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2568 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-06 16:47:04 +00:00
XTra.KrazzY
2621cf6747 Added a comment about A8P8 and groundwork for DXT1 textures
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2283 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-16 23:01:37 +00:00
XTra.KrazzY
efa5fe5eb7 New compact texture type for OGL/D3D: IA4. Thanks for the IA4->IA8 unpacker hyperiris! Too bad that D3D supports IA4 natively while OGL is a bit buggy (treats LUM4_ALPHA4 as LUM8_ALPHA8).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2238 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-14 09:04:40 +00:00
XTra.KrazzY
acb3d1b23d New compact texture type for OGL/D3D: IA8
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2233 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-13 14:14:45 +00:00
XTra.KrazzY
e557e090dd New compact texture type for OGL/D3D: RGB565
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2225 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-12 22:32:33 +00:00
XTra.KrazzY
d2d097fba5 Committing magumagu9's work on texture decoding transferral to OGL, I added DX9 support. Speed seems to have increased but I'm not sure. See issue 581 for more info.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2222 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-12 13:54:08 +00:00
bushing
901fe7c00f set svn:eol-style=native for Plugins/**.cpp
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1441 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-12-08 05:25:12 +00:00
drkiiraziel
9a4dc4e810 Fixed small buffer overruns and other minor bugs that were found by VS2008 code analysis
Added a check on both video plugins to prevent crashing when Memory_GetPtr retuns null pointer at ExecuteDisplayList  (invalid address? Dave Mirra BMX 2 crashes there ...)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1179 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-11-15 02:30:29 +00:00
hrydgard
39df6c5624 Move out Cg shader generators to VideoCommon (hope to use this in the DX plugin in the future). Also move out stats code. Comment a lot and cleanup. Kill DX9 Globals.cpp.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@938 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-10-22 20:54:40 +00:00
fires.gc
f198d550bc fix for small memory leaks
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@562 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-09-17 08:40:52 +00:00
hrydgard
5a69fca0be Add some missing GPL headers, fix building with Platform SDK 6.0, delete unused HTTP code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@452 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-09-07 10:29:46 +00:00
Maarten ter Huurne
1154027808 Replaced type "DWORD" by "u32", except where "DWORD" is used to access the Windows API.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@429 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-09-01 22:48:56 +00:00
hrydgard
e5deb10714 bugfix the texcache bugfixes :P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@395 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-08-30 23:15:11 +00:00
hrydgard
20d0c53781 Fix same texcache bug on DX side
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@394 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-08-30 23:06:40 +00:00
Maarten ter Huurne
734586a0ab Include system headers using "#include <file.h>", so GCC will not issue warnings about them.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@331 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-08-26 23:32:54 +00:00
NunoRamiro
8c132bdae5 - Fixed: Crash when loading a rom with an unknown file extension.
- Fixed: Crash when stopping a game.
- Improved: DirectX Plugin.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@237 8ced0084-cf51-0410-be5f-012b33b47a6e
2008-08-17 19:28:24 +00:00