diff options
| author | Yong He <yonghe@outlook.com> | 2021-04-24 00:17:43 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-24 00:17:43 -0700 |
| commit | 9a5672d7b8a155117a2c3f8375e3b8a5b43d91b7 (patch) | |
| tree | 9be3ea214ea735e41e8fdaef9824e84212a30cbb /examples | |
| parent | 697017e6fae8c252638abc298ec1556de2e41314 (diff) | |
Remove resource `Usage` from `gfx` interface. (#1813)
* Fix `model-viewer` crash when using Vulkan.
Fixing an issue in shader object layout creation for to make sure a correct descriptor set layout is calculated for types that need an implicit constant buffer.
* Fix formatting.
* Fixes.
* Fix memory leak in vulkan.
* Remove resource `Usage` from `gfx` interface.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/example-base/example-base.cpp | 20 | ||||
| -rw-r--r-- | examples/gpu-printing/main.cpp | 9 | ||||
| -rw-r--r-- | examples/shader-object/main.cpp | 9 | ||||
| -rw-r--r-- | examples/shader-toy/main.cpp | 6 | ||||
| -rw-r--r-- | examples/triangle/main.cpp | 10 |
5 files changed, 29 insertions, 25 deletions
diff --git a/examples/example-base/example-base.cpp b/examples/example-base/example-base.cpp index 09891e555..a75ddf247 100644 --- a/examples/example-base/example-base.cpp +++ b/examples/example-base/example-base.cpp @@ -105,16 +105,16 @@ void WindowedAppBase::createSwapchainFramebuffers() for (uint32_t i = 0; i < kSwapchainImageCount; i++) { gfx::ITextureResource::Desc depthBufferDesc; - depthBufferDesc.setDefaults(gfx::IResource::Usage::DepthWrite); - depthBufferDesc.init2D( - gfx::IResource::Type::Texture2D, - gfx::Format::D_Float32, - gSwapchain->getDesc().width, - gSwapchain->getDesc().height, - 0); - - ComPtr<gfx::ITextureResource> depthBufferResource = gDevice->createTextureResource( - gfx::IResource::Usage::DepthWrite, depthBufferDesc, nullptr); + depthBufferDesc.type = IResource::Type::Texture2D; + depthBufferDesc.size.width = gSwapchain->getDesc().width; + depthBufferDesc.size.height = gSwapchain->getDesc().height; + depthBufferDesc.size.depth = 1; + depthBufferDesc.format = gfx::Format::D_Float32; + depthBufferDesc.defaultState = ResourceState::DepthWrite; + depthBufferDesc.allowedStates = ResourceStateSet(ResourceState::DepthWrite); + + ComPtr<gfx::ITextureResource> depthBufferResource = + gDevice->createTextureResource(depthBufferDesc, nullptr); ComPtr<gfx::ITextureResource> colorBuffer; gSwapchain->getImage(i, colorBuffer.writeRef()); diff --git a/examples/gpu-printing/main.cpp b/examples/gpu-printing/main.cpp index 265b4c5ff..11a1553a3 100644 --- a/examples/gpu-printing/main.cpp +++ b/examples/gpu-printing/main.cpp @@ -103,11 +103,14 @@ Result execute() size_t printBufferSize = 4 * 1024; // use a small-ish (4KB) buffer for print output IBufferResource::Desc printBufferDesc; - printBufferDesc.init(printBufferSize); + printBufferDesc.type = IResource::Type::Buffer; + printBufferDesc.sizeInBytes = printBufferSize; printBufferDesc.elementSize = sizeof(uint32_t); + printBufferDesc.defaultState = ResourceState::UnorderedAccess; + printBufferDesc.allowedStates = ResourceStateSet( + ResourceState::CopySource, ResourceState::CopyDestination, ResourceState::UnorderedAccess); printBufferDesc.cpuAccessFlags = IResource::AccessFlag::Read; // | Resource::AccessFlag::Write; - auto printBuffer = - gDevice->createBufferResource(IResource::Usage::UnorderedAccess, printBufferDesc); + auto printBuffer = gDevice->createBufferResource(printBufferDesc); IResourceView::Desc printBufferViewDesc; printBufferViewDesc.type = IResourceView::Type::UnorderedAccess; diff --git a/examples/shader-object/main.cpp b/examples/shader-object/main.cpp index 6efe2f97d..72ab265c6 100644 --- a/examples/shader-object/main.cpp +++ b/examples/shader-object/main.cpp @@ -165,13 +165,16 @@ int main() bufferDesc.sizeInBytes = numberCount * sizeof(float); bufferDesc.format = gfx::Format::Unknown; bufferDesc.elementSize = sizeof(float); - bufferDesc.bindFlags = gfx::IResource::BindFlag::NonPixelShaderResource | - gfx::IResource::BindFlag::UnorderedAccess; + bufferDesc.allowedStates = ResourceStateSet( + ResourceState::ShaderResource, + ResourceState::UnorderedAccess, + ResourceState::CopyDestination, + ResourceState::CopySource); + bufferDesc.defaultState = ResourceState::UnorderedAccess; bufferDesc.cpuAccessFlags = IResource::AccessFlag::Write | IResource::AccessFlag::Read; ComPtr<gfx::IBufferResource> numbersBuffer; SLANG_RETURN_ON_FAIL(device->createBufferResource( - gfx::IResource::Usage::UnorderedAccess, bufferDesc, (void*)initialData, numbersBuffer.writeRef())); diff --git a/examples/shader-toy/main.cpp b/examples/shader-toy/main.cpp index d94d629ba..c41bd71ca 100644 --- a/examples/shader-toy/main.cpp +++ b/examples/shader-toy/main.cpp @@ -290,10 +290,10 @@ Result initialize() if(!inputLayout) return SLANG_FAIL; IBufferResource::Desc vertexBufferDesc; - vertexBufferDesc.init(FullScreenTriangle::kVertexCount * sizeof(FullScreenTriangle::Vertex)); - vertexBufferDesc.setDefaults(IResource::Usage::VertexBuffer); + vertexBufferDesc.type = IResource::Type::Buffer; + vertexBufferDesc.sizeInBytes = FullScreenTriangle::kVertexCount * sizeof(FullScreenTriangle::Vertex); + vertexBufferDesc.defaultState = ResourceState::VertexBuffer; gVertexBuffer = gDevice->createBufferResource( - IResource::Usage::VertexBuffer, vertexBufferDesc, &FullScreenTriangle::kVertices[0]); if(!gVertexBuffer) return SLANG_FAIL; diff --git a/examples/triangle/main.cpp b/examples/triangle/main.cpp index 6b9104072..0f6c31809 100644 --- a/examples/triangle/main.cpp +++ b/examples/triangle/main.cpp @@ -236,12 +236,10 @@ Slang::Result initialize() // vertex data. // IBufferResource::Desc vertexBufferDesc; - vertexBufferDesc.init(kVertexCount * sizeof(Vertex)); - vertexBufferDesc.setDefaults(IResource::Usage::VertexBuffer); - gVertexBuffer = gDevice->createBufferResource( - IResource::Usage::VertexBuffer, - vertexBufferDesc, - &kVertexData[0]); + vertexBufferDesc.type = IResource::Type::Buffer; + vertexBufferDesc.sizeInBytes = kVertexCount * sizeof(Vertex); + vertexBufferDesc.defaultState = ResourceState::VertexBuffer; + gVertexBuffer = gDevice->createBufferResource(vertexBufferDesc, &kVertexData[0]); if(!gVertexBuffer) return SLANG_FAIL; // Now we will use our `loadShaderProgram` function to load |
