Commit Graph

657 Commits

Author SHA1 Message Date
twinaphex 808c00db41 (drivers_shader) Move static functions to top of files 2020-06-26 18:54:30 +02:00
twinaphex 601a73fa8b Use string_starts_with_size where possible - avoids the strlen 2020-06-25 12:51:04 +02:00
twinaphex d903d684a0 (glslang) Group together more strings 2020-06-12 05:24:34 +02:00
twinaphex c2044beedd Fix shader regression with MinProgramTexelOffset 2020-06-12 05:18:38 +02:00
twinaphex 7ee5ffcd1c Further optimize SlangProcess 2020-06-11 05:51:03 +02:00
twinaphex 58b22b0a6e Optimize some long iterations of string_is_equal 2020-06-08 07:00:22 +02:00
Higor Eurípedes 1f45018ee8 shader_glsl.c: Move buffer null pointer check in gl_glsl_set_coords()
`buffer` is initialized to a statically allocated variable and can only be NULL
when the allocation of a bigger buffer fails. When only the core frame is being
displayed, the buffer never points to the heap thanks to the small buffer
optimization.
2020-06-06 20:08:28 -03:00
twinaphex e030986837 Replace fprintfs with RARCH_LOG/RARCH_ERR 2020-05-24 19:29:55 +02:00
twinaphex 6408da2ae4 Silence warnings 2020-05-23 03:19:25 +02:00
twinaphex a9cf718e75 Get rid of auto variable in glslang.cpp 2020-05-21 20:04:36 +02:00
twinaphex 2a36fa0855 Remove double ';' 2020-05-19 21:29:35 +02:00
jdgleaver 548c5dc925 (glcore/slang) Set filter and wrap mode correctly when intialising shader textures 2020-04-30 17:04:02 +01:00
twinaphex 62bd4960e1 Fix MSVC include paths 2020-03-06 03:01:47 +01:00
twinaphex d3bc82d2c3 Header cleanups 2020-03-05 14:12:20 +01:00
twinaphex da60c1bb96 Header cleanups 2020-03-05 14:06:04 +01:00
twinaphex 6232e0abd3 Buildfix 2020-03-03 11:08:16 +01:00
twinaphex d5f7839d12 Cleanups 2020-03-03 10:58:04 +01:00
twinaphex d1ebb58580 Cleanups - change function signature of compile_spirv to const char * 2020-03-03 10:49:47 +01:00
orbea def374c2b9 Fix the header paths with the system glslang. 2020-03-02 14:20:18 -08:00
twinaphex 75eef8a2c9 (drivers shader slang) Put logging behind DEBUG ifdef - and
turn some conditionals into a switch
2020-02-19 16:25:41 +01:00
twinaphex c6bd3da1c3 (drivers_shader) Cleanups 2020-02-19 03:23:30 +01:00
twinaphex 5280286415 (shader_vulkan.cpp) Cleanup 2020-02-19 03:11:45 +01:00
orbea baf7013941 Silence warning with clang-9.0.1.
gfx/drivers_shader/shader_vulkan.cpp:2372:4: warning: field 'device' will be initialized after field 'size' [-Wreorder]
   device(device),
   ^
