Comments (8)
Not currently, no, it will need to be recorded into a separate command list.
from d3d12translationlayer.
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.
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.
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 inLock
/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.
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.
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.
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.
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)
- SharedFenceSignal should only be called if the fence is actually shared
- Circular dependency in include files HOT 4
- ProcessBatchWork crash. HOT 3
- Lacking documentation on Direct3DCreate9On12 HOT 3
- Update to use DirectX-Headers
- D3D9: Picture is very bright, FPS is very poor HOT 3
- The transition from exclusive state to shared state must be accompanied by copying of actual state values. HOT 1
- D3D11 Dependency HOT 1
- Creating a query heap per query might be too expensive
- D3D11Transition lack of documentation
- This repo is missing important files
- Dirty bit handling can cause binding of stale descriptors
- Lacking documentation on 9on12 Interop API HOT 2
- UnwrapUnderlyingResource crashes on calling it from different thread than where Dx9 resource texture created HOT 1
- Missing d3d9.lib exports HOT 1
- Build failure with MSVC 2022 v17.7.x and up HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from d3d12translationlayer.