Commit Graph

3927 Commits

Author SHA1 Message Date
Gregory Hainaut ed0adf61d3 gsdx ogl: allow to define a debug context in windows.
Be aware: dev build will be slow and quite chatty
2016-05-16 17:08:20 +02:00
Gregory Hainaut 30ce6b0a6a gsdx ogl: check debug function exists
I'm sure they exists in the openGL renderer context but there are
also used in common code. So potentially in DX context.
2016-05-16 16:59:00 +02:00
Gregory Hainaut 99476f4b13 gsdx ogl: explain better previous clear vs framebuffer comment 2016-05-16 16:49:18 +02:00
Gregory Hainaut 08f7bd2dc3 gsdx: add crc hack for Ar tonelico 2
It would requires some texture dynamic width convert shaders.
So as a quick solution, let's add a new CRC hack.

For issue #1362 (granted the CRC is correct)
2016-05-16 10:55:02 +02:00
Gregory Hainaut 1522cba5b0 gsdx ogl: performance note of texture clear vs framebuffer clear
In case of render target. FB clear is better
2016-05-16 10:38:47 +02:00
Gregory Hainaut e776118de9 gsdx-ogl: implement previous DATE optimization in a single shader pass
Faster :) Reduce further the cost of accurate date

The optimization will clear the stencil to 1. So all pixels will have a
single sample that pass both the depth & stencil test. No primitive
overlaps So the destination alpha test can be done directly in the
shader.
2016-05-15 17:44:40 +02:00
Gregory Hainaut 3ab12cef2f gsdx ogl: accelerate special case of accurate date.
Game often uses date to allow a single pixel pass. If this
use case is detected, stencil buffer will be cleared after first pixels
that pass both depth&stencil test.

It seems to reduce the load on the GPU.

Note: with the help of texture barriere, maybe we could implement the algo
with a single pass.
2016-05-15 17:22:58 +02:00
Gregory Hainaut 025be70c42 gsdx-ogl: allow to fallback to a slow accurate DATE when GL_ARB_shader_image_load_store isn't supported
The best is still to have a DX11 generation GPU
2016-05-15 16:29:29 +02:00
Gregory Hainaut 5b061e062c gsdx ogl: replace ClearRenderTarget_i by glClearTexSubImage
Avoid state change, avoid potential texture buffer reallocation

Note: require GL_ARB_clear_texture
2016-05-15 15:55:31 +02:00
Gregory Hainaut 82060320ef gsdx ogl: use draw list size for sprite instead of vertex number to select date algo
Latest overlap detection allow to draw multiple sprite instead of 1,
so the limit based on vertex number is too conservative.
2016-05-15 15:00:52 +02:00
Gregory Hainaut c054b097e9 gsdx ogl: fix wrong depth clear
If a color buffer is still attached and is smaller than depth buffer,
the latter won't be fully cleared.

As a faster alternative, use GL4.4 clear texture function. Avoid to fiddle with
framebuffer and pixel tests.

Fix #1362x Ar Tolenico 2 map clip
2016-05-15 14:57:37 +02:00
Gregory Hainaut caacb1dc9f gsdx-ogl: add texure clear function (GL4.4) 2016-05-15 14:57:11 +02:00
Gregory Hainaut d47d9e5017 gsdx-ogl: fix a minor gcc warning 2016-05-15 13:10:46 +02:00
Gregory Hainaut 913e3d65d2 gsdx ogl: use glViewportIndexedf and glScissorIndexed 2016-05-14 17:18:16 +02:00
Gregory Hainaut cd9ee3c468 gsdx ogl: emulate GL_ARB_draw_buffers_blend and GL_ARB_viewport_array
New functions only set the parameter to a single buffer whereas old function
set all buffers
2016-05-14 17:15:30 +02:00
Gregory Hainaut 4065730e36 gsdx ogl: merge sprite hack take 2
try to detect paving correctly. Avoid to break effect such as Heat effect in Tekken5
2016-05-14 12:24:56 +02:00
Gregory Hainaut 2fc244a3eb gsdx-ogl: inline function only call once 2016-05-14 11:53:02 +02:00
Gregory Hainaut 24a673c482 gsdx ogl: avoid special format on the merge sprite hack 2016-05-13 18:28:21 +02:00
Gregory Hainaut 156b6425d2 gsdx ogl: add UserHacks_merge_pp_sprite option to reduce upscaling glitches
For test purpose, it is higly experimental.

So far it is yield interesting result for tekken5
2016-05-10 08:12:07 +02:00
Gregory Hainaut c019f86529 gsdx ogl: add a performance note for a potential channel optimization 2016-05-10 08:11:28 +02:00
Gregory Hainaut 4effc70792 gsdx hw: Fix regression on align sprite
The hack also updates position of not texture mapped sprite.

Unlike the 2nd hack (round sprite) which can be skipped if TME is disabled
2016-05-09 09:45:34 +02:00
Gregory Hainaut 5b04672ba2 gsdx ogl: separate Tales of Abyss/Urban Chaos effect based on the fbmask
Avoid to rely on CRC
2016-05-08 17:31:13 +02:00
Gregory Hainaut 48d962e15a gsdx log: print detected crc
Helpful to get crc from gs dump
2016-05-08 16:30:50 +02:00
Gregory Hainaut fb6a6f73c4 gsdx: move Tekken5/Tales of Abyss CRC to Dx level 2016-05-07 22:46:42 +02:00
Gregory Hainaut ecbcc566fe gsdx ogl: use GT shader for Tourist Trophy 2016-05-07 22:46:41 +02:00
Gregory Hainaut fc86620327 gsdx ogl: disable channel effect when signature is a bit different
Hack to avoid regression on Blood Will Tell
2016-05-07 22:46:41 +02:00
Gregory Hainaut 30b452543a gsdx ogl: tekken5 uses similar effect as Gran Turismo
So just reuse GT hle shader :) Acid stage is now correct. However it might need
some tuning for others stages.
Still look awful with uspcaled resolution (note internal game framebuffer is around 160x128)
2016-05-07 22:46:41 +02:00
Gregory Hainaut d41613c46a gsdx ogl: add a Tales of Abyss HLE shader
Again fast and efficient but it relies on CRC

v2: forget to update the precompiled shader...
2016-05-07 22:46:41 +02:00
Gregory Hainaut d5681ba01c glsl: fix a bug in urban chaos hle shader
Bug only impact the lsb bits of the depth conversion, so impact is likely small
2016-05-07 22:46:41 +02:00
Gregory Hainaut 70ee8c5bc4 gsdx ogl: add an HLE brightness/contrast shader for GT series.
It works and it is very fast. But it relies on CRC

Others effect need to be tested as well
2016-05-07 22:46:41 +02:00
Gregory Hainaut 91c164ecca gsdx tc: avoid potential division by 0 2016-05-07 18:36:28 +02:00
Gregory Hainaut 265ea82780 gsdx tc: avoid to load data outside of the GS memory
Avoid crash in Kungfu panda
2016-05-06 21:46:29 +02:00
Gregory Hainaut f34e77f08c gsdx: fix regression on 24 bit format (gust game)
bpp is the size of the container format but not the size of the format itself.
For PSM24, bpp is 32, trbpp is 24
2016-05-06 13:49:24 +02:00
Gregory Hainaut e890ce989c gsdx: throw oom exception + error
Texture can't be NULL anymore, so we can remove a couples of check
2016-05-05 18:53:51 +02:00
Gregory Hainaut d58b71688b gsdx debug: auto GL_POP
Nicer and exception safe

V2: miss definition of vs/ps
2016-05-05 18:53:32 +02:00
Gregory Hainaut 37c7fa7663 gsdx: add draw exception (OOM and Recoverable)
The exception will free the unused (but allocated) texture aka the emergency break ;)

