This seems correct, but IIRC Radeon iGPUs use part of the system RAM as VRAM. Typically by default around 1 GB RAM is carved out for the iGPU and 4 GB RAM for GTT (graphics translation table), however these are dynamic and can be changed on-the-fly.
I made some progress with implementing
drmIoctl. I also improved
drmIoctl decoder that allows to log interaction between Vulkan userland driver and
amdgpu. Now it crash because shader buffer is NULL.
I also found a way to avoid mmap call. There is drm_mmap macro in libdrm, I made it redirect to real function drmMmap that internally calls create_area.
I made my own libdrm.so that have no major/minor fd tricks, KMS and most other parts. It is enough for Radeon Vulkan driver. libdrm_amdgpu.so is left unchanged, it provides quite nice abstractions.
For some unknown reason after recompiling Radeon Vulkan driver, shader creation started working and it now attempts to send commands to GPU ring buffer (that is currently not implemented). It currently fails at unimplemented waiting for finished GPU ring buffer commands.
Very nice, I wish I could help with testing, but I don’t have the means to get a computer with a Radeon GPU at the moment
If the RADV port goes far enough to need it, I could help with testing on Polaris (RX 560X), Vega (RX Vega 8), and Navi (RX 5700 XT) GPUs.
Render loop is running. But currently it don’t render anything yet. Most part of interaction with graphics card is not yet implemented.
Major parts needed to be implemented:
- Initialization and acquiring information.
- Graphics memory allocation (AMDGPU_GEM_CREATE).
- GPU virtual memory mapping (AMDGPU_GEM_VA).
- Sending command buffers to GPU ring buffers (AMDGPU_CS).
- Handling interrupts to know when command execution completed (AMDGPU_WAIT_CS).
radeon driver can be used as reference because it is smaller and easier to understand.
Do you mind if i share this post at Phoronix ?
OK to share. Keep in mind that hardware rendering is not actually working yet, many parts are not properly connected to hardware for now.
Yes, but posting your progress may get people capable of contributing in some fashion , to help
I have pile of Radeon cards ranging from Fiji all the way up to Navi RDNA2 if you need someone to help test or debug. I also know some stuff about Vulkan.
RDNA2… Grr… Lucky one
Radeon HD 7760m here, but I don’t know how to make it start instead of the intel HD 4000 of the cpu in HAIKU
You can blacklist intel_extreme driver in boot loader.
That graphics card should support Vulkan if I am correct.
supports mantle, the ancestor of vulkan but unfortunately no drivers for vulkan have been developed in the other OS, so I don’t know
What is its PCI device ID?
My laptop is a Toshiba Satelite P70-B-10U, with AMD Radeon™ R9 M265X and Intel HD 4600.
Can you give an example for the blacklist for Intel HD 4600?
- Repeately press space bar to enter boot loader menu.
- Select “Safe mode options”.
- Select “Blacklist entries”.
Thank you X512.