Jump to content
  • Advertisement
Sign in to follow this  
Pyrogame

DX11 [SlimDX][DX11] Mixing primitive topologies

This topic is 2861 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

I have a problem with my DX11 engine. I render my scene using this:

deviceContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.PatchListWith4ControlPoints;

It renders well. Now I want to render some triangles after that on the same device context and the same render step (before calling the Present()-Method). What I do is this:

deviceContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;

After that I tried to render my triangles, but all I got was a device driver reset (yes, the real Win7 device driver reset with a nice baloon tip showing the text "Your Hardware was reset...blabla")

OK. Then I have replaced the two rendering parts to first render my triangles with the TriangleList, then render my scene with patches. It renders well. But I need to render the triangles AFTER the scene.

Now the questions: Why? :) Is it a bug in my own software? Or maybe its not possible to switch back from patches to "standard"-primitives like triangle list? But why I can switch from "standard" to patches then? Or is this against a design rule too, but I simply lucky, that this runs on my machine?

Regards,
Pyrogame

Share this post


Link to post
Share on other sites
Advertisement
OK, I can answer this on my own :) After a patch-primitive topology was set, it is not possible to render with a non-patch primitive topology until the next frame.

This all is a litle bit confusing...

Share this post


Link to post
Share on other sites
Sounds like either a driver bug or else you don't have the pipeline setup correctly for the triangle list. It sounds like an issue that the debug device would validate if it was enabled. Try creating the device with debug support and running your app in a debugger. Validation messages about the pipeline will be sent to the output window and the application will likely throw an exception instead of sending a broken pipeline context to the driver.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!