Recoverable could be useful for unsupported draw call
2016-05-05 17:47:32 +02:00
Gregory Hainaut c8dddfed06 gsdx hack: move m_skip and m_userhacks_skipdraw to GSState level
Avoid to push argument to call IsBadFrame
2016-05-05 16:22:14 +02:00
Gregory Hainaut 21d1bd48ec gsdx hack: move the CRC setup into a separate function
In order to reduce a bit the overhead of IsBadFrame called each draw calls
2016-05-05 16:03:48 +02:00
Gregory Hainaut 7b0427e86e gsdx hack: use psm lookup + remove now useless log 2016-05-05 15:46:54 +02:00
Gregory Hainaut 8424eeb4ee gsdx tc: small hint for the compiler 2016-05-05 15:32:21 +02:00
Gregory Hainaut 055b9c57e7 gsdx tc: use unscaled size as clamping in Target::Update
Might avoid/reduce crash like #1340
2016-05-05 12:59:49 +02:00
Gregory Hainaut 5948c2d8cd gsdx AMD: broken for broken
Until AMD release the driver with a fix, I can't use 2nd blending source with SSO.

So let's use the first source. Blending/Alpha will be wrong. But it is likely better
than an uninitialized alpha value.
2016-05-05 12:24:55 +02:00
Gregory Hainaut f712c5c6d0 gsdx tc: use GSLocalMemory::m_psm instead of hardcoded value 2016-05-05 12:19:25 +02:00
Gregory Hainaut 642cc50ac4 gsdx hw: reduce verbosity of channel skip log 2016-05-05 12:19:19 +02:00
Gregory Hainaut 7c430c9d3c glsl: fix coordinate in channel depth effect
UV can't be used directly in channel effect

Properly fix Urban Chaos smoke
2016-05-04 18:08:40 +02:00
Gregory Hainaut b8b0a0d662 gsdx hw: remove dead code 2016-05-04 18:08:34 +02:00
Gregory Hainaut 90af611fdb gsdx ogl: Fix channel effect interaction with accurate blending
* Vertex info must be updated before PrimitiveOverlap
* Fix the vertex number (2 not 4)
* add an uint16 cast to shut up Visual Studio
2016-05-02 19:48:11 +02:00
Gregory Hainaut e190841d67 gsdx ogl: improve blending logging 2016-05-02 18:14:02 +02:00
Gregory Hainaut 3077cc82cc gsdx hack: Ghost in the Shell still broken in openGL 2016-05-02 18:14:02 +02:00
Jonathan Li 6430e41fb5 gsdx:windows: Update GUI to reflect recent changes
"Enable Hardware Depth" removed from main dialog.
"Disable Depth Emulation" and "Fast Texture Invalidation" added to Hacks
dialog.

And fix lots of whitespace issues.
2016-05-02 00:28:10 +01:00
Akash 21e6a344a2 GSDX: Improvements to the GSDX dialog (#1284)
GSDX: Improvements to the config interface.

- GSDX: Add new logos to dialog
- GSDX: Remove all the extra null renderers
- GSDX: Changes to renderer combobox
- Sort all the renderers in ascending order. (the fact that D3D11 was
above D3D9 really annoyed me >_<)
- Properly display usage of D3D10/D3D11 on the combobox.
- Use highest available version of DX by default.
- GSDX: gray out upscaling hacks at native resolution
- GSDX-PSX: Modifications to the dialog
- Add new logos
- Remove SDL renderer from combobox since it was removed long ago.
2016-05-01 17:33:53 +01:00
Gregory Hainaut 826b38c47a gsdx tc: use array in GSOffset to store texture coverage
GSOffset is already based on a lookup of PSM/BP/BW. Coverage only adds
the size parameters (so only 256 possibilities)

It replaces the hash lookup with a free array access.
2016-05-01 15:02:36 +02:00
Gregory Hainaut 7add3d1018 gsdx hack: add a lengthy comment to explain man hunt2 hack
An HLE shader replacement could be done for this game but it is
low priority
2016-05-01 13:37:54 +02:00
Gregory Hainaut 4bf484c881 gsdx: move various games crc to dx level
* GT3
* GT4
* GTConcept
* JamesBondEverythingOrNothing
* SkyGunner
* StarWarsBattlefront2
* StarWarsBattlefront
* TouristTrophy
* ICO
* DeathByDegreesTekkenNinaWilliams
2016-05-01 13:22:12 +02:00
Gregory Hainaut 5676acaef9 glsl: support channel effect on depth texture too 2016-04-30 16:07:45 +02:00
Gregory Hainaut e0581ee771 gsdx ogl: Finalize the urban chaos workaround
Rendering must be nice now
2016-04-30 14:52:53 +02:00
Gregory Hainaut 14e1ed06df glsl: add an HLE shader for Urban Chaos
Pro:
* Replace 140 draw calls into a single one
* No complex texture conversion/lookup
* smaller solution than a generic solution
2016-04-30 14:52:53 +02:00
Gregory Hainaut 7d191ebf8e gsdx tc: load palette for pseudo 8 bits depth
Rendering is still broken but I'm afraid it will need a dedicated shader
2016-04-30 14:52:43 +02:00
Gregory Hainaut 12b8704502 gsdx dx: disable channel shuffle 2016-04-30 14:52:43 +02:00
Gregory Hainaut b4c7d32741 gsdx ogl: avoid to wrongly detect a channel shuffle 2016-04-30 14:52:43 +02:00
Gregory Hainaut 1011a757a8 gsdx hw: factorize redundant code 2016-04-30 14:52:43 +02:00
Gregory Hainaut b78c772a14 gsdx: improve detection of channel shuffle
Improve rendering on Prince Of Persia (requires preload data hack)

Worth to re-test: MTGS2/3

Urban Chaos is a bit better but there still a bad overlay
2016-04-30 14:52:43 +02:00
Gregory Hainaut 02dff2653a gsdx hack: sort the file
* separate Dx only/aggresive hack
* add GSC_CrashNburn and GSC_BullyCC to Dx only section
2016-04-30 12:45:06 +02:00
Gregory Hainaut 60267790a1 gsdx: move (most) of the hw hack into a separate file
GSState.cpp was really too big
2016-04-30 12:24:08 +02:00
Gregory Hainaut 7a5e1d4154 gsdx ogl: allow to use a separate texture for the channel effect 2016-04-29 17:34:17 +02:00
Gregory Hainaut a9d25efcde gsdx ogl: extend state to support up to 8 textures 2016-04-29 17:34:17 +02:00
Gregory Hainaut e45f90fac3 gsdx: fix a gcc warning 2016-04-29 17:34:17 +02:00
Gregory Hainaut e195e67a48 gsdx: move Metal Gear Solid CRC to DX level
OpenGL is near perfect :)
2016-04-29 17:34:17 +02:00
Gregory Hainaut 5e5069423b Merge pull request #1321 from PCSX2/gsdx-preloadcrash
GSDX: Avoid crash when TBW == 0 - Preload data frame
2016-04-28 23:06:29 +02:00
Gregory Hainaut cb19451418 gsdx ogl: implement RT channel fetch
Fix blending of Metal Gear Solid/KillZone (and potentially other games)

Potentially impact issue #905, #594, #914, #896
2016-04-28 22:56:38 +02:00
Gregory Hainaut c445a14c46 gsdx ogl: extend shader to lookup a single channel 2016-04-28 22:56:38 +02:00
Gregory Hainaut eaa4fd41e2 gsdx ogl: improve logging of special effect 2016-04-28 22:56:38 +02:00
refractionpcsx2 0aa8fe0f20 GSDX: Avoid crash when TBW == 0 2016-04-28 21:36:21 +01:00
Gregory Hainaut f946f38f26 gsdx hw: keep the debug counter in sync
Otherwise I'm screwed :p
2016-04-28 20:03:53 +02:00
Gregory Hainaut 04a578495f gsdx hw: disable channel shuffle effect
Greatly reduce memory requirement for target
MGS3 at 4x: from 2680MB to 160MB

