Commit Graph

1121 Commits

Author SHA1 Message Date
NeoBrainX 5d16185cf9 Fix some other off-by-one errors in DX9/DX11.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6560 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-11 21:19:25 +00:00
NeoBrainX 7473a0cf98 VideoCommon: Use integer arithmetic instead of floating point arithmetic when dealing with EFB scales.
Should fix problems caused by EFB scales other than Native (excluding fractional!). Test whether this fixes games which work fine with native EFB resolution but show glitches with higher internal resolutions.

Also fixed numerous warnings.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6549 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-10 15:54:14 +00:00
Glenn Rice 06013d5eec Make the cmake check_lib macro more versatile. It first tries pkg-config, and if that fails it then check for libraries and required headers. Also cleaned up the output a little bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6544 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-10 02:00:05 +00:00
NeoBrainX 7854bd7109 Merged the D3D9 debugger into VideoCommon/VideoUICommon:
Separated UI from debugger functionality. Generally cleaned up that stuff.
Most functionality needs to be reimplemented now, but will be available to D3D9, D3D11 as well as OpenGL then.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6523 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05 14:15:36 +00:00
Shawn Hoffman 9da4fe086b allow gcc to check the format of args being passed to MsgAlert and GenericLog. Fixed nearly all warnings that arose from this, as well as some preexisting ones (some were actually crashes and/or bugs...)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6522 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05 09:04:34 +00:00
Soren Jorvang 7901e74f00 Reestablish *BSD build using CMake.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6516 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-04 15:19:04 +00:00
Rodolfo Osvaldo Bogado 28216fc7f2 possible fix for issue 3014
thanks to iceman4love77 for tracking the error

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6501 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-30 15:03:49 +00:00
Glenn Rice eda716b164 Fix some linkage issues with the cmake build. This should fix issue 3596.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6497 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-30 01:20:05 +00:00
NeoBrainX 7698d85a8e DX11:
- Speed up MSAA by using custom resolve shaders instead of ID3D11DeviceContext::ResolveSubresource().
- Fix EFB access when MSAA is enabled.
- Implement the "force linear filtering" option.
- Compile shaders using shader model 4.1 or 5.0 if available.
- Some minor cleanups.

Who cares about DX9 and OGL anyway :P

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6481 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-27 11:11:05 +00:00
Jordan Woyak e6658d5339 Minor change to ease video plugin merging. Made static NativeVertexFormat::Create function into a virtual function of VertexManager. I believe this is the last bit of code which is only declared in VideoCommon and defined in each of the plugins.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6479 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-26 09:25:08 +00:00
NeoBrainX 76b9e975d5 DX11: Fix mipmaps. Someone forgot creating them at the proper time ;P
DX11: Fix a DX11 debug runtime error caused by the vertex shader output signature and the pixel shader input signature not matching if per-pixel lighting is disabled. Someone forgot disabling those pixel shader parameters ;P
DX11: Enable use of dynamic textures wherever possible.
DX9: Remove two unnecessary TODOs. Someone forgot removing those since they've been obsolete for a long time ;P

