Akash
fdc10e13ec
GSDX: Better detection of default renderer
...
* Better detection of default renderer based on the vendor ID ( Nvidia, AMD , Intel)
* GSUtil: Add a dedicated function for identifying best renderer
2016-06-09 15:27:11 +05:30
refractionpcsx2
c530858df3
GSdx: Move "isNative" check to DX11 context creation. Resolves speed regression in games that constantly change the viewport size.
2016-06-06 20:45:30 +01:00
Jonathan Li
7c205d7a1e
windows: Don't use __declspec(dllexport) for plugin exports
...
Using __declspec(dllexport) causes duplicate export warnings to be
generated when compiling 64-bit builds. Name mangling also occurs on
functions that are exported this way, so it doesn't actually work with
the plugin system, which uses unmangled names.
The module definition file exports the functions without name mangling
and is sufficient on its own.
2016-06-05 22:57:42 +01:00
Gregory Hainaut
2b00447a43
glsl: optimize the number of active constant buffer
...
Increase the performance on the free driver (Nouveau)
Currently the driver validates all UBO when only 1 is updated. It
is clearly a bad idea to put all UBO in a single common headers.
2016-06-05 16:45:11 +02:00
Jonathan Li
c7940856ce
windows: Remove unneeded library dependencies
...
Some are unnecessary since they're already taken care of by project
references, while others are duplicates or unused.
2016-06-04 22:55:48 +01:00
Gregory Hainaut
4768f912b8
gsdx linux: add vsync support for free driver
2016-06-04 13:17:59 +02:00
Gregory Hainaut
2b2412ca20
gsdx hw: disable OI_GsMemClear when framebuffer writes are masked.
2016-06-01 22:34:14 +02:00
Gregory Hainaut
7202cac7d0
gsdx ogl: remove the dual source blending workaround
2016-06-01 21:00:29 +02:00
Gregory Hainaut
08a8bfa76c
gsdx ogl: plug new program compilation for bad driver
2016-06-01 21:00:29 +02:00
Gregory Hainaut
17988fc7de
gsdx ogl: add code to compile a single shader
2016-06-01 21:00:29 +02:00
Gregory Hainaut
405f312fe8
gsdx ogl: format GSShader code
...
Move the Geometry Shader to the call of the function
2016-06-01 21:00:29 +02:00
Gregory Hainaut
538bb418ce
gsdx ogl: revert the removal of single shader compilation function pointer
...
(It doesn't mean I will drop SSO but that I will do some tests one day)
2016-06-01 09:29:56 +02:00
Gregory Hainaut
5d49a6b685
gsdx ogl: replace 4 VS shader variation by an AND mask
...
Perf will be roughly the same. However there is a single VS for all
the HW emulation.
2016-06-01 09:29:56 +02:00
Gregory Hainaut
959abe64f8
gsdx ogl: implement wildhack on the CPU
...
Speed impact is likely small and the plan is only to keep a single Vertex Shader
2016-06-01 09:29:56 +02:00
Gregory Hainaut
3d192b7f8d
gsdx ogl: separate channel code into a separate function
2016-06-01 09:29:56 +02:00
Gregory Hainaut
6d2196125d
gsdx: fix TVshader case option
2016-05-31 19:35:35 +02:00
Gregory Hainaut
564bf8a089
gsdx ogl: terminator 3 supports sampling from the depth
2016-05-30 19:39:52 +02:00
Gregory Hainaut
43a1c48f75
gsdx option: add missing default and fix case
2016-05-30 18:23:22 +02:00
Gregory Hainaut
9c8b5e37a4
gsdx ogl: blacklist AMD 2015 drivers
2016-05-29 18:21:12 +02:00
Gregory Hainaut
12512f767b
gsdx linux gui: disable the hack panel when user hacks are disabled
...
Move the user hack option to the main panel (Box with a single option doesn't look nice)
Hopefully it will be less confusing for linux users.
2016-05-29 18:09:22 +02:00
Gregory Hainaut
38a511e3e1
gsdx linux: some capture options are cross platform
2016-05-29 17:38:40 +02:00
Jonathan Li
8b74c108a4
Revert "gsdx:windows: Fix Windows 7 compile"
...
This reverts commit 7736c90457
.
It wasn't actually a Windows 7 compile fix, but a bad build environment
workaround.
2016-05-29 14:33:58 +01:00
Jonathan Li
b20433c0be
windows: Remove user.props references from all projects
...
find . -name *.vcxproj -exec sed -i -e '/user.props/d' {} \;
Microsoft recommends against using .user files. From
https://msdn.microsoft.com/en-us/library/669zx6zc.aspx :
"The best practice is to delete the reference to them in Property
Manager to ensure that your projects operate independently of any
per-user, per-computer settings. This is important to ensure correct
behaviour in a SCC (source code control) environment."
If you cannot compile SPU2-X after this commit (since that still relies
on the old DirectX SDK), you'll need to fix your build environment.
2016-05-29 12:21:52 +01:00
Gregory Hainaut
fb26254fbb
gsdx ogl: implement a more generic HLE shader for terminator 3
...
Hopefully without regression for others games
2016-05-29 10:13:43 +02:00
Gregory Hainaut
f7ddd488e1
gsdx ogl: Extend uniform buffer with channel parameter
...
Instead to use the standard ps ubo which is used every draw call.
I reused a barely used buffer to reduce the extra cost of the upload
2016-05-29 10:13:43 +02:00
Gregory Hainaut
6f19d928f6
gsdx ogl: use the new uniform cache upload method
2016-05-29 10:13:43 +02:00
Gregory Hainaut
fa15d7fd26
gsdx ogl: generic code to cache uniform buffer
...
It will allow to skip a buffer transfer if the new content is the same
2016-05-29 10:13:43 +02:00
Jonathan Li
36cd1ae3cc
windows: Remove parameter from prebuild command
...
It's unused. Also convert to using SolutionDir instead of Svnwhatever.
2016-05-28 23:25:08 +01:00
Gregory Hainaut
58f04975e1
oups fix link
2016-05-28 18:49:49 +02:00
Gregory Hainaut
179681ef18
gsdx ogl: enable AMD driver blending workaround only on latest legacy driver
...
Legacy GPU:
Older driver will be broken.
Still supported GPU:
Please upgrade to the latest AMD driver 16.5.2 or 16.5.3 (and prey that future driver will still work)
2016-05-28 18:43:55 +02:00
Gregory Hainaut
a648e2db70
gsdx: switch to dx10/11 as default on Windows
...
1/ Detecting Dx level requires a DX context.
2/ Dx9 GPU market is 1-2% (I'm not even sure they can run latest windows 10)
2016-05-28 10:07:27 +02:00
Gregory Hainaut
c61e09e36a
fix left over default
2016-05-28 10:07:27 +02:00
Gregory Hainaut
453ac88dce
gsdx option: use CaptureWidth/CaptureHeight on linux too
2016-05-28 10:07:27 +02:00
Gregory Hainaut
a9c18c57e4
gsdx option: use the new GetConfig* function
...
v2:
add PSX stuff
ssakash review
2016-05-28 10:07:27 +02:00
Gregory Hainaut
03a6f2093e
gsdx option: add multiple GetConfig to avoid overload issue
2016-05-28 10:07:27 +02:00
Gregory Hainaut
05818d70f4
gsdx option: centralize default configuration to a single file
...
Potential issue
* miss a default value
* Renderer is DX9 again on windows
* Case issue
* Same default for all code paths
* overload of GetConfig
v2: separate specific OS option
2016-05-28 10:07:26 +02:00
Akash
2409817556
GSDX: Move PSX code to an isolated path
2016-05-26 19:04:17 +05:30
Jonathan Li
06dba2d258
Merge pull request #1372 from PCSX2-Alpha/Windows_GUI
...
GSDX-Windows: Add "Large Framebuffer" option
2016-05-26 08:57:33 +01:00
Akash
9ae6c2673a
GSDX-Windows: Add "Large Framebuffer" option
2016-05-26 11:38:24 +05:30
Jonathan Li
352b61c741
gsdx: Allow normal assert to be used
2016-05-26 00:11:52 +01:00
Jonathan Li
db81925c4b
Merge pull request #1335 from turtleli/freebsd
...
Support FreeBSD
2016-05-25 18:55:51 +01:00
Gregory Hainaut
60e0f3b9b5
Merge pull request #1234 from PCSX2-Alpha/Time_Crisis
...
GSDX: Improve CRTC width detection
2016-05-25 17:51:07 +02:00
Gregory Hainaut
b6da1bcb15
gsdx linux: add the new option checkbox
2016-05-23 19:38:44 +02:00
Gregory Hainaut
0c3324b6ef
gsdx hw: create a large_framebuffer option
...
Enable it to ensure correct rendering (FMV)
Disable it to reduce GPU/memory requirement
Option will likely be removed when the perf impact will be reduced.
2016-05-23 19:38:44 +02:00
Gregory Hainaut
1f4439a89e
gsdx: add some notes of potential optimization
2016-05-23 19:38:44 +02:00
Jonathan Li
571432a7aa
gsdx:freebsd: Fix compilation
2016-05-21 13:34:18 +01:00
Jonathan Li
57cdf0bf16
gsdx:linux: Use clock_gettime instead of ftime
...
ftime is obsolete and not present in recent POSIX specifications.
2016-05-21 13:33:40 +01:00
Jonathan Li
da2046e90e
gsdx: Use alignas instead of __aligned
...
__aligned is defined in FreeBSD headers and will cause compile errors.
2016-05-21 13:23:11 +01:00
Gregory Hainaut
a7ba779ba8
gsdx ogl: another HLE channel effect for terminator 3
...
Same as before but with a different fbmask value (I don't know why but
I have the feeling that I might need the others value too)
2016-05-20 19:55:39 +02:00
Gregory Hainaut
1c21ea955c
gsdx ogl: HLE channel effect for terminator 3
...
Unfortunately I think the game uses another similar effects
2016-05-20 19:45:20 +02:00
Gregory Hainaut
247d33a627
gsdx ogl: always clear depth buffer in FFX2
...
It avoid depth issues and I'm sure it won't broke other games this way.
Issue #1340
2016-05-19 17:53:46 +02:00
Akash
2166980f91
GSDX: Calculate dimensions of rectangle after merge
...
* Properly display rectangle size after passing through merge circuit on
GS Dumps and GS Frame titlebar.
2016-05-19 15:53:49 +05:30
Akash
58b43dbb6c
GSDX: Rework video mode detection code
...
* Use some nice enums instead of macros
* properly detect 720P/1080I separately.
* Some code cleanup, extended variable names and added few comments
2016-05-19 14:02:50 +05:30
Gregory Hainaut
e258f3e2fa
gsdx ogl: update accurate DATE behavior
...
* Fast accurate DATE is always enabled, it was faster than standard DATE
* The less fast version is always enabled too. It is likely barely used
so perf impact will be small on few game that could hit this path.
Nice rendering has a higher priority
* The "slow" path will depends on the date option.
Note normally it isn't too slow (-10%) if GL_ARB_shader_image_load_store
is supported but AMD crimson is an epic fail.
2016-05-19 10:03:46 +02:00
Jonathan Li
7b27be1306
gsdx: Consider horizontal offsets when merging output
...
Fixes games like Time Crisis 2/3, which use two half-width display
rectangles placed side by side in split screen mode by using different
DISPLAY.DX values.
2016-05-19 10:06:12 +05:30
Gregory Hainaut
14fa797235
gsdx hw: always uses a big RT on snowblind engine game
...
Avoid headack to avoid conflict between 1280x1024 and 640x1280 resolution
2016-05-17 20:01:00 +02:00
Gregory Hainaut
a4c7541092
gsdx ogl: tentative hack to make FFX go along with depth option
...
Issue1: Depth buffer is wrongly invalidated only the first page is detected.
Issue2: First page seems to be partially written. Could be a GSdx transfer bug.
Anyway, invalidation only support a page granularity.
So here a quick workaround that will clear depth buffer in case of very small partial write.
Might worth to check regression on nocturne/digital saga
2016-05-17 19:33:12 +02:00
Gregory Hainaut
37c049425d
gsdx ogl: gl depth is written by default
...
Fix bad depth state in dump (yes the bug is 2 years old!)
2016-05-16 20:10:32 +02:00
Gregory Hainaut
f5b174f985
gsdx ogl: pitch is always the width of the transfer not the size of the texture
2016-05-16 19:20:01 +02:00
Gregory Hainaut
fa921215d9
gsdx ogl: add GL_ARB_get_texture_sub_image extension support
...
could help to read back a portion of a texture
2016-05-16 18:58:33 +02:00
Gregory Hainaut
e02753df46
gsdx ogl: oups, mandatory function pointer was wrongly optional
2016-05-16 18:58:33 +02:00
Gregory Hainaut
37e4d2bd48
gsdx ogl: update old comment
2016-05-16 18:58:33 +02:00
Gregory Hainaut
96b5170d8c
Merge pull request #1317 from PCSX2/gsdx-array-coverage
...
Gsdx array coverage
2016-05-16 18:16:15 +02:00
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