Remove a couple of (slow) draw calls
2016-04-28 19:46:26 +02:00
Gregory Hainaut f63e38a59e gsdx ogl: as always some games do bad stuff
Let's keep a comment for the moment. I don't know if we need to fix it, neither how.
2016-04-28 19:42:00 +02:00
Gregory Hainaut 45bfe2ad58 gsdx hw: trace some special post processing effect
* Double downscale is done in GTA
* Channel Shuffle is the top-left corner issue

So far nothing is emulated
2016-04-28 19:39:57 +02:00
Gregory Hainaut 5b04f4dab9 gsdx: add optimization note for the future 2016-04-28 18:01:21 +02:00
Gregory Hainaut 4808d89449 gsdx ogl: use enum pretty name 2016-04-28 18:01:20 +02:00
Jonathan Li 0de8f4a3a6 onepad: Use Bind instead of Connect
It's the recommended dynamic event binding method since wx2.9.
2016-04-27 08:59:11 +01:00
Jonathan Li 0d43de516c onepad: Remove wx2.8 compatibility code 2016-04-27 08:59:11 +01:00
Gregory Hainaut ab31915ce9 gsdx: glsl: fix silly typo
And regression on various games
2016-04-27 09:52:35 +02:00
Gregory Hainaut aeb92592e7 gsdx ogl: use GSUtil::GetClassVertexCount 2016-04-26 19:29:04 +02:00
Gregory Hainaut df70b8bb0e gsdx: fix Q NaN value
Avoid potential undefined results
2016-04-26 19:09:32 +02:00
Gregory Hainaut 726b901dc5 Merge pull request #1304 from PCSX2/gsdx-faster-texture-cache
gsdx tc: reduce texture cache overhead
2016-04-26 16:46:44 +02:00
Gregory Hainaut 49d175b677 gsdx tc: allow to create a dummy Source without tons of memory allocation
It makes shared texture virtually free from the CPU PoV.
2016-04-24 22:30:56 +02:00
Gregory Hainaut ad08701cb1 gsdx tc: trick the texture cache to use a depth format for depth texture
This way we avoid the rescaling of the depth buffer and texture allocation.
2016-04-24 22:18:26 +02:00
Gregory Hainaut 1960d51e60 gsdx tc: properly support 16 bits depth conversion 2016-04-24 22:18:26 +02:00
Gregory Hainaut de38963904 gsdx ogl: plug the new depth sampling in the renderer
Note:
When source format is depth, integral texture coordinate must be used => depth_fmt 1/2/3
2016-04-24 22:18:26 +02:00
Gregory Hainaut fda511a949 gsdx glsl: extend hw shader to sample depth texture
Will use integral coordinate to avoid any rescaling.

