From 9f23046138629f78995d54a7722ad6749bd84db9 Mon Sep 17 00:00:00 2001 From: skallweitNV <64953474+skallweitNV@users.noreply.github.com> Date: Tue, 14 May 2024 00:39:49 +0200 Subject: [gfx] specify resource view buffer range in bytes (#4149) * refactor gfx buffer range to use byte range * create buffer view with zero struct stride for ClearUnorderedAccessViewUint/Float * create buffer descriptors on demand * avoid copying gfx.dll --------- Co-authored-by: Yong He --- examples/autodiff-texture/main.cpp | 1 - examples/ray-tracing-pipeline/main.cpp | 2 +- examples/ray-tracing/main.cpp | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/autodiff-texture/main.cpp b/examples/autodiff-texture/main.cpp index 7d1f809ee..0578f9d47 100644 --- a/examples/autodiff-texture/main.cpp +++ b/examples/autodiff-texture/main.cpp @@ -246,7 +246,6 @@ struct AutoDiffTexture : public WindowedAppBase { IResourceView::Desc desc = {}; desc.type = IResourceView::Type::UnorderedAccess; - desc.bufferElementSize = 0; return gDevice->createBufferView(buffer, nullptr, desc); } ComPtr createUAV(ITextureResource* texture, int level) diff --git a/examples/ray-tracing-pipeline/main.cpp b/examples/ray-tracing-pipeline/main.cpp index 9e00ccf67..cc5549a2e 100644 --- a/examples/ray-tracing-pipeline/main.cpp +++ b/examples/ray-tracing-pipeline/main.cpp @@ -318,6 +318,7 @@ Slang::Result initialize() IBufferResource::Desc primitiveBufferDesc; primitiveBufferDesc.type = IResource::Type::Buffer; primitiveBufferDesc.sizeInBytes = kPrimitiveCount * sizeof(Primitive); + primitiveBufferDesc.elementSize = sizeof(Primitive); primitiveBufferDesc.defaultState = ResourceState::ShaderResource; gPrimitiveBuffer = gDevice->createBufferResource(primitiveBufferDesc, &kPrimitiveData[0]); if (!gPrimitiveBuffer) @@ -326,7 +327,6 @@ Slang::Result initialize() IResourceView::Desc primitiveSRVDesc = {}; primitiveSRVDesc.format = Format::Unknown; primitiveSRVDesc.type = IResourceView::Type::ShaderResource; - primitiveSRVDesc.bufferElementSize = sizeof(Primitive); gPrimitiveBufferSRV = gDevice->createBufferView(gPrimitiveBuffer, nullptr, primitiveSRVDesc); IBufferResource::Desc transformBufferDesc; diff --git a/examples/ray-tracing/main.cpp b/examples/ray-tracing/main.cpp index a12da707d..5fee3d1ae 100644 --- a/examples/ray-tracing/main.cpp +++ b/examples/ray-tracing/main.cpp @@ -309,6 +309,7 @@ Slang::Result initialize() IBufferResource::Desc primitiveBufferDesc; primitiveBufferDesc.type = IResource::Type::Buffer; primitiveBufferDesc.sizeInBytes = kPrimitiveCount * sizeof(Primitive); + primitiveBufferDesc.elementSize = sizeof(Primitive); primitiveBufferDesc.defaultState = ResourceState::ShaderResource; gPrimitiveBuffer = gDevice->createBufferResource(primitiveBufferDesc, &kPrimitiveData[0]); if (!gPrimitiveBuffer) @@ -317,7 +318,6 @@ Slang::Result initialize() IResourceView::Desc primitiveSRVDesc = {}; primitiveSRVDesc.format = Format::Unknown; primitiveSRVDesc.type = IResourceView::Type::ShaderResource; - primitiveSRVDesc.bufferElementSize = sizeof(Primitive); gPrimitiveBufferSRV = gDevice->createBufferView(gPrimitiveBuffer, nullptr, primitiveSRVDesc); IBufferResource::Desc transformBufferDesc; -- cgit v1.2.3