Anyway, at least working mipmaps and dynamic textures should increase DX11 performance a bit. And "a bit" is more than my usual "marginally" ;)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6473 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-24 19:13:19 +00:00
Matt Callaghan ebe5472e1d Tiny commit. Just re-added 3D Vision to the config dialog. Hope nobody minds, I made sure it gets greyed out and all that. Sorry about my lack of commits, got another ongoing project that's gotten me a bit hooked.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6471 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-24 17:13:12 +00:00
Jordan Woyak 49120d113f Reorganized some video config dialog related code. Deleted remnants of the old DX11 config window.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6460 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-22 22:17:35 +00:00
Jordan Woyak 63c35bf14a Fix for OpenGL's "Overlay Information" options not working. Fixes issue 3535.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6456 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-21 21:45:38 +00:00
NeoBrainX ee21237d6a Polish, fix and otherwise improve the video plugin configuration dialog:
- Add some info about a backend's feature set (MSAA, Real XFB, EFB to RAM, ..) to VideoConfig
- Gray out options if they aren't supported by the backend or if changing them doesn't affect anything (e.g. changing STC mode if STC is disabled)
- Allow signed bytes for D3D11. Not sure if this causes glitches, but it should work
- Call wxEvent.Skip() in the event function handlers, not sure if this fixes any bugs but the old code definitely caused bugs during development of this patch
- Fix a memory leak in the configuration dialog if D3D11 is used
- Other minor stuff that doesn't need to be mentioned or which I forgot

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6450 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-21 14:47:28 +00:00
Glenn Rice 7788bac40c Fix ogl screenshots for windows.
Fix the macosx build (perhaps).
This changes the JitIL timed profiling to using assembly language to obtain the time.  It does seem to be faster.  Not sure if it will work on macosx, but if it does it has the necessary precision that gettimeofday does not have.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6448 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-20 03:24:51 +00:00
Christian Morales Vega 7632a5abd4 Fix for issue 3507. Compile with old GLEW versions, support user-specified CFLAGS and link plugins to all the used libs.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6441 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 23:27:27 +00:00
Glenn Rice f8fbcecad6 Encode framedumps in AVI format on linux as on windows. This adds the additional dependency of libavformat-dev. Remember if you want raw framedumps as before add -DENCODE_FRAMEDUMPS=OFF to the cmake command line.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6438 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 16:46:17 +00:00
Glenn Rice e1e43fa2a6 Fix some opengl errors. Thanks to rodolfo for telling me how to fix it. He is at work or he would do it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6437 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 15:12:12 +00:00
Glenn Rice 08124713bd The usual linux build fix. I am starting to sound like a broken record.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6436 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 04:01:16 +00:00
Jordan Woyak 0816fa2629 Fixed RealXFB being enabled when XFB box is unchecked. Moved some shared code into VideoCommon. Renamed EFBCopyDisable setting to EFBCopy"Enable" in the code and inifile. Fix DX11 settings not loading. Fixed Issue 3378.(graphics settings dialog displaying gameini settings in game)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6435 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 03:50:50 +00:00
Glenn Rice bcad22f266 cmake build fix. Don't blame Billiard for this one. He asked me to test his patch and I missed this.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6434 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 03:05:52 +00:00
Jordan Woyak 159ed43f67 Move some shared gfx plugin code into VideoCommon. Changed "Renderer" class to use virtual functions. (setting stuff up for video plugin merging)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6433 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-18 02:21:26 +00:00
Glenn Rice a279b391cc Make Linux/MacOSX system checks correct in the cmake build. UNIX is true on both linux and osx. The cmake build probably still doesn't work on MacOSX though.
Also added an option to explicitly disable building with MPG framedumps.  To use it add -DENCODE_FRAMEDUMPS=OFF to cmake on the command line.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6429 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-17 01:03:39 +00:00
Glenn Rice 4f81997c14 Fix the no gui cmake build.
Add a version check for avcodec and swscale libraries.
Fix a bug in the xlib wiimote emulation button configuration.  If you are using a mouse button for wiimote emulation you may need to adjust your settings.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6426 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-16 04:34:52 +00:00
Glenn Rice d0e8d8a509 Linux cmake build fix. I fixed the scons build as well, so this might fix the macosx build also.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6424 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-16 00:13:33 +00:00
Jordan Woyak db35fe4100 Made the graphics plugins use a shared configuration dialog. There are a few minor issues: unsupported settings are shown, dx9 3d settings are missing, tabs/groups could be organized better, could use tooltips, cmake and scons need to be fixed.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6422 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-15 09:54:07 +00:00
Jordan Woyak 0da42fcca7 Merged some FramebufferManager code into VideoCommon.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6417 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-14 23:31:53 +00:00
Glenn Rice 2378b443c1 Build fix for windows.
Also a correction to the frame rate for the mpg encoding.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6416 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-14 22:07:52 +00:00
Glenn Rice 50882c8d30 On linux encode frame dumps in MPG format instead of writing raw frames. To enable this portion of the code you must have libavcodec-dev and libswscale-dev installed (package names for Ubuntu).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6414 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-14 21:14:26 +00:00
Rodolfo Osvaldo Bogado c21f804c48 more work on dlist caching now should be a little faster
a little bugfix in vertex loading and some fixes.
not much time to work these days but  at least i can spend a little time fixing thing.
please test for regressions.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6409 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-14 14:42:11 +00:00
Glenn Rice c6d95c9087 Remove my DESTDIR hack from the cmake build. It turns out this is built into cmake and works in the same way it does with the gnu autotools. Use it in the standard way with "make DESTDIR=/desired/location install".
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6382 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-11 15:50:52 +00:00
skidau d4b72eaae5 Added a projection hack for Metroid: Other M. This fixes the black screens that occur in cut-scenes. Patch by Trevor002.
Fixes issue 3477.
Fixes issue 3127.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6381 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-11 09:22:19 +00:00
Glenn Rice 7b34def0fc A couple of changes to the cmake build system.
First:  Added a DESTDIR option for package building.
Second:  Change the OpenCL setup.  On both linux and windows use CLRun.  I completely removed the option here.  If CLRun works on MacOSX this should be done there as well, and this change implemented in the scons build also.  Then we could remove the HAVE_OPENCL and the new USE_CLRUN definitions.  Then we will finally have the dynamic detection of opencl set up cross platform.
On a side note, it doesn't seem that the program loaded from TextureDecoder.cl compiles or runs.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6366 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-10 01:59:53 +00:00
Glenn Rice bee873a30c Fix the annoying gap in the OpenGL configuration dialog in the "General" tab between "Use Real XFB" and "Wide screen hack".
Also link the dolphin-emu executable against GL in the cmake build.  Why?  This seems to fix the segmentation fault on stop issue.  Although curiously enough, linking the dolhpin executable against the system shared library SOIL fixes the problem too.  It doesn't work with the static version of SOIL build in the externals.  The reason the problem disappeared with the scons build is that the executable is implicitly linked against GL since the linker flags are set up to be thrown in everywhere.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6364 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-09 03:08:20 +00:00
Glenn Rice e72ae04e5c Setup opencl to work like most of the other externals. Autodetect native shared libraries and if not found fall back to the static libs built from the externals.
Also some general clean up of the main CMakeLists.txt file.  I think it is nice to keep the checks and analysis of the results together.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6363 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-09 00:29:07 +00:00
NeoBrainX 4782a8fc5a More CMake work:
- various fixes for using CMake on Windows
- support building external SDL, zlib, CLRun, wxWidgets
- support using precompiled GLew and WiiUse libs on Windows

