DX12 Support in PCSX2
#21
(12-22-2015, 02:12 AM)willkuer Wrote: If you have a dominant ee bottleneck no gpu access on the world will increase your fps.

The problem isn't that the gpu can't receive commands fast enough, it is that the main cpu thread stalls, waiting for the queries to return. The new APIs allow all threads to send to the command buffer at the same time, so even when one thread is stalled, the other can still send command from other queue. This frees the threads to work on other things including EE.

By the way, this is actually closer to how the ps2 does things, EE, VU1, and Vif all can send data to the gs.

(12-22-2015, 02:30 AM)dabore Wrote: dx12 and the async shaders and mutlithreading only helps gsdx. it'll not magically make disappear the bottleneck that is the vu processing. so...

How is freeing the cpu not help? Plus the main problem by far is the EE, not the VU.

(12-22-2015, 02:43 AM)tsunami2311 Wrote: We will see Vulcan (less i been reading things wrong is the next incarnation of opengl?) long before DX12 support, weather AMD/INTEL bother to support opengl/vulcan as well as nvidia is another question.

Vulkan puts much less work on the drivers than ogl, I doubt they will mess it up even of they tried to. Sadly, that means that most of the driver work will fall on the developers, but on the other hand, that means they have more control too.
Reply

Sponsored links

#22
omg. ofc you can code to multithread the ee and dma and the bus. you can send textures to the gsdx and it decompresses it async. but.. for now you'll not get rid of the vu computing and packing the geometry. this' still a main bottleneck.
Reply
#23
But even if all components feed the gs none is feeding the gpu except for the gs. The gs on the other hand is async from the rest. So there is probably some data/job queue that accepts the stuff from the core components and is emptied by the gs. So i still dont see how vulkan could help im a core bottleneck.

Ok there is maybe one scenario: if you have less cores than threads and almost all cores are fully used. So maybe it helps single cores. This would indeed free cpu time for other threads.
Reply
#24
(12-22-2015, 11:20 AM)willkuer Wrote: But even if all components feed the gs none is feeding the gpu except for the gs.

That's why I said a lot of stuff need to be rewritten to take advantage of the new APIs. Now that all threads can send packets to the gpu, maybe the translation from gs commands to dx12/Vulkan, and sending them to the gpu can be distributed among all cores.

(12-22-2015, 11:20 AM)willkuer Wrote: The gs on the other hand is async from the rest.

Not 100%, sometimes the main threads needs to know when the gs finishes, and it stalls waiting for it, and almost everything stalls with it.
Reply
#25
(12-22-2015, 02:09 AM)tsunami2311 Wrote: doubtfull most ps2 game cpu heavy to begin with the gains from the lower driver overhead would be barely noticeable.

That's the point. DirectX 12 mainly benefits the CPU, not the GPU.
Reply
#26
(12-22-2015, 06:47 PM)xemnas99 Wrote: That's the point. DirectX 12 mainly benefits the CPU, not the GPU.

He might have meant PS2 CPU heavy.
Reply
#27
I doubt DX12 will speed up a PS2 emulator.
The rendering on the PS2 works different than on the Gamecube/Wii

The haviest load for rendering lies on the VU's which can be only emulated on a CPU, it calculates the vertices and geometry.
The GPU is a pure rasterizer, while it renders effects and puts textures on the geometry that has been processed by the cpu.

The Gamecube or Wii does anything 3D related with the GPU, so thats why there is also more load on your graphics card. 
It processes the vertices and geometry inside the GPU and also has shader units, what the PS2 GPU doesn't have.

Main Rig: i7-3770k @4.5ghz | 16GB DDR3 | Nvidia GTX 980 TI | Win 10 X64
Laptop: MSI GT62VR | i7-6700HQ | 16GB DDR4 | Nvidia GTX 1060 | Win 10 X64

Reply
#28
(12-22-2015, 09:56 PM)Nexxxus Wrote: The haviest load for rendering lies on the VU's which can be only emulated on a CPU, it calculates the vertices and geometry.

That's why DirectX 12 will help a lot.
Reply
#29
PCSX2 is already super heavy on the cpu compared to most PC games, the reduced DRIVER overhead from low API isnt gona help pcsx2 as much you think it will

Which i pretty sure if dig on these for all the OTHER DX12 topics dev has already said it wont help pcsx2 as much people think it will, seeing it all done by the cpu to begin with short of the output of the image
Reply
#30
(12-23-2015, 12:44 AM)tsunami2311 Wrote: PCSX2 is already super heavy on the cpu compared to most PC games, the reduced DRIVER overhead from low API isnt gona help pcsx2 as much you think it will

Which i pretty sure if dig on these for all the OTHER DX12 topics dev has already said it wont help pcsx2 as much people think it will, seeing it all done by the cpu to begin with short of the output of the image

It'll depend on the game probably. Gregory is probably the most knowledgeable about this, but I think there might be some games that swamp the graphics driver with draw calls.
Reply




Users browsing this thread: 2 Guest(s)