summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-02-04 13:50:51 -0800
committerGitHub <noreply@github.com>2021-02-04 13:50:51 -0800
commitc40f10b704b8bd5a744cc9b3964344585436b1ac (patch)
tree1c9608f3cc32949d88fe04f3512cd3147fc3fe1f /examples
parent7f266f1ea7a51213069282296a905650fd405c3f (diff)
[gfx] Shader-object driven shader compilation. (#1688)
Diffstat (limited to 'examples')
-rw-r--r--examples/gpu-printing/main.cpp10
-rw-r--r--examples/hello-world/main.cpp12
-rw-r--r--examples/heterogeneous-hello-world/main.cpp13
-rw-r--r--examples/model-viewer/main.cpp8
-rw-r--r--examples/shader-toy/main.cpp10
5 files changed, 22 insertions, 31 deletions
diff --git a/examples/gpu-printing/main.cpp b/examples/gpu-printing/main.cpp
index 6a4aabf3a..8dc0b0f3d 100644
--- a/examples/gpu-printing/main.cpp
+++ b/examples/gpu-printing/main.cpp
@@ -118,14 +118,12 @@ Result execute()
windowDesc.height = gWindowHeight;
gWindow = createWindow(windowDesc);
- gfxGetCreateFunc(gfx::RendererType::DirectX11)(gRenderer.writeRef());
IRenderer::Desc rendererDesc;
+ rendererDesc.rendererType = gfx::RendererType::DirectX11;
rendererDesc.width = gWindowWidth;
rendererDesc.height = gWindowHeight;
- {
- Result res = gRenderer->initialize(rendererDesc, getPlatformWindowHandle(gWindow));
- if(SLANG_FAILED(res)) return res;
- }
+ Result res = gfxCreateRenderer(&rendererDesc, getPlatformWindowHandle(gWindow), gRenderer.writeRef());
+ if(SLANG_FAILED(res)) return res;
gSlangSession = createSlangSession(gRenderer);
gSlangModule = compileShaderModuleFromFile(gSlangSession, "kernels.slang");
@@ -191,7 +189,7 @@ Result execute()
gDescriptorSet->setResource(0, 0, printBufferView);
gRenderer->setDescriptorSet(PipelineType::Compute, gPipelineLayout, 0, gDescriptorSet);
- gRenderer->setPipelineState(PipelineType::Compute, gPipelineState);
+ gRenderer->setPipelineState(gPipelineState);
gRenderer->dispatchCompute(1, 1, 1);
// TODO: need to copy from the print buffer to a staging buffer...
diff --git a/examples/hello-world/main.cpp b/examples/hello-world/main.cpp
index e8e3c45e0..91c9c0627 100644
--- a/examples/hello-world/main.cpp
+++ b/examples/hello-world/main.cpp
@@ -240,14 +240,12 @@ Slang::Result initialize()
// A future version of this example may support multiple
// platforms/APIs.
//
- gfxGetCreateFunc(gfx::RendererType::DirectX11)(gRenderer.writeRef());
- IRenderer::Desc rendererDesc;
+ IRenderer::Desc rendererDesc = {};
+ rendererDesc.rendererType = gfx::RendererType::DirectX11;
rendererDesc.width = gWindowWidth;
rendererDesc.height = gWindowHeight;
- {
- gfx::Result res = gRenderer->initialize(rendererDesc, getPlatformWindowHandle(gWindow));
- if(SLANG_FAILED(res)) return res;
- }
+ gfx::Result res = gfxCreateRenderer(&rendererDesc, getPlatformWindowHandle(gWindow), gRenderer.writeRef());
+ if(SLANG_FAILED(res)) return res;
// Now we will create objects needed to configur the "input assembler"
// (IA) stage of the D3D pipeline.
@@ -414,7 +412,7 @@ void renderFrame()
// PSO, binding our root shader object to it (which references
// the `Uniforms` buffer that will filled in above).
//
- gRenderer->setPipelineState(PipelineType::Graphics, gPipelineState);
+ gRenderer->setPipelineState(gPipelineState);
gRenderer->bindRootShaderObject(PipelineType::Graphics, gRootObject);
// We also need to set up a few pieces of fixed-function pipeline
diff --git a/examples/heterogeneous-hello-world/main.cpp b/examples/heterogeneous-hello-world/main.cpp
index 8610a5fa2..163b17deb 100644
--- a/examples/heterogeneous-hello-world/main.cpp
+++ b/examples/heterogeneous-hello-world/main.cpp
@@ -43,7 +43,6 @@ using namespace gfx;
// We create global ref pointers to avoid dereferencing values
//
ComPtr<gfx::IShaderProgram> gShaderProgram;
-Slang::RefPtr<gfx::ApplicationContext> gAppContext;
Slang::ComPtr<gfx::IRenderer> gRenderer;
ComPtr<gfx::IBufferResource> gStructuredBuffer;
@@ -123,14 +122,12 @@ gfx::IRenderer* createRenderer(
// A future version of this example may support multiple
// platforms/APIs.
//
- gfxGetCreateFunc(gfx::RendererType::DirectX11)(gRenderer.writeRef());
- IRenderer::Desc rendererDesc;
+ IRenderer::Desc rendererDesc = {};
+ rendererDesc.rendererType = gfx::RendererType::DirectX11;
rendererDesc.width = windowWidth;
rendererDesc.height = windowHeight;
- {
- Result res = gRenderer->initialize(rendererDesc, getPlatformWindowHandle(window));
- if (SLANG_FAILED(res)) return nullptr;
- }
+ Result res = gfxCreateRenderer(&rendererDesc, getPlatformWindowHandle(window), gRenderer.writeRef());
+ if (SLANG_FAILED(res)) return nullptr;
return gRenderer;
}
@@ -249,7 +246,7 @@ void dispatchComputation(
unsigned int gridDimsZ)
{
- gRenderer->setPipelineState(PipelineType::Compute, gPipelineState);
+ gRenderer->setPipelineState(gPipelineState);
gRenderer->setDescriptorSet(PipelineType::Compute, gPipelineLayout, 0, gDescriptorSet);
gRenderer->dispatchCompute(gridDimsX, gridDimsY, gridDimsZ);
diff --git a/examples/model-viewer/main.cpp b/examples/model-viewer/main.cpp
index 384cc5eac..f830d4044 100644
--- a/examples/model-viewer/main.cpp
+++ b/examples/model-viewer/main.cpp
@@ -1254,7 +1254,7 @@ public:
// we simply bind its PSO into the GPU state, and
// remember the variant we've selected.
//
- renderer->setPipelineState(PipelineType::Graphics, variant->pipelineState);
+ renderer->setPipelineState(variant->pipelineState);
currentEffectVariant = variant;
}
@@ -2050,11 +2050,11 @@ Result initialize()
windowDesc.userData = this;
gWindow = createWindow(windowDesc);
- gfxGetCreateFunc(gfx::RendererType::DirectX11)(gRenderer.writeRef());
- IRenderer::Desc rendererDesc;
+ IRenderer::Desc rendererDesc = {};
+ rendererDesc.rendererType = gfx::RendererType::DirectX11;
rendererDesc.width = gWindowWidth;
rendererDesc.height = gWindowHeight;
- gRenderer->initialize(rendererDesc, getPlatformWindowHandle(gWindow));
+ gfxCreateRenderer(&rendererDesc, getPlatformWindowHandle(gWindow), gRenderer.writeRef());
InputElementDesc inputElements[] = {
{"POSITION", 0, Format::RGB_Float32, offsetof(Model::Vertex, position) },
diff --git a/examples/shader-toy/main.cpp b/examples/shader-toy/main.cpp
index a1408e38e..2bbc59113 100644
--- a/examples/shader-toy/main.cpp
+++ b/examples/shader-toy/main.cpp
@@ -347,14 +347,12 @@ Result initialize()
windowDesc.userData = this;
gWindow = createWindow(windowDesc);
- gfxGetCreateFunc(gfx::RendererType::DirectX11)(gRenderer.writeRef());
IRenderer::Desc rendererDesc;
+ rendererDesc.rendererType = RendererType::DirectX11;
rendererDesc.width = gWindowWidth;
rendererDesc.height = gWindowHeight;
- {
- Result res = gRenderer->initialize(rendererDesc, getPlatformWindowHandle(gWindow));
- if(SLANG_FAILED(res)) return res;
- }
+ Result res = gfxCreateRenderer(&rendererDesc, getPlatformWindowHandle(gWindow), gRenderer.writeRef());
+ if(SLANG_FAILED(res)) return res;
int constantBufferSize = sizeof(Uniforms);
@@ -477,7 +475,7 @@ void renderFrame()
gRenderer->unmap(gConstantBuffer);
}
- gRenderer->setPipelineState(PipelineType::Graphics, gPipelineState);
+ gRenderer->setPipelineState(gPipelineState);
gRenderer->setDescriptorSet(PipelineType::Graphics, gPipelineLayout, 0, gDescriptorSet);
gRenderer->setVertexBuffer(0, gVertexBuffer, sizeof(FullScreenTriangle::Vertex));