diff options
| author | Yong He <yonghe@outlook.com> | 2021-02-04 13:50:51 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-04 13:50:51 -0800 |
| commit | c40f10b704b8bd5a744cc9b3964344585436b1ac (patch) | |
| tree | 1c9608f3cc32949d88fe04f3512cd3147fc3fe1f /examples | |
| parent | 7f266f1ea7a51213069282296a905650fd405c3f (diff) | |
[gfx] Shader-object driven shader compilation. (#1688)
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/gpu-printing/main.cpp | 10 | ||||
| -rw-r--r-- | examples/hello-world/main.cpp | 12 | ||||
| -rw-r--r-- | examples/heterogeneous-hello-world/main.cpp | 13 | ||||
| -rw-r--r-- | examples/model-viewer/main.cpp | 8 | ||||
| -rw-r--r-- | examples/shader-toy/main.cpp | 10 |
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)); |