For what it's worth, I'm not quite sure if I got all the wx files right...
Building with MSVC2008 still doesn't work yet, but is a lot closer now.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6361 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-08 14:04:56 +00:00
skidau b565618442 Removed the wait for swap when XFB is used. This fixes flickering in "Fragile Dreams" and "Another Code R".
Fixes issue 3466.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6360 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-08 08:51:30 +00:00
Glenn Rice 57f01776ef Fix cmake so it is possible to build without bluetooth support, and the typo that tells you bluetooth is enabled when it is not.
Fixes issue 3464.
Also make the check for portaudio really check the version of portaudio.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6359 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-08 02:51:31 +00:00
skidau 6666b400a3 Updated with a less aggressive optimisation to EFB copy to RAM. The destination texture now does not get invalidated if its hash is found in the texture cache. Fixes Metroid Prime 3.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6353 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-07 04:28:33 +00:00
skidau 8775abacc6 Optimised EFB copy to RAM.
The finding was that 99% of the time, textures are static in memory. However, Dolphin would pessimistically continue to decode and copy the same texture every time.  The optimisation is to check if the texture matches what is in the cache, and if it does, Dolphin should early exit.

The result is the speed in New Super Mario Bros Wii increased 35% with spinning coins.  Still not as fast as EFB copy to texture though.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6352 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-06 04:46:44 +00:00
Glenn Rice d0afc20596 Added checks for portaudio and opencl to the cmake build system.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6351 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-06 03:49:18 +00:00
Glenn Rice 4ac40687ea Okay. Big (possible controversial changes) to the cmake build system.
I am officially killing the local/global build crap.  The "local" build thing should never have existed.  There is now only one build that is essentially what the "global" build was before.  This is the way a proper build system should work.  I will soon write a wiki page to describe how to properly use the cmake build system, and how you can still set things up to get the "local" build from before.  However, that type of build should be considered a developer tool, and not the way that dolphin-emu should be built.
Briefly, to use cmake now do the following from the toplevel of dolphin's source:
mkdir Builddir
cd Builddir
cmake ..
make
make install (you may need superuser privileges)

