Commit Graph

86 Commits

Author SHA1 Message Date
Rodolfo Osvaldo Bogado 5e31f22e50 small code reorganization.
Now efb to ram display correctly but still is misaligned by one pixel
please test and give me feedback

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4618 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-27 19:42:27 +00:00
Rodolfo Osvaldo Bogado 55dc7efaa4 corrected viewport and scissor test behavior in both plugins.
some code cleanup in d3d.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4605 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-23 14:08:08 +00:00
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 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
Shawn Hoffman 1b7303ea0a apply warning fixes from r1447
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4514 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-08 02:28:06 +00:00
Rodolfo Osvaldo Bogado 8e204c659e This is a "Try to fix" commit, reverted all the changes made by my first commit that could affect texturing, so please everyone with texture problems please test this, also in opengl let the viewport calculations the way they where, opengl can handle any values in the viewport.
in direct3d this is different, the only valid values are between 0.0 an 1.0 so fix this and let the shader handle the rest.
please test all this and let me know the results.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4494 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-02 21:09:48 +00:00
Rodolfo Osvaldo Bogado 22a0864337 Discover that various games that have black screen problem in nvidia is just caused by having negative zfar or znear values, in ati is not a problem, the drivers can handle it.
This is a test, clamp the values to see if this fix the problem, please test a lot don't know if this breaks something else 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4491 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-01 01:15:06 +00:00
Rodolfo Osvaldo Bogado dd7f6f991f small code cleanup, and little fixing of errors introduced by mi in my first commit :(
fixed scissor test in direct 3d


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4480 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-30 04:14:43 +00:00
luisr142004 f3681c0e1b D3D: change window startup a bit (pretty minor but it's just to get me started :P)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4473 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-28 22:40:18 +00:00
Rodolfo Osvaldo Bogado a31eb24955 small commit,but should fix 2 big issues:
* clear and flicker problem in d3d, backbuffer clearing was commented out, (if this was on right let me know and I'll revert).
* alpha problem introduced by my modifications to the tev, must been sleeping when i wrote that code, should be fixed now.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4471 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-28 02:00:13 +00:00
Rodolfo Osvaldo Bogado 08b2686d90 as sl1nk3.s say make the updates directly to the viewport and let the scale fixed in 2^24.
please test specially in paper mario and Killer 7 that where games where supposedly this was used.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4470 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-26 02:38:23 +00:00
Rodolfo Osvaldo Bogado 0511d6e185 some work on zscale and zoffset, don't know if this is correct but at least it seem to fix one or two games.
thanks a lot to chaoscode he make possible to test this on nvidia. please test this a lot and give me feedback :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4468 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-25 23:10:30 +00:00
Rodolfo Osvaldo Bogado 227d363881 small code clean up:
d3d: remove the depth texture path it will not work so for now only lockable textures were available. i thing the only way will be a use a secondary render target and do a depth pass to mimic depth textures.
opengl: minor cleanup here and there and a possible fix to issue 1509, but not tested because in my system the errors remarked in the issue don't show.
commond: code reorganization an optimization in the pixel shader  generator, trying to understand the tev stages, make some changes to make the generator faster (not much only started for the alpha test and fog).
this changes try start solving the diferences bethen the hardware plugins and the soft plugin.
i hope with i don't brake nothing but please test this a lot.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4465 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-25 02:35:21 +00:00
death2droid 091a454c50 D3D: Change it so the windows mode resolution displays all usable resolutions like full screen does.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4435 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-19 12:13:35 +00:00
Rodolfo Osvaldo Bogado 56224bd966 this is EXPERIMENTAL. Implemented 3 different paths to use depth textures and allow peeking.
they are extremely hard/driver Dependant so your test is needed.
there plugin will automatically select the path thats work for your hard, need that everyone post the messages that the video init throw (yes all will hate me for the messages) but is the only way to see what is the optimal path. in the next commit will clean the unused paths.
i'm afraid thath the second path is Vista dependant (you need to include vista sdk to make it work).
the third path use lockable depth buffer so there is no change in that. 
now peek color is fully working and is fast because the you never lock the the real color texture only the offscreen surface.
please if someone knows a game that use peek color please test it.
also fixed blending so SMS underwater must be fixed.
this work with d3d teach me that i love opengl :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4393 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-10 23:36:18 +00:00
Rodolfo Osvaldo Bogado 41cc224ca1 added a more "correct" Color peeking, you can't lock the drawing surface so the correct way is to use and offscreen surface and use StretchRect to copy the data, then lock the offscreen surface and read the data. this is experimental so please test it a lot. the bad news is you can do this only for the color surface, the z-fuffer remain slow to read and only from lockable formats. the good news are the same code should work for mltisampled surfaced.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4384 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-08 00:35:47 +00:00
hrydgard 9c45ac7e35 EFB Reads are so slow in D3D that I think we need an option for it. Here it is.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4378 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 19:54:56 +00:00
Rodolfo Osvaldo Bogado 19b8e6bc08 Sps fixed in all the games tested, code cleanup and reordering
implemented buffer format fall back to allow hardware that don't support lockable formats to run the games with Z peeking disabled, applied as well the patch suggested in issue 1494 please give heavy test to this commit

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4365 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-06 14:24:10 +00:00
XTra.KrazzY 98e1dd6dc4 D3D: Major AccessEFB code cleanup. PEEK_COLOR now implemented (please test extensively)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4356 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-03 02:12:24 +00:00
Rodolfo Osvaldo Bogado 0170e61bfc more work on peek_Z this fix sms and zww sun flare
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4355 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-02 21:23:56 +00:00
Rodolfo Osvaldo Bogado 025d68ba11 Sorry for the last one , forget to update z clearing to support the format change.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4354 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-02 15:33:07 +00:00
Rodolfo Osvaldo Bogado 9d67518f71 I hope you all like this. Changes:
Opengl:
Reorder the rendering path to make it more generic, and a little bit faster i think.
Reduce the index Buffer size to make it more Friendly to older video hardware.
get rid of the remaining annoying sps (I hope).
D3D:
Implement the same path as opengl to make the plugins more similar and maintainable.
Fixed Peek_Z this means, Pushing stars in SMG Now Works.
Please give heavy testing to this changes and compare the performance with the old path.
Thanks to hrydgard for let me participate :).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4353 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-02 14:03:07 +00:00
XTra.KrazzY ebfceb16b9 Some leftover work from unfinished DX9 Access EFB. In DSP HLE, 0x0004,7,b,c are almost done, all that's left to do is resample from 0x50 to _Size.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4313 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-24 13:52:45 +00:00
rice1964 194d44d08e D3D, back off the buffer flipping change by r4303. It works for certain games (Zack & wiki, Rayman3, etc), but seems to break other games (Metroid prime 1 complete black) and features (frame skipping).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4306 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-20 13:00:25 +00:00
rice1964 f9d1354c29 D3D: code clean up, nothing special.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4305 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-20 05:04:45 +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
rice1964 8b4839a4f4 D3D: some changes about debugger, not useful for anyone else, and should not affact anything. So not very interesting, just get ready to do some debugging.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4297 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-18 02:03:56 +00:00
LPFaint99 8beeaff896 WIIMENU:move call to filemon to verify that std::string(null) is not called
fixes issue 1421.
D3D: fullscreen use 640x480 if ini setting is invalid
Externals/Memcard Manager: fix build since change to lib files for wx

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4290 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-17 05:57:38 +00:00
LPFaint99 43021a8a1e D3D: actually use the resolution setting for fullscreen mode
(really dumb mistake of mine, due to lack of sleep :p)
fixes issue 1426.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4289 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-17 05:07:16 +00:00
hrydgard 20922cf3f0 D3D: More reset fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4282 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 21:49:15 +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 dc4f712f74 D3D: Save some video RAM by turning off the "default" Z buffer (we create our own). probably doesn't matter on most video cards..
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4277 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 19:53:22 +00:00
hrydgard adbfea0a09 Unbreak the D3D plugin in case of bad/old resolution settings in the .ini file.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4275 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 18:00:16 +00:00
LPFaint99 ca7a5b36dc only load gameini settings if they exist
change D3D to use char[] for resolution settings in ini
warning fixes for FrameAui.cpp

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4273 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 08:13:45 +00:00
hrydgard c7431401be D3D: Fix 8-bit signed normals. Fixes lighting problems in Super Smash Bros Melee. misc tiny things
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4265 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 21:18:04 +00:00
hrydgard 2dc3f2c762 D3D: Unbreak frameskipping
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4264 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 19:13:07 +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 73d2b3e968 more uninteresting cleanup, fixed a minor race condition when toggling efb copy mode
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4261 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 10:18:01 +00:00
hrydgard 2d93c654f0 Rename Config.cpp/h to VideoConfig.cpp/h.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4260 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 09:23:30 +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
John Peterson 1320e21ded OpenGL: OSD menu live resolution change fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4212 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-06 15:11:21 +00:00
hrydgard 0d1662e020 GL: Delete "exact-2x" feature. The way it's currently implemented it requires us to allocate double-sized buffers, which really hurt some GFX cards. So, it's gone for now but may return later in some form.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4201 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 17:29:16 +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
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 baede3a7f3 Moving more things out of GL into VideoCommon...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4187 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 20:37:35 +00:00
hrydgard 2b1022f152 More tidying up - share the stats print between the two plugins, etc
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4184 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 19:42:45 +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
Marcus Wanners 50593397f3 Got rid of all of jp's ////////////////////////////// lines (nearly 500 of them)!
Yes, I used a script :D

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4169 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 21:00:45 +00:00