Commit Graph

3682 Commits

Author SHA1 Message Date
Gregory Hainaut 36e82abd12 Merge pull request #1411 from ssakash/PCRTC
Merge Circuit: Improve offset detection of output circuit
2016-06-19 13:45:51 +02:00
Gregory Hainaut 41c522104e Merge pull request #1414 from PCSX2/gsdx-single-pbo
gsdx ogl: replace eight 8MB PBO with a single fat 64MB PBO
2016-06-19 13:40:38 +02:00
Akash e05e7bee82 GSDX: Add proper detection of internal resolution 2016-06-19 17:10:03 +05:30
FlatOutPS2 ce8b9c153c LilyPad: Make D-pad buttons independent of each other (#1412)
Fixes games that require dance pad support (Dance Dance
revolution series).
2016-06-19 12:25:00 +01:00
Gregory Hainaut 113c78b67e gsdx ogl: replace eight 8MB PBO with a single fat 64MB PBO
It ought to be the same in performance but code will be easier this way

v2: print the sync status
v3: use a performance print so it doesn't spam the console
2016-06-18 14:59:19 +02:00
Jonathan Li eddabf9dbc spu2-x: Remove unused DirectSound 5.1 module
It was copied over from SPU2ghz but never actually used.
2016-06-18 00:01:32 +01:00
Akash ab1ab7b6f1 GSDX: Remove redundant "Null" string from GS Frame title bar (#1409)
* GSDX: Remove redundant "Null" string

* GSDX: Convert "GetConfigI" into "GetConfigB"
2016-06-17 14:25:09 +01:00
Akash 4a0656e903 Merge Circuit: Improve offset detection of output circuit
* Fixes blurring / wrong resolution output on FFXII
2016-06-16 13:22:53 +05:30
Jonathan Li 5aa3d71eaf Merge pull request #1398 from FlatOutPS2/PS1
LilyPad PS1 analog mode fix and UI improvement
2016-06-13 22:39:16 +01:00
Jonathan Li 52a88a7bdf Merge pull request #1384 from ssakash/gsdx-default-renderer
gsdx:windows: Automatically determine best renderer
gsdx:windows: Only enable "Disable Depth Emulation" checkbox on OpenGL
2016-06-13 22:04:46 +01:00
Gregory Hainaut 08579021c5 gsdx ogl: 1 isn't used for WMT/WMS in shader
Stick it to 0 to avoid useless shader toggling
2016-06-11 13:35:32 +02:00
Gregory Hainaut 3234c8241b gsdx ogl: massively extend glsl self test
* Support Mesa Nouveau IR (free driver for Nvidia's GPU)
  => Print intermediate representation + final shader
  => Dump GPR usage
* Move dumped shader in /tmp/GSdx_Shader/<sub_dir>
  =>  Avoid the landing of 3 thousands of files in $PWD ^^
* Use function instead of macro
2016-06-11 13:34:37 +02:00
Gregory Hainaut 1c8de02c8d gsdx ogl: trace shader permutation
Too much permutation is bad for driver performances
2016-06-11 13:34:23 +02:00
Gregory Hainaut 5ffc911a69 gsdx: avoid crash in DX debug build 2016-06-11 01:13:20 +02:00
FlatOutPS2 d736dc1a0a LilyPad PS1 analog mode fix
Fixes issue where "Use analog mode if possible - PS1 only" would enable
analog mode when playing games that don't support it.
2016-06-10 11:30:30 +02:00
FlatOutPS2 60ece1ee72 LilyPad UI improvement
The layout of the buttons is improved to more closely resemble a modern analog controller/DualShock configuration, and the Device column of the list view has been reduced slighty so by default the horizontal scroll bar isn't visible.
2016-06-10 11:30:18 +02:00
Gregory Hainaut 8c4d8cfdca glsl: avoid an unset warning 2016-06-09 18:27:58 +02:00
Gregory Hainaut df45c99f96 gsdx ogl: prefix member in GSUniform object with m_ 2016-06-09 18:27:58 +02:00
Gregory Hainaut fca2661e05 gsdx ogl: add a pretty name to various opengl opengl 2016-06-09 18:27:58 +02:00
Gregory Hainaut ff3d9bd373 gsdx ogl: add function pointer to name object
It could be nice to ease debug
2016-06-09 18:27:58 +02:00
Gregory Hainaut 415ce93425 gsdx ogl: rename the confusing function EmulateGS to Lines2Sprites 2016-06-09 18:27:58 +02:00
Gregory Hainaut 61075febae gsdx ogl: move selector as state variables
Will be easier to move code around if required in the future
2016-06-09 18:27:58 +02:00
Gregory Hainaut 1132230674 gsdx ogl: create m_require_one_barrier/m_require_full_barrier state variable
hopefully code will be more readable
2016-06-09 18:27:58 +02:00
Gregory Hainaut 7ece9b823d gsdx ogl: move texture management into a separate function 2016-06-09 18:27:57 +02:00
Akash 399ad3f450 GSDX: Gray out "Disable Depth Emulation" for renderers other than OpenGL 2016-06-09 15:27:18 +05:30
Akash fdc10e13ec GSDX: Better detection of default renderer
* Better detection of default renderer based on the vendor ID ( Nvidia, AMD , Intel)
* GSUtil: Add a dedicated function for identifying best renderer
2016-06-09 15:27:11 +05:30
refractionpcsx2 c530858df3 GSdx: Move "isNative" check to DX11 context creation. Resolves speed regression in games that constantly change the viewport size. 2016-06-06 20:45:30 +01:00
Jonathan Li 7c205d7a1e windows: Don't use __declspec(dllexport) for plugin exports
Using __declspec(dllexport) causes duplicate export warnings to be
generated when compiling 64-bit builds. Name mangling also occurs on
functions that are exported this way, so it doesn't actually work with
the plugin system, which uses unmangled names.

The module definition file exports the functions without name mangling
and is sufficient on its own.
2016-06-05 22:57:42 +01:00
Jonathan Li 292c6810ad lilypad: Fix missing call to HidD_GetHidGuid
I accidentally removed it in a previous commit. It probably didn't
affect anyone though (you'd need to be using a DS3 via libusb, most
people will be using other methods).
2016-06-05 20:04:17 +01:00
Gregory Hainaut 2b00447a43 glsl: optimize the number of active constant buffer
Increase the performance on the free driver (Nouveau)

Currently the driver validates all UBO when only 1 is updated. It
is clearly a bad idea to put all UBO in a single common headers.
2016-06-05 16:45:11 +02:00
Jonathan Li e6bf77d148 Merge pull request #1253 from turtleli/spu2x-xaudio
spu2-x:windows:Use XAudio2.8+ for Windows 8 and later
2016-06-05 00:28:26 +01:00
Jonathan Li c7940856ce windows: Remove unneeded library dependencies
Some are unnecessary since they're already taken care of by project
references, while others are duplicates or unused.
2016-06-04 22:55:48 +01:00
Jonathan Li 8dd16b1fdb zerospu2: Remove unneeded preprocessor macros and properties 2016-06-04 21:35:55 +01:00
Jonathan Li 471722482e gsdx-legacy: Remove baseclasses
Use the baseclasses project in unfree instead.
2016-06-04 21:22:24 +01:00
Gregory Hainaut 4768f912b8 gsdx linux: add vsync support for free driver 2016-06-04 13:17:59 +02:00
Gregory Hainaut 2b2412ca20 gsdx hw: disable OI_GsMemClear when framebuffer writes are masked. 2016-06-01 22:34:14 +02:00
Gregory Hainaut 7202cac7d0 gsdx ogl: remove the dual source blending workaround 2016-06-01 21:00:29 +02:00
Gregory Hainaut 08a8bfa76c gsdx ogl: plug new program compilation for bad driver 2016-06-01 21:00:29 +02:00
Gregory Hainaut 17988fc7de gsdx ogl: add code to compile a single shader 2016-06-01 21:00:29 +02:00
Gregory Hainaut 405f312fe8 gsdx ogl: format GSShader code
Move the Geometry Shader to the call of the function
2016-06-01 21:00:29 +02:00
Gregory Hainaut 538bb418ce gsdx ogl: revert the removal of single shader compilation function pointer
(It doesn't mean I will drop SSO but that I will do some tests one day)
2016-06-01 09:29:56 +02:00
Gregory Hainaut 5d49a6b685 gsdx ogl: replace 4 VS shader variation by an AND mask
Perf will be roughly the same. However there is a single VS for all
the HW emulation.
2016-06-01 09:29:56 +02:00
Gregory Hainaut 959abe64f8 gsdx ogl: implement wildhack on the CPU
Speed impact is likely small and the plan is only to keep a single Vertex Shader
2016-06-01 09:29:56 +02:00
Gregory Hainaut 3d192b7f8d gsdx ogl: separate channel code into a separate function 2016-06-01 09:29:56 +02:00
Gregory Hainaut 6d2196125d gsdx: fix TVshader case option 2016-05-31 19:35:35 +02:00
Gregory Hainaut 564bf8a089 gsdx ogl: terminator 3 supports sampling from the depth 2016-05-30 19:39:52 +02:00
Gregory Hainaut 43a1c48f75 gsdx option: add missing default and fix case 2016-05-30 18:23:22 +02:00
Gregory Hainaut 9c8b5e37a4 gsdx ogl: blacklist AMD 2015 drivers 2016-05-29 18:21:12 +02:00
Gregory Hainaut 12512f767b gsdx linux gui: disable the hack panel when user hacks are disabled
Move the user hack option to the main panel (Box with a single option doesn't look nice)

Hopefully it will be less confusing for linux users.
2016-05-29 18:09:22 +02:00
Gregory Hainaut 38a511e3e1 gsdx linux: some capture options are cross platform 2016-05-29 17:38:40 +02:00
Jonathan Li e7745d13f4 spu2-x:windows: Add XAudio2 2.8 backend
On Windows Vista and 7, the XAudio2 2.7 backend will still be used.
Windows 8, 8.1 and 10 users will use XAudio2 2.8/2.9 (depending on OS).
2016-05-29 14:50:12 +01:00
Jonathan Li 5344c3f121 spu2-x: Rename SndOut_XAudio2.cpp to SndOut_XAudio2_7.cpp 2016-05-29 14:50:12 +01:00
Jonathan Li de56e30bba spu2-x:windows:xaudio: Remove ifdefs and rename class/vars
This reverts commit 8a61c7d336.

The plan is to support both XAudio2 2.7 and 2.8+. This file will only be
used for 2.7, so let's remove the ifdefs and rename the class and vars.
2016-05-29 14:50:12 +01:00
Jonathan Li c8162df936 spu2-x: Only XAudio2 2.7 requires the DXSDK
Use the newer Windows SDK for everything else.
2016-05-29 14:50:12 +01:00
Jonathan Li 5ea80b86db spu2-x:windows: Remove VersionHelpers workaround
We've moved to the non-XP toolkit - it can be removed.
2016-05-29 14:50:12 +01:00
Jonathan Li 8b74c108a4 Revert "gsdx:windows: Fix Windows 7 compile"
This reverts commit 7736c90457.

It wasn't actually a Windows 7 compile fix, but a bad build environment
workaround.
2016-05-29 14:33:58 +01:00
Jonathan Li b20433c0be windows: Remove user.props references from all projects
find . -name *.vcxproj -exec sed -i -e '/user.props/d' {} \;

Microsoft recommends against using .user files. From
https://msdn.microsoft.com/en-us/library/669zx6zc.aspx :
"The best practice is to delete the reference to them in Property
Manager to ensure that your projects operate independently of any
per-user, per-computer settings. This is important to ensure correct
behaviour in a SCC (source code control) environment."

If you cannot compile SPU2-X after this commit (since that still relies
on the old DirectX SDK), you'll need to fix your build environment.
2016-05-29 12:21:52 +01:00
Gregory Hainaut fb26254fbb gsdx ogl: implement a more generic HLE shader for terminator 3
Hopefully without regression for others games
2016-05-29 10:13:43 +02:00
Gregory Hainaut f7ddd488e1 gsdx ogl: Extend uniform buffer with channel parameter
Instead to use the standard ps ubo which is used every draw call.
I reused a barely used buffer to reduce the extra cost of the upload
2016-05-29 10:13:43 +02:00
Gregory Hainaut 6f19d928f6 gsdx ogl: use the new uniform cache upload method 2016-05-29 10:13:43 +02:00
Gregory Hainaut fa15d7fd26 gsdx ogl: generic code to cache uniform buffer
It will allow to skip a buffer transfer if the new content is the same
2016-05-29 10:13:43 +02:00
Jonathan Li be7af60ab5 lilypad: Use Windows SDK headers for HID functions
Has been available since the switch to the Windows 8.1 SDK.
2016-05-28 23:30:28 +01:00
Jonathan Li 36cd1ae3cc windows: Remove parameter from prebuild command
It's unused. Also convert to using SolutionDir instead of Svnwhatever.
2016-05-28 23:25:08 +01:00
Gregory Hainaut 58f04975e1 oups fix link 2016-05-28 18:49:49 +02:00
Gregory Hainaut 179681ef18 gsdx ogl: enable AMD driver blending workaround only on latest legacy driver
Legacy GPU:
Older driver will be broken.

Still supported GPU:
Please upgrade to the latest AMD driver 16.5.2 or 16.5.3 (and prey that future driver will still work)
2016-05-28 18:43:55 +02:00
Gregory Hainaut a648e2db70 gsdx: switch to dx10/11 as default on Windows
1/ Detecting Dx level requires a DX context.
2/ Dx9 GPU market is 1-2% (I'm not even sure they can run latest windows 10)
2016-05-28 10:07:27 +02:00
Gregory Hainaut c61e09e36a fix left over default 2016-05-28 10:07:27 +02:00
Gregory Hainaut 453ac88dce gsdx option: use CaptureWidth/CaptureHeight on linux too 2016-05-28 10:07:27 +02:00
Gregory Hainaut a9c18c57e4 gsdx option: use the new GetConfig* function
v2:
add PSX stuff
ssakash review
2016-05-28 10:07:27 +02:00
Gregory Hainaut 03a6f2093e gsdx option: add multiple GetConfig to avoid overload issue 2016-05-28 10:07:27 +02:00
Gregory Hainaut 05818d70f4 gsdx option: centralize default configuration to a single file
Potential issue
* miss a default value
* Renderer is DX9 again on windows
* Case issue
* Same default for all code paths
* overload of GetConfig

v2: separate specific OS option
2016-05-28 10:07:26 +02:00
Jonathan Li f888aa61fb lilypad: Remove local volume control
Windows Vista onwards provides application specific volume controls, and
the local volume feature only interferes with it. Any volume adjusting
stuff probably belongs in SPU2-X.

Closes #629
2016-05-27 23:55:45 +01:00
Jonathan Li 2aeceafb36 lilypad:windows: Remove keyboard hooks code
The code wasn't used, and generally low level hooks should be avoided
since they affect the responsiveness of all applications. On Windows 7
and later, the hooks may also be silently removed if they timeout, which
could be possible under heavy load.
2016-05-27 23:40:31 +01:00
Jonathan Li 4f24d22a68 lilypad: Disable close hacks when loaded by PCSX2
The close hacks don't work with PCSX2 - the WM_CLOSE message can't
actually be triggered for the rendering window. The hacks were also
designed as a workaround for some PSX emulator close window bugs, which
don't affect us.
2016-05-27 00:36:11 +01:00
Akash 2409817556 GSDX: Move PSX code to an isolated path 2016-05-26 19:04:17 +05:30
Jonathan Li 06dba2d258 Merge pull request #1372 from PCSX2-Alpha/Windows_GUI
GSDX-Windows: Add "Large Framebuffer" option
2016-05-26 08:57:33 +01:00
Akash 9ae6c2673a GSDX-Windows: Add "Large Framebuffer" option 2016-05-26 11:38:24 +05:30
Jonathan Li 352b61c741 gsdx: Allow normal assert to be used 2016-05-26 00:11:52 +01:00
Jonathan Li db81925c4b Merge pull request #1335 from turtleli/freebsd
Support FreeBSD
2016-05-25 18:55:51 +01:00
Gregory Hainaut 60e0f3b9b5 Merge pull request #1234 from PCSX2-Alpha/Time_Crisis
GSDX: Improve CRTC width detection
2016-05-25 17:51:07 +02:00
Gregory Hainaut b6da1bcb15 gsdx linux: add the new option checkbox 2016-05-23 19:38:44 +02:00
Gregory Hainaut 0c3324b6ef gsdx hw: create a large_framebuffer option
Enable it to ensure correct rendering (FMV)
Disable it to reduce GPU/memory requirement

Option will likely be removed when the perf impact will be reduced.
2016-05-23 19:38:44 +02:00
Gregory Hainaut 1f4439a89e gsdx: add some notes of potential optimization 2016-05-23 19:38:44 +02:00
Jonathan Li 571432a7aa gsdx:freebsd: Fix compilation 2016-05-21 13:34:18 +01:00
Jonathan Li 57cdf0bf16 gsdx:linux: Use clock_gettime instead of ftime
ftime is obsolete and not present in recent POSIX specifications.
2016-05-21 13:33:40 +01:00
Jonathan Li da2046e90e gsdx: Use alignas instead of __aligned
__aligned is defined in FreeBSD headers and will cause compile errors.
2016-05-21 13:23:11 +01:00
Jonathan Li f95c38f632 spu2-x:freebsd: Adjust cmake and ifdefs
For now the SDL backend has been removed, mainly cause it makes the
dialog code too messy.
2016-05-20 22:30:52 +01:00
Jonathan Li f963fcfa66 onepad:freebsd: Adjust ifdefs 2016-05-20 22:30:52 +01:00
Gregory Hainaut a7ba779ba8 gsdx ogl: another HLE channel effect for terminator 3
Same as before but with a different fbmask value (I don't know why but
I have the feeling that I might need the others value too)
2016-05-20 19:55:39 +02:00
Gregory Hainaut 1c21ea955c gsdx ogl: HLE channel effect for terminator 3
Unfortunately I think the game uses another similar effects
2016-05-20 19:45:20 +02:00
Gregory Hainaut 247d33a627 gsdx ogl: always clear depth buffer in FFX2
It avoid depth issues and I'm sure it won't broke other games this way.

Issue #1340
2016-05-19 17:53:46 +02:00
Akash 2166980f91 GSDX: Calculate dimensions of rectangle after merge
* Properly display rectangle size after passing through merge circuit on
GS Dumps and GS Frame titlebar.
2016-05-19 15:53:49 +05:30
Akash 58b43dbb6c GSDX: Rework video mode detection code
* Use some nice enums instead of macros
* properly detect 720P/1080I separately.
* Some code cleanup, extended variable names and added few comments
2016-05-19 14:02:50 +05:30
Gregory Hainaut e258f3e2fa gsdx ogl: update accurate DATE behavior
* Fast accurate DATE is always enabled, it was faster than standard DATE

* The less fast version is always enabled too. It is likely barely used
  so perf impact will be small on few game that could hit this path.
  Nice rendering has a higher priority

* The "slow" path will depends on the date option.
Note normally it isn't too slow (-10%) if GL_ARB_shader_image_load_store
is supported but AMD crimson is an epic fail.
2016-05-19 10:03:46 +02:00
Jonathan Li 7b27be1306 gsdx: Consider horizontal offsets when merging output
Fixes games like Time Crisis 2/3, which use two half-width display
rectangles placed side by side in split screen mode by using different
DISPLAY.DX values.
2016-05-19 10:06:12 +05:30
Jonathan Li 899784cbdc onepad: Only append -dev to library name for Devel builds 2016-05-18 22:58:15 +01:00
Jonathan Li 3a274e85f0 cmake:onepad: Add wxWidgets to dependencies 2016-05-18 22:56:59 +01:00
Gregory Hainaut 14fa797235 gsdx hw: always uses a big RT on snowblind engine game
Avoid headack to avoid conflict between 1280x1024 and 640x1280 resolution
2016-05-17 20:01:00 +02:00
Gregory Hainaut a4c7541092 gsdx ogl: tentative hack to make FFX go along with depth option
Issue1: Depth buffer is wrongly invalidated only the first page is detected.

Issue2: First page seems to be partially written. Could be a GSdx transfer bug.
Anyway, invalidation only support a page granularity.

So here a quick workaround that will clear depth buffer in case of very small partial write.

Might worth to check regression on nocturne/digital saga
2016-05-17 19:33:12 +02:00
Gregory Hainaut 37c049425d gsdx ogl: gl depth is written by default
Fix bad depth state in dump (yes the bug is 2 years old!)
2016-05-16 20:10:32 +02:00