twinaphex
920e89a506
Move pass set texture to vulkan_common.c
2020-01-22 14:27:24 +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
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
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
aaeff6c888
Move C code over to glslang_util.c
2019-08-18 18:01:21 +02:00
LazyBumHorse
f8b92770d4
simplify video_shader_read_conf_preset() calls
2019-07-21 18:15:28 +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
41a2fabb4e
Create config_file_new_from_path_to_string
2019-07-18 12:03:50 +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
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
ee3cda8abf
added "FrameDirection" slang semantic and implementation for glcore and vulkan
2019-05-24 22:11:12 +02:00
twinaphex
bc2bdd5734
config_file_read not needed anymore
2019-04-30 13:37:10 +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
twinaphex
955a149ce9
Use config_file_read where we can assume we are reading a file
2019-04-22 01:56:24 +02:00
twinaphex
3619fae2d9
(LGTM) Silence some warnings
2019-04-13 02:15:26 +02:00
Themaister
1ba8c626ed
Minor build fixes.
2019-03-09 12:42:23 +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
28ff4b391a
Clean up white space.
2019-02-03 16:00:50 -08:00
twinaphex
1a0d5030f9
shader_vulkan.cpp - doesn't need math.h
2019-01-19 23:02:48 +01:00
orbea
e062b98088
Remove trailing blank lines.
...
find . -type f -exec sed -i '${/^[[:space:]]*$/d;}' {} \+
2019-01-17 19:39:38 -08:00
twinaphex
6ca9afbd57
Silence more warnings with CXX_BUILD
2019-01-12 18:51:06 +01:00
orbea
4bc0aacd8b
Fix clang -Wreorder warnings.
...
gfx/drivers_shader/shader_vulkan.cpp:1109:6: warning: field 'id' will be initialized after field 'device' [-Wreorder]
: id(move(id)),
^
gfx/drivers_shader/shader_vulkan.cpp:2107:4: warning: field 'device' will be initialized after field 'memory_properties' [-Wreorder]
device(device),
^
2 warnings generated.
2018-12-16 16:16:07 -08:00
Themaister
124d9b57d6
Vulkan: Fix blue/red flip when using HW rendered cores with history.
...
Was using frontend format of BGRA8 when core was RGBA8, with blind
vkCmdCopyImage. Fix is to use the same format as core is pushing to
history buffer.
2018-12-06 11:38:30 +01:00
twinaphex
72428a23c5
(shader_vulkan.cpp) Move some functions to vulkan_common.c
2018-04-24 07:07:58 +02:00
twinaphex
311de8138e
(Griffin) shader_vulkan - Uniquely name set_unique_map to avoid collision
2018-02-03 17:20:23 +01:00
aliaspider
3865856aa2
(D3D11) add support for `#pragma format` in slang shaders.
2018-02-01 15:07:12 +01:00
aliaspider
5bc78d3ad5
(D3D11) Implement slang shader specification using Spirv-Cross.
...
(incomplete)
2018-01-31 01:08:36 +01:00
twinaphex
59b3344e72
Combine video_driver.c and video_shader_driver.c
2017-05-18 14:47:24 +02:00
twinaphex
e0c0815f42
(shader_vulkan.cpp) cleanups - don't use memset
2017-05-10 06:40:21 +02:00
twinaphex
1b302d6e40
(shader_vulkan.cpp) Cleanups
2017-05-10 06:31:06 +02:00
Hans-Kristian Arntzen
2d88530c98
Vulkan: Simple snow pipeline works.
...
Some other fixes too.
2017-02-20 20:53:59 +01:00
twinaphex
96c8ca5a09
Header update #1
2017-01-22 13:40:32 +01:00
twinaphex
0354ced675
Style nits
2017-01-17 19:02:49 +01:00
twinaphex
68d484bf60
Set supports_rgba before calling image_texture_load
2017-01-08 21:49:23 +01:00
Hans-Kristian Arntzen
53c30cacd5
Correctly check errors if preset cannot be found.
2016-12-03 16:05:04 +01:00
twinaphex
b3ec735e75
Silence some more scan-build warnings
2016-09-25 15:25:20 +02:00
twinaphex
6002fd9f2a
(shader_vulkan.cpp) Nits
2016-09-16 17:50:57 +02:00
twinaphex
99aae8537b
Use string_is_equal/stdstring.h
2016-09-16 17:33:18 +02:00
twinaphex
075aea2289
Header include cleanups
2016-09-06 00:56:00 +02:00
Hans-Kristian Arntzen
96818a297c
Vulkan: Fix validation errors with OriginalHistory.
...
For some reason, OriginalHistory blit happened inside a render pass.
Also add more TRANSFER_SRC_BIT caps to images as they might have to be
copied to history.
2016-08-07 01:09:15 +02:00
Hans-Kristian Arntzen
fb407796e9
Vulkan: Add push constant support to slang.
...
Usually, the UBO is very small, so we can fit everything in fast-access
uniforms.
2016-08-02 12:51:30 +02:00
Hans-Kristian Arntzen
00de5aa2f0
Vulkan: Filter out duplicated parameters.
2016-08-01 22:10:14 +02:00
Hans-Kristian Arntzen
efd3067903
Vulkan: Hook up shader parameters.
2016-08-01 22:10:14 +02:00
Hans-Kristian Arntzen
a50c204d5e
Vulkan: Begin parsing parameters.
2016-08-01 22:10:14 +02:00
Hans-Kristian Arntzen
bdcbc56507
Vulkan: Fix validation errors.
2016-07-31 19:59:36 +02:00
Hans-Kristian Arntzen
e61ec38543
Vulkan: Mipmapped FBOs work.
2016-07-31 19:52:15 +02:00
Hans-Kristian Arntzen
a48ba6c68b
Vulkan: Add mipmapping support to Framebuffer class.
2016-07-31 19:23:42 +02:00
Hans-Kristian Arntzen
9a613ef8bf
Vulkan: Actually bind correct part of the UBO.
2016-07-31 18:25:42 +02:00
Hans-Kristian Arntzen
c0e752c53c
Persistently map filter chain UBO.
2016-07-31 18:19:35 +02:00
Hans-Kristian Arntzen
10e864b26b
Hook up wrapping modes.
2016-07-31 16:32:55 +02:00
Hans-Kristian Arntzen
4ac9ebd579
Vulkan: Allow configuring mip/wrap/filter for LUTs.
...
LUTs are feature complete with CGP now.
2016-07-31 16:16:47 +02:00
Hans-Kristian Arntzen
e846bd4955
Vulkan: Hook up preliminary support for mip/wrapping modes.
2016-07-31 15:42:57 +02:00
Hans-Kristian Arntzen
e57997bb82
Make image barriers hit the entire mipchain.
2016-07-31 13:05:07 +02:00
Hans-Kristian Arntzen
cbca9513ab
Basic LUT work.
2016-07-31 13:01:31 +02:00
Hans-Kristian Arntzen
f208bba41e
Add USER semantic to match user textures.
2016-07-31 12:39:07 +02:00
Hans-Kristian Arntzen
d39a3619d6
Begin implementation of LUTs in Vulkan.
2016-07-31 12:26:14 +02:00
Hans-Kristian Arntzen
e35191765c
Vulkan: Fix PassOutput.
...
Oddly enough it worked during testing, but turns out it was never set
:')
2016-07-23 23:39:57 +02:00
Hans-Kristian Arntzen
4b7cadbae7
Vulkan: Fix silly bug with alias handling.
2016-07-23 23:23:22 +02:00
twinaphex
2a9bf91e0d
Use MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE
2016-06-29 02:40:05 +02:00
Hans-Kristian Arntzen
54c1759f45
Vulkan: Make a more general purpose symbol loader.
...
Avoids painful manual loading and wrapping function pointers everywhere
...
Reusable for cores, so move to libretro-common.
Also update built-in Vulkan headers.
2016-06-26 13:10:58 +02:00
Hans-Kristian Arntzen
b013a9c863
Vulkan: Replace prebaked shaders with glslc -mfmt=c.
...
Far more clean and avoids illegal punning.
2016-06-25 14:55:03 +02:00
Hans-Kristian Arntzen
de36f572d1
Vulkan: Fix more validation issues.
2016-06-25 14:01:10 +02:00
Hans-Kristian Arntzen
8c2664e5fb
Vulkan: Add explicit render target format support.
...
Supports all required formats in Vulkan 1.0 as well as GLES 3.x/GL 3.x
(for future).
2016-03-26 23:49:57 +01:00
Hans-Kristian Arntzen
82db5a4950
Vulkan: Use single UBO for all passes and sync indices.
...
Significantly reduces number of allocations.
2016-03-26 19:39:51 +01:00
Hans-Kristian Arntzen
200b88c3ca
Vulkan: Add detection for non-causal filter chains.
2016-03-26 18:27:17 +01:00
Hans-Kristian Arntzen
7d5eb2bc27
Vulkan: Add pass name handling.
...
Add #pragma name.
2016-03-26 18:00:09 +01:00
Hans-Kristian Arntzen
21c7ff99d1
Vulkan: Add semantic name remapping.
...
Will be useful for custom named passes.
2016-03-25 23:15:23 +01:00
Hans-Kristian Arntzen
3838b3c045
Vulkan: Add frame count suport.
2016-03-25 22:06:31 +01:00
Hans-Kristian Arntzen
b7b03c531a
Vulkan: Use single VBO in filter chain.
...
No need to have two separate buffers here.
2016-03-25 19:23:58 +01:00
Hans-Kristian Arntzen
939bc70ac6
Vulkan: Properly resize and clear feedback textures.
2016-03-25 19:16:39 +01:00
Hans-Kristian Arntzen
ca62f342b0
Vulkan: Fix original history.
...
Verified to work now.
2016-03-25 18:50:49 +01:00
Hans-Kristian Arntzen
79f5e9ca98
Vulkan: Add logging about feedback/history.
2016-03-25 17:45:30 +01:00
Hans-Kristian Arntzen
92601a0fb8
Vulkan: Set arrayed semantic textures.
2016-03-25 17:39:24 +01:00
Hans-Kristian Arntzen
80df588cf0
Vulkan: Implement feedback/history.
2016-03-25 15:32:04 +01:00
Hans-Kristian Arntzen
e35e0e0f23
Vulkan: Nits.
2016-03-25 14:53:47 +01:00
Hans-Kristian Arntzen
83ab0d799f
Vulkan: Begin implementing history and feedback.
2016-03-25 14:51:37 +01:00
Hans-Kristian Arntzen
4f3ade1b95
Vulkan: Begin sketching out support for complete filter chain.
2016-03-25 13:26:36 +01:00
Hans-Kristian Arntzen
d5dc50c436
Vulkan: Allow no UBO even if it makes little sense.
2016-03-23 00:19:24 +01:00
Hans-Kristian Arntzen
c17755ab1a
Vulkan: Default construct slang_reflection instead.
...
We will use non-POD when dealing with user-defined inputs.
2016-03-23 00:19:24 +01:00
Hans-Kristian Arntzen
39149b36b2
Vulkan: Clean up semantic parsing a lot.
...
Split up into two kinds of semantics, textured and not.
2016-03-23 00:19:24 +01:00
Hans-Kristian Arntzen
6add83e3ec
Vulkan: Use reflection output for source/original.
...
Fix some logging messages in reflection.
2016-03-21 16:18:43 +01:00
Hans-Kristian Arntzen
1822f3bf90
Vulkan: Begin hooking up SPIR-V reflection.
2016-03-21 15:12:12 +01:00
Hans-Kristian Arntzen
5dcb78ea21
Vulkan: Include spir2cross in shader_vulkan.cpp.
2016-03-21 11:56:09 +01:00
Hans-Kristian Arntzen
840278796e
Vulkan: Refactor out common resources in filter chain.
2016-03-21 11:45:59 +01:00
Hans-Kristian Arntzen
84923a0465
Vulkan: Tighten up pipeline barrier usage.
...
Lots of memory barriers used with TOP_OF_PIPE which is not valid.
2016-03-21 10:02:00 +01:00
Themaister
bce0d55a43
Vulkan: Allocate correct number of descriptors.
...
Have to allocate for entire pool, not per set.
2016-03-01 09:44:18 +01:00
twinaphex
de27720044
We don't need to link against libvulkan.so implicitly anymore
2016-03-01 02:47:16 +01:00
twinaphex
ae5d7849af
(shader_vulkan.cpp) Don't have to include general.h for this
2016-02-29 19:23:51 +01:00
twinaphex
4bb3f35a02
80-char width limit style nits
2016-02-20 16:36:54 +01:00