From 98afb421f408aa8651afff3dba1b21fad71131fe Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 24 Mar 2021 13:57:55 -0700 Subject: Reimplement Vulkan shader objects. (#1764) * Reimplement Vulkan shader objects. This change reimplements Vulkan shader objects in the `gfx` layer so that it is no longer layered on top of the `DescriptorSet` abstraction. Since this is the last implementation that uses `DescriptorSet`, the change also removes all `DescriptorSet` related API from public `gfx` interface. The Vulkan implementation now passes all test cases, but it still have two issues: 1. The PushConstant setting is not correct, this is because we don't seem to be able to get correct reflection data about the size of push constants for an entry-point. 2. The `shader-toy` example can't run on Vulkan, because it currently sets nullptr to `Texture` bindings, and this change doesn't properly handle setting resource to null in `ShaderObject`s yet. If we can use the `nullDescriptor` feature on vulkan, this implementation will be simple. However we still want to decide whether we want to use a Vulkan 1.2 feature for this. * Fix up --- build/visual-studio/core/core.vcxproj | 1 + build/visual-studio/core/core.vcxproj.filters | 3 +++ build/visual-studio/gfx/gfx.vcxproj | 2 -- build/visual-studio/gfx/gfx.vcxproj.filters | 6 ------ 4 files changed, 4 insertions(+), 8 deletions(-) (limited to 'build/visual-studio') diff --git a/build/visual-studio/core/core.vcxproj b/build/visual-studio/core/core.vcxproj index 38bcf2ade..2f48f93eb 100644 --- a/build/visual-studio/core/core.vcxproj +++ b/build/visual-studio/core/core.vcxproj @@ -178,6 +178,7 @@ + diff --git a/build/visual-studio/core/core.vcxproj.filters b/build/visual-studio/core/core.vcxproj.filters index 9c718a6fb..5e63e4681 100644 --- a/build/visual-studio/core/core.vcxproj.filters +++ b/build/visual-studio/core/core.vcxproj.filters @@ -33,6 +33,9 @@ Header Files + + Header Files + Header Files diff --git a/build/visual-studio/gfx/gfx.vcxproj b/build/visual-studio/gfx/gfx.vcxproj index 08786b5cf..01faf88bd 100644 --- a/build/visual-studio/gfx/gfx.vcxproj +++ b/build/visual-studio/gfx/gfx.vcxproj @@ -195,7 +195,6 @@ - @@ -220,7 +219,6 @@ - diff --git a/build/visual-studio/gfx/gfx.vcxproj.filters b/build/visual-studio/gfx/gfx.vcxproj.filters index cff8cc95a..99af1fbbd 100644 --- a/build/visual-studio/gfx/gfx.vcxproj.filters +++ b/build/visual-studio/gfx/gfx.vcxproj.filters @@ -57,9 +57,6 @@ Header Files - - Header Files - Header Files @@ -128,9 +125,6 @@ Source Files - - Source Files - Source Files -- cgit v1.2.3