Note that the scons build is still building dolphin in the old way.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6341 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 13:47:17 +00:00
NeoBrainX 48859da6e3 DX9/DX11: Fix and simplify ClearScreen. At least fixes a small glitch in Super Mario Sunshine with DX11, might fix several other things as well in both plugins though (so test this, please!)
Explanation of this commit: We only have to care about four BP registers in ClearScreen, the remaining API state should be reset. The colorEnable and alphaEnable parameters are obsolete, for some reason directly using them caused the SMS glitch with DX11 (because of that bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24 check in BPFunctions.cpp, is this one actually correct?)

The comment in BPFunctions.cpp was at least misleading (if not even wrong), so I removed it.

For what it's worth, someone needs to port this to the OpenGL and Software plugins (unless they're doing this properly already)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6327 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-01 19:13:50 +00:00
NeoBrainX b75a805859 Add an experimental CMake build system as a possible replacement for SCons. Only tested on Linux, should work on OS X and Windows in the future as well though.
Some notes about this:
- config.h doesn't get written yet, so you'll have to use one generated by SCons
- dependency checking isn't really implemented, yet. Just some basic checks for OpenGL or ALSA, we need something more sophisticated though.
- the OpenGL plugin fails to load for some reason which I can't debug right now due to the libc debuginfo package version in openSUSE not matching the runtime packages
- there's even some support for generating install packages (rpm/deb/.. packages, NSIS installer, etc). It doesn't work properly right now though, since some paths seem to be hardcoded into Dolphin's source
- probably lots of other stuff I forgot... Just take a look at all the TODOs in the CMakeLists.txt files for more information ;P

Additionally, I added various files to the svn:ignore list.

tl;dr: Unless you are a dev or you're building binary packages, this commit shouldn't bother you :P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6326 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-01 15:47:02 +00:00
NeoBrainX ab53c84dcf Properly emulate the alpha read pixel engine register function (used for EFB peeks).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6313 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 19:52:52 +00:00
Nolan Check 61c6d4fe59 OpenGL plugin: Should fix building with earlier versions of GLEW. You'll still need the latest GLEW if you want to try dual-source blending.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6311 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 18:26:28 +00:00
Nolan Check 2ec3db44ed OpenGL plugin: Support for dual-source blending, CURRENTLY DISABLED. It doesn't work yet. To fix it, we may need to convert all our shaders to GLSL so that we can use glBindFragDataLocation.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6306 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23 19:55:19 +00:00
skidau 7410056536 Added the wait/sync back in the video thread on XFB swaps. Fixes issue 3391.
Changed the VI interrupts to occur on writes instead of reads.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6304 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23 12:26:57 +00:00
NeoBrainX ef75d96655 Main change: Implemented EFB pokes in DX9/DX11.
Games affected by this change: Mario Smash Football, Mario Strikers Charged Football, Monster Hunter Tri.
Other games possibly affected: Shaun White Snowboarding, Resident Evil Code: Veronica, Baten Kaitos.
This implementation will decrease performance if the game uses this feature, but the glitches will be gone. I'll add an option for this in a later commit. EFB pokes are somewhat slow in DX11 right now, speed should be okayish in DX9 though.

Other changes:
- SOMEWHAT cleaned up the EFB access code in DX9
- Fixed incompatible parameter list of AccessEFB and TVideo_AccessEFB.
- Fixed a theoretical bug in ReplaceRGBATexture2D, add support for STAGING textures
- Removed unused parameters in various DX9 functions


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6300 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-22 19:40:05 +00:00