Commit Graph

123 Commits

Author SHA1 Message Date
Jonathan Li fecf8e3ed2 gsdx:ogl: Call swap interval function on rendering thread
The swap interval function must be called on the same thread that
rendering takes place on. This fixes an issue where the turbo speed and
frame limiter hotkeys fail to disable vsync when the OpenGL renderer is
used.
2017-08-30 21:08:54 +01:00
Gregory Hainaut 2e4643a398 gsdx ogl: factorize SetVSync
Move common logic into base class
Add API to handle late Vsync (only stub)
2017-08-05 10:59:48 +02:00
Gregory Hainaut 2204885fbb gsdx ogl: factorize common context init code 2017-08-05 10:56:54 +02:00
Gregory Hainaut ec63b04719 gsdx: only print once OpenGL status message
All credits go to @lightningterror

Fix #1882
2017-05-11 22:35:31 +02:00
lightningterror 820919c0a9 GSdx ogl sw: Move GL_ARB_copy_image to optional
Move GL_ARB_copy_image to optional for OpenGL SW render.
It will allow Ivy Bridge to work with OpenGL SW as it's not required.

Sandy Bridge is not yet tested , would be nice if someone could test.
2017-04-06 18:14:59 +02:00
Gregory Hainaut 5b91dc45e0 gsdx ogl: reduce requirement for SW renderer
Clip Control is only used for the HW renderer.

It will help Nvidia DX10 GPU on Windows. Potentially old AMD GPU too.
Unfortunately Ivy bridge still misses texture copy

Note on Linux, you can use the free Mesa driver.

Otherwise, it is time to save money for a future upgrade :)
2017-04-04 18:37:26 +02:00
Gregory Hainaut 714fcaaadd gsdx ogl: move the validation of the gl context in the window 2017-02-26 19:09:16 +01:00
Gregory Hainaut f3adf4bf57 gsdx ogl: texture barrier is optional too 2017-02-18 20:11:56 +01:00
Gregory Hainaut 193d9f838b gsdx ogl: mark 2 DSA functions as optional 2017-02-18 19:44:17 +01:00
Gregory Hainaut cdb71101a1 gsdx ogl: As Intel is too cheap to provide GL_ARB_direct_state_access on theirs expensive iGPUs
Add a "slower" emulation of the extension...

Hopefully it will allow to start openGL on haswell (maybe broadwell) and later.
2017-02-17 17:44:26 +01:00
Gregory Hainaut 81adc3ef4d gsdx ogl: don't use per buffer blending
It increases the number of state that driver must handle.
2017-01-20 18:22:52 +01:00
Gregory Hainaut 1b9b47dd6a gsdx mipmap:ogl: add capabilities to automatically generate mipmap layer 2016-10-13 20:16:38 +02:00
Gregory Hainaut d7c1faf563 gsdx ogl: add GPU timers to measure time between 2 vsync
So far only basic stuff (min/mean/max frame rendering time)
2016-06-26 15:34:36 +02:00
Gregory Hainaut ff3d9bd373 gsdx ogl: add function pointer to name object
It could be nice to ease debug
2016-06-09 18:27:58 +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 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 caacb1dc9f gsdx-ogl: add texure clear function (GL4.4) 2016-05-15 14:57:11 +02:00
Gregory Hainaut 8217c717f6 gsdx-ogl: require GL_KHR_debug
Will reduce the slowdown on debug build
2016-04-21 09:28:44 +02:00
Gregory Hainaut 9598417f42 gsdx-ogl: GL_ARB_copy_image is now mandatory 2016-04-21 09:28:44 +02:00
Gregory Hainaut 7aaf36d24d gsdx ogl: add function pointer for framebuffer no attachment extension
Could be useful in the future
2016-04-10 11:31:40 +02:00
Gregory Hainaut d533c393b2 gsdx ogl: rely on DSA API 2016-04-10 11:31:40 +02:00
Gregory Hainaut cef76de547 gsdx ogl: GL_ARB_direct_state_access is now mandatory 2016-04-07 22:27:28 +02:00
Gregory Hainaut a62019a3fd gsdx-ogl: found_GL_ARB_buffer_storage is now mandatory 2016-04-07 22:17:22 +02:00
Gregory Hainaut 52e3c3516d gsdx-ogl: GL_ARB_separate_shader_objects is now mandatory 2016-04-07 22:11:35 +02:00
Gregory Hainaut f751f70b1e gsdx ogl: GL_ARB_clip_control is now mandatory 2016-04-07 21:57:54 +02:00
Gregory Hainaut dfb4b5a339 gsdx-ogl: GL_ARB_texture_barrier is now mandatory
(GL4.5 extension)
2016-04-07 21:51:37 +02:00
Gregory Hainaut de7d127c52 gsdx-ogl: create a small macro to load function pointers 2016-03-12 15:52:36 +01:00
Gregory Hainaut 95ef4e20f8 gsdx-ogl: load GL_ARB_viewport_array function pointer for the future 2016-03-12 15:52:36 +01:00
Gregory Hainaut 7b8616ac7b gsdx-ogl: add function pointer for query object 2016-03-06 13:39:24 +01:00
Gregory Hainaut 9ba949c2d9 gsdx-debug: support correct logging on mesa
By default low severity message were disabled. (thanks to be open source)
2015-10-24 14:14:37 +02:00
Gregory Hainaut f99882c61c gsdx-ogl: keep gl_ActiveTexture & gl_BlendColor (fix MS compilation)
It seems openGL ABI isn't exactly the same between Windows and my PC.
2015-10-18 11:18:19 +02:00
Gregory Hainaut 0958b9db8e gsdx-ogl: use the standard openGL name
Function pointer was mangled to avoid any collision. Nowadays all symbols
are hidden so no risk of collision.

