From 43e1b7cdc70b2fcac8a3e8ee72f5bc91726f4ec5 Mon Sep 17 00:00:00 2001 From: lucy96chen <47800040+lucy96chen@users.noreply.github.com> Date: Thu, 26 May 2022 10:54:35 -0700 Subject: Split render-vk.h/.cpp into a set of smaller files (#2244) * Some preliminary work on splitting render-vk * render-vk split, tests currently crash on null reference * fixed circular include --- tools/gfx/vulkan/vk-shader-program.h | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 tools/gfx/vulkan/vk-shader-program.h (limited to 'tools/gfx/vulkan/vk-shader-program.h') diff --git a/tools/gfx/vulkan/vk-shader-program.h b/tools/gfx/vulkan/vk-shader-program.h new file mode 100644 index 000000000..f24f95e5c --- /dev/null +++ b/tools/gfx/vulkan/vk-shader-program.h @@ -0,0 +1,44 @@ +// vk-shader-program.h +#pragma once + +#include "vk-base.h" +#include "vk-shader-object-layout.h" + +namespace gfx +{ + +using namespace Slang; + +namespace vk +{ + +class ShaderProgramImpl : public ShaderProgramBase +{ +public: + ShaderProgramImpl(DeviceImpl* device); + + ~ShaderProgramImpl(); + + virtual void comFree() override; + + BreakableReference m_device; + + Array m_stageCreateInfos; + Array m_entryPointNames; + Array, 8> m_codeBlobs; //< To keep storage of code in scope + Array m_modules; + RefPtr m_rootObjectLayout; + + VkPipelineShaderStageCreateInfo compileEntryPoint( + const char* entryPointName, + ISlangBlob* code, + VkShaderStageFlagBits stage, + VkShaderModule& outShaderModule); + + virtual Result createShaderModule( + slang::EntryPointReflection* entryPointInfo, ComPtr kernelCode) override; +}; + + +} // namespace vk +} // namespace gfx -- cgit v1.2.3