Git Product home page Git Product logo

Comments (3)

vertver avatar vertver commented on June 12, 2024

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.

vertver avatar vertver commented on June 12, 2024

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.

dzhdanNV avatar dzhdanNV commented on June 12, 2024

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)

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.