Commit Graph

3584 Commits

Author SHA1 Message Date
Gregory Hainaut 69d585e867 Merge pull request #1114 from remeh/clang-unused-param
gsdx: cmake: don't display "unused parameters" warnings on release bu…
2016-01-22 08:07:07 +01:00
Akash 22fccd5143 GSDX: Add a nice debug message 2016-01-20 04:29:23 +05:30
Akash ebb6e34196 PCRTC: Fix video modes higher than 480P 2016-01-20 04:23:45 +05:30
willkuer fd412c2938 gsdx: Generic GSSetting
The old implementation saved the current value of a GSSetting as uint in
a field called 'id'. The  implementation of GSSettings suggests that
GSSettings  could be saved in a database with id as primary key. This
would require a translation look up from id to value but  could have all
advantages of a database. However the interface to GSSetting was never
implemented like that.

In the new implementation GSSetting has a 'value' field that stores an
int representative value of the desired state. Additionally the
constructor is 'overloaded' as template to reduce casting in the
consumer code. However all consumer values need to be castable to int.

Accordingly combobox initialization was adjusted.
2016-01-18 23:59:27 +01:00
KrossX e86e472d4f Less bind pressure for XInput too. 2016-01-18 19:36:02 -03:00
KrossX dafec4642c Default mappings for XInput devices
Copied if there's no settings file present.
2016-01-18 19:27:48 -03:00
KrossX 27f6fb1ff1 Add support for Scarlet Crush's XInput extensions
Also adds support for the GUIDE buttons to be used.
2016-01-18 19:27:48 -03:00
Jonathan Li 8a61c7d336 spu2-x:windows: ifdef XAudio2 2.7 specific stuff
Support for XAudio2 2.8+ still requires build configurations that use
the Windows SDK include and library files (instead of the DirectX SDK
files).
2016-01-17 22:06:32 +00:00
Gregory Hainaut 5bf12519da Merge pull request #1105 from ssakash/CRTC_-NTSC-height-saturation
PCRTC: Better handling of CRTC height saturation
2016-01-17 16:38:59 +01:00
Gregory Hainaut 254081e3ad Merge pull request #1115 from turtleli/gsdx-ogl-blend
gsdx-ogl: Improve accurate blend sprite draw speed
2016-01-17 15:42:07 +01:00
Jonathan Li 37deeb0d52 gsdx-ogl: Optimise overlap detection algorithm
Vectorise coordinate min/max sorting, and use the ordered runion
instead.
2016-01-16 19:21:56 +00:00
Jonathan Li 14dffa762b gsdx: Add runion_ordered to GSVector
Allows to save a few instructions cycles when xy and zw are already
sorted (min and max rectangle coords).
2016-01-16 19:21:55 +00:00
Jonathan Li 2fc3ef8124 gsdx-ogl: Add sprite overlap statistics to debug messages 2016-01-16 19:21:54 +00:00
Gregory Hainaut 35568f6425 gsdx: disable simd in 64 bits
Let's concentrate first on SSE2

This commit fuses a couple of ifdef
2016-01-16 14:34:00 +01:00
Gregory Hainaut 022cd9cd64 gsdx: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Jonathan Li 74ace74d50 gsdx-ogl: Group non-overlapped accurate blend sprite draws
Reduces the number of draw calls and barriers when drawing sprites.
2016-01-13 08:07:53 +00:00
Jonathan Li f3b6829c74 gsdx-ogl: Restart collision detection algorithm for remaining sprites
It's useless on its own, but it prepares for the next commit.
2016-01-13 08:02:42 +00:00
remeh 28cfd50f08 gsdx: cmake: don't display "unused parameters" warnings on release build with clang. 2016-01-12 13:42:47 +01:00
Akash aade5278d8 PCRTC: Better handling of CRTC height saturation 2016-01-10 21:47:59 +05:30
Gregory Hainaut 3f17898bf5 spu2x: linux compilation fix 2016-01-09 14:26:57 +01:00
Gregory Hainaut 74db92bee4 Merge pull request #978 from juhalaukkanen/apple_osx_master_merge
OSX 32bit build
2016-01-08 20:09:37 +01:00
Gregory Hainaut 7c7de87fcf Merge pull request #1078 from PCSX2/gsdx-unsafe-fbmask
Gsdx unsafe fbmask
2016-01-08 19:26:14 +01:00
Gregory Hainaut 3451f7e760 gsdx-ogl: handle invalid gl_lengh in debug message
Mesa intel sets it to -1.

Close #1089
2016-01-07 21:49:17 +01:00
Akash 8c5c73ea4b GSDX: Fast blending option for windows 2016-01-03 15:40:04 +01:00
Gregory Hainaut 24be4b4969 gsdx-ogl: remove unsafe fbmask of the free SW blending
Initially it was free to do the SW blending because safe fbmask
will already do a sw blending.

Unsafe version uses a fast path with a limited blending. Therefore
SW blending isn't free anymore.

Improve the speed of the previous speed hack (xenosaga 1)
2016-01-03 15:39:45 +01:00
Gregory Hainaut bb15e54438 gsdx-linux: add a new gui entry for the previous hack 2016-01-03 15:39:45 +01:00
Gregory Hainaut 0d25a0592a gsdx-ogl: fast blending accurate hack
The hack relies on the undefined behavior of the hardware so it can
potentially generate rendering corruption.

This new hack drops the cache flusing when only the alpha channel is masked.
Alpha is a direct copy of the fragment. Normally masked bits will be constant
everywhere (RT, FS output, texture cache) so it would likely work.

Just in case, code is only enabled with the new shiny hack
2016-01-03 15:39:45 +01:00
Jonathan Li bb37d1c339 gsdx:windows: Don't change renderer when changing adapter
The previous behaviour loaded the saved renderer config whenever the
adapter combobox was changed. The renderer will now only change if the
new adapter doesn't support the currently selected renderer (i.e
Direct3D11 might not be supported, so it'll revert to Direct3D 9).

Fixes #1080.
2016-01-02 22:20:30 +00:00
Jonathan Li 12e80c271b gsdx:windows: Widen Hacks dialog slightly
The Wild Arms Offset text was slightly cut off due to the label being
too small. Make the dialog slightly wider so the full text will fit.

Someone should probably make the dialog look nicer at some point.
2016-01-02 22:17:30 +00:00
Gregory Hainaut fc98fc9781 gsdx: only enable "please fix me" message on debug build 2016-01-02 18:53:15 +01:00
Gregory Hainaut 7aae0ce394 gsdx ogl: minor string update 2016-01-01 14:43:47 +01:00
Gregory Hainaut 902e295089 gsdx: fix onimusha crash in custom resolution
I don't understand why but it seems it needs more than 8MB
2015-12-30 19:14:52 +01:00
Gregory Hainaut bfa53af50f gsdx linux: fix ShadeBoost option case 2015-12-30 19:14:52 +01:00
ramapcsx2 d84d765aeb whops 2015-12-30 18:53:38 +01:00
ramapcsx2 8e3aec8aaf gsdx dialog: renderer order and naming changed. due to many factors, we can't yet remove any of the software options. naming / order changes are possible though, if a majority votes for it. 2015-12-30 18:06:54 +01:00
Kingcom 191453d89a gsdx: fix windows compilation 2015-12-28 22:05:01 +01:00
Gregory Hainaut a595a09fbd gsdx: increase buffer to have crash in case of overflow
Avoid a crash on Onimusha3 (PAL 60HZ)

In theory it will be better to find the root cause of overflow. I.e. somewhere in this
code below. Dirty rectangle is too big.

***********************************************************************
if(rowsize > 0 && offset % rowsize == 0)
{
    int y = GSLocalMemory::m_psm[psm].pgs.y * offset / rowsize;

    if(r.bottom > y)
    {
        GL_CACHE("TC: Dirty After Target(%s) %d (0x%x)", to_string(type),
                t->m_texture ? t->m_texture->GetID() : 0,
                t->m_TEX0.TBP0);
        // TODO: do not add this rect above too
        t->m_dirty.push_back(GSDirtyRect(GSVector4i(r.left, r.top - y, r.right, r.bottom - y), psm));
        t->m_TEX0.TBW = bw;
        continue;
    }
}
***********************************************************************

So as a temporary solution (that will likely stay for a couple of
years), buffers were increased.
2015-12-28 21:40:06 +01:00
Gregory Hainaut c36fccdd8e gsdx: fix crash when preload data frame is enabled
Height of the dirty rectangle must be the GS size of the RT. Of course
RT doesn't have any height so we compute the max safest value.

Fix issue #987

Candidate for 1.4 release
2015-12-28 18:00:14 +01:00
ramapcsx2 ef62d753d1 Merge pull request #1056 from ssakash/gsdx_swthreads
GSDX: Some change to software rendering threads
2015-12-28 17:23:32 +01:00
willkuer 0c4b25bcec gsdx: defaulting extra rendering threads to 2 2015-12-28 01:05:25 +05:30
Gregory Hainaut ac0d7f74cf gsdx: reorder renderer config code & fix linux gui
Group all DX option into a unique section (avoid tons of ifdef)

Rename Null renderer as "None (Core Benchmark)"
2015-12-27 11:24:05 +01:00
Avi Halachmi (:avih) df356694c5 spu2-x: stretcher: allow minimum latency of 15ms (was 30ms)
15ms latency is too little most of the time, but if the stars align (light game,
fast system, the correct audio output module - portaudio comes to mind), it
might work well/reasonably, so allow it.

Watch the console for stretcher related messages. If you hear bad audio (clicks
etc) or notice reset/underruns messages, it means the latency is too low. The
optimal behavior (stretching is locked to 1:1) is when a message "stretch: None (1:1)"
shows at the console, which isn't followed by a message "stretch: Dynamic" or
resets or spu2 underruns.

I'm pretty sure such low latency with good performance (mostly locked to 1:1)
was not possible in the past, but it seems possible (sometimes) now. Maybe the
previous "black magic" commit helps

The default is still 100ms which is still fine for most cases.

This commit affects Windows. Linux still has a different minimum, probably
mostly due to UI/constants. Maybe someone should test and change that too.
2015-12-25 01:49:53 +02:00
Avi Halachmi (:avih) 22c9d882a8 spu2-x: stretcher: dampen the tempo adjustment to reduce resonance
I don't have a fully scientific explanation here, but it seems that with big
buffers (~200ms and up), the stretcher adjustment can overshoot the target
equilibrium back and forth, in effect never stabilizing.

This commit makes it change slightly slower which somehow seems to improve its
behavior. Sorry for not having a better explanation, as at this stage tuning the
stretcher has become somewhat of a black magic.

But hey, if it works...

Tested with buffers from 30ms to 1000ms, and with playback speed and speed
changes between 30% and 500%, and as far as I can tell it only makes it better.

Fingers crossed.
2015-12-24 23:26:29 +02:00
Akash 21c6fa5f1b gsdx-gui: Label and Tooltip changes to RT option 2015-12-23 19:51:13 +05:30
Akash acb82389c8 GSDX: disable SW mode options on hardware renderer 2015-12-23 12:30:22 +05:30
ramapcsx2 05f1dca151 Merge pull request #990 from turtleli/windows-fixes
Windows: Potential fix for XAudio2.7 unload crashes
2015-12-22 16:56:06 +01:00
Akash 5e67276b6c GSDX-OCL: remove OCL device combobox from GUI
The following patch hides the combobox from the GUI when ENABLE_OPENCL macro is not defined.
2015-12-22 04:15:56 +05:30
ramapcsx2 3fd0b10762 small fix for WinXP / GSdx renderer cleanup 2015-12-21 19:53:36 +01:00
ramapcsx2 3210740872 Patch by r5 that reorders renderers in GSdx' config dialog. Also removes some redundant options. 2015-12-21 19:30:03 +01:00
KrossX 7493570a0d Default config file for xinput 2015-12-21 08:07:12 -03:00
Jonathan Li 000f4984cf spu2-x:windows: Potentially prevent XAudio2.7 unload crashes
The extra LoadLibrary call prevents XAudio2.7 from unloading since
LoadLibrary reference counts. See
http://blogs.msdn.com/b/chuckw/archive/2015/10/09/known-issues-xaudio-2-7.aspx