1 warning generated.
2020-02-01 16:52:00 -08:00
twinaphex d89fb0e7c4 (shader_slang.cpp) Simplify usage of functions that are only
ever used as C-strings
2020-02-01 07:04:27 +01:00
twinaphex 9ddd8417c8 Replace some more auto variables 2020-01-23 04:49:51 +01:00
twinaphex a4564b8939 Move C oriented code from slang_reflection.cpp to glslang_util.c 2020-01-22 19:36:49 +01:00
twinaphex ff9701685f Remove some auto variables 2020-01-22 19:07:10 +01:00
twinaphex 920e89a506 Move pass set texture to vulkan_common.c 2020-01-22 14:27:24 +01:00
twinaphex 8f1aa8c2c3 (shader_gl_core.cpp) Cleanups 2020-01-22 13:52:14 +01:00
twinaphex 376ad6d61d move more C functions over to gl_core.c 2020-01-22 13:12:00 +01:00
twinaphex 90874b434e (shader_vulkan.cpp) Move more C code to vulkan_common.c 2020-01-22 12:09:08 +01:00
twinaphex bcf8ff3d0a (shader_gl_core) Get rid of ConfigDeleter - move C code to gl_core.c 2020-01-22 11:57:06 +01:00
twinaphex c8227c95dd (shader_gl_core) get rid of ConfigDeleter 2020-01-22 11:35:00 +01:00
twinaphex b8cd37aef7 (shader_vulkan.cpp) Get rid of ConfigDeleter 2020-01-22 11:29:40 +01:00
twinaphex f853632260 Move framebuffer generate_mips function to vulkan_common.c 2020-01-22 10:52:20 +01:00
twinaphex e9c73bd9a6 (Vulkan) Move more C code to vulkan_common.c 2020-01-22 10:41:38 +01:00
twinaphex ef27a660a7 (shader vulkan) Cleanups - moving C code out of the C++ file 2020-01-22 10:11:42 +01:00
twinaphex 1fd6d024eb More buildfixes for ANGLE 2019-12-07 07:24:20 +01:00
twinaphex a0486c3cd7 Revert "Simplify slang_process.cpp"
This reverts commit 25a417cdd7.
2019-11-12 01:34:03 +01:00
twinaphex 25a417cdd7 Simplify slang_process.cpp 2019-11-11 18:55:33 +01:00
twinaphex b94b9e2adb Go back to plain strlcpy/strlcat - probably best to look at
opportunities to reduce these calls vs. replacing them with
unsafe macros
2019-09-23 00:19:01 +02:00
twinaphex 3b057d9605 Start using STRLCAT_CONST_INCR and STRLCPY_CONST 2019-09-20 23:33:17 +02:00
twinaphex db624a7c99 Start cleaning up the rather messy manual assignment 2019-09-20 02:03:26 +02:00
twinaphex 3fbeb0617b (glslang_util_cxx.cpp) Get rid of this strlcpy too 2019-09-18 08:03:49 +02:00
twinaphex 306d7f6f8a glsl_find_uniforms_frame - get rid of the remaining strlcats 2019-09-18 07:53:59 +02:00
twinaphex ab60005cdc (GLSL) Avoid snprintf, prefer strlcpy/strlcat where possible 2019-09-18 07:32:06 +02:00
LazyBumHorse a882901e39 save unmodified auto-shaders as a reference instead of a copy, see:
- implement #reference directive for auto-shaders
 - replace usual preset saving and loading functions with video_shader_read_preset() and video_shader_write_preset()
 - apply saved presets automatically for console menus
 - move auto-shader saving logic from menus into menu_shader.c menu_shader_manager_save_auto_preset()
 - refactor menu_shader_manager_save_preset() into menu_shader_manager_save_preset_internal()
2019-08-22 16:57:28 +02:00
twinaphex d52c573e13 Merge slang_preprocess.cpp into slang_process.cpp 2019-08-18 18:55:22 +02:00
twinaphex 0905c8d2ed (shader_gl_core.cpp) Simplify some code 2019-08-18 18:32:01 +02:00
twinaphex d48b5b78f8 Cleanups 2019-08-18 18:05:26 +02:00
twinaphex aaeff6c888 Move C code over to glslang_util.c 2019-08-18 18:01:21 +02:00
twinaphex 3aa1a03a08 glslang_util cleanups 2019-08-18 14:40:26 +02:00
Themaister f957bf0d16 Validate non-causal filter chain for texture inputs.
We only validated for UBO inputs apparently.
2019-08-13 13:57:20 +02:00
twinaphex 69a195fc5c Cleanups 2019-08-12 19:35:36 +02:00
twinaphex 3ae447420e Cleanups 2019-08-12 19:33:50 +02:00
jdgleaver 5ac152a5f3 (glslang_util) Remove C++ 'isms' (where possible) 2019-08-12 13:10:50 +01:00
twinaphex ecbd58d3af Small cleanup 2019-08-08 17:04:45 +02:00
twinaphex faa55b4dff glslang_read_shader_file - potential leak here 2019-08-08 16:55:39 +02:00
twinaphex b282125107 Revert "Refactor code for glslang shader presets - buffer entire file"
This reverts commit 0fee6a9ef4.
2019-08-08 16:36:34 +02:00
twinaphex 0fee6a9ef4 Refactor code for glslang shader presets - buffer entire file
into memory before passing it on
2019-08-08 04:55:22 +02:00
LazyBumHorse 5e0aba0589 Revert "(UWP) UWP cannot deal with relative paths, turn them into absolute"
This reverts commit 8b0f083a4e.
2019-07-25 14:31:18 +02:00
LazyBumHorse 6285c05948 add resolve_symlinks parameter to path_resolve_realpath() and cleanup playlist_resolve_path() 2019-07-22 13:44:35 +02:00
LazyBumHorse f8b92770d4 simplify video_shader_read_conf_preset() calls 2019-07-21 18:15:28 +02:00
Twinaphex 388c4857d3
Merge pull request #9140 from LazyBumHorse/shader_paths
much improved handling of relative shader paths
2019-07-20 21:54:58 +02:00
twinaphex 14dfb91a60 Buildfix for C89 2019-07-20 21:33:09 +02:00
LazyBumHorse 2245af23e9 much improved handling of relative shader paths
- save texture paths in relative format as well
 - always write portable relative paths on Windows using '/' instead of '\'
 - remove an ancient piece of code that could sometimes fail loading relative paths
 - fix absolute path handling between different drives for Windows
 - integrate video_shader_resolve_relative() into video_shader_parse_* functions
