Commit Graph

169 Commits

Author SHA1 Message Date
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
Hans-Kristian Arntzen adbf9fed16 Vulkan implementation. 2016-02-16 20:42:02 +01:00