Gregory Hainaut
71e517108d
gsdx-ogl: fix colclip
...
Sotc shadow and likely various games :)
Thanks to pseudo
2015-04-30 23:08:05 +02:00
Gregory Hainaut
25997647f2
gsdx-ogl: add ENABLE_OGL_PNG_OPAQUE to dump texture without alpha
...
Alpha is nice but fully transparent texture suck
The best will be an image viewer that can toggle the alpha channel
2015-04-30 23:06:54 +02:00
Gregory Hainaut
39a5d4c839
gsdx: add PNG support for SW renderer
...
Easier to compare
2015-04-30 20:13:24 +02:00
Gregory Hainaut
b65a62096f
gsdx-ogl: drop support of ENABLE_OGL_DEBUG
...
Stencil can be read by GL debugger due to correct mask configuration
2015-04-30 20:02:51 +02:00
Gregory Hainaut
8a52fdab57
gsdx-ogl: allow to dump texture as png file
...
-- slower (but that a debug feature)
++ smaller (40x-50x)
++ native support of alpha
Require libpng++ and the define ENABLE_OGL_PNG
Note: depth is not supported yet.
2015-04-30 20:02:50 +02:00
Gregory Hainaut
ee19a2789c
gsdx: move invalidation from GSDevice to GSTexture
...
Much cleaner this way
2015-04-30 19:55:57 +02:00
Gregory Hainaut
2bd9043657
gsdx-ogl: improve debug of stencil
...
Note: ENABLE_OGL_STENCIL_DEBUG could be dropped now that I can read the stencil properly
2015-04-30 19:55:57 +02:00
Gregory Hainaut
7887d7b5a5
gsdx-ogl: use less verbose code
2015-04-30 19:55:41 +02:00
Gregory Hainaut
f0181d98fd
gsdx-ogl: save the texture state
2015-04-30 09:57:30 +02:00
Gregory Hainaut
0ab0c6cfba
gsdx: verbose debug option
...
Print opengl error message on stderr
Rename Debug.txt into GSdx_opengl_debug.txt
2015-04-27 19:30:03 +02:00
Gregory Hainaut
eaa0dae305
glsl: drop invariant qualifier
...
Fix issue #510 and potentially it allows the compiler to better optimize the code
2015-04-27 18:52:55 +02:00
Gregory Hainaut
46ff4dc3d3
gsdx-ogl: hardware unit only support normalization of 4 bytes...
...
(At least on recent AMD GPU)
2015-04-27 18:51:59 +02:00
Gregory Hainaut
301fe869c7
glsl: improve the logz handling
...
This way only 0 and 1 will conflict
2015-04-26 17:51:33 +02:00
Gregory Hainaut
768ae342c3
gsdx: move buffer check after allocation
2015-04-26 17:51:06 +02:00
Gregory Hainaut
346ef1eec2
gsdx-ogl: ouch! Properly check the creation of vertex buffers
2015-04-26 11:01:55 +02:00
Gregory Hainaut
6a3250cad2
gsdx-ogl: fix logz management (FFXII)
...
The issue is that z+1 overflow if z is UINT max
log2(z) overflow if z is 0
So let's use an or 1 to avoid both overflow
2015-04-25 20:23:26 +02:00
Gregory Hainaut
ee244071fa
gsdx-ogl: use 64 bits counter + fix division factor
...
I also added a counter of the real size of the texture.
I have a bad overhead for pbo transfer
2015-04-25 14:18:21 +02:00
Gregory Hainaut
00e62919c5
gsdx-ogl: use countof macro instead to hardcode the size
2015-04-25 13:06:02 +02:00
Gregory Hainaut
47a0026b60
gsdx-ogl: print the bandwidth of uniform
2015-04-25 13:00:03 +02:00
Gregory Hainaut
f2f59544d2
gsdx-ogl: early bind vertex array object
...
Creation of buffer will generate a bind in BufferStorage mode. It is just to be safe.
2015-04-25 12:50:12 +02:00
Gregory Hainaut
15ae9996bb
glsl: format white space + comment
2015-04-25 12:50:12 +02:00
Gregory Hainaut
757726bb91
gsdx-ogl: allow to invalidate the texture
...
It just a hint to the driver to avoid any useless transfer
I don't expect any change but it is free so why not ;)
2015-04-25 12:50:12 +02:00
Gregory Hainaut
75817bb27b
gsdx-ogl: add a quick and dirty DSA layer emulation
...
The global idea is to use
1/ bind in tight loop
2/ DSA otherwise (to avoid any binding in tight loop)
2015-04-25 12:50:11 +02:00
Gregory Hainaut
eb257d9295
gsdx-ogl: add dsa function place holder
2015-04-25 12:50:11 +02:00
Gregory Hainaut
baf84b98c4
gsdx-ogl: add override_GL_ARB_texture_barrier option
...
To ease regression test.
2015-04-25 09:59:25 +02:00
Gregory Hainaut
b12eb45bb7
gsdx-ogl: try to avoid crash on fglrx windows
2015-04-25 09:50:19 +02:00
Gregory Hainaut
f0182f9a66
windows requires APIENTRY (=> stdcall)
2015-04-25 01:32:09 +02:00
Gregory Hainaut
7b0775d887
gsdx-ogl: add some fences to protect the upload of vbo buffer
...
This way ogl_vertex_storage must be safer to activate
And it brings a nice performance boost (game with lots of primitives and
reasonable upscaling)
SotC testcase 4x: 61fps => 78fps
2015-04-24 23:15:19 +02:00
Gregory Hainaut
36514bd95f
glsl: fog is a single byte
...
Give a chance to the driver to optimize if possible
2015-04-24 21:37:37 +02:00
Gregory Hainaut
c207632e49
gsdx-ogl: improve date performance for GL45
...
If there is no overlap, it is allowed to directly read from the render target.
On SotC testcase with 6x scaling: 30fps -> 40fps
Note: it requires GL_ARB_texture_barrier extension so be sure to have a recent driver
Note2: it requires a lots of testing too
Open question: in case of complex date (written alpha)
Will it be faster to split the draw call into multiple call with no
primitive overlap
2015-04-24 21:12:33 +02:00
Gregory Hainaut
795ae50ecd
gsdx-ogl: fix the recently broken advance date feature
...
Now it is really working with a 2 stages shaders but it is still slow.
2015-04-24 20:13:38 +02:00
Gregory Hainaut
672e3f9533
gsdx-ogl: use DSA for texture management
...
Yeah code is much nicer :)
2015-04-24 19:34:17 +02:00
Gregory Hainaut
6d31d1e0d0
gsdx-ogl: add a layer to emulate DSA for texture
...
Framebuffer function will be nice too
2015-04-24 19:32:00 +02:00
Gregory Hainaut
f71eb171cf
gsdx-ogl: add glTextureBarrier function pointer
...
Could be useful
2015-04-24 18:35:01 +02:00
Gregory Hainaut
6e386df535
gsdx-ogl: avoid to clean fully texture in DATE
...
Is is useless and it has a small impact on performance for big upscale
2015-04-24 18:32:08 +02:00
Gregory Hainaut
03e72781aa
gsdx-ogl: drop support of GL_ARB_clear_texture extension
...
Extension is a bit slower.
We use it to clear the RT but we generally use it right away so
we don't avoid the FB attachment.
2015-04-24 18:15:58 +02:00
Gregory Hainaut
89d5e5637c
glsl: use an explicit cast insead of notEqual function
...
If the compiler didn't optimize the code, it will be a bit faster
2015-04-24 18:01:25 +02:00
Gregory Hainaut
56836561f4
glsl: replace runtime condition by preprocessor condition
...
It might be an easier work for the compiler
I didn't replace all occurences to keep readability
2015-04-24 17:51:29 +02:00
Gregory Hainaut
4bb8d15228
gsdx: be more verbose on title and bandwidth debug
2015-04-24 17:13:56 +02:00
Gregory Hainaut
258b73409c
gsdx-ogl: update flags for buffer storage
...
Fix issue with Mesa driver
2015-04-23 21:10:43 +02:00
Gregory Hainaut
f6652e9a50
gsdx-ogl: disable slow and buggy code until I found a better solution
...
ogl_texture_storage 1 creates texture corruption.
Advance date is too slow, code need to be updated (properly) to uses 2 passes only not 3
Maybe one could be enough (sometimes)
2015-04-22 09:33:41 +02:00
Gregory Hainaut
b32f808fd4
gsdx-ogl: increase the number of pbo
...
It would cost 16MB of extra storage on the GPU but it might
reduce conflict of texture upload.
2015-04-22 00:40:38 +02:00
Gregory Hainaut
bd6ea17bdc
gsdx-ogl: speed improvement for DATE
...
DATE is implemented in 2 ways.
1/ with stencil
2/ purely in FS (sw)
I kept method 1 to reduce the work on method 2. It sucks for performance.
So it would be either 1 or 2.
Note: DATE has a big impact on higher upscaling
Note2: you can disable the 2nd method with this configuration parameter
override_GL_ARB_shader_image_load_store = 0
2015-04-22 00:36:34 +02:00
Gregory Hainaut
15dcf07b3b
revert previous commit
...
Not better, worst slower.
I'm afraid I will need proper fencing
2015-04-22 00:32:46 +02:00
Gregory Hainaut
8386b427ea
gsdx ogl: restore GL_MAP_COHERENT_BIT for texture upload
...
I hope to fix the texture upload corruption
I hope that impact on perf will remain small
2015-04-21 23:34:26 +02:00
Gregory Hainaut
19eb1f00d1
gsdx ogl: flush vbo range instead of barrier
...
For testing purpose. I don't know which one is better.
It seems flushing have less fps fluctuation than barrier.
2015-04-21 21:44:50 +02:00
Gregory Hainaut
ce98276322
gsdx-ogl: improve speed of vertex streaming
...
Note yet enabled because I'm afraid of data corruption but feel free to test it
The option:
ogl_vertex_storage = 1
Performance note (warm cache+gs replay on colin3)
60 fps -> 76 fps
2015-04-20 09:38:03 +02:00
Gregory Hainaut
62489f42f1
gsdx-ogl: add an optimization note for later
...
Only 1 byte of fog is useful
2015-04-20 07:18:09 +02:00
Gregory Hainaut
6d253c0b8f
glsl: fix debugging of tex coordinate in apitrace
2015-04-20 07:18:08 +02:00
Gregory Hainaut
31f8c065db
gsdx-ogl: implement a new hack UserHacks_UnscaleSprite for opengl
...
UserHacks_UnscaleSprite = 1 will unscale flat sprites
UserHacks_UnscaleSprite = 2 will unscale all sprites (don't work well so far)
The idea of the hack is to redo the interpolation of texture coordinate
based on the non-upscaled pixel position.
It avoids various glitches but sprites aren't upscaled anymore (so no
more anti-aliasing, potentially a coefficient can be added).
2015-04-20 07:18:08 +02:00