44 Commits

Author SHA1 Message Date
twinaphex
e43c55bef3 (GLCore) Don't use video_driver_get_size 2019-08-13 12:23:02 +02:00
twinaphex
4a09f66c7b (GL drivers) Cleanups 2019-08-12 22:04:27 +02:00
twinaphex
ed6f682754 Make code more similar to gl2 video driver 2019-08-12 21:07:12 +02:00
twinaphex
fdd45f1f6b (glcore) memset is unnecessary 2019-08-12 20:55:46 +02:00
twinaphex
2a631bd031 (glcore) Turn this into macro 2019-08-12 20:52:33 +02:00
twinaphex
a45c9b6eb4 Duplicate aspect ratio code that was being ran twice 2019-08-12 12:52:40 +02:00
twinaphex
65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +02:00
twinaphex
d905986a52 Rename functions - change rarch_ prefix to retroarch_ 2019-07-20 12:43:43 +02:00
twinaphex
09f5d2c95d Fix compilation when configuring with --disable-overlay 2019-07-10 05:39:50 +02:00
Twinaphex
a9a1ff0047
Merge pull request #8979 from LazyBumHorse/fix_dolphin_crash
workaround for crash due to glcore not always using at least OpenGL 3.2
2019-06-18 20:18:14 +02:00
LazyBumHorse
c20c67bd3a proper shader compatibility checks
- move shader flags from the video drivers to the context drivers
 - rework config_load_shader_preset() from configuration.c into retroarch_load_shader_preset() in retroarch.c with proper compatibility check
 - implicitly call retroarch_load_shader_preset() in retroarch_get_shader_preset() once per core/content life cycle
 - use video_shader_is_supported() instead of video_driver_test_all_flags() where appropriate
 - remove GFX_CTX_FLAGS_NONE because it is meaningless
2019-06-18 13:46:41 +02:00
LazyBumHorse
692dc9f6a9 refactor shader checks affected by last commit and more:
- gl.c: refactor backend fallback into more general gl2_get_fallback_shader_type
 - d3d9-12, gl_core, gx2_gfx, gl, vulkan: more consistent shader init and `set_shader` behavior
 - configuration.c: remove check_shader_compatibility
 - shader_glsl.c, shader_gl_cg.c: use `video_shader_get_type_from_ext`
 - shader_gl_cg.c: add shader type check with fallback to stock like in shader_glsl.c
 - menu_shader.c: use `enum rarch_shader_type` instead of `unsigned`
 - video_shader_parse.c: add `video_shader_to_str` for easier logging
 - remove `type` from `struct video_shader`, which was always set to CG and wrongly used in lang_process.cpp's `slang_process()` (has no further consequences because the code is unused)
2019-06-18 13:44:19 +02:00
LazyBumHorse
42e35c825f refactor some video_shader_parse functions
- video_shader_parse_type()'s fallback only worked for NULL paths and was wrongly used, now returns RARCH_SHADER_NONE like video_shader_get_type_from_ext().
 - video_shader_get_type_from_ext() should not be checking video driver flags, this is instead done by video_shader_is_supported()
 - video_driver_get_all_flags() did not actually 'get' flags, changed to video_driver_test_all_flags()

workaround for crash due to glcore not always using at least OpenGL 3.2
2019-06-18 13:12:56 +02:00
LazyBumHorse
76438fa098 workaround for crash due to glcore not always using at least OpenGL 3.2 2019-06-17 18:28:04 +02:00
twinaphex
f061941456 Integrate record_driver.c into retroarch.c 2019-06-17 16:23:46 +02:00
Tatsuya79
3b31dafa7e
glcore rotation fix for desmume 2019-06-06 20:11:08 +02:00
Tatsuya79
1cc307a879
glcore fix wrong rotation with HW cores 2019-06-06 17:05:07 +02:00
LazyBumHorse
ee3cda8abf added "FrameDirection" slang semantic and implementation for glcore and vulkan 2019-05-24 22:11:12 +02:00
Brad Parker
711ea77390 glcore: store GPU device/version string 2019-05-21 21:43:31 -04:00
Huw Pascoe
2c56011f84 video_layout interface 2019-05-11 09:58:48 +01:00
twinaphex
a0b2d97ca3 Hide 'Take Screenshot' for video drivers that don't support
taking screenshots yet
2019-05-05 13:46:26 +02:00
orbea
9e9849170d Silence unused function with --disable-menu.
gfx/drivers/gl_core.c:1529:13: warning: ‘gl_core_draw_menu_texture’ defined but not used [-Wunused-function]
 static void gl_core_draw_menu_texture(gl_core_t *gl, video_frame_info_t *video_info)
             ^~~~~~~~~~~~~~~~~~~~~~~~~
