Gregory Hainaut
29c97a9bf2
gsdx ogl: only enable accumulation hack in HDR algo
...
Goal is to reduce shader permutations and improve perf when sw blending is disabled
2016-07-07 19:56:23 +02:00
Gregory Hainaut
16c2baa0df
gsdx-ogl: don't hardcode the accumulation blend trick
...
Perf impact is bigger than expected
2016-07-07 19:56:23 +02:00
Gregory Hainaut
cc62e8c785
Merge pull request #1439 from ssakash/Cleanup_Warnings
...
PCSX2: Clean up warnings on MSVC
2016-07-03 15:45:39 +02:00
Gregory Hainaut
11eeeb6ab1
gsdx ogl: be sure sw blending is enabled in sw colclip
...
Hit the assertion on superman
2016-07-02 17:19:41 +02:00
Akash
4cfb2b248e
GSDX: Clean up warnings on MSVC
...
GLLoader: cast passed parameters to required type.
GSDeviceOGL: cast variables to required type and silence warnings.
GSRendererOGL: cast variables to required type and silence warnings.
2016-06-30 16:50:10 +05:30
Gregory Hainaut
08579021c5
gsdx ogl: 1 isn't used for WMT/WMS in shader
...
Stick it to 0 to avoid useless shader toggling
2016-06-11 13:35:32 +02:00
Gregory Hainaut
415ce93425
gsdx ogl: rename the confusing function EmulateGS to Lines2Sprites
2016-06-09 18:27:58 +02:00
Gregory Hainaut
61075febae
gsdx ogl: move selector as state variables
...
Will be easier to move code around if required in the future
2016-06-09 18:27:58 +02:00
Gregory Hainaut
1132230674
gsdx ogl: create m_require_one_barrier/m_require_full_barrier state variable
...
hopefully code will be more readable
2016-06-09 18:27:58 +02:00
Gregory Hainaut
7ece9b823d
gsdx ogl: move texture management into a separate function
2016-06-09 18:27:57 +02:00
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
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
a9c18c57e4
gsdx option: use the new GetConfig* function
...
v2:
add PSX stuff
ssakash review
2016-05-28 10:07:27 +02:00
Gregory Hainaut
1f4439a89e
gsdx: add some notes of potential optimization
2016-05-23 19:38:44 +02: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
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
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
d47d9e5017
gsdx-ogl: fix a minor gcc warning
2016-05-15 13:10:46 +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
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
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
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
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
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
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
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
b4c7d32741
gsdx ogl: avoid to wrongly detect a channel shuffle
2016-04-30 14:52:43 +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
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
eaa4fd41e2
gsdx ogl: improve logging of special effect
2016-04-28 22:56:38 +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
aeb92592e7
gsdx ogl: use GSUtil::GetClassVertexCount
2016-04-26 19:29:04 +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
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
refractionpcsx2
dcb676765e
GSdx: Clean up some warning under windows ( #1289 )
2016-04-14 11:00:58 +01:00