Comments (3)
Also, AFAIK, you don't need to have ReBAR support to work with BAR on Vulkan (just use a separate heap with HOST_VISIBLE flag)
NRI::INFO(DeviceVK.cpp:1255) - VULKAN::NVIDIA GeForce RTX 3070 Ti - Available device memory heaps:
NRI::INFO(DeviceVK.cpp:1267) - VULKAN::NVIDIA GeForce RTX 3070 Ti - Heap0 8032.0MiB - DEVICE_LOCAL_BIT
NRI::INFO(DeviceVK.cpp:1267) - VULKAN::NVIDIA GeForce RTX 3070 Ti - Heap1 16335.8MiB -
NRI::INFO(DeviceVK.cpp:1267) - VULKAN::NVIDIA GeForce RTX 3070 Ti - Heap2 214.0MiB - DEVICE_LOCAL_BIT < this one
from nri.
Also, on D3D12 there is a thing: https://learn.microsoft.com/en-us/windows/win32/direct3d12/default-texture-mapping (also applicable for Xbox consoles)
from nri.
Hi! Thanks for your interest! I would suggest closing this issue and opening two new instead:
- ReBAR support (most likely core)
- sparse texture support (most likely extension)
IMO, these are two orthogonal things (but 1st can help 2nd).
At this moment I don't know "sparse texture" API at all for both VK and D3D12, but this problem is solvable. You can start propose an extension API to make the discussion more specific. There are people who can help.
Regarding ReBAR:
Some notes first:
- it looks like ReBAR is not enabled in BIOS on your system, because if it's enabled you will get 2 heaps reported :) but the main one will have more "memory types" associated with it
- a few moments ago I improved logging of information about available memory heaps, now it looks like:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Memory heaps:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #0: 16064 Mb - DEVICE_LOCAL_BIT
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #1: 32612 Mb - *SYSMEM*
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Memory types:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #1:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - *SYSMEM*
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #0:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - DEVICE_LOCAL_BIT
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #1:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - HOST_VISIBLE_BIT HOST_COHERENT_BIT
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #1:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - HOST_VISIBLE_BIT HOST_COHERENT_BIT HOST_CACHED_BIT
NRI::VULKAN::NVIDIA GeForce RTX 4080 - Heap #0:
NRI::VULKAN::NVIDIA GeForce RTX 4080 - DEVICE_LOCAL_BIT HOST_VISIBLE_BIT HOST_COHERENT_BIT
It seems to me that extending MemoryLocation
should be enough to bring ReBAR support:
NRI_ENUM
(
MemoryLocation, uint8_t,
DEVICE,
DEVICE_HOST_VISIBLE, <====== add something like this
HOST_UPLOAD,
HOST_READBACK,
MAX_NUM
);
How to add support:
- VK: native, just use special memory type, should not be difficult to add
- D3D11: only via NV API (it's already there)
- D3D12: only via NV API (not there yet)
I think AMD has exposed something similar in AMD AGS, I don't mind hooking it too (AMD AGS is already in D3D11)
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.