GithubHelp home page GithubHelp logo

Comments (8)

jenatali avatar jenatali commented on June 15, 2024

Not currently, no, it will need to be recorded into a separate command list.

from d3d12translationlayer.

ManjitBeeSys avatar ManjitBeeSys commented on June 15, 2024

Not currently, no, it will need to be recorded into a separate command list.

Thanks for your reply.

Can we have control over execution of command list created by D3D9On12. i.e. which function governs it ?
We want our engine's directx12 component's command list to be executed along wtih default command list created by D3D9On12 layer. How could we achive this ?

from d3d12translationlayer.

jenatali avatar jenatali commented on June 15, 2024

Can we have control over execution of command list created by D3D9On12. i.e. which function governs it ?

Command lists can be flushed at any point. They are done so when necessary, e.g. by Present, or when the CPU needs to wait for the GPU in Lock/LockRect, but can also be flushed opportunistically if the GPU is otherwise idle.

We want our engine's directx12 component's command list to be executed along wtih default command list created by D3D9On12 layer. How could we achive this ?

What do you mean by "along with"?

from d3d12translationlayer.

ManjitBeeSys avatar ManjitBeeSys commented on June 15, 2024

Can we have control over execution of command list created by D3D9On12. i.e. which function governs it ?

Command lists can be flushed at any point. They are done so when necessary, e.g. by Present, or when the CPU needs to wait for the GPU in Lock/LockRect, but can also be flushed opportunistically if the GPU is otherwise idle.

We want our engine's directx12 component's command list to be executed along wtih default command list created by D3D9On12 layer. How could we achive this ?

What do you mean by "along with"?

@jenatali thanks for reply.

along with means, executing Dx12 command list at the same time when D3D9On12 command list is executing.

from d3d12translationlayer.

jenatali avatar jenatali commented on June 15, 2024

If you want your DX12 work to execute in sequence with DX9 work, you can use the interior APIs described here. If you want your work to execute in parallel, you can just submit it to a different queue. I'm still not entirely sure what you're trying to accomplish.

from d3d12translationlayer.

ManjitBeeSys avatar ManjitBeeSys commented on June 15, 2024

If you want your DX12 work to execute in sequence with DX9 work, you can use the interior APIs described here. If you want your work to execute in parallel, you can just submit it to a different queue. I'm still not entirely sure what you're trying to accomplish.

@jenatali thaks for reply.

Here we want our work to execute in parllel, but want some notification like GPU signal from D3D9On12 API to our new Directx12 created Queue.

We have following scenario. Let say we have 10 diffrent kinds of objects in a Scene, eache object's rendering written in Directx9. Our Engine renders each object in a ceratian FPS let say 25fps. Here, we have to convert our all 10 objects into Directx12, one by one. Say our 9 Objects are rendering in D3D9On12 default Queue and i have converted my 10th object's rendering complete in Directx12. Now all these 10 objects will be renderd by our Rendering Engine on 40 milliseconds. We need any mechanisim to render both D3D9On12 object and Directx12 object in a Synchronization.

Converting complete objects in Directx12 will take time so we want to go one by one.

from d3d12translationlayer.

jenatali avatar jenatali commented on June 15, 2024

Right, the interop APIs I linked earlier are what you want. When you want to transition from D3D9 rendering to 12, you'd unwrap your render targets and depth buffer, which would insert a wait on your command queue for the D3D9 rendering to finish. When you finish and want to go back to D3D9 rendering, you'd insert a signal on your queue, and return the resources, passing the fence that you signaled which 9on12 will then wait on.

Until you're done, you'll probably want to keep your swapchain in D3D9 so that Present flushes all the work.

And just to be clear, this isn't truly parallel work, it'll end up sequenced/serialized on the GPU, but it sounds like that's what you want.

from d3d12translationlayer.

ManjitBeeSys avatar ManjitBeeSys commented on June 15, 2024

Right, the interop APIs I linked earlier are what you want. When you want to transition from D3D9 rendering to 12, you'd unwrap your render targets and depth buffer, which would insert a wait on your command queue for the D3D9 rendering to finish. When you finish and want to go back to D3D9 rendering, you'd insert a signal on your queue, and return the resources, passing the fence that you signaled which 9on12 will then wait on.

Until you're done, you'll probably want to keep your swapchain in D3D9 so that Present flushes all the work.

And just to be clear, this isn't truly parallel work, it'll end up sequenced/serialized on the GPU, but it sounds like that's what you want.

Thanks for your valuable reply.

from d3d12translationlayer.

Related Issues (17)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.