Commit Graph

161 Commits

Author SHA1 Message Date
twinaphex 2c47d571aa Use path_is_valid instead of filestream_exists when we only
need to know if a file exists on the filesystem
2019-04-27 14:01:50 +02:00
twinaphex 643cd1923e CXX_BUILD / C89_BUILD buildfixes 2019-03-14 14:14:44 +01:00
twinaphex d744ed4666 Reimplement video_shader_is_supported 2019-03-13 20:39:36 +01:00
twinaphex 57e11a10e7 Reimplement video_shader_get_type_from_ext 2019-03-13 20:32:19 +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
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
twinaphex 61d3f90cae Add hint defines to libretro.h 2017-12-11 12:53:47 +01:00
twinaphex 318f17c4cb Start using VFS API constant defines 2017-12-11 12:15:00 +01:00
twinaphex 2e979ec537 Replace function signatures of file_stream file functions 2017-12-10 22:25:38 +01:00
twinaphex 40f82c26f7 use RFILE_MODE_READ for video_shader_parse 2017-12-10 22:01:48 +01:00
twinaphex 8072dab6fe Clean this up 2017-10-22 05:24:57 +02:00
twinaphex d203e4dc9c video_shader_driver_resolve_parameters - fix crash at startup with
MSVC
2017-10-22 05:21:31 +02:00
Brad Parker 38c30667c5 fix include paths 2017-10-14 23:08:43 -04:00
r5 d5321c2001 Fix missing include 2017-09-19 13:49:51 +01:00
r5 cc5adc56ac (shaders) Change RARCH_WARN message, add missing newline 2017-09-18 18:12:00 +01:00
r5 33431b7b36 (shaders) Fix a bug when context is Vulkan. Remove smart code. 2017-09-18 10:51:38 +01:00
r5 f5988b2323 (shaders) Log a warning when using the shader fallback type
Only allow using Cg shaders when HAVE_CG is set
2017-09-18 04:43:08 +01:00
r5 fdccf4a6b0 (C89) Should be able to build now
@bparker06 to the rescue again.
2017-09-18 04:21:59 +01:00
r5 da0abc3126 Try to fix C89 build 2017-09-18 04:09:28 +01:00
r5 4a9325d01d (shaders) Avoid certain shader types when context isn't compatible.
@bparker06 to the rescue.
2017-09-18 03:46:17 +01:00
twinaphex ba77d862a3 video_shader_parse.c - reduce stack usage 2017-09-09 22:54:55 +02:00
twinaphex 02ac92b91d Cleanups 2017-09-08 16:43:34 +02:00
twinaphex 2f39e4cd33 Use local variable 2017-05-28 17:46:42 +02:00
twinaphex 857562bf9d Prevent immediate crash when compiling with SANITIZER=address 2017-05-28 17:46:01 +02:00
twinaphex 126a5bf121 Use string_is_equal_fast/string_is_not_equal_fast 2017-05-16 04:00:37 +02:00
twinaphex f9bc2d3783 Use memcmp instead of string_is_equal where possible for
better performance
2017-04-21 22:47:15 +02:00
Twinaphex b7b3b2cb5f Try to prevent truckload of warnings on iOS 2017-02-26 10:33:03 +01:00
twinaphex 96c8ca5a09 Header update #1 2017-01-22 13:40:32 +01:00
Hans-Kristian Arntzen 4e9fe4bd54 Vulkan: Fix menu shader parameters for slangp.
video_shader_resolve_parameters did not take #includes into account
while the Vulkan implementation did. Added a helper function which
parses a shader file and figures out the shader parameters in the same
way.
2016-12-20 15:58:37 +01:00
twinaphex 5ca7344436 Get rid of more implicit memsets 2016-12-19 19:17:23 +01:00
radius ddf10e93f0 remove filestream, use path_file_exists instead 2016-12-04 12:38:46 -05:00
radius c2acadb979 instead of writing absolute paths, try to resolve absolute paths when loading, if not fallback to relative paths 2016-12-04 02:09:19 -05:00
radius 5e1ed323bd make shaders paths absolute for now 2016-12-04 01:12:57 -05:00
twinaphex 546845c577 Prevent implicit memsets 2016-10-21 06:10:58 +02:00
twinaphex e106fd4374 Get rid of more general.h includes 2016-09-01 18:01:41 +02:00
twinaphex 4791174ea3 (MSVC 2003) Fixes 2006-01-17 06:11:55 +01:00
Hans-Kristian Arntzen efd3067903 Vulkan: Hook up shader parameters. 2016-08-01 22:10:14 +02:00
Hans-Kristian Arntzen 8b14941a94 Refactor out resolve_current_parameters. 2016-08-01 22:10:14 +02:00
twinaphex 087e378bf7 Use 0 parameter index 2016-08-01 15:43:34 +02:00
twinaphex 49e8baa61d Use tmp_str variable for config_get_path usage 2016-06-25 07:17:48 +02:00
twinaphex 1fb2144a48 Refactor video_shader_parse_type 2016-06-20 22:17:03 +02:00
twinaphex 2b33c731d0 Create RFILE_MODE_READ_TEXT 2016-06-03 03:14:42 +02:00
twinaphex 294777166f video_shader_parse.c - use filestream 2016-06-03 00:11:41 +02:00
twinaphex a82a8cad51 Be more careful with config_get_bool 2016-05-24 22:48:15 +02:00
twinaphex 6f80e09ce1 Change MIN/MAX to upper-case 2016-03-02 00:07:31 +01:00
Hans-Kristian Arntzen adbf9fed16 Vulkan implementation. 2016-02-16 20:42:02 +01:00
twinaphex b8b7ee530c Respect 80-char width limits 2016-02-06 21:51:37 +01:00
twinaphex 454abdee48 stdstring - create string_is_equal 2016-01-20 04:07:24 +01:00
twinaphex 54f46f4ee3 Update headers 2016-01-10 04:41:52 +01:00
twinaphex f9f6d49ab7 Move macros to top 2015-12-26 11:27:52 +01:00
twinaphex 074f14b132 Add verbosity.c/verbosity.h 2015-11-23 12:03:38 +01:00
twinaphex 2d62493157 Cleanups 2015-10-31 20:53:08 +01:00