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 /tools/platform/model.cpp | |
| 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 'tools/platform/model.cpp')
| -rw-r--r-- | tools/platform/model.cpp | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/tools/platform/model.cpp b/tools/platform/model.cpp index fadfcc0e2..57acf9ecd 100644 --- a/tools/platform/model.cpp +++ b/tools/platform/model.cpp @@ -189,12 +189,16 @@ ComPtr<ITextureResource> loadTextureImage( int mipCount = (int) subresourceInitData.size(); - ITextureResource::Desc desc; - desc.init2D(IResource::Type::Texture2D, format, extentX, extentY, mipCount); - - auto texture = - device->createTextureResource(IResource::Usage::PixelShaderResource, desc, subresourceInitData.data()); - + ITextureResource::Desc desc = {}; + desc.type = IResource::Type::Texture2D; + desc.defaultState = ResourceState::ShaderResource; + desc.allowedStates = ResourceStateSet(ResourceState::ShaderResource); + desc.format = format; + desc.size.width = extentX; + desc.size.height = extentY; + desc.size.depth = 1; + desc.numMipLevels = mipCount; + auto texture = device->createTextureResource(desc, subresourceInitData.data()); free(data); return texture; @@ -542,23 +546,23 @@ SlangResult ModelLoader::load( modelData.meshes = meshes.data(); IBufferResource::Desc vertexBufferDesc; - vertexBufferDesc.init(modelData.vertexCount * sizeof(Vertex)); - vertexBufferDesc.setDefaults(IResource::Usage::VertexBuffer); + vertexBufferDesc.type = IResource::Type::Buffer; + vertexBufferDesc.sizeInBytes = modelData.vertexCount * sizeof(Vertex); + vertexBufferDesc.allowedStates = + ResourceStateSet(ResourceState::VertexBuffer, ResourceState::CopyDestination); + vertexBufferDesc.defaultState = ResourceState::VertexBuffer; - modelData.vertexBuffer = device->createBufferResource( - IResource::Usage::VertexBuffer, - vertexBufferDesc, - flatVertices.data()); + modelData.vertexBuffer = device->createBufferResource(vertexBufferDesc, flatVertices.data()); if(!modelData.vertexBuffer) return SLANG_FAIL; IBufferResource::Desc indexBufferDesc; - indexBufferDesc.init(modelData.indexCount * sizeof(Index)); - vertexBufferDesc.setDefaults(IResource::Usage::IndexBuffer); + indexBufferDesc.type = IResource::Type::Buffer; + indexBufferDesc.sizeInBytes = modelData.indexCount * sizeof(Index); + indexBufferDesc.allowedStates = + ResourceStateSet(ResourceState::IndexBuffer, ResourceState::CopyDestination); + indexBufferDesc.defaultState = ResourceState::IndexBuffer; - modelData.indexBuffer = device->createBufferResource( - IResource::Usage::IndexBuffer, - indexBufferDesc, - flatIndices.data()); + modelData.indexBuffer = device->createBufferResource(indexBufferDesc, flatIndices.data()); if(!modelData.indexBuffer) return SLANG_FAIL; *outModel = callbacks->createModel(modelData); |
