OS Frozen while running xNormal
Hi
I've tried to render a relaxed cone map in 2048x2048 on two of my Win 7 machines now, and I gave it up on both of them.
On my i7 930 with 12 Gigs of RAM the Rendering was at 6% after 5 hours, on my Turion dualcore laptop with 4 Gigs at 0.5% after 2 hours.... that doesn't bothers me to much, as I can let the machines run for days if needed, but both were completly frozen other than the percents going up slowly, in case of the turion laptop I couldn't even see the percentage anymore.
OS was pretty unresponsive and the mouse was frozen. It just happened that I had a Task Manager window with the performance tab open on my i7 while I ran the rendering and there I could see that only one CPU Thread was utilized heavely, and even this one was barely at 50%, and not even 4 Gigs of RAM used.
I know that while the CPU would be heavely used this sort of thing is expected, but it doesn't looks like xNormal is really using that much CPU and even if, while running things like a tiled build in world machine I never noticed such a behaviour with my Win 7 installation.
Is this problem with the unresponsive OS comming from xNormal reaching its Memory limit due to not being a 64bit Application? Is it a bug with the newest release of xNormal? Is it that 2048x2048 is just too big (though I got the same problem with 1024x1024)?
If someone could give me a hint if thats a known problem with xNormal, or if I'm doing something wrong, I would appreciate it.
Thanks
Gian-Reto
I just opened the height-to-cone-map tool, dragged a height map to the left side and wanted to generate a cone map out of this... Was this wrong?
I have used 2048x2048 and 1024x1024 as heightmap size.
About the system information I have to check when I'm back home.
I assume your last statement means that there is no 64bit version of xNormal yet?
Thanks for your help!
Gian-Reto
Okay, so I rerun the generation of the cone maps on my i7 930 and this time everything worked fine (OS was still very unresponsive, especially at the beginning of the rendering even though the task manager performance view didn't show any reasonable activity, but not nearly as bad as the first time I tried (I could even surf the internet while rendering with some patience))....
While I'm still curious as to why the system is getting so unresponsive when there is no real activity shown, it is not really a problem for me (I can just leave it running while I'm at work)...
I'll check the system stability and the BIOS over the weekend, just out of curiosity.
Thanks again for the help, and awesome work on the xNormal tool, it did its job just fine now I got it working.
Gian-Reto
Oh I didn't realized you were trying to compute a relaxed cone map! I though you were computing a normal map, sorry.
Well, cone maps's computation requires a HUGE amount of processing. I'm using OpenGL for that because with a CPU will take days to generate. That's why your OS can be very unresponsive while cone maps are computed: the GPU is saturated so there is almost no time to paint the OS's windows, etc...
For xn4 I plan to use OpenCL instead so you could just buy a second GPU to compute and keep the primary adapter just for displaying.
I assume your last statement means that there is no 64bit version of xNormal yet?
xNormal is available in 64 and 32 bits. I recommend to use a 64 bits OS and CPU if possible because that has many advantages over a 32bits architecture ( like DEP execution, 3Gb+ ram utilization, enhanced SSE instructions, etc... )
Oh, I see, that explains it then. Especially as I have an ATI Card that can't even use CUDA (I assume CUDA is used for this version)...
Is GPGPU always active with xn? If not, how do I activate it? Is it only activated if there's a CUDA-capable card detected? Is a normal Nvidia card enough, or is it worth byuing a Tesla card?
I've seen now that I already installed and run the 64bit version of xn. No idea why I haven't seen that earlier 
Thanks
Gian-Reto
Is GPGPU always active with xn? If not, how do I activate it? Is it only activated if there's a CUDA-capable card detected? Is a normal Nvidia card enough, or is it worth byuing a Tesla card?
Currently, xn3 uses OpenGL to compute the cone maps, so don't worry about the ATI and CUDA.
Is there any possibility to tell xn or OpenGL which card to use for GPGPU Computations? How could I achieve this? And would it be a problem if the second card is nVidia (Like with Crossfire / SLI)?
Is there any possibility to tell xn or OpenGL which card to use for GPGPU Computations? How could I achieve this? And would it be a problem if the second card is nVidia (Like with Crossfire / SLI)?
I'm afraid xn3's architecture is a bit old and it simply uses the first card it finds for that. xn4 will be different.
I assume Win 7 will automatically switch to the second card then for the rendering of the system?
I'll be eagerly awaiting xn 4 anyway 
Thanks for the help
Gian-Reto
Sorry for the Thread necromancy, but I'm now starting to plan the hardware upgrades for this year, and as it looks like xNormal will be one of the more often used applications for the time being on my PC, I'm trying to optimize the hardware for it.
But before I sink another 800 bucks into graphic cards, I'd like to ask the following questions:
As said, you plan to make the card on which calculations run configurable in xN 4.... will it also be possible to run it on two cards at the same time, sharing the load to cut down on computation time? Like if I have a CFX System, would I be able to tell xN 4 to only use one of both cards giving me a second card to show me the desktop or render something with, or tell xN 4 to use both cards to generate a cone map over night (or, in case of a 3 hour lunch, over lunch
...
And, the most Important question, when can we expect xN4 to appear?
Thanks in advance
Gian-Reto
As said, you plan to make the card on which calculations run configurable in xN 4.... will it also be possible to run it on two cards at the same time, sharing the load to cut down on computation time? Like if I have a CFX System, would I be able to tell xN 4 to only use one of both cards giving me a second card to show me the desktop or render something with, or tell xN 4 to use both cards to generate a cone map over night (or, in case of a 3 hour lunch, over lunch
...
Correct. You will be able to perform parallel tasks with different cards. I'll just place some kind of combo-box with all the devices available so you can choose which one you want to use.
Meanwhile, if you want my personal recomandation for a GPU, I own a lot of cards for developing and testing purposes and I can tell you the best one for me was the GTX460 by multiple motives. If you can wait a bit I would recommend you the GTX560 ( buy it one or two months after it's available, because the drivers and IHV's versions need to stabilise ).
And, the most Important question, when can we expect xN4 to appear?
With luck, before this summer. It will be available for Windows, linux(Ubuntu/Suse/Fedora) and MacOSX 10.6 or above. All in x86/x64 flavours.
Correct. You will be able to perform parallel tasks with different cards. I'll just place some kind of combo-box with all the devices available so you can choose which one you want to use.
awesome, this bit of information will finally convince me to go SLI or CF. Can't wait....
Meanwhile, if you want my personal recomandation for a GPU, I own a lot of cards for developing and testing purposes and I can tell you the best one for me was the GTX460 by multiple motives. If you can wait a bit I would recommend you the GTX560 ( buy it one or two months after it's available, because the drivers and IHV's versions need to stabilise ).
Okay, thats now interesting. Just like Bang for the bucks or as in total performance? Even compared to the likes of GTX480 or HD5870? I knew that until the last iteration of cards came out (GTX5XX and HD 6XXX), the GTX460 was the best Bang for the Bucks card, but I didn't knew that its GPGPU Value was any good.... I just thought that the VRAM was to little, as is the amount of "cores".... but then again, this seems to vary from application to application.
So you're saying that xNormal favors the bigger, more general purpose Nvidia card cores to the more numerous but smaller AMD ones?
With luck, before this summer. It will be available for Windows, linux(Ubuntu/Suse/Fedora) and MacOSX 10.6 or above. All in x86/x64 flavours.
Great, thanks for the info.
Gian-Reto
So you're saying that xNormal favors the bigger, more general purpose Nvidia card cores to the more numerous but smaller AMD ones?
Well, I think NVIDIA cores are more generic so they can be used for games, GPGPU, CAD, etc... plus CUDA is truly amazing.
ATI's design is more SIMD-based so it will only benefit games or packed-linear GPGPU computations ( like a vectorised blur ).
Globally speaking, I prefer NVIDIA's design and dev support.
Okay, then I will most probably also change over to the green side.... I wasn't sure about the GPGPU Power of the AMD and Nvidia Cards, as some benchmarks have AMD on top, while for others its Nvidia....
But if xNormal runs better on Nvidia cards, this pretty much settles it. I already have an AMD card for testing, Nvidia seems to have fixed most of the issues with the GF100 chip, and for games the Nvidia cards have some specials, so Nvidia it is.
Now the question is, get 2 of this lovely 460 from Gainward with 2 Gigs of VRAM, wait for the 560, or spend double as much and get 570s? 
Is the amount of VRAM an issue for xNormal.... could only 1 GB become a bottleneck?
Now the question is, get 2 of this lovely 460 from Gainward with 2 Gigs of VRAM, wait for the 560, or spend double as much and get 570s? 
I would wait for the 560 of 1Gb. It's just around the corner.
Is the amount of VRAM an issue for xNormal.... could only 1 GB become a bottleneck?
- Well, for 2D GPGPU 1Gb is more than enough because I process all using tiles so you'll need 256 x 256 x 4 channels x 4 bytes/channel(float) = 1Mb 
- For GPGPU ray tracing you'll be able to manage a 20M vertex/20M quad-face mesh:
20M verts x 3 components XYZ x 4 bytes/component = 240 Mb
20M quads x 4 indices x 4 bytes/index = 320Mb
Spatial struct ( a 50% aprox of the faces's size ) = 160Mb
Extra buffers + some precomputed data : 64Mb
Total = 240 + 320 + 160 + 64 = 784 Mb
I don't count there the normals/UVs because in xNormal the normals are stored in systems's memory to allow the tangent basis plugins to perform their computations using the CPU.
- For the 3D viewer, you should be able to work with 20M meshes ( not counting the speed, just the memory ):
20M verts x 3 components XYZ x 4 bytes/component x 2 ( pos+normals ) = 480 Mb
20M tris x 3 indices x 4 bytes/index = 240 Mb
1920x1080 32bits framebuffer = 1920 x 1080 x 4 channels x 1 byte/channel = 8 Mb
1920x1080 floating point z-buffer = 1920 x 1080 x 4 channels x 4 bytes(float) = 32 Mb
Some textures for the lowpoly mesh = 128 Mb
Total = 480 + 240 + 8 + 32 + 128 = 888 Mb
Notice also the GPU can use AGP/PCI textures/buffers so the system can swap data in case there's not enough VRAM available.
So you should be fine with 1Gb, yep.
Okay, I'll check the GTX 560 as soon as it appears.... if I can grab a 2Gig version I'll take it anyway, as I can use it at least for some Games on my more than HD Screen, and maybe it will become more important in the future..... else it will be just the fastest OC card I can get 
Thanks for all your advice
Regards
Gian-Reto
Great answer Jogshy!
And i recently got the 460 768mb as well :/








1. What's your polycount pls?
2. What renderer are you using in xNormal? xNormal version, pls?
3. Are you sure you're using the i7's cores and hyperthreading in the BIOS?
4. Is your system stable? OCCT, Memtest for Windows, LinX and Furmark.
5. 32-bits are very limited, yes.
------------------------------------------------------
http://www.xnormal.net
http://santyhammer.blogspot.com
http://www.ratgpu.com