yum-mirror/slang

Making it easier to work with shaders

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

Ellie Hermaszewskaformatf65d756bf

master
1.4 KiB46 linesraw
1// cuda-command-buffer.h
2#pragma once
3#include "cuda-base.h"
4#include "cuda-command-encoder.h"
5
6namespace gfx
7{
8#ifdef GFX_ENABLE_CUDA
9using namespace Slang;
10
11namespace cuda
12{
13
14class CommandBufferImpl : public ICommandBuffer, public CommandWriter, public ComObject
15{
16public:
17    SLANG_COM_OBJECT_IUNKNOWN_ALL
18    ICommandBuffer* getInterface(const Guid& guid);
19
20public:
21    DeviceImpl* m_device;
22    TransientResourceHeapBase* m_transientHeap;
23    ResourceCommandEncoderImpl m_resourceCommandEncoder;
24    ComputeCommandEncoderImpl m_computeCommandEncoder;
25
26    void init(DeviceImpl* device, TransientResourceHeapBase* transientHeap);
27    virtual SLANG_NO_THROW void SLANG_MCALL encodeRenderCommands(
28        IRenderPassLayout* renderPass,
29        IFramebuffer* framebuffer,
30        IRenderCommandEncoder** outEncoder) override;
31
32    virtual SLANG_NO_THROW void SLANG_MCALL
33    encodeResourceCommands(IResourceCommandEncoder** outEncoder) override;
34    virtual SLANG_NO_THROW void SLANG_MCALL
35    encodeComputeCommands(IComputeCommandEncoder** outEncoder) override;
36    virtual SLANG_NO_THROW void SLANG_MCALL
37    encodeRayTracingCommands(IRayTracingCommandEncoder** outEncoder) override;
38
39    virtual SLANG_NO_THROW void SLANG_MCALL close() override {}
40
41    virtual SLANG_NO_THROW Result SLANG_MCALL getNativeHandle(InteropHandle* outHandle) override;
42};
43
44} // namespace cuda
45#endif
46} // namespace gfx