From 00389a127af8db18a3ec8fe7ad2dd114a65ac024 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 17 Apr 2018 16:59:03 -0400 Subject: Feature/renderer binding (#489) * Dx12 rendering works in test framework. * Turn on dx12 render tests. * First pass at Resource and TextureResource/BufferResource types. * Fix bug in Dx11 impl for BufferResource. * Dx12 supports TextureResource and binds using TextureResource type, and all tests pass. * Added TextureBuffer::Size type to make handling mips a little simpler. * Small improvements to Dx12 constant buffer binding Removed k prefix on an enum * First pass impl of dx11 createTextureResource Added setDefaults to TextureResource::Desc and BufferResource::Desc to simplify setup accessFlags -> cpuAccessFlags desc -> srcDesc * Split out generateTextureResource - can produce the texture using createTextureResource on the Renderer. * Added support for read mapping to Dx11 accessFlags -> cpuAccessFlags First pass at using TextureResource/BufferResource on Dx11 Some tests fail with this checkin * TextureResource working on all tests on dx11. * Construct ResourceBuffers on Dx11 and Dx12 using utility function createInputBufferResource. * First pass at OpenGl TextureResource * Small fixes to dx12 and dx11 setup. Gl working working using BufferResource and TextureResource * Tidy up around the compareSampler - looks like the previous test was incorrect. * Small documentation /naming improvements. * Fix some more small documentation issues. --- tools/render-test/main.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'tools/render-test/main.cpp') diff --git a/tools/render-test/main.cpp b/tools/render-test/main.cpp index 12160ae78..acc7ffb78 100644 --- a/tools/render-test/main.cpp +++ b/tools/render-test/main.cpp @@ -73,11 +73,11 @@ class RenderTestApp RefPtr m_renderer; - RefPtr m_constantBuffer; - RefPtr m_inputLayout; - RefPtr m_vertexBuffer; - RefPtr m_shaderProgram; - RefPtr m_bindingState; + RefPtr m_constantBuffer; + RefPtr m_inputLayout; + RefPtr m_vertexBuffer; + RefPtr m_shaderProgram; + RefPtr m_bindingState; ShaderInputLayout m_shaderInputLayout; }; @@ -106,11 +106,11 @@ SlangResult RenderTestApp::initialize(Renderer* renderer, ShaderCompiler* shader // TODO(tfoley): use each API's reflection interface to query the constant-buffer size needed m_constantBufferSize = 16 * sizeof(float); - BufferDesc constantBufferDesc; - constantBufferDesc.size = m_constantBufferSize; - constantBufferDesc.flavor = BufferFlavor::Constant; + BufferResource::Desc constantBufferDesc; + constantBufferDesc.init(m_constantBufferSize); + constantBufferDesc.cpuAccessFlags = Resource::AccessFlag::Write; - m_constantBuffer = renderer->createBuffer(constantBufferDesc); + m_constantBuffer = renderer->createBufferResource(Resource::Usage::ConstantBuffer, constantBufferDesc); if(!m_constantBuffer) return SLANG_FAIL; @@ -126,12 +126,10 @@ SlangResult RenderTestApp::initialize(Renderer* renderer, ShaderCompiler* shader if(!m_inputLayout) return SLANG_FAIL; - BufferDesc vertexBufferDesc; - vertexBufferDesc.size = kVertexCount * sizeof(Vertex); - vertexBufferDesc.flavor = BufferFlavor::Vertex; - vertexBufferDesc.initData = &kVertexData[0]; + BufferResource::Desc vertexBufferDesc; + vertexBufferDesc.init(kVertexCount * sizeof(Vertex)); - m_vertexBuffer = renderer->createBuffer(vertexBufferDesc); + m_vertexBuffer = renderer->createBufferResource(Resource::Usage::VertexBuffer, vertexBufferDesc, kVertexData); if(!m_vertexBuffer) return SLANG_FAIL; -- cgit v1.2.3