Bilinear interpolation isn't supported. I don't think it is allowed to
filter a depth texture anyway.
2016-04-24 22:18:26 +02:00
Gregory Hainaut 583de1bf0b gsdx tc: add a dedicated function to lookup a depth source
The hypothesis is that game will use a depth (aka Z32/Z24/Z16/Z16S)
format when sampling depth texture as color.  Technically one could use
a standard color format but block/pixel order won't be the same.
(otherwise I'm screwed)

=> Hypothesis invalid on GoW. They just do a scrambled rendering...

Lookup info:
* The first searched list is the depth pool as we search a depth
  texture.
* 2nd one is the render target pool (if a depth was converted to a
  render target already)

To avoid any CPU overhead, the source will be a pointer to the real texture
* Conversion (if float texture) will be done on the fly by the shader (GPU).
* Relative rescaling won't be supported. Texture must be fetched with
  integral coordinate
2016-04-24 22:18:26 +02:00
Gregory Hainaut 9ee090a36e gsdx tc: add a shareable texture flag
Plan is to bypass shader conversion/rescaling/copy for depth texture
2016-04-24 22:18:26 +02:00
Gregory Hainaut 8ec1461842 gsdx: increase the number of texture in the pool
It could slightly increase the VRAM requirement but it will reduce texture
allocation/unallocation at start/end of frame.
2016-04-24 22:14:51 +02:00
Gregory Hainaut b4b878ac24 gsdx-ogl: add a note for a future small optimization 2016-04-24 22:14:51 +02:00
Gregory Hainaut da1b032793 spu2x-linux: update GUI to support a 15 ms latency 2016-04-24 11:13:28 +02:00
Gregory Hainaut 4281b8630b gsdx ogl: remove the useless shadeboost Constant Buffer 2016-04-24 11:08:14 +02:00
Gregory Hainaut d610a6aac4 gsdx glsl: ofc forget to do the shader in bin 2016-04-24 11:07:46 +02:00
Gregory Hainaut d027ed2092 gsdx ogl: merge GSTextureFXOGL to GSDeviceOGL
First file is rather small in openGL. And it is linked to the latter.
2016-04-24 10:55:22 +02:00
Gregory Hainaut 1558220f74 gsdx glsl: create a common header definition
* avoid duplication between all the files for UBO
* remove various interface define
2016-04-24 10:54:39 +02:00
Gregory Hainaut 8ee0783bd3 GSdx: remove useless variable 2016-04-24 10:42:03 +02:00
Gregory Hainaut fa1377a8ee gsdx tc: reduce texture cache overhead
Cache page coverage of texture into a hash map

Test done on Champion of Norrath (paltex + DisablePartialInvalidation)

Profiler:
Self of GSTextureCache::SourceMap::Add 5.39% => 0.23%
Self of GSTextureCache::LookupSource 15.27% => 10.82%

Hard to measure on CoN as it depends on memory transfer. Seem to be 5-10 fps faster.
2016-04-23 19:22:58 +02:00
Gregory Hainaut 67e955919f gsdx: keep dump code enabled in dev release too 2016-04-23 18:29:56 +02:00
Gregory Hainaut a149d6b26f gsdx: use psm.bpp flag to improve code reading 2016-04-23 18:29:39 +02:00
Gregory Hainaut dd98a0b913 gsdx: add a depth format flag 2016-04-23 18:28:50 +02:00
Gregory Hainaut 87867beb0e gsdx-ogl: remove the invalidation of texture
It doesn't help the perf and only create overhead (test done on snow engine game)
2016-04-21 21:07:17 +02:00
Gregory Hainaut 3709b5aecc gsdx: add a small comment to ease code reading 2016-04-21 09:28:44 +02:00
Gregory Hainaut b5ec683318 gsdx-linux: remove custom resolution from the GUI
It would be replaced by a float resolution factor
2016-04-21 09:28:44 +02:00
Gregory Hainaut 821e3ff294 gsdx-ogl: reduce length of debug message 2016-04-21 09:28:44 +02:00
Gregory Hainaut 8217c717f6 gsdx-ogl: require GL_KHR_debug
Will reduce the slowdown on debug build
2016-04-21 09:28:44 +02:00
Gregory Hainaut 9598417f42 gsdx-ogl: GL_ARB_copy_image is now mandatory 2016-04-21 09:28:44 +02:00
Gregory Hainaut 99bccc6dff gsdx-ogl: remove the geometry shader blacklist for Gallium Mesa drivers 2016-04-21 09:28:44 +02:00
Gregory Hainaut cb8088216b Merge pull request #1281 from PCSX2-Alpha/NTSC_saturation
GSDX: Remove some unnecessary/dubious hacks
2016-04-21 09:28:30 +02:00
Gregory Hainaut 59ef668fd2 Merge pull request #1222 from PCSX2/gsdx-black-fmv
Gsdx black fmv
2016-04-21 09:25:36 +02:00
Lauri Kasanen 994c9147f5 textureSW: fix Map with offset 2016-04-19 21:22:53 +03:00
refractionpcsx2 dcb676765e GSdx: Clean up some warning under windows (#1289) 2016-04-14 11:00:58 +01:00
Gregory Hainaut 2e567d6d55 gsdx ogl: update comment
something to test in the future
2016-04-14 10:19:18 +02:00
Gregory Hainaut d129aedfe8 GSdx:vector: add sllv32 and srlv32 for 128 bits op
(variable shift)
2016-04-14 10:18:43 +02:00
Gregory Hainaut 8a7184be3f gsdx: fix hack logic 2016-04-12 11:36:24 +02:00
Gregory Hainaut 6a09fa56fb gsdx: disable nocturne CRC hack
Yeah one less !
2016-04-11 22:41:19 +02:00
Gregory Hainaut 4611264ce3 gsdx: add CRC hack for Nocturne PAL
Reduce depth transfer to the real size of the game. Otherwise
we need to handle a mix of color/depth transfer.
2016-04-11 16:04:04 +02:00
Gregory Hainaut 22a40b65ae gsdx-ogl: always use 1 for GL_UNPACK_ALIGNMENT
Avoid a gl function call for each texture uploads
2016-04-11 12:45:11 +02:00
refractionpcsx2 fdae698f07 SPU2-X: Correct project settings for devel profile. Fixes #1288 2016-04-11 01:15:07 +01:00
Jonathan Li d158d4de51 windows: Move baseclasses to a separate project
It saves the buildbots from needlessly recompiling the files for each GSdx
configuration.
2016-04-11 00:22:31 +01:00
Gregory Hainaut 847b57907e Revert "gsdx-ogl: add a new hack to force anisotropic filtering"
This reverts commit 53690cf9d0.

Quoting user:

 For aliasing, the option allow of reduce a little but always very
 visible compared with DX11 even with anisotropic OFF, , furthermore
 many textures bug added with option activated (predictable but not see
 on DX11 with anisotropic ON).

TL;DR doesn't worth it.

Note: it seem to work on DX because DX uses HW texturing in clamp region
mode (and others invalid case). OpenGL uses SW texturing to ensure accuracy
2016-04-10 17:30:49 +02:00
Gregory Hainaut 2941adf364 gsdx ogl: use the new pipeline API
Pre build all SW shader into pipeline.

Directly bind the pipeline instead of all pipeline stages. (less work for the driver)
2016-04-10 17:28:05 +02:00
Gregory Hainaut 95e3dcb448 gsdx-ogl: improve the shader program management
* keep a reference of program/pipeline created to ease the deletion
* extend a bit the API to support multiple pipeline

Final goal will be to use a pre link pipeline for SW shaders. And uses
the default pipeline for HW shaders.
2016-04-10 17:05:33 +02:00
Gregory Hainaut 395e2f31d0 gsdx-ogl: remove dead code (due to legacy removal) 2016-04-10 14:23:58 +02:00
Gregory Hainaut 3f404c8edb gsdx-ogl: update shader pipeline intertace to use vs/gs/ps triplet
Better to have 1 function calls with 3 parameters rather 3 functions call with 1 parameter.
2016-04-10 14:14:30 +02:00
Gregory Hainaut 53690cf9d0 gsdx-ogl: add a new hack to force anisotropic filtering
By default, anisotropic filtering was disabled when textures aren't countinuous.
This hack allows to force it. It can help to reduce aliasing but it would create
unexpected effect on texture boundaries.

Again, someone ought to add the option on Windows too
2016-04-10 13:53:17 +02:00
Gregory Hainaut 9e6cb79f4e gsdx linux: move depth option as a speed hack
Someone ought to add the Windows option too (and DisablePartialInvalidation too)

It might break a couple of games but most of them run better with depth enabled.
2016-04-10 13:22:55 +02:00
Gregory Hainaut 12443da00c GSdx ogl: ouch the typo exp != exp2
Fix some rounding issue on depth effect (shadow in Dot hack games)
2016-04-10 11:31:40 +02:00
Gregory Hainaut c2a9118186 debian: add the GSdx legacy build 2016-04-10 11:31:40 +02:00
Gregory Hainaut 7aaf36d24d gsdx ogl: add function pointer for framebuffer no attachment extension
Could be useful in the future
2016-04-10 11:31:40 +02:00
Gregory Hainaut 7cc13ce99c gsdx-ogl: only bind the FB to the draw FB 2016-04-10 11:31:40 +02:00
Gregory Hainaut d533c393b2 gsdx ogl: rely on DSA API 2016-04-10 11:31:40 +02:00
Jonathan Li fb97de7f79 gsdx:windows: Fix crash on psx side of plugin
I forgot it had a psx emu interface.
2016-04-09 19:56:23 +01:00
Gregory Hainaut b9e8384c11 gsdx-ogl: move the mandatory extension into mandatory section 2016-04-07 22:29:35 +02:00
Gregory Hainaut 121e92a829 gsdx ogl: remove a now useless warning message 2016-04-07 22:28:11 +02:00
Gregory Hainaut 4475c4fe7c gsdx linux: remove the old extension options 2016-04-07 22:27:33 +02:00
Gregory Hainaut cef76de547 gsdx ogl: GL_ARB_direct_state_access is now mandatory 2016-04-07 22:27:28 +02:00
Gregory Hainaut a62019a3fd gsdx-ogl: found_GL_ARB_buffer_storage is now mandatory 2016-04-07 22:17:22 +02:00
Gregory Hainaut 52e3c3516d gsdx-ogl: GL_ARB_separate_shader_objects is now mandatory 2016-04-07 22:11:35 +02:00
Gregory Hainaut f751f70b1e gsdx ogl: GL_ARB_clip_control is now mandatory 2016-04-07 21:57:54 +02:00
Gregory Hainaut dfb4b5a339 gsdx-ogl: GL_ARB_texture_barrier is now mandatory
(GL4.5 extension)
2016-04-07 21:51:37 +02:00
Gregory Hainaut 1208dbe8c7 cmake: add an option to build the new legacy GSdx plugin
+ bump the new one to 1.1.0 (to ease reporting)
2016-04-07 21:46:42 +02:00
Gregory Hainaut 8751203986 fork GSdx into a GSdx_legacy plugin 2016-04-07 21:27:55 +02:00
Gregory Hainaut 8ccdc05c08 Merge pull request #1217 from PCSX2-Alpha/CRTC_option
GSDX : Add an option for CRTC size and some other video mode stuffs
2016-04-07 21:24:46 +02:00
Gregory Hainaut 17886a9808 gsdx-ogl: allow some accurate date when GL_ARB_shader_image_load_store isn't supported
Close #1282
2016-04-07 19:29:46 +02:00
Jonathan Li 69a84a2782 gsdx:windows: Don't call GSshutdown in GSconfigure
Fixes an issue with the D3D backends crashing if the configure dialog
is accessed and ok is pressed. The D3Dcompiler dll is freed and a null
pointer is dereferenced.

It might break gsdxgui but GSshutdown really should not be called unless
GSdx is shutting down. GSDumpGUI on Windows provides the same (or
better) functionality.
2016-04-07 18:18:36 +01:00
Akash a1b0ae467e GSDX: Remove dubious/unnecessary hacks
* Silent Hill 2 doesn't need the CRC hack
* GSRenderer: no need to explicitly set bottom value for r.
* Texture Cache: Removed a check which couldn't possibly enter true
branch.
2016-04-07 15:15:39 +05:30
Akash 69c9a3d793 GSDX: Add an option to disable NTSC saturation
v2: convert it into a member variable.
2016-04-07 15:15:17 +05:30
Jonathan Li e16b367e6e windows: Workaround weird LoadLibraryEx failures
For some reason some Windows 7 systems (most are unaffected) cannot cope
with LoadLibraryEx and return error code 87 - "The parameter is
incorrect".

Switch to using LoadLibrary instead for any case where Windows 7 is
expected to successfully load the requested dll. Potentially Windows
Vista is also affected.
2016-04-06 19:52:59 +01:00
Gregory Hainaut da9577076c Merge pull request #1278 from PCSX2/gsdx-EE-read-depth-support
gsdx ogl: allow to read the depth buffer
2016-04-06 12:20:16 +02:00
Gregory Hainaut b8a023d158 gsdx ogl: mark OGL object as final
Give the compiler more devirtualization hint
2016-04-05 00:01:43 +02:00
Gregory Hainaut decac5fd12 gsdx ogl: implement an empty BeginScene
Compile will devirtualize it and then remove it during the inline.
2016-04-04 23:32:11 +02:00
Gregory Hainaut cb279ef321 gsdx ogl: help compiler to devirtualize 2016-04-04 23:12:31 +02:00
Gregory Hainaut e3787b6b3c gsdx-ogl: use final qualifier to help compiler
Improve Devirtualization optimization
2016-04-04 22:52:59 +02:00
Gregory Hainaut 771583c559 gsdx-ogl: help the compiler to propagate stride constant
Optimize various multiplication

Note: potentially we can do it with constexpr but I'm not sure of compiler support
2016-04-04 22:46:31 +02:00
Gregory Hainaut 8943a9db4a gsdx hw: GS can draw 2 frames in a single framebuffer
So let's increase the height. It will increase the memory requirement on some games

v2: try to do it automatically
(not sure it will useful as most game will requires it)
v3: let's back to an hardcoded 1280 size. It generates too much issue
2016-04-04 21:30:40 +02:00
Gregory Hainaut 063d2e568a gsdx tc: re-implement frame lookup
Try to avoid random black screen frame

v2: don't force the preload hack on the frame
It creates a ghost image over FMV

v3: support offset within a frame
2016-04-04 21:30:37 +02:00
Gregory Hainaut eec74fd963 gsdx hw: Add an alternate draw call for FMV rendering
The long story:
Game blits FMV far aways of the RT which is actually the input of the RO texture...
Currently GSdx suffers of 2 bugs.
1/ RT is too small
2/ texture isn't properly updated with the rendered value. Texture is invalidated
but it reads back the pixels from the GS memory whereas the correct
value is located on the GPU.

This commit will replace the standard draw by a manual blit. Therefore it avoid
size issue and bad upscaling issue.

v2:
* Use various copy to be more compatible with dx api
* Move all part of the hack info the BlitFMV function

v3: add log message
2016-04-04 21:29:32 +02:00
Gregory Hainaut 72d43b2e56 gsdx tc: add an invalidation procedure to drop sub rt
It will be used in next commit. However, it might not be the best solution
2016-04-04 21:29:32 +02:00
Gregory Hainaut 2ca624c8c6 gsdx tc: implement a read function of Source texture
It will be used in the following commit
2016-04-04 21:29:31 +02:00
Gregory Hainaut d922225e69 gsdx tc:invalidate RT when a texture is written inside it
It often happens the game try to upload the FMV directly which typically
gave a black screen.

Commit fix rules of roses and I hope various black screen FMV

Performance impact must be tested, and I'm afraid of strange texture cache behavior.

V2: check the size of the transfer too
V3: add support of 16 bits format
V4: avoid division by 0
2016-04-04 21:29:31 +02:00
Gregory Hainaut 9aea76b0e8 gsdx tc: store a hint on the target size
The hint is based on the rendering
2016-04-04 21:29:31 +02:00
Gregory Hainaut c4ebdd1f37 gsdx ogl: allow to read the depth buffer
Unfortunately can't be tested on gs dump

Ought to impact #1276 (Incognito/Eat Sleep Play's games, Nocturne too)
2016-04-03 12:30:14 +02:00
Gregory Hainaut 00643dbdfb gsdx tc: report unsupported depth read path
Help to debug depth issue  (aka lighting effects pass through wall)
2016-04-03 11:22:11 +02:00
Gregory Hainaut ee08a6fc53 Merge pull request #1270 from PCSX2/monolithic-build
Monolithic build
2016-04-03 11:20:07 +02:00
Gregory Hainaut 5bdadbc089 Merge pull request #1268 from PCSX2/coverity-uninitialized-members
Coverity uninitialized members
2016-04-03 11:19:37 +02:00
Jonathan Li 7736c90457 gsdx:windows: Fix Windows 7 compile
Somehow D3D_COMPILE_STANDARD_FILE_INCLUDE isn't defined, so the correct
headers aren't being used.
2016-04-02 12:17:52 +01:00
Gregory Hainaut cc1756b8e5 gsdx: disable dump in release build 2016-04-02 00:56:41 +02:00
Gregory Hainaut b42ddba13c onepad: repopulate option at the init
CID 159402
2016-03-30 19:56:19 +02:00
Gregory Hainaut 8dee7daeb9 gsdx-ogl: init textures for all formats
CID 150171
2016-03-30 19:56:19 +02:00
Gregory Hainaut 856a12f94f gsdx-ogl: init Render object
CID 147002
2016-03-30 19:56:19 +02:00
Gregory Hainaut a4d0c23071 gsdx: init GSCapture field
CID 159404
2016-03-30 19:56:19 +02:00
Gregory Hainaut 1bd8113f66 cmake: add various option to disable plugin support 2016-03-30 10:19:54 +02:00
Jonathan Li e347c8b0b1 gsdx:windows: Remove DXSDK references from property sheets
GSdx doesn't use the DirectX SDK anymore.

Also clean up the property sheets while I'm at it.
2016-03-30 00:03:04 +01:00
Jonathan Li b243e2532b gsdx-d3d9: Remove d3dx9 stuff and use d3dcompile
Using D3DX9 requires the end user to install the Direct X redist files.

Switch to using D3DCompile.
2016-03-30 00:03:04 +01:00
Jonathan Li 2ec8d88d80 gsdx-d3d11: Remove d3dx11 stuff and use d3dcompile
Using D3DX11 requires the end user to install the DirectX redist files.

Switch to using D3DCompile, and distribute D3DCompiler_47.dll for
Windows Vista, 7 and 8 users (Windows 8.1 onwards supplies
D3DCompiler_47.dll with the OS).
2016-03-30 00:03:04 +01:00
Jonathan Li 8f4823d604 gsdx-dx: Load D3DCompiler dll at runtime
D3DCompiler_47.dll will be loaded for Windows 8.1 and above (and maybe
Windows 7 devs), D3DCompiler_43.dll will be loaded for Windows 7 and
below.
2016-03-30 00:03:04 +01:00
Jonathan Li 80b6140a3e gsdx:windows: Prefer Windows SDK over old DX SDK
Some files are present in both the Windows SDK and the old DirectX SDK.
Use the newer versions of the files in the Windows SDK where possible.
2016-03-30 00:03:04 +01:00
Jonathan Li 7f3f6e96d8 cdvdgigaherz: Use Windows SDK headers
The rosddk headers are no longer necessary and have been removed.
2016-03-29 23:51:17 +01:00
Gregory Hainaut f6ee94589f gsdx hw: OI_GSMemClear supports various frame formats
Could help #1267
2016-03-28 10:47:42 +02:00
Jonathan Li 587c0ea339 Merge pull request #1237 from turtleli/xinput
lilypad|xpad: Remove DirectX SDK dependency, support both XInput 1.3 and 1.4
2016-03-28 09:46:58 +01:00
Gregory Hainaut a99750ae87 gsdx hw: only enable OI_GsMemClear when both depth/alpha test are disabled
Fix #1262
2016-03-26 11:28:28 +01:00
Gregory Hainaut 261ef9ab6a gsdx: move some DBZGT hacks to Dx level
Based on this thread:

http://forums.pcsx2.net/Thread-Dragon-Ball-Z-Budokai-Tenkaichi-3-Graphical-Issue-Emulator-does-not-render-outlines
2016-03-25 08:23:50 +01:00
Gregory Hainaut 791a14bec0 gsdx linux: add a gui box to select the png compression level 2016-03-25 08:23:50 +01:00
Jonathan Li a80a7175f3 xpad: Use the Windows SDK and remove unneeded dependencies 2016-03-23 19:12:44 +00:00
Jonathan Li 13bb7cf30a xpad: Support both XInput 1.3 and 1.4 2016-03-23 19:12:43 +00:00
Gregory Hainaut 205b496d5c gsdx: fix gl recording regression 2016-03-21 18:52:26 +01:00
Gregory Hainaut 8e5e770fd1 gsdx hw: Ensure GS memory is always cleared properly
It will fix some issues on FMV

Previous behavior can be restored with the hack "UserHacks_DisableGsMemClear"

Fix #768
And maybe #855
2016-03-21 18:26:22 +01:00
Gregory Hainaut c43b1ac201 gsdx tc: extend the fast invalidation hack to limit the size of target read
It actually removes the previous hack that read the full target.

Unfortunately snowblind engine game uses big target so the read is very big too (1280x448)
which is killer for the perf. Whereas the game requires only 24x12 texels

Give a 2x speed boost on Champion of Norrath !!!
2016-03-20 18:11:44 +01:00
Gregory Hainaut 46ff5dccff gsdx: be debug friendly 2016-03-20 16:15:00 +01:00
Gregory Hainaut a83b8d62ec gsdx linux: add a gui checkbox for the "fast texture invalidation" hack 2016-03-20 13:59:24 +01:00
Gregory Hainaut 7eb242d3ad gsdx-ogl: remove the ogl_texture_storage option
The previous commits make PBO faster for all drivers.
2016-03-19 01:00:52 +01:00
Gregory Hainaut 68aa182b16 gsdx-ogl: sort the texture upload code
I wanted to do a separate path for palette texture. So far, it isn't very
conclusive.
2016-03-19 00:58:58 +01:00
Gregory Hainaut 46a4d2dc47 gsdx-tc: add UserHacks_DisablePartialInvalidation for snowblind engine game
Games uses very special texture with a lots of repeating.

It is much faster to send the full texture rather than trying to partially invalidate it.

On my gs dump:
FPS: 29 => 68 !
2016-03-19 00:25:58 +01:00
Gregory Hainaut eb69522641 gsdx-ogl: optimize texture memory upload
Previous code was
1/ unpack texture into local buffer
2/ copy local buffer into gl buffer
3/ copy gl buffer to texture

New code is
1/ unpact texture directly into gl buffer
2/ copy gl buffer to texture

Perf increase (done in native)
DQ8:   255 -> 270 (+5%)
Colin: 126 -> 135 (+8%)
ZoE:   50  -> 54  (+8%)
2016-03-18 20:24:42 +01:00
Gregory Hainaut da741e294e gsdx-ogl: optimize GPU->CPU memory transfer size
Might help for snow engine game (a little)

Previous code use to read the full texture whereas now it will be limited
to the size of the useful data.
2016-03-18 20:24:42 +01:00
Jonathan Li 02ea7d390c lilypad:windows: Switch to includes from Windows SDK 2016-03-17 23:58:19 +00:00
Jonathan Li 834652922a lilypad:windows:xinput: Only support 1.3 and 1.4
1.3 is used on Vista and 7, so we don't need earlier versions.
2016-03-17 23:58:18 +00:00
Jonathan Li 490cb757bf lilypad:windows: Clean up property mess
I probably should have used property sheets as well, but it's still a
good improvement. It does cut down quite a few 64-bit warnings.
2016-03-16 20:54:54 +00:00
Jonathan Li a487aaf952 Merge pull request #1232 from turtleli/nonxp-toolkit
windows: Switch to Non-XP compatible toolkits
2016-03-16 20:34:27 +00:00
Jonathan Li c829826870 Merge pull request #1231 from turtleli/cdvd-fixes
cdvdgigaherz: Dual layer DVD fixes
2016-03-16 19:55:20 +00:00
Jonathan Li bfbc6de7b5 cdvdgigaherz: Fix Dual layer DVD layer 1 read
ReadFile reports that the DVD is reading from the end of file when
attempting to read any layer 1 sectors.

Use the FSCTL_ALLOW_EXTENDED_DASD_IO ioctl to prevent the file system
driver from carrying out boundary checks.
2016-03-16 17:55:27 +00:00
Jonathan Li 2213564977 cdvdgigaherz: Fix TOC creation
cdvdgigaherz only determines whether there is no disc, a CD, a single
layer DVD or dual layer DVD in the drive. It does not detect whether a
CD/DVD is a PS2 CD/DVD or not.

Fix the missing TOCs.
2016-03-16 17:55:26 +00:00
Jonathan Li 9e2f309e30 cdvdgigaherz: Fix incorrect dual-layer DVD track info
Single-session DVDs only have 1 track, regardless of whether the DVD is
single or dual layered.
2016-03-16 17:55:19 +00:00
Jonathan Li 643db78cc4 cdvdgigaherz: Fix last resort DVD size calculations
The calculated size values were off by one for single layer DVDs, off by
two for dual layer PTP DVDs, and just wrong for OTP DVDs.

Usually the IOCTL_DISK_GET_LENGTH_INFO ioctl will have succeeded already.
2016-03-15 23:20:06 +00:00
Jonathan Li 41986f4307 cdvdgigaherz: Remove unneeded IOCTL_DVD_READ_STRUCTURE ioctls
Only 1 IOCTL_DVD_READ_STRUCTURE ioctl call is necessary for determining
the DVD media type and layer break address. All the necessary
information is already present in the layer 0 physical descriptor.
2016-03-15 23:19:10 +00:00
Gregory Hainaut 0ef8ddb2a2 Merge pull request #924 from kust2708/onepad-gui
Onepad GUI for Linux - New wxWidget interface
2016-03-15 20:23:44 +01:00
Jonathan Li 7292955600 cdvdgigaherz: Fix sector address endian issue
The sector addresses returned when reading the layer information from a
DVD are big-endian. Convert the addresses to little endian.
2016-03-15 17:34:36 +00:00
Jonathan Li 5db0d682b8 cdvdgigaherz: Fix detection typo 2016-03-15 17:34:35 +00:00
Jonathan Li d07076b9d4 cdvdgigaherz: Dual layer DVD type/layer 1 start LSN fixes
For dual layer DVDs, CDVDgetDualInfo() should return the first layer 1
LSN, not the last layer 0 LSN, which is what GetLayerBreakAddress()
returns. This matches what the internal ISO reader returns.

Also, PTP DVDs should return a value of 1 for the media type, not 2.

Finally, adjust the CDVDgetDualInfo() return value so PCSX2 correctly
recognises dual layer DVDs.
2016-03-15 17:28:43 +00:00
Akash 9b0ecdf43f GSDX-OGL: gray out MSAA on opengl renderer
It's currently unimplemented on OpenGL renderer.
2016-03-14 18:38:40 +05:30
Jonathan Li b516c1001a windows: Set _WIN32_WINNT to 0x0600 (Windows Vista) 2016-03-13 13:41:16 +00:00
Jonathan Li 9ed9b2d8cd windows: Switch to DefaultPlatformToolset aka non-XP toolsets
Basically I ran
find . -name "*.vcxproj" -exec sed -i -e 's/_xp//' {} \;

This will likely break XP, but it paves the way on Windows for a PCSX2
that does not require the DirectX redistributables to be installed for
Windows 8, 8.1 and 10 users. Windows Vista and 7 users will still require
the DirectX redistributable files for XInput and XAudio, though PCSX2
should still be capable of running if a user does not actually use either
of them.
2016-03-13 12:04:28 +00:00
Gregory Hainaut 653998e005 gsdx: add vertex data offset in comment
Avoid to recompute them every time I want to decode the vertex stream
2016-03-12 15:53:38 +01:00
Gregory Hainaut de7d127c52 gsdx-ogl: create a small macro to load function pointers 2016-03-12 15:52:36 +01:00
Gregory Hainaut 95ef4e20f8 gsdx-ogl: load GL_ARB_viewport_array function pointer for the future 2016-03-12 15:52:36 +01:00
Gregory Hainaut 56c2e94daf gsdx-ogl: sort extension requirement
All GL4 extensions supported by DX10 class GPU will be soon mandatory

Namely:
* GL_ARB_copy_image
* GL_ARB_texture_barrier
* GL_ARB_clip_control
* GL_ARB_direct_state_access
* GL_ARB_separate_shader_objects
* GL_ARB_buffer_storage
2016-03-12 15:52:36 +01:00
Gregory Hainaut a3788c4e98 Merge pull request #1225 from PCSX2-Alpha/scaling_fix
GSDX: set a safe limit to Framebuffer width
2016-03-12 15:42:18 +01:00
Akash 997f0535f5 GSDX: Set a safe limit to Framebuffer width
There are likely few games (RE4) which constantly change the FBW register value causing the framebuffer width to be updated at every interval. Adding a safe limit (512) similar to frame buffer height would prevent such constant changes of the framebuffer width when FBW changes once again to an even lower value.
2016-03-11 07:28:05 +05:30
Gregory Hainaut ec57f1305a gsdx: detect rendering outside of the framebuffer
Could help to detect rendering issue (for example missing fmv)
2016-03-10 19:03:39 +01:00
Gregory Hainaut bc73195193 gsdx-ogl: pack more tightly the FS UBO
Merge TA vec2 + Af vec1 into a single vec4
2016-03-10 18:29:05 +01:00
Jonathan Li 3e278a2e75 Merge pull request #1197 from turtleli/gsdx-png
Gsdx: PNG screenshots (Windows), use libpng directly
2016-03-08 23:49:56 +00:00
Gregory Hainaut 7b8616ac7b gsdx-ogl: add function pointer for query object 2016-03-06 13:39:24 +01:00
Jonathan Li 6b950d0408 gsdx: Allow dump and capture PNG compression to be changed
Valid values for png_compression_level are from 0 (no compression) to 9
(max compression). The default is 1.

v2: Use zlib Z_BEST_SPEED (1) and Z_BEST_COMPRESSION (9) defines.
2016-03-02 22:58:45 +00:00
Jonathan Li a97cbf038c gsdx-d3d9: Save screenshots as PNG files
v2: Avoid unnecessary memory copy
2016-03-02 22:57:17 +00:00
Jonathan Li d865efceb9 gsdx-d3d11: Save screenshots as PNG files 2016-03-02 22:57:16 +00:00
Jonathan Li cf939620ea gsdx-ogl: Save depth image as RGB and alpha images 2016-03-02 22:57:16 +00:00
Jonathan Li 97215008c9 ci|cmake|debian: Remove png++ build dependencies
GSdx now uses libpng directly. png++ is now unused, so let's remove it.
2016-03-02 22:57:15 +00:00
Jonathan Li ee5861efc8 gsdx: Remove non-PNG code
It's no longer in use.
2016-03-02 22:57:12 +00:00
Jonathan Li 38edd77034 gsdx-ogl:windows: Save screenshots as PNG files
v2: Add zlib directory to property sheet
2016-03-02 22:52:08 +00:00
Jonathan Li 87dcfbc645 gsdx-png: Use libpng directly instead of via png++
v2: Increase compression to maximum
v3: Add zlib to GSdx build dependencies
v4: Reduce memory usage
2016-03-02 22:48:54 +00:00
Gregory Hainaut edef3ad8c3 Merge pull request #1170 from PCSX2-Alpha/TC_Scaling
GSDX: Detect RT size based on display and frame registers.
2016-03-02 13:51:28 +01:00
Jonathan Li 2d4e2fb8cb windows: spu2-x does not use the emitter
So let's not specify it as a build dependency.

Also remove some unnecessary manual library linkage and remove the
wsWidgets GUI property sheet, which does nothing useful.
2016-02-28 11:08:08 +00:00
Jonathan Li bfeb3e801a gsnull: Remove GSsetWindowInfo
PCSX2 doesn't actually use it.

GSnull also seems a bit behind the current GS plugin API - perhaps it
should be removed.
2016-02-28 02:45:59 +00:00
Jonathan Li 6c7cfe9e4d xpad: Change to Unicode project and remove unused headers
Also remove an unnecessary ASSERT define, and delete the copy
constructors.
2016-02-28 02:45:10 +00:00
kust2708 de5f7f70e2 OnePad: Fix multi-gamepad support
Can change the number of gamepad with the constant GAMEPAD_NUMBER in the onepad.h file
2016-02-27 22:11:08 +01:00
kust2708 0b0e2a3f34 Onepad : Fix compilation with wx2.8
Feedback fix, when more than two gamepad are used simultaneously.
Change all 'this->' by 'm_'
fix on the hack sixaxis pressure
Modification of the size (1000x760 -> 1000x730)
2016-02-27 21:45:37 +01:00
kust2708 02b5d80bb9 Onepad : Modification for the new background
Add new checkbox for the hack ds3 pressure
2016-02-27 21:45:37 +01:00
kust2708 0e602ab50b OnePad : Add set all buttons + fix bug
Can set all buttons. Buttons labels are not printed correctly in spite of update and refresh
The cause of this problem come from the while in the config_key function which monopolise ressources

Add arrow pictures implementation

OnePad : bug fixed (assert failure)
Modification of copyright
2016-02-27 21:44:58 +01:00
Jonathan Li 85489d05e0 lilypad:windows: Set Unicode in project file instead
Also move the DirectInput define.
2016-02-25 23:36:11 +00:00
Jonathan Li 6fa7a8989c lilypad:windows: LoadLibrary is not required for Raw Input
It's been available since XP and it's not special like XInput (where we
might have SCP in the middle) so let's have the linker resolve the
functions at link time.
2016-02-25 23:36:11 +00:00
Jonathan Li fd8c762772 lilypad: Fix gcc strict-aliasing warning
The fixme I added was likely wrong. Not sure what I was thinking.
2016-02-25 23:36:11 +00:00
Akash b07b06a9fb GSDX-Texture Cache: Rework scaling function
The following patch uses the height value of the display rectangle rather than make an estimation of the Frame buffer height when the game uses a non-referenceable height (or) width.
2016-02-24 09:14:01 +05:30
Gregory Hainaut cb776d2f50 gsdx:atomic: better match the old if(!_interlockedbittestandset(&m_mapped, 0)) behavior
Thanks @turtleli
2016-02-23 18:43:44 +01:00
Gregory Hainaut f9b4ff17a5 gsdx: drop interlocked* function on linux 2016-02-22 19:12:50 +01:00
Gregory Hainaut a601991f91 gsdx: add atomic for transaction scope object 2016-02-22 19:12:50 +01:00
Gregory Hainaut f904cd6c4a gsdx: add atomic for SW Renderer
V2: fix assertion
2016-02-22 19:12:37 +01:00
Gregory Hainaut 9bbb0fe1f6 gsdx: add atomic for texture upload
V2: fix init of atomic flag object
2016-02-21 18:17:53 +01:00
Gregory Hainaut a66c911fed cmake: factorize debug/dev define 2016-02-21 16:17:10 +01:00
Gregory Hainaut 9ba470fc63 gsdx-ogl: properly handle t_float in GS
f8c442cf76 misses the swap of t_float in GS

Fix regression in Okami

Bonus: factorize VS_WILDHACK in the VS
2016-02-21 11:48:30 +01:00
Gregory Hainaut bef8447447 Merge pull request #1186 from PCSX2/gsdx-unoptimize-vs
gsdx-ogl: make VS more generic
2016-02-20 10:39:19 +01:00
Gregory Hainaut 6002719c8c Merge pull request #1185 from PCSX2/tekken5-fast-depth
gsdx: no depth lookup optimization
2016-02-20 10:24:21 +01:00
Gregory Hainaut 1853d0d16d gsdx: no depth lookup optimization
Don't lookup a depth buffer if depth test is always pass without write

Boost performance on Tekken5 when depth emulation is enabled in openGL
(Tekken5 sets same address for both the RT and the depth but depth is disabled)

v2:
Keep ds if DATE is enabled (some implementation uses a stencil buffer)
Be more aggressive to avoid an useless depth lookup
2016-02-18 20:35:50 +01:00
Gregory Hainaut f8c442cf76 gsdx-ogl: make VS more generic
Texture coordinate could be dummy/float/int integral/int normalized.

Old behavior:
* VS was in charge to select the texture coordinate
* int integral format wasn't supported

New behavior:
* Always compute all formats
* FS will be in charge to select the good format

Impact:
* VS will be slightly slower but it reduces shaders permutation from
   little to 0 (won't be bad for CPU)
* FS speed isn't impacted as 2 separate code paths were already required
  to support both format
* Rasterizer will be 33% slower but unlikely to be the limited factor of
  the GPU
* In future we could directly use the integral format in the FS.

V2: remove useless PSin_t
2016-02-18 19:02:05 +01:00
Gregory Hainaut 0dadc124d3 gsdx-ogl: invert behavior of unsafe user hack
It would be on by default. Unsafe & fast path.

The hack is a security if someone encounters any issue

v2: update Windows gui file
v3: fix typo in tooltip and linux gui
2016-02-18 18:48:13 +01:00
netoale b910e20413 Update GSCrc.cpp
added french version of Simpsons The Game 0x5C1EBF61
2016-02-15 21:56:53 +01:00
refractionpcsx2 909584d473 GSDX: Disable Nvidia hack when in native res 2016-02-15 20:27:51 +00:00
Jonathan Li 999166fa58 lilypad: Fix some gcc and clang warnings
Fixes writable-strings, missing-braces, and undefined-inline warnings.
2016-02-14 22:25:17 +00:00
Jonathan Li 2b558a9606 lilypad: Make command/response debug output portable
It also makes the log viewable in Windows Notepad.

Also fix an off-by-one and fix the missing C++ exception settings.
2016-02-14 22:25:17 +00:00
kust2708 823a37aed7 OnePad : New GUI based on gwWidget
Buttons done, configuration initialization done.
Still need to add Gamepad and Joysticks configuration frames.
Require png file for the moment (the embedded picture will be fixed after).

New Onepad GUI based on wxWidget (Main frame almost finish)
Background picture is now embedded
Button binding works
Loading and saving works
Need to add feedback and gamepad, joysticks configuration frame

Modification of the onepad CMakeList.txt
Automatic generation of images headers using perl script

Modification of the test feedback function
2016-02-14 17:26:31 +01:00
kust2708 5b287deca2 Onepad : Add GUI images 2016-02-14 17:25:28 +01:00
Jonathan Li 2b61edb80d lilypad:windows: Remove NO_CRT configurations
It's Windows-only and isn't actually used.
2016-02-14 13:24:59 +00:00
Gregory Hainaut 8ae7f60b04 Merge pull request #1175 from PCSX2-Alpha/GSDX_stuffs
GSDX: Vertical frequency corrections and extra stuffs
2016-02-13 18:15:49 +01:00
Gregory Hainaut dc347e4854 Merge pull request #1178 from PCSX2/opengl-release-mode
gsdx-gl: use CONTEXT_FLAG_NO_ERROR_BIT_KHR to reduce driver overheard
2016-02-13 18:13:05 +01:00
Jonathan Li c47501d228 lilypad: Fix function name typo 2016-02-13 15:03:31 +00:00
Gregory Hainaut 77f9113301 gsdx-gl: use CONTEXT_FLAG_NO_ERROR_BIT_KHR to reduce driver overheard
Didn't test it yet as my driver is too old.

Note: might break the open source drivers.
2016-02-13 15:28:11 +01:00
Jonathan Li 255a62dd21 Merge pull request #1144 from ekudritski/ekudritski-popn-patch-1
Add pop'n music controller support to LilyPad.
Also fix some warnings.
2016-02-13 00:15:15 +00:00
ekudritski e2c5236706 Just some cleaning 2016-02-12 09:57:08 +02:00
Akash e810428c86 GSDX: Remove some old comments
Disgaea 2 intro FMV now works fine with/without upscaling. (confirmed
with rama)
2016-02-12 12:05:42 +05:30
Akash 465cfb4fad PCSX2-GSFrame: Make upscaling impact resolution values 2016-02-12 11:57:41 +05:30
Akash 67a7a63a36 GSDX: Add vertical frequency for all video modes 2016-02-12 05:28:30 +05:30
Akash 1445bf7fb1 GSDX: Extend macros for all video modes.
The following patch detects the other video modes based on Phased lock loop divider (LC)
2016-02-12 04:43:57 +05:30
Gregory Hainaut 253e801f51 linux: enable float operation on SSE unit
Potentially faster and requires to flush denormal float to 0
2016-02-09 18:24:12 +01:00
Gareth Poole 0b362fd866 GSdx: Fix spelling issues in GSdx Linux configuration window 2016-02-08 19:14:56 +01:00
Gregory Hainaut 51b40c6b18 gsdx: move black CRC hack from openGL to DX level
Rendering is much nicer this way
2016-02-06 17:32:12 +01:00
Jonathan Li 93dc772565 GSdx: Missed a _WINDOWS usage...
Visual Studio Find and Replace can only be trusted if all the files are
included in the project. I suppose it's time to add any missing files
to the relevant projects...
2016-02-04 19:12:46 +00:00
Elgar 8c5c4608d2 LilyPad: Add support for Pop'N Music Controller 2016-02-01 15:45:26 +02:00
Gregory Hainaut 85f64b8c08 Merge pull request #1137 from PCSX2-Alpha/CRTC_Scaling
PCRTC: Proper handling for 720P/1080P video modes.
2016-02-01 10:11:58 +01:00
Akash c889659ad7 GSDX: Prevent a bad division
GetDeviceSize() already does a half division based on the INT and FFMD
registers.
2016-01-30 05:20:06 +05:30
Akash 7407162dfe GSDX: Add some nice macros 2016-01-30 05:19:53 +05:30
Gregory Hainaut 841df74010 gsdx: add info to get a working driver 2016-01-28 21:18:24 +01:00
Jonathan Li 3544b84632 usbqemu|dev9ghzdrk: Use _WIN32 for Windows preprocessor macro 2016-01-27 22:58:09 +00:00
Jonathan Li d5e56c7e76 spu2-x: Use _WIN32 for Windows preprocessor macro 2016-01-27 22:49:41 +00:00
Jonathan Li 0f11838d93 gsdx: s/_WINDOWS/_WIN32/
It's the proper Windows preprocessor macro.
2016-01-27 22:41:45 +00:00
Gregory Hainaut 5a20d629ab spu2x: add comment on the previous fix
Always enabled it for all SDL2 versions. A shift won't kill perf.
And no surprise if they backport the behavior on older version.
2016-01-24 12:41:29 +01:00
Gregory Hainaut 90c5f0e1ae spu2x: tentative fix for SDL 2.0.4 2016-01-24 11:01:41 +01:00
Gregory Hainaut 2ff611137e pcsx2|lilypad|gsdx: use portable printf format
(portable: let's see VS compilation...)
2016-01-22 19:46:03 +01:00
Gregory Hainaut da4d3562f5 gsdx-ogl: update status of the SSO extension
AMD (proprietary) is working on it
Free driver will be fixed on Mesa 11.2 (and I hope mesa 11.1.2)
2016-01-22 09:28:59 +01:00
Gregory Hainaut 3f3141c186 GSdx-ogl: limit accurate sprite blending to smaller draw call
Completely restore speed in Zone of Ender

Fix #1093
2016-01-22 09:07:35 +01:00
Gregory Hainaut 3ea98b0c00 Merge pull request #1040 from KrossX/scp_support
LilyPad XInputness
2016-01-22 08:07:26 +01:00
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