Jump to content
  • Advertisement

Adam Hamilton

  • Content Count

  • Joined

  • Last visited

Community Reputation

271 Neutral

About Adam Hamilton

  • Rank
  1. Adam Hamilton

    Direct3D 9 Framerate Limited...

    I am not sure but I have seen something similar to this TargetFPS = 60.0 SecPerFrame = 1.0 / TargetFPS -- Will be about 16.66ms do FrameTime = 0 do deltaTime = GetDeltaTime() Update(deltaTime) FrameTime = FrameTime + deltaTime while FrameTime < SecPerFrame Render() while GameStillRunning Although this may tend to cause your frame rate to drop to half your target speed so what I would do is is minus a millisecond from the SecPerFrame so that you are sure you are going to call that render function before your frame time reaches 16.66ms (in the case of 60FPS) Another thing would be to update once, run your physics simulation a bunch of times and then call render. Extra AI simulation, extra particles' calculation for your particle system. These are just ideas on what you can do with the extra bandwidth rather than stalling the GPU/CPU (in the case of vsync) or displaying only a third (or less) of your intended frame (in the case of no vsync) otherwise known as tearing.
  2. Adam Hamilton

    Direct3D 9 Framerate Limited...

    Can anyone tell me why you would want to render as many frames as possible with spare CPU time. I have always believed that you should try and limit the FPS of the rendering to the refresh rate of the monitor, sending the extra bandwidth to update calls I guess the only benefit I can see is if the rendering is done to off-screen render targets and shader programs running through algorithms that don't necessarily write to the screen. I am not sure if this is right - I am just starting to get into Direct3D programming and it would be good to know in any case. I guess the only other use I can come up with is benchmarking the card / CPU Cheers Adam Hamilton
  3. Adam Hamilton

    SIMD experiments

    Thankyou Jan The link you posted looks to be a very interesting read + the other threads too. I did some tests at home comparing a transpose function using intrinsics along with a hand coded SIMD version and I found that my hand coded version was about 3 seconds slower than using the intrinsics for about 100,000,000 transposes. I was able to reduce it to about 1 second by re-arranging some of the instructions in my hand coded version. I didn't actually end up testing a transpose function that didn't use SIMD because it was getting late and couldn't think of how to do an inplace transpose. Cheers
  4. Adam Hamilton

    SIMD experiments

    Thankyou, I will certainly give it a try when I get home. Much appreciated.
  5. Adam Hamilton

    SIMD experiments

    Hi fellow programmers :) I am writing some matrix functions with the intention of using SIMD but I am not very experienced in writing in assembler. I thought I would do some experiments by writing a transpose function using SIMD and one that doesn't use SIMD and pit them against one another and maybe tweak the SIMD version by re-ordering instructions to see what effect that has on the timings. I have sat down with pen and paper to work out what instructions I require to perform the transposition but I am not sure about the timings and latencies of the instructions. Does anybody know where I can find some information on this? I would like to learn this because I believe it gets you thinking about problems in a different way so even if I am re-inventing the wheel or my SIMD experiments don't turn out the way I think, I know I will have learned something. Thanks Adam Hamilton
  6. Adam Hamilton

    Visual C++ 2008 Optimizing Compiler Issues

    Thanks outRider, that would explain it then.
  7. Hi I am writing a simple 4D vector because I am going to try and write a simple raytracer so I thought I would just see what the compiler does when I make it generate SSE code. Here is the Vector4 struct by the way struct Vector4 { float x; float y; float z; float w; Vector4() : x(0.0f), y(0.0f), z(0.0f), w(0.0f) {} }; Now the curious thing is (I have not much experience in writing SSE code) that for the Vector4 constructor it generates in the Release configuration when I view the assembler code XORPD XMM0, XMM0 MOVSS [EAX], XMM0 MOVSS [EAX+4], XMM0 MOVSS [EAX+8], XMM0 MOVSS [EAX+12], XMM0 With EAX pointing to the address of the object I have the structure aligned on a 16 byte address boundary and I thought that it would be much better to use a MOVAPS [EAX], XMM0 instruction or at least a MOVUPS instruction. Would it be better for me to hand write these routines using the SSE instrinsics.
  8. Adam Hamilton

    Google Chrome

    I don't know where people get the idea that Google is somehow spying on peoples web habits through Chrome. Chrome, I heard, is developed as Open Source and as such you can go through the source code and make sure that they're not spying on you. Why don't we pick on Microsoft's Internet Explorer. As far as I know, it is closed source so they could be spying on you and you may never be the wiser.
  9. Adam Hamilton

    Google Chrome

    Quote:Original post by d000hg Quote:Original post by RedDrake Quote:Original post by Yann L I don't like that it draws its own titlebar, it makes it inconsistent with the OS window-style (maybe you can override this, I didn't check). The missing menu bar is borderline but forgivable. I hate the URL entry box behaviour. Actually, I hate all these smart(ass) boxes that try to do everything from guessing your next keypresses to making your laundry. The thing about this is that they probably intended this as a push for more common use of web applications. With this design you don't have to have top 200px get eaten by the browser.A standard interface is one of THE big things we've gained from Windows. It means anyone, even your grandma, can figure out some basic functionality. I'm used PCs for years and I had to spend a few seconds figuring it out... how will your gran cope with that? I even managed to accidentally close the browser! And doesn't IE allow you to go "fullscreen" with their browser since about 1998? Open IE7 and hit F11... Office 2007 would be considered then to have a broken interface as there is no menu bar in the sense of your standard pull down menus. Microsoft broke the rules first :) Anyway, it just goes to show that the user interface is evolving. Maybe the creationists out there may beg to differ (Had to throw that one in) but I actually like the interface. For me it keeps the focus on what the browser is really for... Surfing the web.
  10. Adam Hamilton

    Google Chrome

    Quote:Original post by Hodgman Quote:Original post by Kobalt64 Am I the only one who thought it was funny the default search engine was Live Search?Wait, did you tell it to import your settings from IE? My installation did not give me the option, don't know why but it would have been nice to have been asked. However, I must say that I am impressed with it. I found you could drag a text link to the top next to the tab although I soon realised that it needs to prefixed with http:// or ftp:// although firefox can do it with and without prefix. IE7 can not do either. I love the new tab page on Chrome to select a recent web page.
  11. Quote:Original post by Colin Jeanne Quote:Original post by Adam Hamilton It seems like it's searching through lots of different folders to find the installed programs because the hard drive is being severely thrashed while it's looking for them. If you check on the MSDN, how the Add/Remove programs feature works is outlined. There is a specific registry key that programs use to register their uninstall programs. These programs must be enumerated and various pieces of metadata must be extracted from the binary (things like, the name to show in the list, the icon, etc.). This requires hard drive access, of course and getting this information is actually pretty slow. Plus, I'm sure there are various fallbacks that are needed when programs do not provide metadata correctly. I must admit I did not read the MSDN to find out how that feature worked but as this thread is a rant about bad algorithms I thought I would bring it up because I personally think that Microsoft didn't do their best when designing the whole installed programs feature. Why can't the Programs and Features grab the list of installed programs before accessing metadata for instance, that way I can see straight away the list of programs without having chunks of programs appear. Sometimes I just want to open up the applet and remove a particular program, I don't need to know how much space on the hard drive it took, whether or not you can modify an installation. Besides, what is wrong with having a file with a list of programs that were installed, the file could have a field which links an installed program with their classID to look up this metadata when required. I just think it could have been done better. It could be that the design used was implemented efficiently however the design itself was not an efficient one.
  12. I use Vista and I don't know if it has to do with really bad design but it annoys me in the Programs and Features applet in Control Panel that I have to wait 30sec to a minute to display my installed programs and I have 97 of them when I personally think it should take less than 5 seconds, not because I'm impatient but because I purchased a piece of software from Microsoft and from what it seems is that they can't get something as simple as grabbing a list of installed programs right. It seems like it's searching through lots of different folders to find the installed programs because the hard drive is being severely thrashed while it's looking for them.
  13. Adam Hamilton

    climate change idea

    Very nice... I like it :)
  14. Adam Hamilton

    climate change idea

    Quote:Original post by stimarco Why? You could mount the whole thing inside a container that's had the air sucked out of it. No air, no drag, no friction, no nada. Power could be generated by mounting coils on the flywheel and having them pass through magnets -- the dynamo principle. You do realise that a coil that is producing current from a magnetic field actually generates a magnetic field itself. This would slow the flywheel (even inside a vacuum chamber and even assuming that there is no friction itself from whatever bearings you choose to keep that flywheel moving) You see, one can NEVER extract more energy from a system than has been put into the system. Here, try a simple experiment which should satisfy the coil extracting energy from a moving magnetic field. Take an electric motor (A hobby motor if you will) Give the axle a spin and time how long it comes to a stop (A good spin might last a half a second or so) Now short the two leads together and give the axle another spin (same speed as before) and time how long it takes. This time, as soon as you let go of the axle, it will come to stop in less than a tenth of second. Everything is the same inside the motor between the two spins, brush friction, weight of the axle, weight of the coil and iron core all except on thing, the counter magnetic field which is caused by the current you generated by spinning the axle. Note that the first spin produced no current because the effective resistance between the two leads was infinite.
  15. Adam Hamilton

    intelliSense in DevC++

    Quote:Original post by DigiDude I don't know how to Dev-C++'s version of intelliSense, but I have always been prompted to enable it when installing Dev-C++. That said, I agree with Promit. VC++ Express is free and the intelliSense is MUCH MUCH better than anything you'll get with Dev-C++. I wouldn't call it MUCH MUCH better, I would say a little better, I believe Microsoft thought the IntelliSense feature was a lost cause on C++ and did not warrant the "making it better" approach. But still grab VC++ Express as it is, IMO, the best free C++ IDE & Compiler around. If you are looking for a lot better IntelliSense for C++ then I think you have no choice but to look towards getting the non-express edition of C++.NET 2005 and to try out WholeTomato's (www.wholetomato.com) Intellisense addin.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!