Gregory Hainaut
92d68b70d3
gsdx-ogl: add a performance note for later
...
The idea will be to replace StretchRect for standard case with a framebuffer
blit. Potentially it toggles less gl state.
Worth a test on Star Ocean 3 that uses a lots this function for stencil emulation
2015-05-30 09:58:46 +02:00
Gregory Hainaut
01e4a5148d
gsdx-ogl: avoid crash in debug/dev build
...
Don't be silly, don't put gl trace in EE thread.
2015-05-29 16:50:27 +02:00
Gregory Hainaut
0cb6c37f14
gsdx-tc: add an explanation of the magic number 0x140
2015-05-29 12:27:05 +02:00
refraction
97b237712c
gsdx: detect RT size based on fb size and gs output configuration
...
* It is required for snowbling games
* Targets of Texture cache are dropped.
2015-05-29 12:26:44 +02:00
Gregory Hainaut
02274601b3
gsdx-ogl: always copy texture into 0,0
2015-05-29 12:18:54 +02:00
Gregory Hainaut
e5326d1bd2
gsdx-tc: allow to reuse the right part of large RT as source
2015-05-29 12:18:54 +02:00
Gregory Hainaut
7ac533a4d1
gsdx-tc: invalidate half-RT src
...
snow engines uses the RT as 2 half RT.
2015-05-29 12:18:54 +02:00
Gregory Hainaut
da0b77e09b
gsdx-ogl: new logo
...
Thanks bmate for the logo.
Close issue #192
2015-05-29 11:05:52 +02:00
refraction
8f54da5fd3
GSDX: Removal of Nvidia hack.
...
- Hack no longer required as an option as a safe and simple workaround has been discovered which seems to work without modifying any vertices.
2015-05-28 21:41:02 +01:00
refraction
5d00c00826
GSDX: Fixed UserHacks_AutoSkipDrawDepth dialog creation on windows.
...
- CheckDlgButton was just wrong
- Changed tag to say "Auto-skip depth" as you could only see "Auto-skip draw" which was highly ambiguous on GSDX!
2015-05-28 21:21:19 +01:00
Gregory Hainaut
31ffdd8c53
Merge pull request #559 from ssakash/patch-5
...
Auto depth skip hack initialization.[GUI]
2015-05-28 19:21:45 +02:00
Gregory Hainaut
8e32d71c07
Merge branch 'patch-3' of git://github.com/ssakash/pcsx2 into ssakash-patch-3
2015-05-28 18:30:49 +02:00
Akash
5f7e09268c
change "D3D Internal Resolution" to "Internal Resolution"
2015-05-28 16:33:16 +05:30
Akash
bf743fec17
add logo for Opengl renderer.
2015-05-28 01:34:51 +05:30
Gregory Hainaut
c43ddaec4f
gsdx: add Castlevania hack explanation
2015-05-26 17:03:13 +02:00
Gregory Hainaut
419dfe0544
glsl: redo color/alpha management correction
...
Please test it!
GS supports 3 formats for the output:
32 bits: normal case
=> no change
24 bits: like 32 bits but without alpha channel
=> mask alpha channel (ie don't write it anymore)
=> Always uses 1.0f as blending coefficient
16 bits: RGB5A1, emulated by a 32 bits openGL texture. I think it will be more correct to use
a real 16 bits GL texture. Unfortunately it would cost several (slow) target conversions.
Anyway as a current solution
=> apply a mask of 0xF8 on color when SW blending is used (improve Castlevania shadow)
unfortunately normal blending mode still uses the full range of colors!
This commit also corrects a couple of blending factor. 128/255 is equivalent to 1.0f in PS2, whereas GPU uses 1.0f. So the blending factor must be 255/128 instead of 2
Note: disable CRC hack and enable accurate_colclip to see Castlevania shadow ^^
(issue #380 ).
Note2: SW renderer is darker on Castlevania. I don't know why maybe linked to the 16 bits format poorly emulated
2015-05-26 16:49:43 +02:00
Akash
ef3247c233
Update copyright license
2015-05-26 19:15:30 +05:30
Akash
99f9407c24
Auto depth skip hack initialization.
2015-05-26 19:13:56 +05:30
Gregory Hainaut
9ee3a173d0
gsdx-ogl: use a local ALPHA register
...
It would allow to easy tune the parameter to support 24 bits format
2015-05-26 15:36:48 +02:00
Gregory Hainaut
d31bd97d59
gsdx-ogl: add a variable to select FB output
...
Either 32bits/24bits/16bits
2015-05-26 14:59:07 +02:00
Gregory Hainaut
93c0d5a268
gsdx-ogl: add an error message when a RT is reused with a format cast
...
For example a 32 bits RT could be used as a 16 bits RT.
It is likely the source of various bug in HW renderer
2015-05-26 11:16:49 +02:00
Gregory Hainaut
a3bbe68d56
gsdx: throw an exception when we miss a mandatory gl feature
...
Gracefully quits when driver is not supported
(like nvidia legacy driver for GTX260)
Please test the impact on windows
2015-05-26 11:03:59 +02:00
Gregory Hainaut
3be5a6036b
gsdx-ogl: remove assertion + debug message
...
opengl use a different object to compute the vertex count
2015-05-26 11:03:59 +02:00
refraction
b84a462798
Unreachable code message was annoying me.
2015-05-26 00:30:12 +01:00
Gregory Hainaut
2704a65f57
gsdx: add some info for Star Ocean3/Valkyrie Profile 2/Radiata Stories
...
Feel free to test those games with CRC disabled on the openGL renderer (native resolution)
2015-05-25 12:37:48 +02:00
Gregory Hainaut
580d177951
gsdx: improve commit 11708486d8
...
This time linear filtering is disabled only for the bad draw call
(RT used as a palette texture).
2015-05-25 09:46:51 +02:00
Gregory Hainaut
99d7434671
gsdx-ogl: disable SSO on nouveau
2015-05-24 19:24:10 +02:00
Gregory Hainaut
11708486d8
gsdx: allow to control the filtering of texture cache
...
When the RT is used as an input texture, we need to rescale it.
Previous behavior was to always uses a linear filtering (more smooth).
Unfortunately it broke some games that expected an exact value like Star Ocean 3
This commit will disable the linear filtering in normal filtering mode (filter = 0
or filter = 2)
This way, shadow of Star Ocean 3 will appear correctly in upscaling (not
100% perfect but can't do better)
Note: SO3 only requires a nearest sampling of the alpha channel but
I don't know the behavior for others games.
2015-05-24 18:59:27 +02:00
Gregory Hainaut
b0af54d33e
gsdx-ogl: better support of palette
...
The purpose of the code is to support alpha channel
of RT uses as an index for a palette texure.
I'm afraid that code will likely break pure palette texture. Only used
if paltex is enabled
It fixes missing shadow in Star Ocean 3 (issue #374 ) in Native resolution
with filter = 0 (no filtering) or = 2 (normal fitering)
Rendering explanation:
The game emulates a stencil buffer with the alpha channel
The alpha channel of the RT can contains a palette texture index (format 4HH)
The idea is to have a gradient of value in the palette (16/32/48/...).
This way you can implement a +16/-16 and even wrap the alpha value every time
you hit the pixel.
Bilinear filtering breaks the rendering because it interpolates between counts
so you doesn't have the exact count
Upscaling breaks the rendering because the RT is reused as an input texture. It means
that we need to scale it down which again create some interpolations.
2015-05-24 18:07:16 +02:00
Gregory Hainaut
951a1fed94
gsdx-hack: enable auto skip of depth texture for God of War
...
Rendering is quite complex to emulate on the GPU due to several limitation.
Until we find a solution let's enable the old solution
You could find a description of the rendering here:
http://forums.pcsx2.net/Thread-God-of-War-Red-line-rendering-explained
2015-05-24 13:43:36 +02:00
Gregory Hainaut
a70c3bf5de
glsl: correct the alternate implementation of ps_main1
...
Still not yet enabled by default
Potentially it can be optimized with the dot product but special care
need to be taken to ensure float accuracy.
Bonus: it could work on old GPU (aka DX9)
2015-05-24 13:43:36 +02:00
Gregory Hainaut
c82fd94c6c
gsdx-debug: use GL_INS instead of printf
2015-05-24 13:43:36 +02:00
Gregory Hainaut
c01686d252
gsdx-png: add a fixme message for 16 bits by channel image
2015-05-24 12:51:20 +02:00
Gregory Hainaut
7f614401a6
gsdx-ogl: set accurate_blend as default
...
Rendering is better and I think speed impact remains small.
2015-05-23 15:10:04 +02:00
Gregory Hainaut
c507e816c2
gsdx-ogl: oups forget a break
2015-05-23 13:06:23 +02:00
Gregory Hainaut
b884e0c0c0
gsdx-debug: improve debug experience
...
* Dump context before the increase of s_n
=> aligned with the global call number
* Don't print colclip not supported when it is optimized away
* dettach the input texture when it is useless
=> avoid to show a wrong texture in the debugger
2015-05-23 12:23:05 +02:00
Gregory Hainaut
f665180d11
gsdx-debug: use hex number for texture pointer
...
Easier to grep
2015-05-23 12:20:26 +02:00
Gregory Hainaut
7609fdc576
gsdx: rename too much sr to sRect
2015-05-21 09:48:15 +02:00
Gregory Hainaut
b52ee6f1f6
gsdx-linux-gui: add an option for accurate color clipping
...
Note: it is only for debug purpose
Sotc testcase 187 fps => 125 fps (2x scaling)
2015-05-20 09:42:22 +02:00
Gregory Hainaut
183af4ece6
gsdx-ogl: don't enable SW blending when there is no blending
...
Mostly to avoid useless message
2015-05-20 09:36:01 +02:00
Gregory Hainaut
3d35e4f8ec
gsdx-ogl: implement all blends mode in shader
...
+ 250 lines !!!
2015-05-20 09:11:36 +02:00
Gregory Hainaut
2d54d59add
gsdx-ogl: update assertion ps sel is 8B now
2015-05-20 08:40:08 +02:00
Gregory Hainaut
d3d5a436ea
gsdx-ogl: add code to read back depth texture
2015-05-20 08:07:40 +02:00
Gregory Hainaut
a4c74ef872
gsdx-ogl: disable GL_DITHER
...
I really don't know the impact but it is not supported with integer texture.
2015-05-20 08:05:27 +02:00
Gregory Hainaut
8d3e3e6c5b
gsdx-ogl: more blend rework to support accurate_colclip
...
So far few blending equations are implemented in PS. It is only
for test the behavior on GoW
2015-05-20 08:00:40 +02:00
Gregory Hainaut
c5341a2711
gsdx-ogl: update blending management
...
This way it will allow to implement all blendings operartion in FS.
Of course it will be slow, but it would be nice for debug and quickly check
game error rendering.
2015-05-20 00:12:52 +02:00
Gregory Hainaut
358e0d445b
gsdx-ogl: add a shader to convert depth texture into uint
2015-05-19 18:56:32 +02:00
Gregory Hainaut
ac38ebbf29
Merge pull request #546 from ssakash/patch-3
...
enables Anisotropic filtering option for OGL (HW mode) [Windows UI]
2015-05-19 15:20:12 +02:00
Gregory Hainaut
ec45090358
glsl: implement an alternative of convert 1 shader
...
Code not yet enabled. Quick test show no heavy regression but I need
to carefully validate it.
2015-05-19 13:14:18 +02:00
Gregory Hainaut
a12acc0d24
gsdx-ogl: clean a bit Texture Cache OGL
...
Add a placeholder for depth format but nothing done yet.
2015-05-19 13:14:18 +02:00
Gregory Hainaut
1837001e75
gsdx: extend CopyOffscreen with a new shader parameter
...
Currently we're trying to infer the conversion shader based on the output format
It only works if the input data is RGBA8. It might not be true in the future
2015-05-19 13:14:18 +02:00
Gregory Hainaut
9554b5dd56
gsdx-lzma: drop CONCAT flag
...
I have some issue with it. Unlikely to use multi-stream gs anyway
2015-05-19 13:14:18 +02:00
Gregory Hainaut
fa761a129d
gsdx-linux: add an option to enable/disable recording
...
Avoid to kill the computer/application if the user press F12 by accident
2015-05-19 13:14:18 +02:00
Gregory Hainaut
34202933da
GSdx-linux-recorder: add various option to control it
2015-05-18 19:57:21 +02:00
Gregory Hainaut
388f46b577
gsdx-png: use array interface instead of set_pixel
...
Doc says it is "non-checking equivalent of set_pixel". Still slow as ass
At least syntax is nicer
2015-05-18 17:25:14 +02:00
Gregory Hainaut
a4d6722b26
gsdx-thread: add a CAPACITY parameter to GSJobQueue
2015-05-18 17:08:18 +02:00
Gregory Hainaut
e7665ee7dd
gsdx-linux-recorder: upgrade code to use n threads
...
Unfortunately it requires too much memory (easily 6GB)
2015-05-18 16:56:44 +02:00
Gregory Hainaut
cff168e002
gsdx-linux-recorder: implement multithread to save the image
...
Currently only a dedicated thread. It is still too slow!
2015-05-18 16:56:44 +02:00
Gregory Hainaut
012f1b4f05
gsdx-thread: remove deprecated boost code
2015-05-18 16:55:49 +02:00
Gregory Hainaut
19d9349b0b
gsdx-debug: remove old assert
2015-05-18 16:45:38 +02:00
pgert
c9508298b4
Update GSCrc.cpp
2015-05-18 16:37:28 +02:00
Akash
70b8772bb4
enables Anisotropic filtering option for Opengl (Hardware mode) [Windows UI]
2015-05-18 19:16:22 +05:30
Gregory Hainaut
503459798a
gsdx-linux: add a basic implementation to record the gameplay as png file
...
The idea was to merge them later with ffmpeg or other external tool
It kinds of work but current fps is around 2 !!! So not really usable
The speed issue is related to PNG.
So either the code to store pixels data must be optimized. Or maybe it misses some MT loves :)
2015-05-18 11:56:20 +02:00
Gregory Hainaut
2783da4a22
gsdx-ogl: use a local buffer to store offscreen texture
...
It will allow to read texture in // (and potentially could be useful
for recording)
2015-05-18 11:29:04 +02:00
Gregory Hainaut
79a9254894
gsdx-ogl: print some error messages if extenal shader is wrongly configured
2015-05-18 10:56:32 +02:00
Gregory Hainaut
540717b295
gsdx-ogl: don't force logz only on debug build
2015-05-18 07:24:26 +02:00
Gregory Hainaut
5c046180a1
cmake: properly add detection of lzma
...
Code is 100% optional.
Code will allow be enabled if lzma-dev is installed at compile time
2015-05-17 22:08:10 +02:00
Gregory Hainaut
98dde32dc0
gsdx-replayer-linux: use new code to allow loading of .gs.xz dump
...
A bit slower at startup but it saves a lots of disk space!
Reduce the size of my gs collection of 11GB :)
2015-05-17 22:08:10 +02:00
Gregory Hainaut
e93f780268
gsdx-replayer-linux: separate a bit parsing and executing code
...
It would ease the porting of the code to read xz file
2015-05-17 22:08:10 +02:00
Gregory Hainaut
86e3c18c33
gsdx-linux: add code to read xz file
...
Linux only to avoid the extra dependency on windows
2015-05-17 22:08:10 +02:00
Gregory Hainaut
5cfb496700
gsdx-ogl: only open debug file once
2015-05-17 14:43:56 +02:00
Gregory Hainaut
7979dec5b0
gsdx-ogl: optimize colclip 0
...
Currently colclip uses 2 passes to wrap the output of blending unit
However some blending mode are only a plain copy (of 0 or Cs or Cd).
So no overflow of [0:255], no need to wrap it
Note: I saw those cases in GoW.
2015-05-17 13:05:08 +02:00
Gregory Hainaut
6ced837360
gsdx-debug: add some PERF info in trace
...
The idea is to detect easily effect that are known to be slow on opengl
2015-05-17 13:05:08 +02:00
Gregory Hainaut
818412ba26
gsdx-debug: fix a crash in trace
2015-05-17 13:05:08 +02:00
Gregory Hainaut
b1ea081fc3
gsdx-debug: improve tracing interface
...
Basically move the format and c_str() in the macro
2015-05-17 13:05:08 +02:00
Gregory Hainaut
b8aa5f8f80
gsdx-debug: more trace for the texture cache
2015-05-17 13:05:08 +02:00
Gregory Hainaut
8a73849531
gsdx-ogl: enable multithread driver by default for nvidia
...
+ add a linux gui option to disable it (for test purpose)
2015-05-16 15:22:20 +02:00
Gregory Hainaut
c567198967
gsdx-ogl: replaced draw_count by s_n
...
This way error message is aligned with everything else :)
It is not perfect (normally it must be done in start of main draw)
2015-05-16 13:59:13 +02:00
Gregory Hainaut
62e0e6a067
gsdx: remove deprecated code
...
Core was fixed to call GSFifo in the good thread
2015-05-16 13:52:16 +02:00
Gregory Hainaut
2165c68938
oups forget a couple of break
2015-05-16 13:26:55 +02:00
Gregory Hainaut
02b478dfbc
gsdx: plug the new PNG wrapper
...
Drop various duplicated code :)
2015-05-16 12:47:28 +02:00
Gregory Hainaut
8cd533304c
gsdx: new dependency on linux => png++
...
Note: it is only header file that wrap the standard png (which was
already mandatory for wx/sdl)
2015-05-16 12:47:28 +02:00
Gregory Hainaut
cab59587e8
gsdx: add a PNG wrapper
...
Normally it supports all formats but I didn't have luck with 16 bits depth gray
2015-05-16 12:32:05 +02:00
Gregory Hainaut
3f278382a1
gsdx-debug: dump all drawing register
...
Thanks PERL
2015-05-16 11:16:33 +02:00
Gregory Hainaut
8341055f3e
gsdx-ogl: don't enable ogl_texture_storage on catalyst
2015-05-16 00:31:25 +02:00
Gregory Hainaut
a2d605be0b
gsdx: copy past mistake
...
Let's always increment the s_n counter
2015-05-16 00:31:25 +02:00
Gregory Hainaut
cfddcb7a93
gsdx-ogl: typo
2015-05-16 00:31:25 +02:00
Gregory Hainaut
0f01ba4c46
gsdx-ogl: mega boost
...
Enable Nvidia multi thread driver optimization
Enable ogl_texture_storage by default (requires for the speed boost
, later the option will be removed)
2015-05-16 00:31:25 +02:00
Gregory Hainaut
a1bfb237e6
Partially Revert "gsdx-ogl: drop support of GL_ARB_clear_texture extension"
...
This reverts commit 03e72781aa
.
Let's add back the clean texture pointer
I want to test it on
1/ DSA
2/ MT driver
2015-05-16 00:31:25 +02:00
Gregory Hainaut
28bb64aae8
gsdx: sed/dr/dRect/
2015-05-15 20:49:32 +02:00
Gregory Hainaut
445c28fe97
gsdx: sed/sr/sRect/
2015-05-15 20:47:14 +02:00
Gregory Hainaut
d566bb2a23
gsdx: sed /st/sTex/
2015-05-15 20:45:31 +02:00
Gregory Hainaut
6a9e425308
gsdx: sed /dt/dTex/
2015-05-15 20:44:15 +02:00
Gregory Hainaut
d870188d21
gsdx: sed/o/off/
2015-05-15 20:40:09 +02:00
Gregory Hainaut
27d485a940
drop a file that was wrongly commited
2015-05-15 20:34:09 +02:00
Gregory Hainaut
6166c95325
gsdx-ogl: protect PBO with fence
...
Safer and doesn't impact perf too much.
2015-05-15 18:32:47 +02:00
Gregory Hainaut
a5e424512c
gsdx-ogl: really avoid consecutive clean
2015-05-15 16:00:46 +02:00
Gregory Hainaut
84c3592fbe
gsdx-debug: more debug message/group
2015-05-15 16:00:45 +02:00
Gregory Hainaut
08291aed0c
gsdx-ogl: color state impact the clean command
2015-05-15 15:25:45 +02:00
Gregory Hainaut
613e215c73
gsdx-ogl: add some note for the persistent buffer + add a flush
...
Persistent is slower (at least on my gs dump) because data is put
in host instead of the video memory
I don't understand why upload the data directly to the video memory
is faster
2015-05-15 15:25:45 +02:00
Gregory Hainaut
5628bfb20c
gsdx-ogl: drop old code
...
I have group so it doesn't pollute anymore gl trace
2015-05-15 15:25:45 +02:00
Gregory Hainaut
6d8695127f
gsdx-recorder: use recursive mutex
2015-05-14 11:56:07 +02:00
Gregory Hainaut
bd96a73580
gsdx-debug: trace texture cache hit/miss/removal
...
Actually only a small part but I think it is enough to help debugging
tc issue.
Only enable it on debug because it is quite verbose
2015-05-13 09:01:04 +02:00
Gregory Hainaut
5e9a3a424e
Merge pull request #479 from PCSX2/gsdx-texture-cache
...
gsdx: value was wrongly overwritten
2015-05-13 08:08:46 +02:00
Gregory Hainaut
b7a9465963
gsdx-ogl: update the device to use the new texture flags
...
Hopefully it will increase a bit the speed
2015-05-12 18:18:20 +02:00
Gregory Hainaut
3e784d57e8
gsdx-ogl: add some flags to trace texture state
...
goal1: avoid 2 consecutives clean of the render target
goal2: only invalidate texture correctly
2015-05-12 18:03:06 +02:00
Gregory Hainaut
2e34d48e97
gsdx-ogl: add a virtual GetID method for texture
...
Much more readable
2015-05-12 17:41:41 +02:00
Gregory Hainaut
e0012811ae
gsdx-debug: more debug info in gl trace
2015-05-12 12:36:34 +02:00
Gregory Hainaut
4e222f18cd
gsdx-ogl: it was a bad idea to use DSA on fb
...
Actually I'm not sure we can mix both dsa/standard approach
2015-05-11 18:04:16 +02:00
Gregory Hainaut
f37f3cb3cf
gsdx-ogl: improve texture uploading
...
Initially we copy pitch by line in the PBO and tell the dma to only
use the first valid byte.
Now, we only copy useful data to the PBO. It reduce the copy and PBO memory requirement.
It seems a bit faster on native resolution
2015-05-11 16:32:13 +02:00
Gregory Hainaut
4e2e9aa56c
gsdx-ogl: always read the first attachment of the fbo
2015-05-11 16:28:34 +02:00
Gregory Hainaut
cb6e8a7d6a
gsdx-linux: Don't enable EGL by default
...
I was hoping that EGL become a standard much more faster. Currently it is an useless dep
so let's disable it by default.
2015-05-11 15:33:40 +02:00
Gregory Hainaut
643b1647c4
gsdx-gui-linux: add some tooltips for the hw options
2015-05-11 14:12:41 +02:00
Gregory Hainaut
921fa3bab8
gsdx-ogl/linux: drop fba option
...
It is useless as DX11
2015-05-11 13:57:26 +02:00
Gregory Hainaut
f0de7d6386
gsdx-debug: add 2 extra frames in GS dump
...
Initially I was afraid of the size increase but it can be
higly compressed.
Sometimes image was computed inside a RT but never outputed to
the screen which remains black. It is annoying to see the glitches
2015-05-11 13:45:24 +02:00
Gregory Hainaut
b3d8981a22
gsdx: link replayer to png to avoid link failure
2015-05-11 13:24:40 +02:00
Gregory Hainaut
eff4ac3e4a
gsdx-ogl: update UBO hint
...
On Nvidia, DYNAMIC is a bit faster.
2015-05-11 12:35:41 +02:00
Gregory Hainaut
59f7e4d2dc
Revert "gsdx linux: drop aligned stack option"
...
This reverts commit 2dcffe7fa4
.
2015-05-11 12:15:38 +02:00
Gregory Hainaut
2dcffe7fa4
gsdx linux: drop aligned stack option
...
I think the bug was related to a wrong declaration of exported function without stdcall
2015-05-11 11:35:34 +02:00
Gregory Hainaut
286fe4db8c
cmake/gsdx: check png++ is installed to support png image
...
Otherwise fallback to bmp file
2015-05-11 11:32:13 +02:00
Gregory Hainaut
30e3956ea7
gsdx-ogl: avoid issue with apitrace
...
The tool doesn't support NaN value so be sure the buffer is correctly initialized
2015-05-11 11:19:18 +02:00
Gregory Hainaut
1523b9534f
gsdx-debug: compact the code
2015-05-11 11:19:00 +02:00
Gregory Hainaut
51ed3e63e9
glsl: oups forget to remove a line
2015-05-10 10:39:23 +02:00
Gregory Hainaut
5565544ba6
gsdx-ogl: DATE with texture barrier
...
Much faster for small batch that write the alpha value. Code can
be enabled with accurate_date option.
Here a summary of all DATE possibilities:
1/ no overlap of primitive
=> texture barrier (pro no setup of stencil and single draw)
2/ alpha written
=> small batch => texture barrier (primitive by primitive). Done in N-primitive draw calls.
(based on GL_ARB_texture_barrier)
=> bigger batch => compute the first good primitive, slow but only 2 draw calls.
(based on GL_ARB_shader_image_load_store)
=> Otherwise there is the UserHacks_AlphaStencil but it is a hack!
3/ alpha written
=> full setup of stencil ( 2 draw calls)
2015-05-09 19:54:01 +02:00
Gregory Hainaut
390811f414
gsdx-debug: Dump in PNG on linux & dbg/dev build
...
Keep BMP for standard user of release build
2015-05-09 18:41:17 +02:00
Gregory Hainaut
3c7a3a3d83
gsdx-ogl: disable accurate option if driver doesn't support it
2015-05-09 18:41:17 +02:00
Gregory Hainaut
7fac25edb0
glsl: add shader implementation of impossible blend
...
Issue: I don't know if destination alpha value must be multiplied by 2.0f
2015-05-09 15:02:34 +02:00
Gregory Hainaut
f029e4763f
gsdx-ogl: add the alpha value in a constant buffer
2015-05-09 15:02:34 +02:00
Gregory Hainaut
472608b879
gsdx-ogl: add accurate blending implementation
2015-05-09 15:02:13 +02:00
Gregory Hainaut
1e8aea033c
gsdx-ogl: add a wrapper to control the drawing of primitives
...
No barrier => draw all primitives
Barrier but without overlap => draw all primitives
Barrier with overlap => draw primitive by primitve
It will ease the implementation of accurate blending and why not date too
2015-05-09 15:01:39 +02:00
Gregory Hainaut
625d65d4b4
gsdx-ogl: encode the bogus id as shader parameter
2015-05-09 14:55:44 +02:00
Gregory Hainaut
bc5de8df6b
gsdx-ogl: disable FF blend when blend is done in shader
2015-05-08 20:28:50 +02:00
Gregory Hainaut
380e420cdd
gsdx-ogl: add a blend parameter to shader
2015-05-08 20:28:50 +02:00
Gregory Hainaut
9023f5f0db
glsl: drop useless ifndef
...
I often mix them with the real value...
.
2015-05-08 19:28:17 +02:00
Gregory Hainaut
8e1db43431
gsdx-debug: debug stuff
2015-05-08 19:28:17 +02:00
Gregory Hainaut
3c66da4d82
gsdx: remove old code
2015-05-08 19:28:16 +02:00
Gregory Hainaut
1addae1993
gsdx-ogl: don't use extra shader for sprite hack
...
Atst == 2 && sprite_hack is equivalent to Atst == 1
It frees a bit in the shader selector, and reduces shader combinations.
2015-05-08 19:28:16 +02:00
Gregory Hainaut
b490085214
gsdx-ogl: add 2 options in the GUI to ease testing
...
accurate_date => use an emulated stencil to compute destination alpha
test (could be slow)
accurate_blend => do nothing (future)
2015-05-08 19:28:16 +02:00
Gregory Hainaut
4c91bab00e
gsdx: fix compilation error on release build
2015-05-08 19:28:00 +02:00
Gregory Hainaut
6d31124d3a
gsdx-debug: only enabled advance gl debugging on linux
...
It will avoid some crash on windows for driver that doesn't support
the extension.
Make debug support mandatory for debug build on linux.
2015-05-08 09:54:34 +02:00
Gregory Hainaut
e87d129b09
gsdx-ogl: more verbose debug
2015-05-08 01:01:01 +02:00
Gregory Hainaut
d6448183d7
gsdx-ogl-debug: insert error message in GL stream
...
This way, you can see your message in the GL debugger
2015-05-08 00:16:31 +02:00
Gregory Hainaut
544a923e32
gsdx: Add an option to control auto skip of depth texture
...
Default is 1 if the user enable hack.
It fixes GTA sun effect and likely others bugs.
Please someone add a windows GUI option.
2015-05-07 23:54:22 +02:00
Gregory Hainaut
51a67029cf
gsdx-ogl: add an option to print gl error messages
2015-05-07 23:54:22 +02:00
Gregory Hainaut
7518b2ef21
gsdx-gui-linux: add debug option in the gui
...
* Only for debug/dev build
* look awful (expand/fill) but otherwise it is nice for the debug ;)
2015-05-07 23:54:22 +02:00
Gregory Hainaut
d20501739f
Merge pull request #528 from ssakash/patch-1
...
sync with GSdx.ini variable.(fix earlier typo)
2015-05-07 22:15:41 +02:00
Gregory Hainaut
fda746ff93
gsdx-gui-linux: support 3 states hack options
...
Based on a Combo Box on linux. As good as 3 states check buttons
2015-05-07 22:13:49 +02:00
Gregory Hainaut
d69ffa9b8b
gsdx-gui-linux: move remaining table filling into small functions
2015-05-07 22:13:49 +02:00
Gregory Hainaut
b39b9c9f55
gsdx-gui-linux: use callback everywhere
...
Note: texture offset doesn't work nicely (you need to press enter
to validate the change)
2015-05-07 22:13:49 +02:00
Gregory Hainaut
d428e0d19d
gsdx-gui-linux: move table filling into separate function
...
It is much easier to read this way. I need to use callback for the remaining
object before I can move everything out of main function.
2015-05-07 22:13:49 +02:00