Syntax is nicer beside it would allow to put back GLES3.2. I think it
supports most of the used extension.

glActiveTexture & glBlendColor are provided without symbol query.
2015-10-17 17:05:15 +02:00
Gregory Hainaut 3145031c05 gsdx-ogl: add glBindBufferRange function pointer 2015-08-15 20:06:34 +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 b4c04ed00a gsdx-ogl: wipeout subroutine code
Code was completey bitrotten
Code was a partial test (and yet 500 lines already)
Shader is more and more complex and multithreading support greatly
reduce the cost of shader switch
2015-07-17 21:08:49 +02:00
Gregory Hainaut e245b27c97 gsdx-ogl-debug: allow to dump various ps shader
Nvidia allows to get the ASM of the shader of the compiled shader. It is useful
to check the performance.

It also allow me to compile most of shader code path for QA

Dump is enabled in linux replayer + debug_glsl_shader = 2
2015-07-17 21:08:48 +02:00
Gregory Hainaut f3c0c1bb88 gsdx-ogl: TexParamami is provided in core 2015-06-25 10:25:57 +02:00
Gregory Hainaut 8393ba56d6 gsdx-ogl: rework palette texture handling
Redirect the red channel to alpha channel for 8 bits texture.

It avoid special management in the shader
2015-06-24 19:50:09 +02:00
Gregory Hainaut 237ffcf796 gsdx-ogl: Make GL_ARB_draw_buffers_blend optinal for limited DX10 drivers 2015-06-10 22:55:27 +02:00
Gregory Hainaut 9fa473a57d gsdx-ogl: glDebugMessageCallback is optional
Not even used in release build
2015-05-31 17:55:34 +02:00
Gregory Hainaut 009dd103ae gsdx-ogl: protect the trace with if statement
And mark the function as optional
2015-05-30 09:58:46 +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 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 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 cc4713d379 gsdx-debug: extend ogl debug capabilities
Group opengl calls into a nice name.

Apitrace shows them in a tree format that support folding. Previously it
was a long flat list (10K-40K of lines by frame)

I align the call number with the internal s_n variable. This way it is
easy to map GSdx dump output with the GL debugger :)
2015-05-06 19:09:13 +02:00
Gregory Hainaut 335695bd0e purge GLES from GSdx !
mobile will use vulkan (or any new API) anyway
2015-05-01 20:02:17 +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 eb257d9295 gsdx-ogl: add dsa function place holder 2015-04-25 12:50:11 +02:00
Gregory Hainaut b12eb45bb7 gsdx-ogl: try to avoid crash on fglrx windows 2015-04-25 09:50:19 +02:00