Wednesday, January 7, 2009

01-07-09 - Direct X WTF



The DX9 / DX10 issue is a pain in the butt. I guess it's kind of nice that they wiped the slate clean, but it means that you have to support
both for the foreseeable future, and they're very different. For a sweet little while now you've been able to get away with just supporting Dx8
and then just supporting Dx9 , which sure is nice for a small indie game developer.



Now every app has to try both and support both and fuck all.



I *really* can't believe they changed the half pixel convention. I know a lot of people think it was "wrong" and now its "right" , but IMO
there is no right or wrong, it's just a fucking convention (it was a small pain that GL and D3D did it differently). The only thing that
matters in a convention is that you pick one way to do it, document it clearly, and then *keep it the same* WTF hyachacha.



Rasterization rules DX9


Rasterization rules DX10



Anyway, I guess it's about time I look into the improved DX10 resource management capabilities. In particular, the ability to
do resource updates on a thread, so that hopefully all that horrible driver resource swizzling will be done off the main thread,
and secondly better support for subresource updates (which theoretically lets you page mips of textures and such).



Mmm update : apparently the good multithreaded resource management isn't until DX11 :(



And I'm a little unclear whether DX10 for XP even really works? The real features
seem to require Vista (?). Mmm.. seems like it's not worth the trouble, between XP and not having hardware that will run DX10
at home, I give up.



I also had the joy of discovering that to even compile stuff without the new Platform SDK you have to do this :



// CB : VS2003 patches :
#if 1
#define WINAPI_INLINE WINAPI
#define __in
#define __out
#define __inout
#define __out_bcount_opt(val)
#define __in_bcount_opt(val)
#define __in_opt
#define __out_opt
#define __inout_opt
#define __in_ecount(val)
#define __in_ecount_opt(val)
#define __out_ecount(val)
#define __out_ecount_opt(val)
#endif



Yay. Well, that was a waste of time. It sucks cuz texture updates take for freaking ever in Dx9 and lower.



Maybe we can just ignore Vista and DX10 and just wait for Windows 7 and DX11. At that point to just build a "hello world" app
you'll have to install the "Managed Hello World Extensions" which is a 2 GB package.




I've had a very disappointing night of not finding disappeared video games.



First off I found that Paul Steed's masterwork
Mojo Master was "dicontinued" by Wild Tangent. Waah.



Now I just learned that Shizmoo and Kung Fu Chess are GONE !? WTF !? I was thinking about dusting off my KFC skills, but I guess I won't.



I had an idea for "Stratego Chess" - meh it's pretty self explanatory.




"DownLoadThemAll" has the option to set the file's modtime to the server's time for the file. This option is ON by default. That's so fucking retarded.
I download papers, and then go to the direct and sort by "last modified" and expect it to be at the bottom ... NO! It's got a date from fucking 2002 or
something. Modtime should always be the last modtime *on my machine*. One thing that I've always been unsure about is whether "copy" should copy the
modtime data or whether it should make the dest's modtime now - by default it moves the modtime, which is another reason why just using modtime is not
strong enough for Oodle - when somebody copies new data on top of an existing file, the modtime can actually go *backward*. Oodle with file hashes now
sees that the modtime has changed and updates the file hash.

No comments:

Post a Comment