2019-07-20 18:29:46 +02:00
twinaphex da29fd61bb (shader_vulkan.cpp) Fix another 'declaration hides parameter' warning 2019-07-18 19:25:25 +02:00
twinaphex 18e67c12c7 (GLSL) Set prg ID to 0 after running glDeleteProgram 2019-07-18 18:31:37 +02:00
twinaphex c0787accc3 Use config_file_new_from_path_to_string 2019-07-18 12:13:09 +02:00
twinaphex 41a2fabb4e Create config_file_new_from_path_to_string 2019-07-18 12:03:50 +02:00
twinaphex f0f5c32b51 Remove state tracker - legacy code - we can revisit this later
and integrate it in a way so that it scales across all drivers
2019-07-09 07:39:38 +02:00
Hans-Kristian Arntzen 135ff5e7a5 Fixup resource remapping in MSL/HLSL.
Seemed rather sketchy, but this must be tested a bit.
2019-06-24 14:25:04 +02:00
Hans-Kristian Arntzen 50ea084385 Update SPIRV-Cross. 2019-06-24 13:42:46 +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 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 ee3208ac39 Integrate video_driver.c into retroarch.c 2019-06-17 15:10:22 +02:00
twinaphex b26a5badfd Fix typo 2019-06-15 10:00:20 +02:00
twinaphex fc62f7afaa Update 2019-06-15 09:58:34 +02:00
twinaphex f60306b232 Rename read_conf_cgp/write_conf_cgp to
read_conf_preset/write_conf_preset
2019-06-15 09:00:35 +02:00
LazyBumHorse 4c272973f1 fix frame_direction type for vulkan 2019-05-29 15:29:37 +02:00
LazyBumHorse d12dba6db4 (hotfix) Don't poll vendor specific 'patch' version 2019-05-25 17:51:03 +02:00
LazyBumHorse 9894f48fb0
added paranoid NULL check 2019-05-25 13:10:13 +02:00
LazyBumHorse 662b473e9f don't hardcode shader cross compilation target version but poll it 2019-05-25 12:32:34 +02:00
LazyBumHorse ee3cda8abf added "FrameDirection" slang semantic and implementation for glcore and vulkan 2019-05-24 22:11:12 +02:00
twinaphex 74388d8490 Remove string_concat 2019-05-10 18:05:58 +02:00
twinaphex 8b0f083a4e (UWP) UWP cannot deal with relative paths, turn them into absolute
paths first before reading shader pass files
2019-05-02 18:24:54 +02:00
twinaphex 39eadbab6f Use string_concat in more performance critical areas 2019-04-30 21:17:51 +02:00
twinaphex bc2bdd5734 config_file_read not needed anymore 2019-04-30 13:37:10 +02:00
twinaphex 4c3e0d44b8 Revert "Start using string_is_equal_memcmp and"
This reverts commit 26d6aee1eb.
2019-04-29 04:04:33 +02:00
twinaphex 26d6aee1eb Start using string_is_equal_memcmp and
string_is_equal_memcmp_fast
2019-04-28 17:23:11 +02:00
twinaphex 3e72c502a8 strlen optimizations :
- use STRLEN_CONST for constant strings, translates to sizeof
which should be computed at compile-time
- found some places where we are needlessly calling strlen two
times instead of just once
2019-04-27 04:21:10 +02:00
twinaphex ff40ae2486 Refactor slang_preprocess.cpp - try to remove auto variables 2019-04-25 04:07:18 +02:00
twinaphex a42b8f616f (slang reflection) Cleanups - start getting rid of most auto
variables
2019-04-25 03:54:04 +02:00
twinaphex 0bae77d199 (Shaders Vulkan/GLcore) Cleanups 2019-04-25 02:37:13 +02:00
twinaphex 15afaedaa8 (Shaders vulkan/GLcore) Simplify 2019-04-25 02:34:26 +02:00
twinaphex e40c3ec07b (Shader Vulkan/GL core) Make code more the same 2019-04-25 01:42:56 +02:00
twinaphex 55b53929db (shader GL/Vulkan) Cleanups 2019-04-24 23:45:57 +02:00
twinaphex 604403fe90 (shader_vulkan) Simplifications - start making shader_gl_Core
and shader_vulkan more alike
2019-04-24 23:13:42 +02:00