Should fix random XAudio2 crashes.
2015-12-20 20:08:20 +00:00
Gregory Hainaut 077f06562f gsdx-linux: use standard code for the renderer box
Fix the openCL issue and code is cleaner
2015-12-20 19:33:39 +01:00
ramapcsx2 9092be3a52 GSdx: better default renderer selection. Thanks, Gregory :) 2015-12-20 16:03:58 +01:00
ramapcsx2 16231f599b Merge branch 'master' of https://github.com/PCSX2/pcsx2 2015-12-20 14:47:27 +01:00
ramapcsx2 43b9caf735 GSdx: default renderer to DX11 hw. SPU2-X: default output module to xaudio2 (portaudio has issues selecting the proper hardware device) 2015-12-20 14:46:59 +01:00
Gregory Hainaut cae0ac2d3f gsdx: change gl reporting color message 2015-12-20 14:15:46 +01:00
Gregory Hainaut b1d7f0e3fd gsdx: remove openCL from the ini if it isn't enabled 2015-12-14 10:00:28 +01:00
Gregory Hainaut ab962bf5c6 Merge pull request #994 from KrossX/master
Fix for odd DualShock rumble (Untested)
2015-12-04 10:01:19 +01:00
Jonathan Li 2e1ea22532 gsdx: Make TV Shader F7 toggle temporary
Both the Linux and Windows config dialogs now have a TV Shaders combobox,
so the F7 toggle can be made temporary. This makes the hotkey behaviour
consistent with all the other hotkeys.
2015-12-02 19:45:24 +00:00
Jonathan Li 6e5b8c25dd gsdx:windows: Adjust dialog margin values 2015-12-02 19:07:36 +00:00
Jonathan Li 0f2cb4e2f5 Merge pull request #993 from ssakash/GSDX_dlgchanges
gsdx:windows: Add TV shaders and change GUI design
2015-12-02 18:58:09 +00:00
Juha Laukkanen c72400e927 Darwin/OSX - spu2x apple build with portaudio only.
OSX compilation fix: spu2x: Windows & Linux
2015-12-02 05:01:12 +02:00
ramapcsx2 4c765a04f7 Change an outdated GSdx comment. It may confuse people nowadays. 2015-12-01 21:36:23 +01:00
Akash 1c6a717e93 GSDX: New shader dialog 2015-12-01 15:01:12 +05:30
Gregory Hainaut a026a1979f gsdx linux: align checkbox text vertically
like Windows :p
2015-11-28 13:24:12 +01:00
Gregory Hainaut cfc8fc4e9b onepad: remove image of the new GUI
Some images aren't GPL compatibles
2015-11-28 09:48:04 +01:00
Jonathan Li be7806b051 Merge pull request #991 from ssakash/gsdxtc_preloaddataframe
Texture-cache: check userhacks value for preload data frame
2015-11-26 00:07:40 +00:00
Jonathan Li 6a0f185335 padnull: Zero the whole event structure
It fixes an infinite loop when a key is pressed.
2015-11-25 20:03:44 +00:00
Jonathan Li 8a26a6e34c padnull:windows: Switch to unicode build
Fixes the PadNull crash when any window event occurs due to mixing and
matching Unicode and MBCS window handles. Thanks to Volkanite for
figuring out why it was broken.
2015-11-25 20:03:44 +00:00
Jonathan Li 4a73a157e1 padnull: Cleanup unnecessary stuff
There's already a SysMessage definition, so a second one is unnecessary.

Cleanup some headers as well. I wanted to remove the about box as well,
but that can wait.
2015-11-25 20:03:44 +00:00
Jonathan Li 31d6e05811 padnull:windows: Fix copypasted stuff from fwnull
By doing more copy/pasting.

The directory creation code was removed - it doesn't create any
necessary parent directories so it's not all that useful.

It would be great if all plugins shared config code, but it's probably
to have all the plugins use Unicode on Windows first.
2015-11-25 20:03:44 +00:00
KrossX f7a8ec7ee9 Fix for odd DualShock rumble
Only bit0 matters for the small motor. Fixes RE4 rumble on movies / map.
Was already fixed on xpad.
2015-11-22 19:18:02 -03:00
Akash 8b6ad4ff85 GSDX-TC: check userhacks for preload data frame 2015-11-22 10:49:46 +05:30
Gregory Hainaut 9f2fa79fe3 forget to remove a debug message 2015-11-21 18:34:59 +01:00
Gregory Hainaut 80bdbb5f24 onepad: add an option to workaround DS3 issue with SDL2
I don't understand the magic but sometimes pad buttons are detected as buttons
sometimes as axis. Create an option so people can test both and hopefully find a working solution

Note: you need to restart the plugin to take the option into account
Note2: fix dual pad init too

Related issue #938 and #414
2015-11-21 18:33:51 +01:00
Gregory Hainaut a2887d1536 Merge pull request #986 from ssakash/SPU2-X_dlgchanges
SPU2-X: Minor changes to dialog and stuffs
2015-11-21 17:07:11 +01:00
Gregory Hainaut df87b64ca5 gsdx-linux: left align label 2015-11-20 17:36:03 +01:00
Gregory Hainaut a41308e8c3 gsdx-linux: add a gui option for the tv shaders 2015-11-20 17:36:03 +01:00
Gregory Hainaut 19c9a0b441 gsdx: remove aggressive threading
http://wiki.pcsx2.net/index.php/PCSX2_Documentation/Threading_Basics
2015-11-20 17:36:03 +01:00
Akash 004ef3d451 SPU2-X: prevent signed/unsigned comparisons 2015-11-20 21:17:05 +05:30
Akash f90eeb7861 SPU2-X: handling text during restore defautls
Previously the sound touch configure caption box will still have the outdated value of the sliders when using the restore defaults function, update the caption text also during restore defaults. ( use the first slider value for caption since that lies closer to the restore default box )
2015-11-20 21:17:04 +05:30
refractionpcsx2 1437640bc5 Merge pull request #979 from TheLastRar/master
Dev9ghz: Fix crash on close when ethernet adapter fails to load in winPcap
2015-11-18 09:53:43 +00:00
TheLastRar 63acc148dc Act like dev9null when fully disabled.
original code for dealing with disabled Ethernet support would cause
some games to freeze when they tried to use the adapter.
2015-11-17 19:22:10 +00:00
TheLastRar 4a24b434ce Disable Ethernet support if loading adapter fails. 2015-11-17 18:30:42 +00:00
Gregory Hainaut 7a69812b17 Merge pull request #927 from PCSX2/preload-rt
gsdx-tc: extend preload frame hack to load target too
2015-11-16 09:36:31 +01:00
Jonathan Li 96c921c776 gsdx: Update DirectX end user runtimes URL
The old one isn't working. I don't think there's a URL that redirects to
whatever language the user is using (unless my browser settings are
wrong), so I've just used the English US URL.
2015-11-15 22:10:00 +00:00
TheLastRar 11e67c9db0 Check if WinPcap initialised correctly
Don't start the RX thread if it hasn't.

Also additional null checks to prevent crashes.
2015-11-14 14:25:34 +00:00
Gregory Hainaut 2a0cd77eef spu2x: avoid 64 bits compilation issue
Reported by 3kinox
Solution given by unknownbrackets
2015-11-13 18:48:03 +01:00
Gregory Hainaut 67551f31fd gsdx: use constant expression in offsetof
Well previous expression was a constant already but
compiler failed miserably.
2015-11-13 18:38:48 +01:00
Gregory Hainaut 7eb0f3564b gsdx: AVX is M_SSE == 0x500
0x501 is for AVX2
2015-11-13 18:29:34 +01:00
Gregory Hainaut 967cc0b37b gsdx: align variable 'offsetof' of x64.avx with x86 2015-11-13 18:25:23 +01:00
Gregory Hainaut 3fea5779df gsdx: align sprite test of x64.avx with x86.avx 2015-11-13 18:25:23 +01:00
Gregory Hainaut 736656f7d6 gsdx: properly defined type for xbyak
Compatible 64 bits and avoid local modification
2015-11-13 09:30:48 +01:00
Johannes Obermayr f4a76c48c2 Use GLsizeiptr on Mesa >= 20150122.
Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com>
2015-11-12 21:21:13 +01:00
Gregory Hainaut 9b2b024721 gsdx-linux: add the preload gs hack option 2015-11-12 21:00:10 +01:00
Gregory Hainaut ef3aa17025 gsdx-ogl: disable useless Nvidia driver message 2015-11-12 17:04:54 +01:00
Gregory Hainaut d67ba015c5 Merge pull request #962 from ssakash/GSDX_sizechecks
GSDX: Improve FB size handling
2015-11-12 12:17:31 +01:00
Gregory Hainaut b53be72c6e lilypad: sign compare 2015-11-12 12:11:44 +01:00
Gregory Hainaut c12958bf10 gsdx: sign-compare
Need review
2015-11-12 12:11:44 +01:00
Gregory Hainaut abb4cb4810 plugin API: use const char* insead of char*
I hope it doesn't change the ABI

v2: fix GSnull/zzogl/zerogs
v3: duplicated code on windows...
2015-11-12 12:11:42 +01:00
Gregory Hainaut 6180515212 spu2x: sign compare 2015-11-12 12:10:49 +01:00
Jonathan Li 4eb57cde0e gsdx: Adjust current renderer message
The leading space was really annoying me. Also make the variable local
instead of static.

And fix a bad indentation.
2015-11-11 18:52:52 +00:00
refractionpcsx2 52802371e4 GSdx D3D11: Workaround for Gust games, must enable sprite hack (which these games need anyway) and it will fix the squares caused by the Nvidia fix. Not a perfect solution but we can't have it both ways :( 2015-11-10 22:58:53 +00:00
Gregory Hainaut ac0e40a2b7 onepad: safely dispatch rumble action
Fix onepad crashes
2015-11-10 08:12:20 +01:00
willkuer 9245d3ed7e gsdx: RendererEnum
1. Add GS_Renderer Enum

Replace all instances of int/uint32 renderer identifier by a strongly
typed enum and appropriate casts.

Only instances in GS[*].cpp/h classes were touched. GPU[*].cpp/h classes
do not to follow the same convention.

2. Add default renderer according to OS

The default renderer is OS dependent (Win -> Dx9HW, others -> OGLHW).
Consequently one should always check againt the appropriate default
value on config load.

The old behaviour was only - if a at all - problematic if the respective
element in the gsdx.ini was missing and probably even then didn't create
issues. The current implementation is still more stable and does not
depend on the implementation of GS.cpp -> GetConfig()
2015-11-10 00:26:39 +01:00
Jonathan Li 44d89308c9 Revert "Revert "gsdx|spu2-x: Use atlcomcli.h for CComPtr definition""
This reverts commit 9bb990e9ed.

