Advertisement

Porting to DX12

Started by July 14, 2017 11:40 AM
0 comments, last by piluve 7 years, 6 months ago

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.

 

 

 

This topic is closed to new replies.

Advertisement