From 57b27983564952bee0100dcce350361aa32c9494 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sun, 26 Aug 2018 17:09:03 -0700 Subject: Updated core & tools (implemented raw buffers plus other improvements) --- Tests/TestApp/src/TestBufferCreation.cpp | 48 ++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 5 deletions(-) (limited to 'Tests/TestApp/src/TestBufferCreation.cpp') diff --git a/Tests/TestApp/src/TestBufferCreation.cpp b/Tests/TestApp/src/TestBufferCreation.cpp index 5af3777..7ea1fdd 100644 --- a/Tests/TestApp/src/TestBufferCreation.cpp +++ b/Tests/TestApp/src/TestBufferCreation.cpp @@ -114,15 +114,26 @@ TestBufferCreation::TestBufferCreation(Diligent::IRenderDevice *pDevice, Diligen Diligent::BufferDesc BuffDesc; BuffDesc.Name = "Buffer creation test 2"; BuffDesc.uiSizeInBytes = 256; - BuffDesc.BindFlags = BIND_INDIRECT_DRAW_ARGS | BIND_UNORDERED_ACCESS; + BuffDesc.BindFlags = BIND_UNORDERED_ACCESS | BIND_SHADER_RESOURCE; BuffDesc.Mode = BUFFER_MODE_FORMATTED; - BuffDesc.Format.NumComponents = 4; - BuffDesc.Format.ValueType = VT_INT32; - BuffDesc.Format.IsNormalized = false; + BuffDesc.ElementByteStride = 16; RefCntAutoPtr pBuffer; pDevice->CreateBuffer(BuffDesc, BufferData(), &pBuffer); VERIFY_EXPR(pBuffer); + BufferViewDesc ViewDesc; + ViewDesc.ViewType = BUFFER_VIEW_SHADER_RESOURCE; + ViewDesc.ByteOffset = 32; + ViewDesc.Format.NumComponents = 4; + ViewDesc.Format.ValueType = VT_FLOAT32; + ViewDesc.Format.IsNormalized = false; + RefCntAutoPtr pBufferSRV; + pBuffer->CreateView(ViewDesc, &pBufferSRV); + + ViewDesc.ViewType = BUFFER_VIEW_UNORDERED_ACCESS; + RefCntAutoPtr pBufferUAV; + pBuffer->CreateView(ViewDesc, &pBufferUAV); + pTestCreateObjFromNativeRes->CreateBuffer(pBuffer); ++BuffersCreated; } @@ -155,7 +166,34 @@ TestBufferCreation::TestBufferCreation(Diligent::IRenderDevice *pDevice, Diligen pTestCreateObjFromNativeRes->CreateBuffer(pBuffer); ++BuffersCreated; } - + + { + Diligent::BufferDesc BuffDesc; + BuffDesc.Name = "Buffer creation test 5"; + BuffDesc.uiSizeInBytes = 256; + BuffDesc.BindFlags = BIND_VERTEX_BUFFER | BIND_INDEX_BUFFER | BIND_UNORDERED_ACCESS | BIND_SHADER_RESOURCE; + BuffDesc.Mode = BUFFER_MODE_RAW; + BuffDesc.ElementByteStride = 16; + RefCntAutoPtr pBuffer; + pDevice->CreateBuffer(BuffDesc, BufferData(), &pBuffer); + VERIFY_EXPR(pBuffer); + + BufferViewDesc ViewDesc; + ViewDesc.ViewType = BUFFER_VIEW_UNORDERED_ACCESS; + ViewDesc.ByteOffset = 32; + ViewDesc.Format.NumComponents = 4; + ViewDesc.Format.ValueType = VT_FLOAT32; + RefCntAutoPtr pBufferUAV; + pBuffer->CreateView(ViewDesc, &pBufferUAV); + + ViewDesc.ViewType = BUFFER_VIEW_SHADER_RESOURCE; + RefCntAutoPtr pBufferSRV; + pBuffer->CreateView(ViewDesc, &pBufferSRV); + + pTestCreateObjFromNativeRes->CreateBuffer(pBuffer); + ++BuffersCreated; + } + std::stringstream infoss; infoss << "Created " << BuffersCreated << " test buffers."; SetStatus(TestResult::Succeeded, infoss.str().c_str()); -- cgit v1.2.3