Fight! Ahem...
2015-11-09 20:55:07 +00:00
Akash d5ba546d2e GSDX: Improve CRTC output size handling 2015-11-09 05:52:42 +05:30
Jonathan Li 9bb990e9ed Revert "gsdx|spu2-x: Use atlcomcli.h for CComPtr definition"
This reverts commit 0eb771c2a6.

The buildbot apparently cannot find atlcomcli.h. Oh joy.
2015-11-08 20:46:41 +00:00
refractionpcsx2 545e47aacc Merge pull request #960 from ssakash/SPU2-Xconlog
SPU2-X: Update Console log to display Delay Cycles from the INI
2015-11-08 14:31:15 +00:00
Jonathan Li 49ff324882 Merge pull request #955 from turtleli/replace-comptr-h
gsdx|spu2-x: Use atlcomcli.h for CComPtr definition
2015-11-08 13:27:28 +00:00
Akash a45f3ac5d6 SPU2-X: Handle INI changes to variable on Conlog 2015-11-08 10:47:03 +05:30
refractionpcsx2 8ed56bd971 Merge pull request #953 from ssakash/SPU2-X_debug
SPU2-X: New INI variable for cycle delay
-Configurable for Higurashi no Naku Koro ni Matsuri Kakera Asobi (SPLM-66913)
2015-11-07 16:54:54 +00:00
Akash ff77708e0e SPU2-X: New INI variable for cycle delay 2015-11-07 20:16:23 +05:30
Gregory Hainaut e5f9923f76 onepad: fix the reset screen saver commit...
Thanks @olegv11 for the review
2015-11-07 13:19:46 +01:00
Gregory Hainaut 2b02a7433f onepad: reset the screen saver every 4096 Vsync
I didn't put the code in PCSX2 because it requires the display pointer.
And I'm afraid of multithread issue.

Related to issue #942
2015-11-07 11:03:39 +01:00
Gregory Hainaut 83d578f39a onepad: release shift when losing the focus 2015-11-07 10:45:10 +01:00
Gregory Hainaut 43390ec240 onepad: remove remaining XAutoRepeat* call 2015-11-07 10:42:15 +01:00
Gregory Hainaut 4ef0572ceb gsdx-ogl: disable copy constructor
'class GSVertexBufferStateOGL' does not have a copy constructor which is recommended since the class contains a pointer to allocated memory.
2015-11-06 23:01:59 +01:00
Gregory Hainaut 3e4c3353ce gsdx-ogl: missing break 2015-11-06 23:01:58 +01:00
Gregory Hainaut 9f1649ae57 gsdx: use a type in sizeof
(warning) Suspicious usage of 'sizeof' with a numeric constant as parameter.
2015-11-06 23:01:58 +01:00
Gregory Hainaut 7c6d2361af gsdx: use scalar delete
(error) Mismatching allocation and deallocation: data
2015-11-06 23:01:58 +01:00
Gregory Hainaut f3394b16b8 gsdx: use standard quote character
Nicer with tool that support ANSII text (cppcheck)
2015-11-06 23:01:58 +01:00
Jonathan Li 0eb771c2a6 gsdx|spu2-x: Use atlcomcli.h for CComPtr definition
VS2013/VS2015 community includes it, so everything will still compile
for everyone.

Also delete common/include/comptr.h.
2015-11-06 18:52:33 +00:00
Jonathan Li 4ab092d011 Merge pull request #911 from ssakash/gsdx_debug
Gsdx: Add Mipmap (Software mode) and preload data frame to GUI.
2015-11-06 13:01:49 +00:00
Akash 754a7eb7de GSDX: Update toggle key messages 2015-11-06 01:47:53 +05:30
Akash d866b5592e GSDX: Add two new options to GUI.
The following patch adds Mipmap option (software mode exclusive) and Preload Data Frame (Hardware mode exclusive) to the GSDX plugin settings for debug purposes.
2015-11-06 01:47:44 +05:30
Gregory Hainaut d0ea904cdf spu2x: remove hyperlink in windows about box
Code isn't free (and kinda useless)
2015-11-04 07:43:00 +01:00
Gregory Hainaut 5ba41306ea gsdx-tc: HasSharedBits uses PSM not address
Nice heap overflow. I'm surprised that it kinda worked.
2015-11-02 07:36:37 +01:00
Gregory Hainaut 6a38e1d06e onepad: init sigaction struct 2015-11-02 07:36:17 +01:00
Gregory Hainaut a9af374be6 onepad: don't touch autorepeat setup
When X autorepeat is enabled, it will generate down/up, down/up, ... sequences

So it was decided to disable it. Unfortunately the configuration is for
the full system which is very annoying (state isn't restored after an
ASSERT or EXCEPTION)

Initially the plugin handles the event from the X loop. However since
the GSopen2 switch events are already intercepted by the WX core GUI.
The core will route them back to the input plugin.

Wx filters automatically generated event so initial sequence is now
down, down, down/up. No more autorepeat issue, so no need to screw up
the system.

Close #945
2015-11-01 10:48:54 +01:00
Gregory Hainaut c3d8cc0978 Merge pull request #897 from PCSX2/coverity-spu2x-mixer
spu2x: correctly apply the volume to the external source
2015-10-31 20:10:43 +01:00
Jonathan Li e31cb8cbcd spu2x-sdl: restore WX2.8 build compilation
Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com>
2015-10-31 11:06:15 +01:00
Gregory Hainaut 66259dee17 spu2x-sdl: always use 16 bit formats
32 bits range is too big and requires to maximize the volume.
2015-10-30 17:38:12 +01:00
Gregory Hainaut 2a68c3585c spu2x-sdl: fiddle with SDL to init the selected API
Note: SDL_Init is mandatory oterwise SDL_OpenAudio will redo the init.
So the only sane way is to initialize pulseaudio, close everything, and finally
init the requested driver.

V2:
* ifdef SDL2 code

V3:
* use std::string for m_api (avoid issue issue with wx2.8)
* call the good function to properly close subsystem avoid crashes
2015-10-30 17:37:25 +01:00
Gregory Hainaut 84c6455c95 spu2x-sdl: add a gui setting to select the API
The purpose is to workaround bug with default API

Code is not ideal because SDL/gui are mixed. But it would be enough
for future release.

V2: ifdef SDL2 code
2015-10-30 17:13:45 +01:00
Gregory Hainaut 96fc260488 linux: restore default INT/TERM signal handler
Allow to use CTRL-C to quit PCSX2 ("regression" of SDL2)
2015-10-29 15:04:55 +01:00
Gregory Hainaut d81481a974 Merge pull request #926 from kust2708/onepad-gui-images
Onepad GUI for Linux - New wxWidget interface (Images)
2015-10-26 21:21:12 +01:00
kust2708 9dff864de8 onepad:
Add images for the new GUI

Onepad : wxWidget GUI
Replace headers by png files.

OnePad: wxWidget HUI (Images)
Fix l2.png file (white background instead to a transparent one).
2015-10-26 14:28:32 +01:00
Gregory Hainaut 59be6c8710 gsdx: protect some options to avoid buffer overflow
Keep TVShader/interlace/aspectratio in the legal range.

Avoid a crash if the user (aka me) edit the ini file with bad value.
2015-10-25 21:44:20 +01:00
Gregory Hainaut b87cda94c5 Merge branch 'glsl-fix-tv-shaders' of git://github.com/turtleli/pcsx2 into turtleli-glsl-fix-tv-shaders 2015-10-25 21:23:39 +01:00
Gregory Hainaut bba67fbd83 Merge pull request #912 from PCSX2/accurate-blending-issue-762
gsdx-ogl: PrimitiveOverlap requires real rectangle
2015-10-25 20:55:41 +01:00
Jonathan Li 1659d5974e gsdx-ogl: Fix scanline, diagonal, triangular TV shaders
PSin.p is normalised, so integer conversions won't work. Use
gl_FragCoord instead.
2015-10-25 19:20:22 +00:00
Gregory Hainaut 50e6306331 Merge pull request #919 from ssakash/coverity_init
Coverity: Initialize class members
2015-10-25 20:08:46 +01:00
Gregory Hainaut 03bf1ec7b3 gsdx-tc: extend preload frame hack to load target too
The goal is to check the impact on game that have wrong RT content.

It helps a bit Smash Court Tennis Pro Tournament 2 but the game suffers
another texture cache bug. (RT BW is 10 whereas texture BW is 8)

Note: Armored Core: Last Raven must be tested (only game so far
that rely on the option and I didn't want to add a new one).
2015-10-25 15:26:38 +01:00
Akash e4490694f1 SPU2-X: Initialize all class members
CID 147033 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)16. uninit_member: Non-static class member ActualPaCallback is not initialized in this constructor nor in any functions that it calls.
2015-10-25 14:11:44 +05:30
ramapcsx2 79075282e5 Merge pull request #922 from ssakash/spu2-x_realtime
SPU2-X: Fix a "Fixme" part of the code.
2015-10-24 16:33:36 +02:00
Gregory Hainaut 295f867118 gsdx: invalid alpha after an EE write
Typical wrong draw:
1/ draw in 32 bits
2/ draw in 24 bits
3/ Use alpha as a texure. (Must reuse the GPU data)
4/ Write alpha from EE
5/ Use alpha as a texure. (Must upload new data)

This commit fixes the step 5.

Fix #917 (Conflict - Desert Storm)
2015-10-24 16:23:50 +02:00
Akash 5d13dfee25 SPU2-X: Remove a logically impossible break
* the break doesn't get used since HANDLE_CHECK consists of a break on the function itself.
* removed an outdated comment since realtime update of configure has been done.
2015-10-24 19:48:52 +05:30
Akash 0cc4287b59 SPU2-X: Realtime update for soundtouch configure
previously the soundtouch configure box required a total exit of the dialog to get the configure box value updated , now it's made to be done in an instant.
2015-10-24 19:34:24 +05:30
Gregory Hainaut 5cbd0cf42a gsdx-debug: add more push/pop debug group on the init 2015-10-24 14:14:37 +02:00
Gregory Hainaut 9ba949c2d9 gsdx-debug: support correct logging on mesa
By default low severity message were disabled. (thanks to be open source)
2015-10-24 14:14:37 +02:00
Gregory Hainaut e8fdd99962 spu2x-sdl: keep only C++11 code path
Linux supports C++11 completely.
2015-10-24 14:14:37 +02:00
Akash c1f1646dab GSDX: Initialize class members
CID 146973 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)2. uninit_member: Non-static class member overflow is not initialized in this constructor nor in any functions that it calls.
2999}
2015-10-23 01:35:15 +05:30
Gregory Hainaut 87001326f6 gsdx: remove 4Y-old unused code
It was never used.
2015-10-22 19:51:03 +02:00
Gregory Hainaut a8968257db glsl: keep fract in [0;1] range
Shin Megami Tensei Lucifers seems to generate infinites values.
I suspect that DX always clamp fract output.

Finally fix #782 !
2015-10-22 18:36:45 +02:00
Gregory Hainaut c0d0e2e89d gsdx-ogl: PrimitiveOverlap requires real rectangle
runion/rempty/rinter requires x < z and y < w

Help issue #762 (accurate blending issue)

If you want to shine, please put better GSVector code (AVX512 is 2 instruction :p)
2015-10-22 12:34:50 +02:00
Gregory Hainaut 92553add8e gsdx-ogl: accurate date regression. Bad interaction between depth & DATE
In the DATE42 algo, first pass must find the primitive that write the
bad alpha value. If depth test is fail, alpha value won't be written therefore
you mustn't keep the primitive id.

