Comments (6)
Seems useful. Hope VK has this functionality too (sorry, I'm out of topic for now). Regarding priorities:
Then we can adjust further steps. And of course, there are other higher priority than NRI tasks I have to work on.
from nri.
I did some research about pipeline library, and here is what I found:
Pipeline library in D3D12 and in Vulkan are absolutely different things. In D3D12 ID3D12PipelineLibrary
was created for storing and loading multiple pipelines into/from one file/chunk. However, in Vulkan, pipeline library was created for building multiple parts of pipeline (rasteriser state, output merger, etc) and combining them into one big pipeline.
However, AFAIK, you can use PSO cache on both APIs. So, I think that maybe we can drop Vulkan behaviour and use D3D12 description of pipeline library. Also, it might be possible to emulate this behaviour on D3D11 and use this functionality in core.
References:
D3D12 (see CachedPSO
for more info)
Vulkan sample
from nri.
Hi! Since you are interested and I'm busy with other stuff, I don't mind if you add ext (or core?) functionality, even focusing more on D3D12. I would suggest starting with the API to ensure quality, the implementation is less important because it can be improved later. I promise (fingers crossed ^_^) to accept these changes.
from nri.
Thanks for the links! Despite that VK solution is different, it seems to solve the same problem. I hope there is an API covering both GAPIs. For D3D11, I think, pipeline cache API can be made NOP (i.e. do nothing) because there is no such functionality on D3D11 (only implicit shader cache).
Most likely PSO caching will go into Core because:
- a few new functions will be exposed
- no extensions needed for GAPI (it's basic functionality)
- seems to fit better here
from nri.
At the moment I'm busy with work on my project, so this month and possibly next month I won't be able to contribute to the NRI (only minor things, bugfixes). But closer to April-May I will upload something for pipelines and other changes.
from nri.
Sounds good! Good luck with your work. I'm always happy to see NRI changes and feature requests from you. As I promised, the streamer interface will be implemented soon.
from nri.
Related Issues (20)
- [RFE] Move "depth bias" to dynamic state HOT 1
- Unsupported depth bounds HOT 2
- Only enable vulkan's extension when it's either supported or required HOT 3
- [RFE] Add multi-view
- [RFE] Add missing "indirect" commands HOT 1
- Wrong barriers for readback buffer HOT 3
- Unknown interface HelperInterface
- [RFE] SwapChain: explicitly expose "waitable" (currently always on in D3D) and add VK support HOT 1
- [RFE] Work graphs support
- [RFE] Shared resources via NT handle
- [RFE] Add support for `D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP` HOT 1
- [RFE] Add "low latency" extension HOT 1
- Add non shader visible descriptor pool HOT 11
- Bug: X11 and Wayland should be treated mutually exclusive during swapchain creation HOT 2
- [RFE/VK] Allow disabling bound checks via `VK_EXT_robustness2` HOT 1
- overlapping incompatibility with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT | VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
- [RFE] Instancing problem in GPU-driven rendering HOT 62
- clang-cl compile error HOT 6
- [BUG] PSL tier is needed instead of `isProgrammableSampleLocationsSupported` HOT 2
- [RFE] Draw Indirect Count HOT 2
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 nri.