Hey guys,
I started working on a port from dx11 to dx12. The first thing, was to setup everything to work with Dx11On12. Right now I've got that done. Basically, the render frame goes as follows:
D3D12Prepare(); // setups the command list and command allocators (as well as basic clear and set render targets)
GetWrappedResources(); // Dx11on12 step to adquire resources
Render(); // Basically all the Dx11 rendering code etc
D3D12End(); // On D3D12Prepare we left the command list opened so we can add aditional
// commands, now close and execute it
ReleaseWrappedResources();
Flush(); // Flush all the dx11 code
Dx12Sync(); // Wait for fence
Dx12Present();
That setup is working and I changed some commands inside Render() from dx11 to dx12. (Basic stuff like setviewport)
I want to start porting more stuff inside the Render(), for example, we have a simple method to draw a quad (without vertex or index buffers, we use the vertex_id inside the shader).
Basically, it should translate to this:
mCmdList->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
mCmdList->DrawInstanced(4, 1, 0, 0);
But even that simple piece of code is just not working. I would like to get some advice from someone that has done a similar process (using dx11on12), what are the limitations, things that wont work etc
My main concern right now, is that if I want to start setting up commands that touch the IA, I would have to also create the PSO, root signatures etc etc.
Thanks.
↧