summaryrefslogtreecommitdiffstats
path: root/examples/gpu-printing
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-01-14 15:48:54 -0800
committerGitHub <noreply@github.com>2021-01-14 15:48:54 -0800
commitf834f25794cfb746079e92d58c7410b767c57208 (patch)
tree583a86d4cb2e446c2c06f9d786996d10647baf84 /examples/gpu-printing
parentac76997690a39605b2b8fbd63de9cbbbc2af2a73 (diff)
COM-ify all slang-gfx interfaces. (#1656)
* COM-ify all slang-gfx interfaces.
Diffstat (limited to 'examples/gpu-printing')
-rw-r--r--examples/gpu-printing/main.cpp39
1 files changed, 20 insertions, 19 deletions
diff --git a/examples/gpu-printing/main.cpp b/examples/gpu-printing/main.cpp
index 75c083a33..03b20b969 100644
--- a/examples/gpu-printing/main.cpp
+++ b/examples/gpu-printing/main.cpp
@@ -8,6 +8,7 @@ using Slang::ComPtr;
#include "gfx/render.h"
#include "gfx/d3d11/render-d3d11.h"
#include "tools/graphics-app-framework/window.h"
+#include "source/core/slang-basic.h"
using namespace gfx;
#include <string>
@@ -69,17 +70,17 @@ ComPtr<gfx::IRenderer> gRenderer;
ComPtr<slang::ISession> gSlangSession;
ComPtr<slang::IModule> gSlangModule;
-RefPtr<gfx::ShaderProgram> gProgram;
+ComPtr<gfx::IShaderProgram> gProgram;
-RefPtr<gfx::PipelineLayout> gPipelineLayout;
-RefPtr<gfx::PipelineState> gPipelineState;
-RefPtr<gfx::DescriptorSet> gDescriptorSet;
+ComPtr<gfx::IPipelineLayout> gPipelineLayout;
+ComPtr<gfx::IPipelineState> gPipelineState;
+ComPtr<gfx::IDescriptorSet> gDescriptorSet;
-Dictionary<int, std::string> gHashedStrings;
+Slang::Dictionary<int, std::string> gHashedStrings;
GPUPrinting gGPUPrinting;
-RefPtr<gfx::ShaderProgram> loadComputeProgram(slang::IModule* slangModule, char const* entryPointName)
+ComPtr<gfx::IShaderProgram> loadComputeProgram(slang::IModule* slangModule, char const* entryPointName)
{
ComPtr<slang::IEntryPoint> entryPoint;
slangModule->findEntryPointByName(entryPointName, entryPoint.writeRef());
@@ -95,12 +96,12 @@ RefPtr<gfx::ShaderProgram> loadComputeProgram(slang::IModule* slangModule, char
char const* code = (char const*) codeBlob->getBufferPointer();
char const* codeEnd = code + codeBlob->getBufferSize();
- gfx::ShaderProgram::KernelDesc kernelDescs[] =
+ gfx::IShaderProgram::KernelDesc kernelDescs[] =
{
{ gfx::StageType::Compute, code, codeEnd },
};
- gfx::ShaderProgram::Desc programDesc;
+ gfx::IShaderProgram::Desc programDesc;
programDesc.pipelineType = gfx::PipelineType::Compute;
programDesc.kernels = &kernelDescs[0];
programDesc.kernelCount = 2;
@@ -133,21 +134,21 @@ Result execute()
gProgram = loadComputeProgram(gSlangModule, "computeMain");
if(!gProgram) return SLANG_FAIL;
- DescriptorSetLayout::SlotRangeDesc slotRanges[] =
+ IDescriptorSetLayout::SlotRangeDesc slotRanges[] =
{
- DescriptorSetLayout::SlotRangeDesc(DescriptorSlotType::StorageBuffer),
+ IDescriptorSetLayout::SlotRangeDesc(DescriptorSlotType::StorageBuffer),
};
- DescriptorSetLayout::Desc descriptorSetLayoutDesc;
+ IDescriptorSetLayout::Desc descriptorSetLayoutDesc;
descriptorSetLayoutDesc.slotRangeCount = 1;
descriptorSetLayoutDesc.slotRanges = &slotRanges[0];
auto descriptorSetLayout = gRenderer->createDescriptorSetLayout(descriptorSetLayoutDesc);
if(!descriptorSetLayout) return SLANG_FAIL;
- PipelineLayout::DescriptorSetDesc descriptorSets[] =
+ IPipelineLayout::DescriptorSetDesc descriptorSets[] =
{
- PipelineLayout::DescriptorSetDesc( descriptorSetLayout ),
+ IPipelineLayout::DescriptorSetDesc( descriptorSetLayout ),
};
- PipelineLayout::Desc pipelineLayoutDesc;
+ IPipelineLayout::Desc pipelineLayoutDesc;
pipelineLayoutDesc.renderTargetCount = 1;
pipelineLayoutDesc.descriptorSetCount = 1;
pipelineLayoutDesc.descriptorSets = &descriptorSets[0];
@@ -176,14 +177,14 @@ Result execute()
size_t printBufferSize = 4 * 1024; // use a small-ish (4KB) buffer for print output
- BufferResource::Desc printBufferDesc;
+ IBufferResource::Desc printBufferDesc;
printBufferDesc.init(printBufferSize);
printBufferDesc.elementSize = sizeof(uint32_t);
- printBufferDesc.cpuAccessFlags = Resource::AccessFlag::Read; // | Resource::AccessFlag::Write;
- auto printBuffer = gRenderer->createBufferResource(Resource::Usage::UnorderedAccess, printBufferDesc);
+ printBufferDesc.cpuAccessFlags = IResource::AccessFlag::Read; // | Resource::AccessFlag::Write;
+ auto printBuffer = gRenderer->createBufferResource(IResource::Usage::UnorderedAccess, printBufferDesc);
- ResourceView::Desc printBufferViewDesc;
- printBufferViewDesc.type = ResourceView::Type::UnorderedAccess;
+ IResourceView::Desc printBufferViewDesc;
+ printBufferViewDesc.type = IResourceView::Type::UnorderedAccess;
auto printBufferView = gRenderer->createBufferView(printBuffer, printBufferViewDesc);
// TODO: need to copy a zero into the start of the print buffer!