summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-04-24 00:17:43 -0700
committerGitHub <noreply@github.com>2021-04-24 00:17:43 -0700
commit9a5672d7b8a155117a2c3f8375e3b8a5b43d91b7 (patch)
tree9be3ea214ea735e41e8fdaef9824e84212a30cbb /examples
parent697017e6fae8c252638abc298ec1556de2e41314 (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.cpp20
-rw-r--r--examples/gpu-printing/main.cpp9
-rw-r--r--examples/shader-object/main.cpp9
-rw-r--r--examples/shader-toy/main.cpp6
-rw-r--r--examples/triangle/main.cpp10
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