Project Perfect Mod Forums
:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Privacy Policy :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::


The time now is Thu Apr 18, 2024 5:02 am
All times are UTC + 0
Rev 449 -- This revision improves how VXLSE III deals with
Post new topic   Reply to topic Page 1 of 1 [7 Posts] Mark the topic unread ::  View previous topic :: View next topic
Author Message
PPMNewsReporter
Official PPM Bot with Custom Rank!


Joined: 07 Sep 2011

PostPosted: Thu Mar 20, 2014 5:26 pm    Post subject:  Rev 449 -- This revision improves how VXLSE III deals with Reply with quote  Mark this post and the followings unread

banshee -- 10 file(s) modified

This revision improves how VXLSE III deals with OpenCL support.

We've added an OpenCL options under Preferences -> 3D Options. The program also tests the OpenCL support as soon as it runs. I hope nobody gets an access violation every time that the program runs because of that. Although I've added some protection to prevent this kind of issue, the protection was never tested.

Regarding tests, OpenCL seems to be working perfectly on nVidia machines (tested on two so far), but my AMD ATI machine has lost its OpenCL ability, so I'll test this protection from the OpenCL test as soon as I commit this revision.

Although this version is more stable than the previous revision, it is still considered unstable due to issues with the 3D preview window (specially when it closes under some circumstances). The latest stable revision is still 441.


~ /vxlseiii14x/source/control/Config.pas
~ /vxlseiii14x/source/forms/Form3dModelizer.pas
~ /vxlseiii14x/source/forms/FormMain.pas
~ /vxlseiii14x/source/forms/FormPreferences.dfm
~ /vxlseiii14x/source/forms/FormPreferences.pas
~ /vxlseiii14x/source/rendering/Render.pas
~ /vxlseiii14x/vxlse_III.bdsproj
~ /vxlseiii14x/vxlse_III.exe
~ /vxlseiii14x/vxlse_III.res
~ /Welcome.txt

Read more...

_________________
Hi, I am a bot. Official bot at PPM. Don't be ashamed to reply to my posts. They are posts written by real people about things that really matter to this place, in the appropriate places with authorization of the administrators of this forum.

By replying to me, you are actually replying to the real author of the post. Don't be ashamed to comment "my" posts and the real author may reply to you.

Back to top
View user's profile Send private message
Banshee
Supreme Banshee


Also Known As: banshee_revora (Steam)
Joined: 15 Aug 2002
Location: Brazil

PostPosted: Thu Mar 20, 2014 5:41 pm    Post subject: Reply with quote  Mark this post and the followings unread

Machines with no OpenCL support works correctly and won't trigger error messages because OpenCL, as far as I've tested with my laptop.

Back to top
View user's profile Send private message Visit poster's website Skype Account
ViPr
Gauss Rifle Trooper


Joined: 30 Dec 2004

PostPosted: Sat Mar 22, 2014 2:07 pm    Post subject: Reply with quote  Mark this post and the followings unread

How easy is it to program for HSA or hUMA? I don't even know what it is called because these people are so infuriatingly confusing. I need to know so I can get the viewer of my program to work better than .0001 frames per second. Increasing the voxelization speed would be nice too because it can take too long for the person that is still using it.

Back to top
View user's profile Send private message
Banshee
Supreme Banshee


Also Known As: banshee_revora (Steam)
Joined: 15 Aug 2002
Location: Brazil

PostPosted: Mon Mar 24, 2014 12:54 am    Post subject: Reply with quote  Mark this post and the followings unread

OpenCL is a very easy language and it reminds C. The problem are the platforms that run it, each in a very specific way.

There are two critical limitations:

1) Synchronization is limited. nVidia graphics cards seem to be SIMD (single instruction multiple data), although they are able to handle some if clauses and whiles in a smart way. So, they seem to execute the same instruction in multiples processors at once. AMD is able to run MPMD (multiple instructions multiple data) with global work items, while local work items are SIMD. So, you cannot predict if instructions are being executed in a synchronized way, like the nVidia one. On both cases, you are able to synchronize local items straight in the video card, but not global ones. Unless you execute a different kernel.

2) Memory allocation is something complicated when running kernels on OpenCL. You can do it before running the kernel or after. During the program, depends mostly on the hardware. nVidia hardware converts OpenCL programs into CUDA, so I don't know how it handles memory allocations. Memory transfers from host to device is also very slow operation.

Relying on these standards (HSA/hUMA) for public programs is a risky thing, in my opinion. Many people does not have a proper hardware to run it or to accept it. The OpenCL drivers (specially from AMD) are hard to deal with.

If your voxel model from viewer doesn't get deformed in real time, you should seriously consider pre-processing it before rendering it.

Back to top
View user's profile Send private message Visit poster's website Skype Account
ViPr
Gauss Rifle Trooper


Joined: 30 Dec 2004

PostPosted: Mon Mar 24, 2014 1:26 am    Post subject: Reply with quote  Mark this post and the followings unread

Yes I know HSA and hUMA are very new so almost nobody has the hardware but I'm assuming that eventually everyone will have it.

I just want some universal programming system that will allow me to run the exact same code on CPU or GPU so if people don't have the hardware yet then it will just run on the CPU instead. Also I want a system where my existing source code will run without requiring any changes, and then I can gradually speed up my program by making changes every so often in small pieces so that I do not have to spend years overhauling the entire thing first just to check if it works.

I'm tired of my program being totally single-threaded and having no clue on how to change that. A frame rate of around .001 per second is totally unacceptable to me.

Back to top
View user's profile Send private message
Banshee
Supreme Banshee


Also Known As: banshee_revora (Steam)
Joined: 15 Aug 2002
Location: Brazil

PostPosted: Mon Mar 24, 2014 2:30 am    Post subject: Reply with quote  Mark this post and the followings unread

I have a couple of suggestions for you:

You can pre-process the object and store it in vertex buffers and texture objects in the graphics card. It is probably the most universal solution for your case. Rendering the object without processing it in every frame speeds up things seriously.

The other suggestion is using geometry and tesselation shaders from OpenGL 3.x or higher. Specially because you are dealing with voxels and you are not expecting a high quality result from it. In this case, the language you should learn is GLSL. VXLSE III uses some GLSL shaders on the shaders directory, but it doesn't have tesselation or geometry shaders, because it still uses OpenGL 2.1, which is not compatible with it.

Back to top
View user's profile Send private message Visit poster's website Skype Account
ViPr
Gauss Rifle Trooper


Joined: 30 Dec 2004

PostPosted: Mon Mar 24, 2014 3:00 am    Post subject: Reply with quote  Mark this post and the followings unread

I already tried GLSL. I don't like it. I don't want to use someone else's graphics engine; I want to use my own. I want to program as though I'm not making my program use a GPU even though it is.

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [7 Posts] Mark the topic unread ::  View previous topic :: View next topic
 
Share on TwitterShare on FacebookShare on Google+Share on DiggShare on RedditShare on PInterestShare on Del.icio.usShare on Stumble Upon
Quick Reply
Username:


If you are visually impaired or cannot otherwise answer the challenges below please contact the Administrator for help.


Write only two of the following words separated by a sharp: Brotherhood, unity, peace! 

 
You cannot post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

[ Time: 0.1446s ][ Queries: 11 (0.0093s) ][ Debug on ]