Jump to content

  • Log In with Google      Sign In   
  • Create Account

We need your help!

We need 1 more developer from Canada and 12 more from Australia to help us complete a research survey.

Support our site by taking a quick sponsored survey and win a chance at a $50 Amazon gift card. Click here to get started!


Member Since 29 Jul 2001
Offline Last Active Private

#5227357 GI ground truth for comparison

Posted by Promit on 05 May 2015 - 12:42 PM

Isn't POVRay a common choice for this sort of thing?

#5226724 Interpreting a performance profiling results

Posted by Promit on 01 May 2015 - 11:19 AM

My code is highlighted. Why is the graphics dll at the same level as WinMainCRTStartup()? Looking at JonsGame::Game::Run() there also popups functions from way deeper.

Much of the NV graphics stuff actually happens in an outside thread, which is why you're seeing it at the same level. It's top level on a thread running alongside your game, rather than being called directly from it. The pop up functions are glitches that show up in most profilers when a proper callstack isn't available; ignore them. 


What I can see right now is about 4.25% of your actual CPU time is being spent running your own code, and the rest of it is outside.

What are these random Sleeps() for example?

Those are most likely pauses due to vertical sync. Right now you're spending so much time waiting on the driver that a CPU profile is going to give you relatively little information. Run the game long enough to get somewhere in the range of 10k samples inside your Run function, and then maybe you'll start seeing something useful. But it looks to me like you either need a GPU profiler, or have nothing interesting to profile in the first place.

#5226720 Which is the best university in the "world" for Computer Graphics?

Posted by Promit on 01 May 2015 - 11:01 AM

Not "Best" because that's an idiotic, meaningless, and ultimately unproductive question. But read SIGGRAPH papers over the years and see what universities publish regularly, to get a feel for the research side of things. A few notables in the US:

UC Berkeley

UC Los Angeles (UCLA)


University of North Carolina (UNC Chapel Hill)

Carnegie Mellon

Massachusetts Institute of Technology (MIT)


New York University (NYU)


California Institute of Technology (CalTech)

Georgia Institute of Technology (Georgia Tech)

University of Washington


Outside the US, ETH Zurich caught my attention.


Specializations shift over time depending on the students and faculty currently present at the school and their interests. So there's no point identifying any particular university as having any particular interest.

#5226602 Interpreting a performance profiling results

Posted by Promit on 30 April 2015 - 05:27 PM

In general there are two ways to start dealing with the profile: Top-down inclusive time, and bottom-up exclusive time.


Top-down inclusive time tells you how much time was spent inside a function plus any functions it called (children). Then you can see which functions it called, and how much time was spent in those functions+children, and so on all the way down to the leaves of the call tree. This gives you an overall birds-eye view of where your system spends its time.


Bottom-up exclusive time is really about identifying the largest leaves on the tree. This gives you how much time was spent in functions excluding any outside calls it made, which allows you to focus on the computations the consume the most actual computing resources. It's a little bit trickier of a view to work in, as the major offenders here can often be disparate and it may not be immediately obvious what to do with them. It's most challenging with functions that are called from many different places to do many different system tasks.


Always start with those two views of the data.

#5225589 Is AP Computer Science Worth It?

Posted by Promit on 26 April 2015 - 01:10 AM

The long and short of it is that as far as high school courses go, it's one of the most useful and pretty universally accepted at colleges. 

#5225280 Vertex Projection (without gluProject)

Posted by Promit on 24 April 2015 - 01:01 PM

Did you take into account the fact that in OpenGL, the origin of the viewport is in the bottom left and goes up in the positive direction?

#5224719 do float operations give different results in different GPUs?

Posted by Promit on 21 April 2015 - 12:14 PM

If the floating numbers you use and their operations will result allways in a no-fractinal-part number, you could relly on your predictions across devices.

But once it will step into a fractional part, even a single 10th, precision erros will accumulate .

This is completely untrue. In the case of 32 bit floats, precision runs out at 2^24, making 16,777,217 the first unrepresentable integer in that format. On the other side, floats are able to represent lots of fractional values with perfect accuracy.

#5224578 do float operations give different results in different GPUs?

Posted by Promit on 20 April 2015 - 05:35 PM

Shader compilation settings can affect it as well. This is not different from float code on CPU, where different compiler settings can make a difference in results.

#5224529 Remaking Mario 64 from scratch, how long?

Posted by Promit on 20 April 2015 - 12:23 PM

Maybe a bit off topic, but I would definately be willing to pay a few bucks for a good remake. Unfortunately nintendo and the world of law and all non-shared interests wont let this happen. Memories about the introduction are always good to remember smile.png

Dude, what are you talking about? They gave you the remake on the DS a couple years ago. You can play the original in Virtual Console. Nintendo has not abandoned that property.

#5224487 Remaking Mario 64 from scratch, how long?

Posted by Promit on 20 April 2015 - 08:05 AM

The core technical work is actually not that bad - some guy did it in Unity for kicks.
The amount of assets comprising the game is pretty gigantic, though. Simple assets with simple textures, but still many of them. And various levels have enough special pieces to complicate the work considerably.

#5222755 How does boost::shared_ptr/make_shared equality work?

Posted by Promit on 12 April 2015 - 09:37 AM

make_shared is conceptually the same as:

boost::shared_ptr<Object> selObj;
selObj.reset(new Object());

If that helps.

#5222670 Is this fair use?

Posted by Promit on 11 April 2015 - 05:37 PM

Without a lawyer on retainer, the extent to which you're protected is zero - regardless of the legality. You're correct that parody is protected as fair use, but in the unlikely event that someone wants to take you to task, what do you plan to do? 

#5221976 Looking for a good sound card

Posted by Promit on 07 April 2015 - 08:18 PM

For audio recording work, I would tend to go to an external pro audio interface rather than any type of old style internal sound card. Needs vary, but something like a Focusrite Scarlett 6i6 would be an example. It has XLR, 1/4", and MIDI connections. Another possibility would be the Presonus Audiobox.

#5221974 SPIR-V Macro Compiling

Posted by Promit on 07 April 2015 - 08:09 PM

There's no runtime conditional compilation stuff in SPIR-V. You would create all variants, or use static/uniform/coherent branching to select. 

#5221423 Vertices and indices in the same buffer?

Posted by Promit on 04 April 2015 - 07:50 PM

@Promit: I may very well be reading incorrectly between the lines, but I get the impression that mixing different kinds of data in single buffer (in old or current GL or D3D anyway) is not something you've done or seen done, at least enough to be a somewhat common pattern?

Correct, but that's not to suggest there's any issue with it. I've just never seen any of the documentation from the IHVs suggest that you should do it, so it never really crossed my mind to try it. I think it's a good idea if GPU memory fragmentation is a concern. 


This was a few years ago: https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/gdc12/Efficient_Buffer_Management_McDonald.pdf