yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

cheneym2Fix precompiledTargetModule tests (#6455)02706dfc5

master
1.0 KiB45 linesraw
1// vk-shader-program.h
2#pragma once
3
4#include "vk-base.h"
5#include "vk-shader-object-layout.h"
6
7namespace gfx
8{
9
10using namespace Slang;
11
12namespace vk
13{
14
15class ShaderProgramImpl : public ShaderProgramBase
16{
17public:
18    ShaderProgramImpl(DeviceImpl* device);
19
20    ~ShaderProgramImpl();
21
22    virtual void comFree() override;
23
24    BreakableReference<DeviceImpl> m_device;
25
26    List<VkPipelineShaderStageCreateInfo> m_stageCreateInfos;
27    List<String> m_entryPointNames;
28    List<ComPtr<ISlangBlob>> m_codeBlobs; //< To keep storage of code in scope
29    List<VkShaderModule> m_modules;
30    RefPtr<RootShaderObjectLayout> m_rootObjectLayout;
31
32    VkPipelineShaderStageCreateInfo compileEntryPoint(
33        const char* entryPointName,
34        ISlangBlob* code,
35        VkShaderStageFlagBits stage,
36        VkShaderModule& outShaderModule);
37
38    virtual Result createShaderModule(
39        slang::EntryPointReflection* entryPointInfo,
40        List<ComPtr<ISlangBlob>>& kernelCodes) override;
41};
42
43
44} // namespace vk
45} // namespace gfx