Cross platform GPU computation for real time ray tracing rendering engine!

Started by
22 comments, last by L. Spiro 9 years ago

As optix - https://developer.nvidia.com/optix is real time ray tracing rendering engine but it only works on CUDA, I want to implement real time ray tracing engine for games like which will work on consoles(ps4 and xbox) and pc. Is there any cross platform technology like CUDA that I can use on consoles and pc for real time ray tracing rendering ?

The technologies that I am aware of are (openCL, DirectCompute, OpenACC, C++ AMP) but these are not cross platform, some work on consoles and some work on pc.

So I am looking for a cross platform parallel programming solution which will work both on consoles and pc?

Advertisement

So I am looking for a cross platform parallel programming solution which will work both on consoles and pc?

I guess you are?

Before we spend time on this issue, are you eligible to actually get console development kits?
It doesn’t make sense to go out of your way to support something you can’t actually support, taking great pains to write code that could run on a PlayStation 4, but never will.

So, before anything else, we need to establish that this question has merit. Do you have or can you get PlayStation 4 and Xbox One development kits (ignoring the fact that all Xbox one devices are development kits—you still need a license)?


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Cough HLSL compute shaders cough

Nothing else will run on all those platforms. You'll have to wrap up the CPU side functions that dispatch the commands to the GPU to deal with the differing CPU-side APIs, but the shader code itself will be portable, and the CPU-side concepts of compute dispatches, with read and read-write resource views of buffers/textures will be portable.

[edit] On PC you can use HLSL, it's known that the xbox uses HLSL, and the PS4 uses "PSSL", but if you have a look at that presentation, the syntax is 99.9% identical to HLSL.

OpenCL is probably the best bet, considering that it will work well with SPIR-V/Vulkan.

Too many projects; too much time

OpenCL is far from a "best bet". Each device vendor has its own SDK. So, not only OS differences matter, GPU differences do, too. What's included into that horror is varying support for features like recursion (which is reasonable but makes testing quite hard/expensive).

DirectCompute at least runs on all DX11-compatible devices, on Windows. It's far from cross-platform support but appears to be significantly better than what OpenCL offers.

OpenCL is probably the best bet, considering that it will work well with SPIR-V/Vulkan.

There's no OpenCL/SPIR-V/Vulkan support on consoles.

SPIR-V can be parsed into whatever shader language a console supports easily. That's one of the goals mentioned in that GDC Vulkan talk.

<edit>

I wonder what you mean by cross-platform.. Windows on the PC and then consoles?

Then dx11 compute shaders would be the way.

Otherwise, I am still going to recommend something with SPIR-V support because it's only a matter of a short while before we will have hlsl generators for it.

Consoles is really a wholly different scene because it is anything but open.

Too many projects; too much time

i really don't think that there is a multiplatform solution.

At work we use both CUDA and opencl (via a lot of macros, restrictions ect.) but that currently won't work on consoles(as far as i know).

In general, best way to support high performance multiplatform computations is to implement things per platform :) only this case you can achieve performance close to the maximum.

I am really interested in openACC - https://developer.nvidia.com/openacc

What you think about this?

This topic is closed to new replies.

Advertisement