Vulkan Support - What features would help?
#1
I'm a bit of a new coder and I have been teaching myself by trying different things and learning by doing.  I was looking at DirectX 12 and the Vulkan API and want to see what I can do to help.  It may be a few months before I have anything workable, but what features would be beneficial to PCSX2 from Vulkan to help reduce driver overhead and provide some possible optimizations. Just to make sure I was going through everything correctly, PCSX2 is written in C++ not C# correct?
Reply

Sponsored links

#2
You are correct in your language observation.

As for Vulkan, all we need is the API, we don't need any specific optimisations. The only use the new API's are to us is the reduction of overhead for AMD graphics cards in OpenGL when compared to Direct3D 11. That is about the only enhancement it will bring us (which is why we haven't jumped on it)
[Image: ref-sig-anim.gif]

Reply
#3
(12-28-2016, 09:58 PM)refraction Wrote: You are correct in your language observation.  

As for Vulkan, all we need is the API, we don't need any specific optimisations.  The only use the new API's are to us is the reduction of overhead for AMD graphics cards in OpenGL when compared to Direct3D 11.  That is about the only enhancement it will bring us (which is why we haven't jumped on it)

Well I think Vulkan will bring some improvement however it won't be big. On the other hand if amd optimized their opengl drivers that would bring a massive improvement.
CPU: I7-4770 3.9GHZ
Motherboard: Asrock B85M - DGS
RAM: Hyper X Savage 2x8GB 1.6GHZ CL9
GPU: GTX1070 8GB GDDR5
OS: Windows 10 Pro 64bit
Reply
#4
Well, I was looking over the implementation of it and I still have a lot of learning to do when it comes to C++. I think the API calls shouldn't be too difficult and it will be a great learning experience for me. If it improves things for AMD users, it may be a worthwhile to get it running and use it over OpenGL as the performance difference I have seen between Vulkan and OpenGL on Nvidia is non-existant in most cases.


--Edit/Sidenote--
I've been using PCSX2 since v.96 and even earlier and I've always enjoyed all the hard work you guys put into it. If I can improve my skills while helping you guys, I'm happy to do it.
Reply
#5
i dunno what to expect from vulkan. the only game i got right now is zoe2. i know that you claim it's got a mean drawcall penalty. could vulkan help with that?!? i assume tiny drawcalls are nothing that should run thru any of the vertex or command buffer pipelines at all. just immediate drawcalls. that should remove that api (lock, write, release, transfer, draw) overhead. maybe?!?
Reply
#6
Hmm what about async compute? That could increase performance on amd cards even further.

On a side note the pcsx2 code is on github so you can download it and start playing with it from there Laugh
CPU: I7-4770 3.9GHZ
Motherboard: Asrock B85M - DGS
RAM: Hyper X Savage 2x8GB 1.6GHZ CL9
GPU: GTX1070 8GB GDDR5
OS: Windows 10 Pro 64bit
Reply
#7
I'm sure refraction can answer that question better then I. Which leads me to another question. I know that the perfomance boost when using multiple cores isn't the greatest because of how the VU and other systems in the PS2 are threaded, but would there be any benefit to completely integrating core detection and utilization into PCSX2 and using some of the multithread features available to Vulkan and DX12?

--Edit--

I think async compute is possible and very well handled in Vulkan from the documentation I have been reading on it. Not 100% sure though as I am working from memory after a few hours of reading, so don't quote me.
Reply
#8
Also for Vulkan. Isn't it possible to port OpenGL to Vulkan? I think it can be done , I read about it somewhere. First porting the basic functionality which in performance will be the same as opengl or maybe a bit worse , and after that the vulkan features can be added like multithreading , async compute and such ..
CPU: I7-4770 3.9GHZ
Motherboard: Asrock B85M - DGS
RAM: Hyper X Savage 2x8GB 1.6GHZ CL9
GPU: GTX1070 8GB GDDR5
OS: Windows 10 Pro 64bit
Reply
#9
(12-29-2016, 12:39 AM)lightningterror Wrote: Also for Vulkan. Isn't it possible to port OpenGL to Vulkan? I think it can be done , I read about it somewhere. First porting the basic functionality which in performance will be the same as opengl or maybe a bit worse , and after that the vulkan features can be added like multithreading , async compute and such ..

I think that's possible, yeah. Not sure though.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#10
I hope to figure all of this out. I plan on pulling a copy of the code and compiling and testing it myself and hopefully, if it meets standards, have it implemented as part of PCSX2. I know multi-threading can be huge if I can offset the threads properly in my testing. I just hope to see performance increases across multiple types of hardware.
Reply




Users browsing this thread: 1 Guest(s)