In theory to ensure 100% correctness, depth would need to be fully executed
(currently depth write is disabled). However it requires to copy the depth buffer.
It is likely bad for the perf.

Issue reported on DBZInfWorld
2015-10-22 12:31:51 +02:00
Gregory Hainaut 6561fbc831 gsdx-ogl: only enable aniso when sampling from the HW texture unit
Potentially help issue #884
2015-10-22 12:21:43 +02:00
Gregory Hainaut b6d9ea86ee spu2x-sdl: memset the stream buffer in SDL2
Fix #382
2015-10-21 22:13:29 +02:00
Gregory Hainaut 53c38ef2cc spu2-sdl: move the ifdef to support automatic indentation 2015-10-21 20:54:09 +02:00
Gregory Hainaut 96bf714d85 spu2x-sdl: unique_ptr is always supported
So let's drop various ifdef
2015-10-21 20:36:07 +02:00
Gregory Hainaut 826319ce34 gsdx-ogl: check null pointer
CID 151735 (#1 of 1): Dereference after null check (FORWARD_NULL)
61. var_deref_model: Passing null pointer rt to CopyRectConv, which dereferences it
2015-10-21 20:10:16 +02:00
Gregory Hainaut 395b4c25f3 Merge pull request #899 from ssakash/gsdx_nullcheck
gsdx: use old size of target if ds and rt is null
2015-10-18 19:25:39 +02:00
Jonathan Li 7fac189ab3 spu2-x:linux: Fix potential null deference
Coverity CID 146911: Dereference before null check (REVERSE_INULL)
2015-10-18 14:01:27 +01:00
Gregory Hainaut d5e0899955 oups collision with ref commit 2015-10-18 11:19:39 +02:00
Gregory Hainaut f99882c61c gsdx-ogl: keep gl_ActiveTexture & gl_BlendColor (fix MS compilation)
It seems openGL ABI isn't exactly the same between Windows and my PC.
2015-10-18 11:18:19 +02:00
refractionpcsx2 179a4cead5 GSdx: Fix compilation 2015-10-18 02:01:56 +01:00
Akash 294b8d3c6e gsdx: use old size of target if ds and rt is null
CID 146843 (#1 of 1): Dereference after null check (FORWARD_NULL)6. var_deref_model: Passing null pointer ds to GetSize, which dereferences it.
2015-10-17 22:47:44 +05:30
Gregory Hainaut 0958b9db8e gsdx-ogl: use the standard openGL name
Function pointer was mangled to avoid any collision. Nowadays all symbols
are hidden so no risk of collision.

Syntax is nicer beside it would allow to put back GLES3.2. I think it
supports most of the used extension.

glActiveTexture & glBlendColor are provided without symbol query.
2015-10-17 17:05:15 +02:00
Gregory Hainaut 1c8f8a00b8 Merge pull request #894 from ssakash/coverity_fix
Coverity: Prevent NULL dereferences and other stuffs.
2015-10-17 16:00:28 +02:00
Gregory Hainaut eb387e16f4 onepad: fix compilation on SDL1 2015-10-17 14:38:46 +02:00
Gregory Hainaut 9b796d0f27 Merge pull request #892 from 3kinox/rumble_onepad
Implement rumble and isolate SDL code path
2015-10-17 11:00:06 +02:00
Akash fedd07e4a8 gsdx: prevent a potential division by zero
CID 146834 (#2-1 of 2): Division or modulo by zero (DIVIDE_BY_ZERO)9. divide_by_zero: In expression tpf * 10000ULL / ttpf, division by expression ttpf which may be zero has undefined behavior.
2015-10-17 11:26:11 +05:30
Akash 04b765a674 gsdx: check for null deference.
CID 146839 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)11. var_deref_model: Passing null pointer fb_pages to UsePages, which dereferences it.

CID 146840 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)11. var_deref_model: Passing null pointer zb_pages to UsePages, which dereferences it.

* Prevent a potential null pointer deference in ```void GSRendererSW::UsePages()```
2015-10-17 09:14:07 +05:30
3kinox d7155f839f onepad:
+ Implement and activate rumble.
2015-10-16 23:55:18 +02:00
3kinox fb0d7139f2 onepad:
+ Isolate every SDL code paths and replace any call to them by call to a generic class "GamePad" of which JoystickInfo is now a child.
+ Now backends can be added by inheriting GamePad generic class.
+ There is just one function change which is redundant with next commits but otherwise commit will not compile(which is more evil).
2015-10-16 23:53:51 +02:00
3kinox 9ab554af5b onepad:
+ Objectify conf class.
+ Make some members private as they need to have their range checked before being set
+ Change "options" variables into an union contraining bitfield representation of it. Allows to make code more expressive/readable.
2015-10-16 23:47:55 +02:00
Gregory Hainaut 096e5e1fef spu2x: correctly apply the volume to the external source
CID 147046 (#1 of 1): Useless call (USELESS_CALL)
side_effect_free: Calling ApplyVolume(Ext, Cores[1].ExtVol) is only useful for its return value, which is ignored.
2015-10-16 23:17:07 +02:00
Gregory Hainaut 03bc304ecf gsdx-ogl: fix colclip regression when accurate blending is enabled
Fix #865
2015-10-16 22:07:50 +02:00
Jonathan Li 76e61d4ef1 Merge pull request #863 from turtleli/gsdx-dx-select-shader
gsdx:windows: refactor dx9/dx11 compile shader code, allow external
shader selection via GUI, widen and rearrange GUI
2015-10-07 00:18:04 +01:00
Avi Halachmi (:avih) 7d6a73ab27 LilyPad: in PS2 mode - disable configs/hacks which PCSX2 doesn't need
Disable and overrides the following hacks at the config and dialog:
- Disable screensaver
- Safe fullscreen exit on escape
- save state in title

All of those are hacks which PCSX2 doesn't need anymore and therefore are just
confusing if enabled.

Note that we assume PCSX2 is synonym for PS2 mode in LilyPad, and while AFAIK it
is the case now, it might need a more fine grained override system.
2015-10-07 01:22:47 +03:00
Jonathan Li 39dc23e83b gsdx:windows: Widen and rearrange GUI
All combobox text can now be seen in full without having to click on the
combobox.

The internal and custom resolution stuff has been moved into the Hardware
Mode Settings groupbox since it doesn't affect software mode.

The dialog has also been rearranged a bit.
2015-10-03 22:33:55 +01:00
Jonathan Li 64cccda076 gsdx:windows: Add external shader selection to GUI
This lets Windows users select the external shader and config file via the
GUI.

Also, comment out an unused variable in the Hacks dialog code.
2015-10-03 22:33:15 +01:00
Jonathan Li a57b2a059a gsdx:windows: Add file selection support
The file open dialog will be usable for all GSdx dialogs if required.
2015-09-28 12:45:14 +01:00
Jonathan Li c0137227e6 gsdx:dx: Allow selection of external shader/shader config
shaders/GSdx.fx is now the default location and is no longer hardcoded.
The external shader and external shader config can now be selected. (The
OpenGL renderer already has this feature.)

Note: It is still possible to not use a config file, just use an invalid
value for shaderfx_conf.
2015-09-28 12:45:13 +01:00
Jonathan Li df98c766e5 gsdx:dx9: Refactor shader compilation code
Don't use D3DX compile from file and compile from resource functions -
use the compile from memory function instead. It does the same thing,
except you have to set things up yourself.

Benefits:
Allows external shaders to be split into a config file and a shader file
without hardcoding the config file name.
Less code.

Yes, I more or less used the same message as the dx11 one.
2015-09-28 12:45:13 +01:00
Jonathan Li fabd6075ef gsdx:dx11: Refactor shader compilation code
Don't use D3DX compile from file and compile from resource functions -
use the compile from memory function instead. It does the same thing,
except you have to set things up yourself.

Benefits:
Easier move to D3DCompile when it becomes necessary.
Allows external shaders to be split into a config file and a shader
file without hardcoding the config file name.
Less code.
2015-09-28 12:45:12 +01:00
Gregory Hainaut c7000355fe gsdx-ogl: flush debug file before exiting the application 2015-09-28 09:41:30 +02:00
Jonathan Li cbd2417833 gsdx:ogl:windows: Fix calling convention mismatch
OpenGL does not use the cdecl calling convention (which is the default
calling convention for GSdx on Windows). Since DebugOutputToFile is used
by OpenGL, it needs to use the same calling convention that OpenGL uses.

This fixes a debug build crash when the OpenGL renderers are used and
debug_opengl is nonzero in the ini.
2015-09-26 22:38:05 +01:00
Gregory Hainaut 00e37224ed gsdx: check the return value of mkdir function
Reported by coverity
2015-09-26 13:51:23 +02:00
Gregory Hainaut 78b73ba585 gsdx: avoid null pointer deferencement 2015-09-25 20:59:36 +02:00
Gregory Hainaut 5fb8c7e65c gsdx: initialize members in constructor of objects
A couple of useless members were removed too.

Also fix wnd initialization

Coverity:
CID 146955 (#1 of 1): Uninitialized pointer read (UNINIT)
18. uninit_use: Using uninitialized value wnd[i].
2015-09-23 09:46:53 +02:00
Gregory Hainaut c4a3d57499 gsdx: protect fscanf string read
Coverity:
CID 146816 (#1 of 1): Calling risky function (DC.STREAM_BUFFER)
dont_call: fscanf(FILE *, char const *, ...) assumes an arbitrarily large string, so callers must use correct precision specifiers or never use fscanf(FILE *, char const *, ...)
2015-09-23 09:39:09 +02:00
Gregory Hainaut 7bec15b99f gsdx: remove useless condition check
Base pointer and format are always positive (unsigned int BTW) so drop
>= 0 comparison
2015-09-23 09:39:08 +02:00
Avi Halachmi (:avih) cee0b795ee Recording: handle cancel (at the GS[dx] dialog) gracefully
Without this patch, if a user initiates a recording and then cancels at the GSdx
dialog, the audio was recording anyway, which is probably highly unexpected.

However, while probably highly unexpected, it could still be useful to record
only audio, but with this patch it's now impossible.

We can reconsider if it turns out that people are actually using this "feature",
though one might as well set the video setting to be very unobtrusive (very low
resolution/bitrate) such that it uses very little CPU.
2015-09-22 01:11:25 +03:00
Avi Halachmi (:avih) 4474d4391b GSdx: capture - print recomended resolution and DAR to the console
This is the internal resolution which GSdx uses and recording at this resolution
is optimal, i.e. without any dumb scaling, with all relevant pixels and without
redundant pixels.

The resulting clip still doesn't have the correct aspect ratio set, but that's
just a property which can be set to the clip afterwards, which is where the DAR
becomes useful. Since it's usually anamorphic, when muxing later with the audio
use the DAR to set the playback aspect ratio.
2015-09-22 01:11:13 +03:00
Avi Halachmi (:avih) 3f81fc98dd gsdx: custom resolution - use 0 instead of 9 2015-09-22 01:00:53 +03:00
Jonathan Li 4208267966 gsdx|spu2-x:windows: Scale GUI logo with DPI
The SS_REALSIZECONTROL style resizes image to fit the control window, so
let's use that.
2015-09-21 20:45:50 +01:00
Jonathan Li c088039394 gsdx:linux: Fix clang compile
Everything seems to compile and run with clang 3.7.0 now. I don't know
if clang 3.6.x works or not. 3.5.x doesn't.
2015-09-21 20:45:50 +01:00
Jonathan Li 69d27dfb4b Merge pull request #829 from ssakash/rework_internalres
gsdx changes:
Remove native resolution checkbox from GUI and rework associated code
Small changes to Windows and Linux GUI
Support 8x native resolution
Fix custom resolution width less than native width use case
2015-09-21 20:12:47 +01:00
Gregory Hainaut d42cef891c gsdx: remove ALIGN_STACK feature on GCC
Stack is already aligned correctly. Besides GCC optimizes the variable so it doesn't
have any effect except that it generates useless warnings.
2015-09-20 22:19:45 +02:00
Gregory Hainaut 9b69afe541 gsdx-ogl: typo that broke TC offset hack 2015-09-20 22:19:45 +02:00
Gregory Hainaut b60dd9d1fe Merge pull request #814 from PCSX2/coverity-qa-high
Fix a bunches of coverity warning/errors.
2015-09-20 22:18:03 +02:00
Avi Halachmi (:avih) 94c5eab776 GSdx: capture dialog - actually remember the last used codec
Previously it was saving the display name to the config but trying to restore
according to the friendly name.

Now store and restore according to the "displayName" which is more unique than
"friendlyName" since it includes GUID[s], and handle it consistently as _bstr_t.
2015-09-20 20:04:36 +03:00
Jonathan Li d4f6894e1b gsdx: Fix custom resolution and minor cleanup
This fixes the following issues when custom resolution is selected.
 - When the width is smaller than the native resolution width, the
   texture cache targets are removed on every Vsync signal, causing a
   black screen issue.
 - The texture cache code needs a 1 returned for the custom resolution
   upscale multiplier or there'll be some really funny graphical issues.

It also removes unnecessary GetConfig (which I think unconditionally
does a a file read on Windows) calls if the width was increased - the
upscale multiplier is already stored, and the custom resolution width
and height calls are now unnecessary.

Also fix some whitespace issues.
2015-09-20 07:49:46 +05:30
Gregory Hainaut 28191baa80 gsdx-linux: merge native/upscaling/custom into a single box 2015-09-20 07:49:44 +05:30
Akash a9b0cfc519 GSDX: Add 8X native to Internal resolution. 2015-09-20 07:49:32 +05:30
Avi Halachmi (:avih) 54afd377ee GSdx: recording: Progressive: make the recorded clip play at full speed
Before this patch, when recording Progressive (frame) mode, it recorded all
the frames correctly but set the clip's fps property to 25/29.97, so when
played back it played at half the speed (but was fine when played at double speed).

This patch does not affect the number of frames recorded per second, but rather
only sets the resulting clip fps property to the correct one (double than before).

Also fixes a bug that in a non-managed window in progressive mode, the title
displayed "200%" speed when it should have displayed 100% speed.

Fixes #832
2015-09-19 14:44:48 +03:00
Akash b97018932d GSDX: Rework Internal Resolution function
upscale_multiplier function values have been changed to allocate native resolution and also move custom resolution to 9.
Remove the old native checkbox value and include Native in the combo box.
Internal GSDX functions have also been updated with this new update to the upscale_multiplier variable.
2015-09-14 10:26:27 +05:30
Miguel A. Colón Vélez 4760d71a86 Remove the remaining postbuild stuff.
The bot should work now.
2015-09-13 04:33:17 -04:00
Pistachioman 3df5c2835e Remove useless postBuild stuff 2015-09-13 04:31:41 -04:00
Jonathan Li 239306e9a2 pcsx2|gsdx:linux: Fix posix_memalign
The AddressSanitizer can be used on Linux again. Well, PCSX2 doesn't get
very far when it's used though.
2015-09-12 09:58:00 +01:00
Gregory Hainaut bfe1236d98 pcsx2|lilypad: Unintentional integer overflow
Add some cast to do the intermediate operation in 64 bits
2015-09-11 16:50:02 +02:00
Gregory Hainaut cee0fde940 gsdx-tc: improve support of TEXA register
* Greatly reduce the number of clut read (factor 10x)
* Avoid to get wrong TEXA texture in the cache.
* Fix "jump depends on uninitialized variable" Valgrind warning.

Fix #748

I try my best to avoid any breakage of DX but please test it too.
2015-09-11 14:16:11 +02:00
Gregory Hainaut 78569ee833 gsdx-ogl: redo properly the setup of texture format
* add lengthly comment to explain the format
* Likely reduce the number of shader permutation
* Avoid slow AEM (on GPU)

Expect regressions because TC needs some fixes

v2: fix palette mode
2015-09-11 14:14:22 +02:00
Gregory Hainaut 8928c3e7f1 onepad: be sure pad variable is 0 or 1
CID 146918 (#1 of 1): Use of untrusted scalar value (TAINTED_SCALAR)
tainted_data: Passing tainted variable pad to a tainted sink
2015-09-11 09:18:49 +02:00
Gregory Hainaut 2430abed33 gsdx: potential division by zero
CID 146833 (#2-1 of 2): Division or modulo by zero (DIVIDE_BY_ZERO)
divide_by_zero: In expression this->m_width / this->m_upscale_multiplier, division by expression this->m_upscale_multiplier which may be zero has undefined behavior.
2015-09-11 08:54:29 +02:00
Gregory Hainaut e6d1a4cccf gsdx: avoid a potential division by zero
CID 146835 (#1 of 1): Division or modulo by float zero (DIVIDE_BY_ZERO)
50. divide_by_zero: In expression (float)(end - start) / (float)frame_number, division by expression frame_number which may be zero has undefined behavior
2015-09-11 08:54:29 +02:00
Gregory Hainaut 2934a15902 gsdx: remove a duplicated check 2015-09-11 08:54:29 +02:00
Gregory Hainaut ac8f4e69d6 pcsx2|gsdx: avoid potential null deferencement 2015-09-11 08:54:29 +02:00
Gregory Hainaut b082147c4d onepad: avoid potential resource leak 2015-09-10 14:21:27 +02:00
Miguel A. Colón Vélez 26e2b4a5be Rename Release/Debug SSE2 to Release/Debug. 2015-09-08 23:17:07 -04:00
Gregory Hainaut ddc03cbccf gsdx: add a nice enum to replace the hardcoded convert shader 2015-09-08 16:51:24 +02:00
Gregory Hainaut 1ae0fed83b gsdx: fix a regression due to the shader renaming 2015-09-08 16:06:15 +02:00
Gregory Hainaut 81e056e79a gsdx: always enable the boost queue
ifdef was for VS2010

GSThread.h is useless. I keep it for the transactional queue implementation
2015-09-08 14:43:09 +02:00
Gregory Hainaut 3706cfe908 gsdx: always enable CXX11 mutex feature.
ifdef was only useful for VS2010
2015-09-08 14:34:17 +02:00
Gregory Hainaut ca9b5ce11d gsdx-ogl: move depth conversion shader
Add 2 new shaders:
* ps_main12: cast a 16 bit depth to a RGB5A1 color
* ps_main16: cast a a RGB5A1 color to a 16 bit depth

Shader might be used in future commit as it seems Silent Hill uses this
kind of format.

Fix tab/indentation too
2015-09-08 12:41:05 +02:00
Gregory Hainaut 4eed4ca3a1 gsdx-debug: restore 16 bit dump format in the SW renderer
Actually dump both 32/16 bits (former for texture shuffle and later
for real 16 bits RT)
2015-09-08 12:41:05 +02:00
Jonathan Li 9052930ebc Merge pull request #791 from turtleli/gsdx-gui-changes
Add tooltips to Windows GUI. Fixes #578.
Rearrange Window GSdx GUI a bit.
Reformat tooltip descriptions to be both Linux and Windows (un)friendly.
Add new tooltip descriptions.
2015-09-03 22:49:41 +01:00
Jonathan Li 288931ddc3 Merge pull request #781 from ssakash/patch-49
Fix Windows Lilypad local volume control GUI checkbox.
Make MicroVU E-bit delay slot warning a Dev warning.
Don't minimise GS Window if main window is minimised.
2015-09-02 21:51:04 +01:00
Jonathan Li e5f045c375 gsdx: Add new tooltips and descriptions.
For Linux and Windows, add tooltip descriptions for AF, AA1, extra
rendering threads, Enable Shade Boost, FX Shader/External Shader, FXAA.

For Windows, also add Alpha Correction and Logarithmic Z tooltips.

For Linux, add software mipmap tooltip.

Thanks to tsunami2311, ssakash, gregory38 and whoever did the wiki for
helping with descriptions.
2015-09-01 19:25:28 +01:00
Jonathan Li 55adc7e728 gsdx: tooltip description formatting and minor fixes
The hack description box messages were replaced by tooltips on Windows,
so there is no need for the first line in the description to refer to
the hack anymore.

3-state checkboxes were also converted to comboboxes, so remove any
references to checkbox states.

Reformat the descriptions so it looks okay on both Windows and Linux.
Could be better, but I'm out of ideas.

Also fix a few typos and missing punctuation.
2015-09-01 19:25:27 +01:00
Jonathan Li b687b106f1 gsdx: Removed unnecessary defines and functions
The changes to the Hacks dialog removes the need for these defines.

Also remove the swap_state function since it's now unused.
2015-09-01 19:25:26 +01:00
Jonathan Li c72b4d6e8a gsdx:windows: Rework hacks dialog to use tooltips
Changes the three-state checkboxes to comboboxes.
Removes the hack description box.
Hides Alpha and Alpha Stencil when OpenGL is selected.
Rearranges the hacks dialog.
2015-09-01 19:25:26 +01:00
Jonathan Li fcc8a941b0 gsdx:windows: Redo main dialog
This moves the hardware, non-renderer dependent options to the top and
makes the renderer options visible only when it affects the current
renderer.

The texture filtering checkbox has been changed to a combobox and now
uses the same description as Linux does.

Also changes the Title to GSdx Settings.
2015-09-01 19:25:25 +01:00
Jonathan Li e6b9805167 gsdx:windows: Show tooltips on main dialog 2015-09-01 19:25:25 +01:00
Jonathan Li 48bba4d581 gsdx:windows: Add tooltip support
Tooltips will be usable for all Gsdx dialogs if required.
2015-09-01 19:25:24 +01:00
micove 9e7a2bf1b9 Merge pull request #792 from micove/Update_Pthreads291
Update pthreads to 2.9.1
2015-08-25 13:59:02 -04:00
Gregory Hainaut bdc8038e7e glsl: set a size to gl_ClipDistance array
The purpose is to avoid issue on MS-Intel driver without
a dedicated hack in the compilation.

Code doesn't use it so I suspect others implement to discard the
statement.
2015-08-25 18:58:39 +02:00
Gregory Hainaut a1957a685d glsl: drop an useless min in FS
GPU will clamp color anyway. It reduces the number of instruction of 25% (4->3)
2015-08-25 18:58:39 +02:00
Miguel A. Colón Vélez c97c4f878a Update pthreads project.
- Add x64
- Use static library
2015-08-25 09:53:00 -04:00
Jonathan Li 6f6a7b92e4 gsdx:windows: Move CRC box to main dialog
The CRC hack option is always used regardless of whether the HW Hack
checkbox is ticked. Move it to the main gsdx dialog and make it use the
same descriptions that are used in Linux.

And fix the accurate_blend_unit whitespace formatting.
2015-08-23 14:04:09 +01:00
micove e65a223c91 Merge pull request #790 from micove/Update_3rdparty
Update some of the 3rd party libraries.
2015-08-23 08:31:49 -04:00
Miguel A. Colón Vélez 09c8a41294 Update SoundTouch to 1.9.0.
It claimed to be 1.7.1 but it had a mixture from various
versions. It was hard to update as everything in the top directory
so I used upstream's way to organize files. I renamed include to
soundtouch since I did not want to #ifdef that for windows.
.
Wavfile.h is a private header so I used the private path instead of
moving the file over. This changed 3 files in the plugin folder.
2015-08-22 10:16:27 -04:00
Gregory Hainaut bfadd884c9 glsl: expand tab into space
The mix of the 2 was awful
2015-08-22 13:34:02 +02:00
Gregory Hainaut a46c11b088 gsdx-ogl: delete various leftovers 2015-08-22 13:33:32 +02:00
Gregory Hainaut 7002ff3ec3 gsdx-ogl: move texture scale from vs_cb to fs_cb
It avoid useless update of the vs_cb.
2015-08-22 13:33:04 +02:00
Gregory Hainaut 499206f0ea gsdx-ogl: disable advance rendering when drivers don't support it 2015-08-22 12:22:35 +02:00
Gregory Hainaut d9cf326879 gsdx: windows requires a static cast 2015-08-22 12:22:35 +02:00
Pistachioman a002e5ff0a Avoid potential header clash between DirectX' and lilypad's xinput.h 2015-08-21 16:44:21 +02:00
Jonathan Li 6e826d5193 Merge pull request #754 from ssakash/patch-45
gsdx: little changes on AF value behavior.
2015-08-21 11:29:49 +01:00
Akash 111653833f AF checkbox status depends on paltex.
according to some of the internal functions in GSDevice files, Anisotropic Filtering is only done when paltex is disabled. do the same on the GUI for user awareness.
2015-08-21 15:50:13 +05:30
Akash 3c9ca799a6 Remove anisotropic filtering checkbox value.
Removes the checkbox of Anisotropic filtering from the GSDX plugin settings, the checkbox was usually used to enable & disable the AF which is not necessary since there is an option in the drop down list for disabling AF.
the internal function value of "AnisotropicFiltering" has been replaced with "MaxAnisotropy" for detection.
the detection uses the function getconfig("MaxAnisotropy", value)  where value 0 means disabled and value is the default value when no value is set in the INI file.
2015-08-21 09:45:00 +05:30
refractionpcsx2 60a90aa51c GSdx-dx11: Another attempt at the nvidia hack, changing the viewport top left slightly also seems to alleviate the issue. Lets see how well this goes down.
At worst things will look zoomed out by like, a pixel :P
2015-08-20 23:45:26 +01:00
Gregory Hainaut 37f9bcf9cb gsdx-ogl: reduce state change
* don't dirty aref when a fog color is uploaded
* only set clamp mode in clamp mode (region clamp is handled in shader)

v2: fix SSE2/3 compilation
2015-08-20 23:01:43 +02:00
Gregory Hainaut c5a786ed2c gsdx-ogl: remove support WMS/T == 2 in hardware unit
I think behavior was wrong because only first texel coordinate was clamped.

Beside we can't interpolate if AEM isn't yet applied
2015-08-20 23:01:43 +02:00
Gregory Hainaut 53d1fdd8f1 glsl:debug: disable fst when testing texturing shader
Reduce clutter in ASM dump
2015-08-20 23:01:43 +02:00
Gregory Hainaut 78dd957717 gsdx-ogl: use normalized index coordinate for palette texture
In palette mode, 90% of texture accesses are done in 8 bits.
So let's keep this path as light as possible. It reduces GPU load.
2015-08-20 23:01:43 +02:00
Gregory Hainaut 42c08e6123 gsdx-debug: infinite replay for value > 90
Allow to use Nvidia debugger & give time to see the glitches
2015-08-20 23:01:20 +02:00
Akash 1039df5077 Fix Vista volume control on Lilypad. 2015-08-20 21:41:05 +05:30
refractionpcsx2 561fa8a95e GSdx-dx: Workaround for NVidia Win10 Issues, possibly? at least seems to fix it.. 2015-08-19 23:01:39 +01:00
avih b55d6539b5 Merge pull request #773 from micove/Fixes_MSVS
Visual Studio: Fixes for Compilation
2015-08-19 10:59:35 -07:00
Miguel A. Colón Vélez fd78b7bbf8 ZeroGS: Add 61 missing symbols.
Apparently only Debug/Devel require
- comctl32.lib
- RpcRT4.lib
- pthreads.lib
2015-08-19 11:08:24 -04:00
Miguel A. Colón Vélez 6cddd04518 old_plugins: Remove unused configurations + more.
I went a bit of trigger happy since compiling so much is not fun. Changes:
Solution
- Remove all SSE2/SSSE3/SSSE4/AVX/AVX2 configurations. Not used.
- Remove wxAdv3.0 and x86emitter. Compiled but not used.
- Make sure Release compiles Release.
- Make sure Debug compiles Debug.
- Make sure Devel compiles Release or Devel.
- Make sure nothing get skipped.
- Do the last 4 for the x64 build.
.
CDVDolio
- Remove SSE2/SSSE3/SSSE4/AVX/AVX2 configurations. Not used.
- Remove props. Cruft.
- Remove _M_SSE from stdafx.h. Pointless and only reference to it.
xpad
- Remove SSE2/SSSE3/SSSE4/AVX/AVX2 configurations. Not used.
- Remove props. Cruft.
- No reference to _M_SSE.
.
Only GSdx uses _M_SSE.
2015-08-19 09:35:21 -04:00
Miguel A. Colón Vélez 3193eb5106 Update .gitignore file.
- Remove *.mo. Not needed.
 - Add *.aps and delete USBqemu.aps.
 - Don't ignore asm files.
 - Ignore the cmake obj-i586-linux-gnu build folder in Linux.
 - Fix the regex pattern for /bin/pcsx2*
 - Don't ignore the changelog of libjpeg.
 - portaudio line not needed and ignored vcxproj/props/etc.
 - update to the new rcdefs.h location
 - Don't ignore pcsx2/gui/Resources/EmbeddedImage.h
 - Remove autogenerated file plugins/dev9ghzdrk/Win32/postBuild.cmd
 - Simplify lines using '**' or '*.exe'.
Remaining issues:
$ git status --ignored
Ignored files:
 plugins/CDVDiso/src/mkiso/mkiso.dsp
 plugins/CDVDiso/src/mkiso/mkiso.dsw
.
These can be deleted.
2015-08-19 07:45:02 -04:00
Miguel A. Colón Vélez fd813a002c Lilypad: Fix compilation error in Debug target.
It could not find dxguid.lib since it was only available for Release.
.
This should go on a prop but that is a different PR.
.
I also fixed it for x64 while I'm at it.
2015-08-19 05:37:14 -04:00
Miguel A. Colón Vélez 683c003622 Add Debug target for CDVDnull.
It's the only one w/o it.
2015-08-19 01:38:36 -04:00
Gregory Hainaut 6b84a89b6a gsdx-ogl: remove old ati hack for point sampler
Was never used on openGL

In the future absolute coordinate will be use anyway
2015-08-18 19:09:45 +02:00
Gregory Hainaut ed21d88735 gsdx-ogl: add support of Intel GPU on Windows
It requires at least an Ivy Bridge GPU.
2015-08-18 19:06:43 +02:00
refractionpcsx2 8539805691 Merge pull request #690 from micove/VS_universal_sln
VS Now uses a universal solutions file - VS 2012 and below dropped due to incompatibility with C++11
2015-08-18 11:40:53 +01:00
refractionpcsx2 a4f8c6d5b3 Merge pull request #770 from micove/Lintian_Fixes
Fix things found using lintian by micove. Grammatical changes only.
2015-08-18 10:19:37 +01:00
Gregory Hainaut 37661f3a86 gsdx-ogl: fix blending regression (VP2)
Negative factor must be disabled in negative accumulation "-Cs*As + Cd"
Shader must output Cs*As and blending unit will do the Cd - C subtraction
2015-08-18 09:14:11 +02:00
Miguel A. Colón Vélez a1de0614d7 Remove vs2012 files.
It does not support several things from C99/C++11 that are
used in the project.
2015-08-18 01:15:51 -04:00
Miguel A. Colón Vélez f22bc63fee Disable 8,000+ warnings.
Someone can try renaming v,a,b,m,t but since they are
shadowed one mistakes can mess too much hence the warning.
2015-08-18 00:45:14 -04:00
Miguel A. Colón Vélez 51bd9fe40e Fix compilation errors of the old plugins.
- zerospu2: include stdint.h in Windows. (VC2012+)
- CDVDolio: Remove hash_map (not used, VC2015+)
- zerogs: Fix extern and link to utilities. (VC2012+)
- zzogl: Port windows part to wx30. (VC2012+)
2015-08-18 00:45:03 -04:00
Miguel A. Colón Vélez a1e56518a5 Rename inside the files. 2015-08-18 00:44:49 -04:00
Miguel A. Colón Vélez 277217353e Rename files. 2015-08-18 00:44:35 -04:00
Miguel A. Colón Vélez 1fe5aceded Enable round-tripping.
- Remove ToolsVersion
- Use $(DefaultPlatformToolset)_xp until XP support is dropped.
Note: opencl had no XP support and was not enabled in VS2012.
2015-08-18 00:44:19 -04:00
Miguel A. Colón Vélez f52988b93c Run devenv /upgrade
This ensures the solution can do round-tripping.
2015-08-18 00:44:02 -04:00
Miguel A. Colón Vélez 42d64b027e Add wx30 to old plugins.
- Remove wx28
- Add libpng since wx30 depends on it
- Add wx30 dependencies to ZZogl.
2015-08-18 00:43:50 -04:00
Miguel A. Colón Vélez 21c4e6caa6 Fix things found by lintian.
I: pcsx2: spelling-error-in-binary usr/lib/i386-linux-gnu/pcsx2/libGSdx-1.0.0.so allows to allows one to
I: pcsx2: spelling-error-in-binary usr/lib/i386-linux-gnu/pcsx2/libGSdx-1.0.0.so Allow to Allow one to
.
Apparently lintian checks grammar too (most common ones).
2015-08-17 22:00:07 -04:00
Gregory Hainaut 260c12756a gsdx-ogl: accelerate Cd - Cs * Alpha in sw blending
It is similar as Cd + Cs * Alpha except the operator

It would help to emulate other color clipping case correctly in basic
mode at full speed
2015-08-16 18:12:34 +02:00
Jonathan Li 6580f4922f gsdx-ogl: correct fbmask conversion on texture shuffle
Fbmask is RGBA8 and must be converted to RGB5A1
=> bit 31 must be moved to bit 15

Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com>
2015-08-16 14:06:10 +02:00
Gregory Hainaut c32f1dfc23 gsdx-ogl: fix blend clear regression
Field selector are very dangerous to use.

Fix #764
2015-08-15 20:06:34 +02:00
Gregory Hainaut 0e3491bd58 gsdx-ogl: always do RW RT check
Jak uses it with triangle rendering.
2015-08-15 20:06:34 +02:00
Gregory Hainaut c7b2f9d1d2 gsdx-ogl: setup fbo to always write to first buffer
GL_NONE was kind of useless because nothing was attached anyway
2015-08-15 20:06:34 +02:00
Gregory Hainaut 87f497af0a gsdx-ogl: remove an useless variable 2015-08-15 20:06:34 +02:00
Gregory Hainaut 2e9ff045e1 gsdx-ogl: try another implementation for uniform buffer
It is slower but keep it for a bindless trial
2015-08-15 20:06:34 +02:00
Gregory Hainaut 3145031c05 gsdx-ogl: add glBindBufferRange function pointer 2015-08-15 20:06:34 +02:00
Jonathan Li 63c26c45ec gsdx: Clean up Wild Arms hack cruft
The Wild Arms Offset hack can only be on or off. There is no third
state. Convert the three-state checkbox into a two-state checkbox, fix
the description and remove a leftover.
2015-08-15 10:54:03 +01:00
Jonathan Li 1915bf1a61 gsdx:linux: Fix tooltip and clarify/fix 2 labels
Half-pixel offset option now uses the correct tooltip.
Offset Hack -> Half-pixel Offset Hack
Wild arm Hack -> Wild Arms Hack
2015-08-15 09:53:48 +01:00
Gregory Hainaut 87dcb9336f gsdx-ogl: don't bind the 0 texture to be compatible with the Nvidia debugger 2015-08-13 09:57:51 +02:00
Gregory Hainaut 84744d429e gsdx: allow to test glsl shader without replayer
This way users can test it too.
2015-08-13 08:48:05 +02:00
Gregory Hainaut 2f9d5334ee gsdx:EGL: prefer EGL over GLX + add some error messages 2015-08-13 08:48:05 +02:00
Gregory Hainaut 84e6fb45e8 gsdx-replayer:linux: allow to use env variable as default parameter
GSDUMP_SO <= the so plugin
GSDUMP_CONF <= the dir that contains the ini
2015-08-13 08:48:05 +02:00
Gregory Hainaut 6046d6c417 Merge pull request #749 from PCSX2/gsdx-micro-optimization
Gsdx micro optimization
2015-08-12 08:54:36 +02:00
Gregory Hainaut 98c74879bf Merge pull request #718 from PCSX2/depth-color-direct-write
Depth color direct write
2015-08-10 15:50:48 +02:00
Gregory Hainaut 0663501d6f gsdx-linux: disable perf monitor on release build
Code is rather slow on linux. Expect a 5-10% perf increase
2015-08-10 08:35:16 +02:00
Gregory Hainaut 9f92f63194 gsdx-ogl: Use GetAlphaMinMax to limit the scope of FULL accurate blending
Provide a massive speed up in this level.
2015-08-09 13:44:31 +02:00
Gregory Hainaut 61694013a5 gsdx-ogl: compact blending parameter structure
Save 656B of data. It is good for the cache.
2015-08-09 13:44:30 +02:00
Gregory Hainaut df3ade896b gsdx-ogl: use integer for blend factor
Integer argument&comparison might be lighter

V2: Forget to change one OMSetBlendState call
2015-08-09 13:44:05 +02:00
Gregory Hainaut 0e783f0003 Merge pull request #750 from nE0sIghT/feature/deoptimize
Use global compiler optimization flags instead of defining them for every plugin/binary
2015-08-08 16:42:12 +02:00
nE0sIghT e1272dc2f9 Use global compiler optimization flags instead of defining them for every plugin/binary 2015-08-08 16:25:17 +03:00
bositman ca22c1bdae Merge pull request #747 from micove/Portaudio_Unicode
Windows: PortAudio Unicode - Fixes error when booting a game and using SPU2-X portaudio on UTF8 windows locales
2015-08-08 12:17:25 +03:00
Gregory Hainaut 5b57405517 gsdx-ogl: blend management cleanup
* reorder the blend function
* remove OM bsel object
* add a bit to support pabe (miss the glsl part)
2015-08-08 09:18:09 +02:00
Gregory Hainaut 4d12410707 gsdx-ogl: latch constant buffer in rendering object
* Initialization of the object is done once
* Avoid to reupload it when an useless parameter toggle
 => -10% of UBO update
2015-08-08 09:18:09 +02:00
Gregory Hainaut bd0de8fbaf glsl: (colclip) HDR doesn't need wrapping neither clamping
Might save a couple of instruction in the PS
2015-08-08 09:18:09 +02:00
Gregory Hainaut 8a4c0e9782 cmake: drop extra alignment on GSdx
It requires extensive tests
2015-08-08 09:18:09 +02:00
Gregory Hainaut 1557f82b11 gsdx:clut: comment old unused clut code 2015-08-08 09:17:21 +02:00
Gregory Hainaut d822b6bd1a gsdx-ogl: add some comments for the future 2015-08-08 09:17:06 +02:00
Gregory Hainaut b17803bb34 gsdx-ogl: wipeout of GL_ARB_bindless_texture
Code is completely broken. It doesn't help to improve speed.

Remove 200 lines ;)
2015-08-08 09:16:49 +02:00
Gregory Hainaut b3919fde95 gsdx-linux: remove an old delay that pollute my benchmark mode
Also add a glFinish to ensure rendering is done
2015-08-08 09:16:13 +02:00
Miguel A. Colón Vélez 0e533e1630 Fix Unicode issues in SPU2-X with PortAudio. 2015-08-07 15:51:54 -04:00
gabest11 d826d925db gsdx: eliminated a few bugs in the texture size changer algorithm 2015-08-07 02:08:29 +02:00
Jonathan Li c09501ad9a gsdx:linux: Add GSDrawingContext.cpp to CMakeLists.txt
Fixes the missing symbol error.
2015-08-06 18:17:28 +01:00
Gregory Hainaut 39ce8835f7 gsdx:linux: use unordered hash
It seems a bit faster on 'perf' tool
2015-08-05 22:55:12 +02:00
Gregory Hainaut 921b22ac31 gsdx-ogl: drop useless parameter of OMSetDepthStencilState 2015-08-05 22:55:12 +02:00
Gregory Hainaut b7e16b5989 gsdx-ogl: clean the blending management
Intially GSBlendStateOGL was an alias of the m_blendMapD3D9 array

The object was replaced by an index in the array. Save 2k of memory duplication.
And too much useless code.

v2: push/pop blending state in DATE stuff
v3: remove m_state which is useless now
2015-08-05 22:55:12 +02:00
Gregory Hainaut 717f0fcb4d gsdx-ogl: optimize fbmask setup 2015-08-05 22:55:12 +02:00
gabest11 49b3acea72 gsdx: texture size reduction in sw mode, fixes Stolen, less memory usage in general. 2015-08-05 19:11:41 +02:00
Gregory Hainaut 73e2ff6ff6 gsdx-ogl: change PrimitiveOverlap algo from O(n^2) to O(n)
+ only enable this optimization when it is useful (date or sw blending)

Less impact on the perf even for big vertex array
2015-08-05 17:59:55 +02:00
Miguel A. Colón Vélez 6462393aaf Introduce end-of-line normalization
Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com>
2015-08-04 23:52:48 +02:00
Miguel A. Colón Vélez a42a236961 Gsdx: Move the stdext namespace declaration.
This will eventually lead to
error C2871: 'stdext' : a namespace with this name does not exist.
might as well fix it now.
2015-08-04 22:16:15 +02:00
Miguel A. Colón Vélez 30c6389ed9 VS2015: Fix compilation
Error   C2338   The C++ Standard forbids containers of const elements
because allocator<const T> is ill-formed. (compiling source file GS.cpp)
2015-08-04 22:16:04 +02:00
Miguel A. Colón Vélez d45676b478 Merge local changes to xbyak 4.84 2015-08-04 22:15:52 +02:00
Miguel A. Colón Vélez 41094ac22e Update from xbyak 4.00 to 4.84. 2015-08-04 22:15:46 +02:00
Miguel A. Colón Vélez e20768d257 VS2015: Fix w32pthreads and xpad 2015-08-04 22:15:36 +02:00
Gregory Hainaut 9d1674db99 gsdx-gui: remove useless linux ifdef 2015-08-04 22:08:55 +02:00
Gregory Hainaut 36554c3375 Merge branch 'hdr-colclip-32bits' 2015-08-04 21:55:40 +02:00
Gregory Hainaut 45bb27d6db gsdx-ogl: extend HDR colclip to 32 bits texture
Unfortunately 16 bits wasn't enough for Castlevania.
2015-08-04 21:54:27 +02:00
Gregory Hainaut c6ff7531fb gsdx-ogl: performance boost on virtuafighter 2015-08-04 21:26:03 +02:00
Gregory Hainaut d80aa0b0bd gsdx-ogl: remove 2 printfs
GL_INS is a better tracing solution
2015-08-04 20:47:02 +02:00
Gregory Hainaut 744f9ebc09 gsdx-ogl: rare corner case when both texture shuffle and date are enabled
In texture shuffle mode the texture data is either RG or BA. It means
that DATE must either checks MSB of G or A.

Close #693
2015-08-04 20:10:44 +02:00
Gregory Hainaut 6cb0443227 gsdx: disable depth rendering if rt == depth
I used to disable the RT but it doesn't work well with 50cents. It seems
texture writes weren't propagated correctly to the depth buffer. Besides
the game write an alpha value whereas depth is 24 bits only...
2015-08-04 19:39:29 +02:00
Gregory Hainaut 3784ea768f gsdx: check null pointer when doing a texture clear 2015-08-04 19:26:17 +02:00
gabest11 42f51591df gsdx: lupin 3 fix, texture addressing outside the limits, only for sw and opencl yet 2015-08-04 13:27:08 +02:00
gabest11 d631030608 gsdx: fixed some of the renames where it made no sense, also added a commend about lupin 3rd. 2015-08-04 03:36:42 +02:00
Maxxus c0f85de17f onepad: Minimum code needed to get Dualshock 3 working on recent linux and evdev releases.
Commit message edited by Gregory.
Comment below from Jonathan Li

On my system, /dev/input/event13 (evdev interface) and /dev/input/js0 (joystick interface) correspond to the DS3 on my system. User/group ownership are both root.

With /dev/input/event13 at 0640 and /dev/input/js0 at 0644 - SDL2 detects no pad, SDL1 detects a 19 button, 27 axis pad

With /dev/input/event13 at 0666 and /dev/input/js0 at 0644 - Both SDL1 and SDL2 report a 19 button, 4 axis pad.

SDL2 only uses the evdev interface, SDL1 uses the evdev interface but if that fails, it uses the joystick interface.
2015-08-03 19:34:08 +02:00
gabest11 e010004f1f gsdx: _isnan was not reliable, rewrote it as GSVector4::replace_nan, it uses cmpps and the result as the mask to blend the original value and FLT_MAX. No jumps or function calls. 2015-08-03 14:35:47 +02:00
gabest11 85117ecbdd gsdx: simplified isnan test, it compiles to an inline sse instruction and a flag test, silent hill dump still looks fine. 2015-08-03 11:27:14 +02:00
Gregory Hainaut 6e1cd077a9 gsdx-debug: push ubo in a group 2015-08-03 08:46:25 +02:00
Gregory Hainaut e972f4f4dd gsdx-ogl: extend device to support an offset for normal draw 2015-08-02 21:30:19 +02:00
Gregory Hainaut cabd7409e5 gsdx-ogl: don't validate the pipeline
Too noisy in debugger trace. Never catch any errors anyway.
2015-08-02 21:30:19 +02:00
Gregory Hainaut 59cdf77784 gsdx-ogl: create a new function to set the blending state 2015-08-02 21:30:19 +02:00
Gregory Hainaut 1da611fb75 gsdx-ogl: clean PS selector 2015-08-02 21:30:19 +02:00
gabest11 542dd33169 Merge branch 'master' of https://github.com/pcsx2/pcsx2 2015-08-02 20:27:33 +02:00
gabest11 a1a842b07f gsdx: date/datm fix for 16-bit frame buffer in sw rendering mode 2015-08-02 20:21:49 +02:00
Gregory Hainaut 8424c18e9f Merge pull request #688 from PCSX2/hdr-colclip
Hdr colclip
2015-08-02 18:13:28 +02:00
Gregory Hainaut 1f402b1b56 gsdx-ogl: fix bad detection of overlapping
avoid rendering corruption with SW blending
2015-08-01 13:29:25 +02:00
Gregory Hainaut ec007ac8d0 gsdx-ogl: support accurate blending without geometry shader
For the Mesa driver
2015-08-01 13:26:15 +02:00
Gregory Hainaut 4a3c145c72 gsdx-ogl: depth support: better support of 16 bits z buffer
Fix issue in socom2
2015-08-01 01:28:41 +02:00
Gregory Hainaut eb0fa8c7dc gsdx-ogl: fix bad detection of overlapping
avoid rendering corruption with SW blending
2015-08-01 01:27:22 +02:00
Gregory Hainaut 8452d2ccfe gsdx-ogl: fbmask regression! don't use bit operation with integer 2015-07-31 21:10:58 +02:00
Gregory Hainaut fff59f547d gsdx-ogl: fbmask regression! don't use bit operation with integer 2015-07-31 19:43:06 +02:00
Gregory Hainaut a0edcb58af gsdx-ogl: extend cclip blending level with destination alpha blending
The purpose is to emulate correctly destination alpha factor

An alpha channel of 128 is 1.0 in the GS but only ~0.5 in the GPU

I think few draw call use destination alpha so impact on perf must remains small.
2015-07-31 09:45:28 +02:00
Gregory Hainaut 97b38d9e1b gsdx-ogl: directly set impossible mode in the blending table
Avoid to hack it in the creation

Allow in the future to reuse the table directly instead of converting
in a blend object
2015-07-31 09:45:28 +02:00
Gregory Hainaut 8554f32086 gsdx-ogl: clean the blend table
Remove old shader define
Prefix macro with BLEND_
Add some notes to explain the special symbol
2015-07-31 09:45:28 +02:00
Gregory Hainaut cfd0fd6cc8 gsdx-ogl: remove old colclip algo 2015-07-31 09:45:28 +02:00
Gregory Hainaut 93c47feb7c gsdx-ogl: replace old colclip algo with the HDR algo
Similar speed but more accurate

Allow to clean the code
2015-07-31 09:45:28 +02:00
Gregory Hainaut 83f874db93 gsdx-ogl: remove bsel.ps
Just clear bsel.abe to disable blending
2015-07-31 09:45:28 +02:00
Gregory Hainaut 25298c70f7 gsdx-ogl: move blending management into a separate function 2015-07-31 09:45:28 +02:00
Gregory Hainaut 25bd5f5e85 gsdx-ogl: request texture barrier to emulate accurate date
Actually it can partially be done with GL_ARB_shader_image_load_store
extension. However all drivers that support shader_image have
texture barrier too.
2015-07-31 09:45:28 +02:00
Gregory Hainaut 2901e94ebc gsdx-ogl: always bind the RT as input texture
To avoid code duplication
2015-07-31 09:45:28 +02:00
Gregory Hainaut 1fe3e04ce3 gsdx-ogl: don't alias m_env/m_context variable
It is cumbersome to move code
2015-07-31 09:45:28 +02:00
Gregory Hainaut 8f27a5a92b gsdx-ogl: only enable fast accurate colclip in level3
Until we drop the old method
2015-07-31 09:45:05 +02:00
Gregory Hainaut 83dfc6b633 gsdx-ogl: clean a bit selector code
Use countof macro (avoid to duplicate the size)
Fix the size of array
Remove useless alpha_stencil case
2015-07-30 18:36:05 +02:00
Gregory Hainaut e026f1bac6 gsdx-ogl: implement a fast accurate colclip algo
The idea is to use a floating texture to accumulate the data and
then do a final postprocessing pass to apply the modulo

v2:
* use bounding box to
* fix vertex corruption issue
* use negative number in shader which allow to use half float (+12
  fps@4x)
2015-07-30 18:34:52 +02:00
Gregory Hainaut aa8f5848d1 gsdx-ogl: always issue a barrier when requested
Safer this way
2015-07-30 18:24:36 +02:00
refractionpcsx2 28fbae4791 gsdx-gui: Tidy up GUI options 2015-07-30 18:24:32 +02:00
Gregory Hainaut 88bd0996f5 gsdx-ogl: only print same tex/rt message when prims overlaps
Avoid most of the false positive
2015-07-30 18:24:32 +02:00
Akash 350e373e3f gsdx-gui: Remove Aggressive CRC hack.
The option is pretty much useless, CRC hack level controls the usage of hacks already.
2015-07-30 18:24:28 +02:00
Akash 68833e10d1 gsdx-gui: Accurate blending unit for Windows.
The following patch merges all the Accurate options related to the blending unit into a single one.
2015-07-30 18:24:19 +02:00
Gregory Hainaut d191ae4aba glsl: use rounding in convert 4 shader
It will avoid texture rouding error with negative number
2015-07-30 18:22:59 +02:00
Gregory Hainaut 7b9fa8fbe5 gsdx-ogl: add an assertion that will save me 2015-07-30 18:22:59 +02:00
Gregory Hainaut 46a1525668 gsdx-ogl: support various texture format creation
Such as GL_RGBA32F/GL_RGBA16F/GL_RGBA16UI/GL_RGBA16I/GL_RGBA16

Not yet used
2015-07-30 18:22:59 +02:00
Gregory Hainaut ee9edb0b19 gsdx-ogl: create a copy rect with conversion function
Previous CopyRect function does a memcopy without conversion.

This function will allow to use different format for input/output. Just a
possibility for the future
2015-07-30 18:22:59 +02:00
Gregory Hainaut ae8df002af gsdx-ogl: optimize Cs * As + Cd and Cs * Af + Cd blending
Basically the code does the alpha multiplication in the shader therefore
the blend unit only does a pure addition. This way the multiplication is
accurate and accurate_blending doesn't requires a costly barrier.

This code also avoid variable duplication to make the code more separated.
Hopefully blending can be done in a separated function

It is preliminary work to support fast color clipping with HDR

v2: fix assertion compilation failure

v3: fix regression in not accurate mode

v3: Cs * As/Af is not an accumulation

Those cases don't need the Cd addition and were already optimized anyway

Fix a regression on GoW2
2015-07-30 18:22:59 +02:00
Gregory Hainaut 12fdc37599 gsdx-ogl: reorganize blending in the renderer
Do DATE algo selection before blending. This way we can detect bad
interaction.

Regroup all blending/colclip in a single block.  Avoid to check abe &&
rt multiple times.

v2: only enable sw blending when abe is true
2015-07-30 18:21:01 +02:00
Gregory Hainaut caadc73e1b gsdx-ogl: add a new level for accurate blending
The updated medium level will run for all sprites. It helps sotc blooming effect and it remains
fast enough to be enabled by default (at least on 3D games)
The new high level will run for all sprites + color clipping
2015-07-30 18:21:01 +02:00
Gregory Hainaut 95c374bbcc glsl: Round 0.95+ to 1 for texel colors
It improves SotC blooming. Suikoden seems to be fine too.
2015-07-30 18:21:01 +02:00
Gregory Hainaut 01a1b1a5e6 gsdx-ogl: add the code to handle point and line in SW blending 2015-07-30 18:21:01 +02:00
Gregory Hainaut a85894e159 gsdx-ogl: move texture shuffle and fbmask into a dedicated function
DrawPrims is really too big now
2015-07-30 18:21:01 +02:00
Gregory Hainaut b632b2a478 gsdx-linux: add a new combo box to select the blend accuracy level 2015-07-30 18:21:00 +02:00
Gregory Hainaut 5c1b8986c6 gsdx-ogl: use SW blending when no barrier is required
Speed penality is small (only GPU) but it is more accurate
2015-07-30 18:21:00 +02:00
Gregory Hainaut 8c8fe633a5 gsdx-ogl: merge 3 accurate* option into a nice combobox
It is much easier to configure this way
2015-07-30 18:21:00 +02:00
Gregory Hainaut 8da63cf95a gsdx-ogl: try to enable sw blending for sprite rendering
The idea is that sprites are often use for post-processing effect (ofc except 2D games)

Most of the time post-processing supports SW blending with a small speed penality. SW
blending is more accurate so it is better to use it.
2015-07-30 18:21:00 +02:00
Gregory Hainaut f4e881ad30 gsdx: always set texture shuffle flag
Avoid bad effects in 16 bits RT games
2015-07-30 09:15:04 +02:00
Gregory Hainaut 7aa36133de Merge pull request #657 from turtleli/wxwidgets3_switch
Windows: switch to wxWidgets 3.0
2015-07-29 14:16:02 +02:00
Gregory Hainaut 5c58bd2092 Merge pull request #682 from micove/Add_disable-build-date
Linux: Add DISABLE_BUILD_DATE and misc fixes
2015-07-29 11:45:32 +02:00
Pistachioman c6c7d99fd2 Add default extension to lilypad's save/load config dialog 2015-07-27 20:30:50 +02:00
Miguel A. Colón Vélez e4ab71abf3 Add authors comment that suggest public-domain license.
Sourceforge was dead for more than a week therefore add the license
information. I could not find the original TGM source (dead link) so I'm not
even sure if this still applies or if the glsl was totally rewritten. None
of the glsl files have a copyright header so it's hard to tell.
2015-07-27 14:21:29 -04:00
Gregory Hainaut f2c77ffa08 gsdx:tc: detect texture shuffle in previous frame
GoW2 uses the effect at the start of a new frame and therefore need the
state of the previous frame. (Note 1 issue remains)

Ricky need to be tested.
2015-07-26 10:14:07 +02:00
Jonathan Li 25b9b24f77 spu2-x: windows: Fix incorrect use of scanf
Half width specifiers were not used, so scanf was writing ints into
bytes.

Note: Visual Studio 2013 doesn't support the hh format specifier.
2015-07-23 19:01:15 +01:00
Jonathan Li 150c53af0f spu2-x: windows: Remove Unicode to Ascii conversion
Use swscanf instead of sscanf to read wide characters directly
2015-07-23 18:58:24 +01:00
Gregory Hainaut cb4af8fe83 gsdx-ogl: small optimization for the GPU
Gain: 1% at 4x on SotC (it partially compensates recent additions)

When the color is constant and equal to 128, the MODULATE mode is
equivalent to the DECAL mode. It saves 5 instructions on the FS.
2015-07-21 08:19:36 +02:00
Gregory Hainaut 7ca463bf75 gsdx: NaN is likely not well supported for S & T
Add also a comment to explain the NaN issue on Q
2015-07-21 08:19:36 +02:00
Gregory Hainaut 223b7daa1d gsdx-ogl: fix fbmask regression
I forget to remove an useless 255.0f factor
2015-07-19 23:55:27 +02:00
Gregory Hainaut a54e636364 gsdx-linux: add a tooltip for the filtering option 2015-07-19 23:27:45 +02:00
Gregory Hainaut 5c740ff41e gsdx-ogl: wipeout AlphaStencil & Alpha hack
Accurate options do a better jobs. Technically it can still
be useful for old gpu/driver that doesn't support the GL4.5 extension.

On Windows, you can still rely on Dx

On linux, free driver support it (except Intel)
2015-07-19 22:43:48 +02:00
Gregory Hainaut 759e75091a gsdx-gui: yes openGL support correctly 8 bits texture 2015-07-19 17:29:25 +02:00