107 Commits

Author SHA1 Message Date
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
orbea
088860e499 Silence -Wformat-truncation warnings with DEBUG=1. 2019-01-24 10:59:53 -08:00
twinaphex
3ac631c7a3 (MSVC) Some more static code analysis warning fixes 2019-01-10 22:49:23 +01:00
twinaphex
b9ff2e4de1 Fix some static code analysis warnings from MSVC 2017 2019-01-10 21:47:15 +01:00
Brad Parker
4d09ddde1c Qt: limit shader preset/pass selection to the appropriate extensions 2018-08-20 20:26:50 -04:00
Brad Parker
e4834250b9 Qt: set shader dialog title to current preset/shader name 2018-08-18 12:39:17 -04:00
Brad Parker
16459bfa91 Qt: add filter/scale to shader window 2018-08-18 00:33:59 -04:00
Brad Parker
341cf63399 Qt: show shader pass in parameters window, reload shader params when shader is reloaded 2018-08-14 21:38:52 -04:00
Brad Parker
560149857b shaders: track the pass for each parameter 2018-08-14 18:46:32 -04:00
Brad Parker
4a86d29810 shaders: fix memory leak 2018-08-14 18:44:19 -04:00
Stuart Carnie
411bcf8bdd feat(apple): Metal support for macOS
* includes rgui
* shader support

This is a work-in-progress and there are some bugs and visual artifacts
still to be fixed.
2018-06-20 21:33:45 -07:00
twinaphex
8848b2837b Add D3D10 to slang supported checks 2018-04-21 05:11:24 +02:00
twinaphex
3cd2018cc1 Update video_shader_parse.c 2018-03-02 01:41:05 +01:00
twinaphex
df7f47d00a Create string_is_equal_case_insensitive 2018-03-01 23:16:34 +01:00
twinaphex
2f457af8bf Buildfix 2018-03-01 22:51:43 +01:00
twinaphex
25b7e54bdb Fix mistake 2018-03-01 22:44:27 +01:00
twinaphex
7a7902c4ac string_is_equal_noncase has issues in video_shader_get_type_from_ext 2018-03-01 22:42:03 +01:00
twinaphex
ba0e6bcdea Get rid of warning that is inaccurate 2018-03-01 18:17:04 +01:00
twinaphex
8b8b08aefd - Simplify video_shader_parse_type
- Fix welcome screen
2018-03-01 15:58:06 +01:00
twinaphex
7e8b9135c3 (Cg) If GL context is GLES2/3/Core context, Cg shaders are unavailable 2018-02-26 19:39:42 +01:00
twinaphex
826ca302ca video_shader_get_type_from_ext - the switch now covers the APIs
that support the shader type, not the ones that don't
2018-02-26 19:04:01 +01:00
twinaphex
f2e80fd8e8 hide cg and glsl for D3D10/11/12 drivers 2018-02-26 18:36:10 +01:00
twinaphex
a34c066e07 Hide glsl/cg shaders from Vulkan driver 2018-02-26 18:35:16 +01:00
twinaphex
d45189b853 Prevent crashes from occurring if we have the GL video driver
in use and we try to skip to a slang shader through next/previous
hotkeys
2018-02-26 18:15:38 +01:00
twinaphex
5665e27324 Nits 2018-02-26 15:12:19 +01:00
twinaphex
826a5009b0 Cleanups 2018-02-25 23:54:46 +01:00
twinaphex
d8498d0de7 Cleanups 2018-02-25 23:49:00 +01:00
twinaphex
8dbe653e9f Cleanup 2018-02-25 23:24:21 +01:00
twinaphex
e75992a66f Get rid of HAVE_SHADER_MANAGER 2018-02-25 23:03:39 +01:00
twinaphex
74309e6e1c shader code - Get rid of more hashes 2018-02-25 17:20:22 +01:00
twinaphex
f00d194ae3 Get rid of more hashes 2018-02-25 16:32:54 +01:00
twinaphex
016e24e5a5 (video_shader_parse) Get rid of hashes 2018-02-25 01:07:14 +01:00
aliaspider
37bebb5b65 (D3D12) slang shaders support. 2018-02-11 00:00:20 +01:00
twinaphex
d950794659 (video_shader_parse.c) Be safer with memory allocations 2018-02-05 13:55:04 +01:00
twinaphex
df632814e6 Add appropriate HAVE_SPIRV_CROSS ifdefs 2018-02-03 17:13:36 +01:00
aliaspider
5bc78d3ad5 (D3D11) Implement slang shader specification using Spirv-Cross.
(incomplete)
2018-01-31 01:08:36 +01:00
Brad Parker
9ef75473e0 fix coverity warnings 2018-01-26 00:14:59 -05:00
Brad Parker
9e347ec71f detect shader file changes on move and delete as well, and wait a few frames before re-applying changes 2018-01-25 19:09:55 -05:00
Brad Parker
f087b150c9 Add quick menu option to watch shader files for changes and recompile automatically (Linux only for now) 2018-01-25 15:50:57 -05:00
twinaphex
61ff51be2f Start using string_is_equal predominantly 2018-01-16 22:53:38 +01:00
twinaphex
0be4d7d178 Add free(file) 2018-01-07 13:13:21 +01:00
aliaspider
55d262f5d8 (WIIU) add preliminary multi-pass shader support.
can load *.slangp and *.slang files. since there is no runtime compiler,
precompiled shaders (*.gsh) need to be present next to each *.slang
source file.
2018-01-06 03:39:53 +01:00
twinaphex
e0b59c40ea Cleanups 2018-01-04 14:52:35 +01:00
Alcaro
bfeb9ff5c2 that's an interesting double free 2017-12-18 22:29:27 +01:00
twinaphex
1932513edb Update libretro-common 2017-12-15 00:31:37 +01:00
twinaphex
c7c4b723d6 Move path_file_exists to filestream and do away with filestream
dependencies in file/file_path
2017-12-14 20:05:46 +01:00
gblues
6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
twinaphex
57b730ab61 Start implementing VFS layer ; first split up VFS libretro functionality
to separate header until things are finalized
2017-12-11 21:24:14 +01:00
twinaphex
c4d8a8c800 Free after intfstream_close 2017-12-11 20:24:00 +01:00
twinaphex
12e6f38999 (gfx/video_shader_parse) Use intfstream instead of file_stream 2017-12-11 13:01:17 +01:00