PlayStation 4 (codename Orbis) technical hardware investigation (news and rumours)

Status
Not open for further replies.
I think you'll find they say Comparable and not compatible.
 
DirectX 11.2 is only being referenced to describe the feature set of the gpu. Or am I wrong?

Because my first thought is if DirectX could be deployed for an OS other than windows why wasn't that done for linux years ago.
 
Any news on the new PSEye? I wonder if this time it will perform Kinect like gesture/body recognition... I use the Move controller and I really like it, but in dancing games I would prefer a controller free experience.

I've been looking for news on eye also, but it seems that Sony have pushed it to the back with regards to PR so it's difficult to find any information regarding its performance.
 
I think you'll find they say Comparable and not compatible.

Maybe. But the point stands. There is such a layer available that makes DirectX project migration really easy (but isn't great for performance). I haven't found the interview yet, but that's how they started for Assassin's Creed 4 - first ported it to that layer, but then decided they would need more performance and control. Then they went low level, and found they really needed to also mind the method of accessing memory (with or without cache, basically). There was a whole discussion afterwards where Shifty wondered if this wasn't just as bad as having a split memory pool, if I remember correctly.
 
I've been looking for news on eye also, but it seems that Sony have pushed it to the back with regards to PR so it's difficult to find any information regarding its performance.

They said they are not ready to talk about it yet. Still working on stuff.
 
So how does this coherent access work on the PS4?

Let's say I have a shared buffer between the CPU and GPU, the CPU modifies a value in that buffer (so that value is in the CPU L1 now), I assume the simplest method for coherency would be to invalidate corresponding addresses in the GPU caches and force them to refetch from memory? Unless there's another port and bus that allows a fast copy from one cache to the other, otherwise I don't see the performance gain.

I think the biggest gain would be in terms of software development, it certainly simplifies that.
 
So how does this coherent access work on the PS4?

Let's say I have a shared buffer between the CPU and GPU, the CPU modifies a value in that buffer (so that value is in the CPU L1 now), I assume the simplest method for coherency would be to invalidate corresponding addresses in the GPU caches and force them to refetch from memory? Unless there's another port and bus that allows a fast copy from one cache to the other, otherwise I don't see the performance gain.

I think the biggest gain would be in terms of software development, it certainly simplifies that.

Isn't that what onion is for?
 
Isn't that what onion is for?

Onion+?

Anyway, they reference C't. I like that magazine, and will see if I can get the German C't that contains the full article somewhere. Been a while since I bought one of them, but they're always pretty good.
 
Isn't that what onion is for?

To me at least, from the vgleaks description, it would seem that Onion would invalidate the CPU caches when writing to memory, the data would still have to be pull back in from main memory as it doesn't say anything about forwarding/updating the data.

I always assume a system that really utilized a coherent system would need a large shared L3 cache to help with coherency.
 
To me at least, from the vgleaks description, it would seem that Onion would invalidate the CPU caches when writing to memory, the data would still have to be pull back in from main memory.
AFAIK "Onion" means that the GPU cache fetches the data via the CPU cache (and then writes changes back via the CPU cache).
 
So Onion means that changes made to the cache on the GPU are reflected in the CPU caches?.

AFAICT, yes. But it's a rather 'narrow' bus that vgleaks quotes around 20GB/s I think.

http://www.eurogamer.net/articles/digitalfoundry-how-the-crew-was-ported-to-playstation-4

"One's called the Onion, one's called the Garlic bus. Onion is mapped through the CPU caches... This allows the CPU to have good access to memory," explains Jenner.
"Garlic bypasses the CPU caches and has very high bandwidth suitable for graphics programming, which goes straight to the GPU. It's important to think about how you're allocating your memory based on what you're going to put in there."
(a surprisingly candid & detailed interview)
 
There was an article from some dev and they said that they implemented some DX layer to port their stuff. Such thing was never coming from sony`s mouth.
 
Maybe. But the point stands. There is such a layer available that makes DirectX project migration really easy (but isn't great for performance). I haven't found the interview yet, but that's how they started for Assassin's Creed 4 - first ported it to that layer, but then decided they would need more performance and control. Then they went low level, and found they really needed to also mind the method of accessing memory (with or without cache, basically). There was a whole discussion afterwards where Shifty wondered if this wasn't just as bad as having a split memory pool, if I remember correctly.
Was it AC4? Thought it was something else.
But anyway, I know what your talking about.
I like you believe that they have a translator, that converts most of the dx11 code, and then you may have to do some tweaks for a couple things that don't get converted.
It's to make porting easy. But obviously there is probably a performance hit.

The performance problem was due to them putting the graphic data in the wrong bit of memory.
This is what made people wonder, as thought that didn't matter any more.
Probably did matter due to memory having to be marked as coherent etc though?

Hopefully all made sense, bit to busy to write it better.
 
Was it AC4? Thought it was something else.
But anyway, I know what your talking about.
I like you believe that they have a translator, that converts most of the dx11 code, and then you may have to do some tweaks for a couple things that don't get converted.
It's to make porting easy. But obviously there is probably a performance hit.

The performance problem was due to them putting the graphic data in the wrong bit of lomemory.
This is what made people wonder, as thought that didn't matter any more.
Probably did matter due to memory having to be marked as coherent etc though?

Hopefully all made sense, bit to busy to write it better.

I think it was "The crew":
http://www.eurogamer.net/articles/digitalfoundry-how-the-crew-was-ported-to-playstation-4
 
IIRC, our own T.B. did something similar to translate/transmute/emulify DirectX for Sacred 2, and he went on to work for SCE ATG, though don't know if he's still there. Ah, LinkedIn says yes, he's a PS4 engineer. We won't be hearing from him then. ;)
 
Because my first thought is if DirectX could be deployed for an OS other than windows why wasn't that done for linux years ago.
Actually Valve has already ported (a major subset of) DirectX 9/10/11 API to Linux (https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/Porting Source to Linux.pdf). Their DirectX API uses OpenGL internally to drive the GPU. This allows Valve to write all their games using DirectX. They can use identical code base on both platforms (pure DirectX on Windows and their own wrapper DirectX API in Linux builds). That's quite handy. Would help a lot in porting games to Steam Box (Linux). And of course they could easily extend their DirectX wrapper to support more platforms in the future (like PS4).

There's also a middleware company (forgot the name), that was developing DirectX 11 API for Linux and PS4. There was some discussion about that in some other thread (~ half year ago). Need to dig that up.

I wouldn't be surprised if several other game developers had also created wrappers for small subsets of DirectX to speed up their porting to other platforms (such as Linux and non-Microsoft consoles). DirectX is the most used API in game graphics programming after all. It's quite handy to have around, even if you plan to optimize time critical parts later to a low level hardware API.
 
Status
Not open for further replies.
Back
Top