Gregory Hainaut
8c4d8cfdca
glsl: avoid an unset warning
2016-06-09 18:27:58 +02: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
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
564bf8a089
gsdx ogl: terminator 3 supports sampling from the depth
2016-05-30 19:39:52 +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
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
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
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
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
5676acaef9
glsl: support channel effect on depth texture too
2016-04-30 16:07:45 +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
7a5e1d4154
gsdx ogl: allow to use a separate texture for the channel effect
2016-04-29 17:34:17 +02:00
Gregory Hainaut
c445a14c46
gsdx ogl: extend shader to lookup a single channel
2016-04-28 22:56:38 +02:00
Gregory Hainaut
ab31915ce9
gsdx: glsl: fix silly typo
...
And regression on various games
2016-04-27 09:52:35 +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
d610a6aac4
gsdx glsl: ofc forget to do the shader in bin
2016-04-24 11:07:46 +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
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
f751f70b1e
gsdx ogl: GL_ARB_clip_control is now mandatory
2016-04-07 21:57:54 +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
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
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
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
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
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
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
92553add8e
gsdx-ogl: accurate date regression. Bad interaction between depth & DATE
...
In the DATE42 algo, first pass must find the primitive that write the
bad alpha value. If depth test is fail, alpha value won't be written therefore
you mustn't keep the primitive id.
In theory to ensure 100% correctness, depth would need to be fully executed
(currently depth write is disabled). However it requires to copy the depth buffer.
It is likely bad for the perf.
Issue reported on DBZInfWorld
2015-10-22 12:31:51 +02:00
Gregory Hainaut
78569ee833
gsdx-ogl: redo properly the setup of texture format
...
* add lengthly comment to explain the format
* Likely reduce the number of shader permutation
* Avoid slow AEM (on GPU)
Expect regressions because TC needs some fixes
v2: fix palette mode
2015-09-11 14:14:22 +02:00
Gregory Hainaut
ca9b5ce11d
gsdx-ogl: move depth conversion shader
...
Add 2 new shaders:
* ps_main12: cast a 16 bit depth to a RGB5A1 color
* ps_main16: cast a a RGB5A1 color to a 16 bit depth
Shader might be used in future commit as it seems Silent Hill uses this
kind of format.
Fix tab/indentation too
2015-09-08 12:41:05 +02:00
Gregory Hainaut
bdc8038e7e
glsl: set a size to gl_ClipDistance array
...
The purpose is to avoid issue on MS-Intel driver without
a dedicated hack in the compilation.
Code doesn't use it so I suspect others implement to discard the
statement.
2015-08-25 18:58:39 +02:00
Gregory Hainaut
a1957a685d
glsl: drop an useless min in FS
...
GPU will clamp color anyway. It reduces the number of instruction of 25% (4->3)
2015-08-25 18:58:39 +02:00
Gregory Hainaut
bfadd884c9
glsl: expand tab into space
...
The mix of the 2 was awful
2015-08-22 13:34:02 +02:00
Gregory Hainaut
a46c11b088
gsdx-ogl: delete various leftovers
2015-08-22 13:33:32 +02:00
Gregory Hainaut
7002ff3ec3
gsdx-ogl: move texture scale from vs_cb to fs_cb
...
It avoid useless update of the vs_cb.
2015-08-22 13:33:04 +02:00
Gregory Hainaut
c5a786ed2c
gsdx-ogl: remove support WMS/T == 2 in hardware unit
...
I think behavior was wrong because only first texel coordinate was clamped.
Beside we can't interpolate if AEM isn't yet applied
2015-08-20 23:01:43 +02:00
Gregory Hainaut
78dd957717
gsdx-ogl: use normalized index coordinate for palette texture
...
In palette mode, 90% of texture accesses are done in 8 bits.
So let's keep this path as light as possible. It reduces GPU load.
2015-08-20 23:01:43 +02:00
Gregory Hainaut
6b84a89b6a
gsdx-ogl: remove old ati hack for point sampler
...
Was never used on openGL
In the future absolute coordinate will be use anyway
2015-08-18 19:09:45 +02:00
Miguel A. Colón Vélez
21c4e6caa6
Fix things found by lintian.
...
I: pcsx2: spelling-error-in-binary usr/lib/i386-linux-gnu/pcsx2/libGSdx-1.0.0.so allows to allows one to
I: pcsx2: spelling-error-in-binary usr/lib/i386-linux-gnu/pcsx2/libGSdx-1.0.0.so Allow to Allow one to
.
Apparently lintian checks grammar too (most common ones).
2015-08-17 22:00:07 -04:00
Gregory Hainaut
bd0de8fbaf
glsl: (colclip) HDR doesn't need wrapping neither clamping
...
Might save a couple of instruction in the PS
2015-08-08 09:18:09 +02:00
Gregory Hainaut
d822b6bd1a
gsdx-ogl: add some comments for the future
2015-08-08 09:17:06 +02:00
Gregory Hainaut
b17803bb34
gsdx-ogl: wipeout of GL_ARB_bindless_texture
...
Code is completely broken. It doesn't help to improve speed.
Remove 200 lines ;)
2015-08-08 09:16:49 +02:00
Gregory Hainaut
36554c3375
Merge branch 'hdr-colclip-32bits'
2015-08-04 21:55:40 +02:00
Gregory Hainaut
45bb27d6db
gsdx-ogl: extend HDR colclip to 32 bits texture
...
Unfortunately 16 bits wasn't enough for Castlevania.
2015-08-04 21:54:27 +02:00
Gregory Hainaut
744f9ebc09
gsdx-ogl: rare corner case when both texture shuffle and date are enabled
...
In texture shuffle mode the texture data is either RG or BA. It means
that DATE must either checks MSB of G or A.
Close #693
2015-08-04 20:10:44 +02:00
Gregory Hainaut
4a3c145c72
gsdx-ogl: depth support: better support of 16 bits z buffer
...
Fix issue in socom2
2015-08-01 01:28:41 +02:00
Gregory Hainaut
cfd0fd6cc8
gsdx-ogl: remove old colclip algo
2015-07-31 09:45:28 +02:00