2019-05-04 08:26:49 -07:00
Twinaphex
e9bbc8d8dd (gl_core.c) Remove unused variable 2019-04-24 03:49:34 +02:00
Brad Parker
e7dbac7eb0 prevent null derefs found by scan-build 2019-04-18 11:46:53 -04:00
Huw Pascoe
fed06044c4 silence warnings 2019-04-12 17:32:11 +01:00
Themaister
f82601c4a8 glcore: Fix GLES build. 2019-04-08 21:17:13 +02:00
twinaphex
794f9c8968 (GL) Add comments 2019-03-18 16:02:28 +01:00
twinaphex
f67bfa24ef Get rid of video_poke_interface set_mvp 2019-03-18 15:19:11 +01:00
twinaphex
fe1255094f Get rid of now unused set_coords in video_driver_poke_interface 2019-03-18 05:04:23 +01:00
Themaister
e3a88e8806 glcore: Set frame count in shader interface. 2019-03-15 15:36:18 +01:00
twinaphex
c8eb85ec2e Implement gl_core_wrap_type_to_enum 2019-03-14 20:04:04 +01:00
twinaphex
3691f4fabf Fix CXX_BUILD errors 2019-03-13 17:00:52 +01:00
Twinaphex
1a8b185c5e
Merge pull request #8455 from Tatsuya79/patch-1
glcore, fix rotation
2019-03-13 11:38:41 +01:00
twinaphex
191d0c0309 Add get_flags to GL shader interface 2019-03-13 11:21:00 +01:00
twinaphex
2c024f400e Start hooking up extra shader capability stats - not done yet 2019-03-13 00:54:11 +01:00
Tatsuya79
16681653b4
glcore, fix rotation 2019-03-12 22:32:47 +01:00
twinaphex
104508a29c (GL core) Fix menu widgets 2019-03-11 14:57:25 +01:00
Themaister
1d0b3b96e6 Be a bit more pedantic about which contexts are active. 2019-03-09 20:53:29 +01:00
Themaister
37298876fc Clear out FBO on startup.
Some cores seem to rely on it?
2019-03-09 13:15:14 +01:00
Themaister
4bb17fd6e9 Fix wrong condition for hard sync. 2019-03-09 12:42:11 +01:00
Themaister
07bf62eaba GLcore: Actually bind depth/stencil RT to HW fbo. 2019-03-09 12:30:49 +01:00
Themaister
74039617ce Use correct context flags. 2019-03-09 12:30:49 +01:00
Themaister
4adf16b5ed Fix version detection for non-HW cores. 2019-03-09 12:30:49 +01:00
Themaister
3029f96511 Add a new "glcore" driver with slang support.
This driver should sunset the old gl2 driver, but that driver will
likely live on to support really ancient and terrible GL stacks.
All the worst legacy cruft has been ripped out, and it's almost a decent
backend now.

Requirements for slang are GL 3.2+ or GLES3.
Some shaders require features which are not directly compatible with
GLES2 or legacy GL.

This driver shares a lot of concepts from the Vulkan driver.
The slang shader stack and SPIRV-Cross are used to implement the shader
spec, and the menu shaders are also shared with Vulkan.
2019-03-09 12:30:49 +01:00