Game Development Community

TSE "Milestone 3.5" Update

by Ben Garney · in Torque Game Engine Advanced · 06/30/2006 (11:06 am) · 246 replies

Hi guys,

We've checked the next TSE update into CVS. It's NOT Milestone 4 - so no fancy lighting - but it does include many bugfixes, a new vastly more efficient rendering infrastructure (ported from Marble Blast Ultra), way faster skinning, and the first drop of the new Atlas codebase.

Brian has more complete info on the delta in this update, and should be posting it sometime in the not too distant future - I just wanted to let you guys know what was up ASAP. :)

Please note that some parts of this are still a little rough, and the new Atlas codebase does not yet have the full complement of art tools, but everything is functional and ready to use.

This thread is for posting general feedback on the release and collaborating on any bugs that might come up. Please be patient, as here in the States we're just about to go into a 4 day weekend - so responses might be a little slow. But we are committed to making everything work 100%, so definitely let us know what your experiences are!

Regards,
Ben Garney
Torque Technologies Director
#61
07/01/2006 (3:25 pm)
Awesome, thanks dude!
#62
07/01/2006 (3:29 pm)
Well, I made path changes just to test the terrain blender portion and still getting a White terrain with no Textures. I just got my debug build compiled though, so I will see if I can tell if its having issues with path or what.
#63
07/01/2006 (4:48 pm)
Okay.. One of the crashes just now is tied to

void GFXD3DTextureManager::innerCreateTexture


Looks like the format is GFXFormat is being passed improperly during creation of a DDS and since it is invalid itll crash. It could be a typo or something causing it, but a check to exit cleanly would be a good start
#64
07/01/2006 (4:50 pm)
Can you record a journal using -jPlay that reproduces the problem? (You can play journals back using -jPlay.)

Alternatively, can you give a callstack?
#65
07/01/2006 (5:02 pm)
Ascension_DEBUG.exe!GFXD3DTextureManager::innerCreateTexture(GFXD3DTextureObject * retTex=0x0199b2c8, unsigned int height=3469659854, unsigned int width=3469659854, unsigned int depth=0, GFXFormat format=-825307442, GFXTextureProfile * profile=0x00c73f18, unsigned int numMipLevels=1, bool forceMips=true)  Line 87 + 0x3 bytes	C++
 
Ascension_DEBUG.exe!GFXD3DTextureManager::_createTexture(unsigned int height=3469659854, unsigned int width=3469659854, unsigned int depth=0, GFXFormat format=-825307442, GFXTextureProfile * profile=0x00c73f18, unsigned int numMipLevels=1, bool forceMips=true)  Line 218	C++
 
Ascension_DEBUG.exe!GFXTextureManager::createTexture(DDSFile * dds=0x0199b2c8, GFXTextureProfile * profile=0x00c73f18, bool deleteDDS=false)  Line 330 + 0x36 bytes	C++
 
Ascension_DEBUG.exe!GFXTexHandle::set(DDSFile * dds=0x0199b2c8, GFXTextureProfile * profile=0x00c73f18, bool deleteDDS=false)  Line 83 + 0x27 bytes	C++
 
Ascension_DEBUG.exe!AtlasTexChunk::writeDDS(Stream * s=0x0012cf8c)  Line 24	C++

Ascension_DEBUG.exe!AtlasTexChunk::write(Stream * s=0x0012cf8c)  Line 80	C++	

Ascension_DEBUG.exe!AtlasChunk::prepareDeferredWrite(AtlasChunk * ac=0x032cbbc8)  Line 135	C++

Ascension_DEBUG.exe!AtlasResourceTOC<AtlasResourceTexStub>::queueChunkUpdate(AtlasResourceTexStub * s=0x032a20e4)  Line 460 + 0xc bytes	C++

Ascension_DEBUG.exe!AtlasResourceTOC<AtlasResourceTexStub>::instateNewChunk(AtlasResourceTexStub * stub=0x032a20e4, AtlasTexChunk * chunk=0x032cbbc8)  Line 675	C++

Ascension_DEBUG.exe!cimportOldAtlasTQT(SimObject * __formal=0x00000000, int argc=3, const char * * argv=0x00c4c8c8)  Line 314	C++

I'll try to do a Journal (have to make sure we left it all hooked up)

==>importOldAtlasTqt("Base/Data/Terrains/StrongholdAtlas.tqt", "Base/Data/Terrains/StrongholdTexture.atlas");
importOldAtlasTQT - opened 'Base/Data/Terrains/StrongholdAtlas.tqt', processing...
importOldAtlasTQT - created new Atlas file 'Base/Data/Terrains/StrongholdTexture.atlas'...
importOldAtlasTQT - initialized Atlas file, converting...
#66
07/01/2006 (5:04 pm)
Are you doing the import call AFTER you've had GFX initialized? What does your script call look like?
#67
07/01/2006 (5:05 pm)
I am doing it from the Main Menu via console currently - planned to just do a script to handle it all once saw how it worked and such

CHU conversion works fine currently on the terrains I have tested on. Let me try it on the CVS smallTexture files just to see what happens there
#68
07/01/2006 (5:07 pm)
Hmm, interesting. If you have the source image for your TQT, you can import it directly (as a workaround) rather than converting the TQT.

I'd be interested in seeing what the debugger says about the ddsFile, and about this for the AtlasTexChunk.
#69
07/01/2006 (5:20 pm)
Well looks like we broke Journal play/record sometime ago or theres another issue with it, which I'll try to fix... but here is some more info. I just tried with smallTexture.tqt from CVS and it crashed exactly the same which at least tells me its not our files specifically

-		dds	0x0199a364 {mFlags={...} mHeight=3469659854 mWidth=3469659854 ...}	DDSFile *
+		mFlags	{mbits=3469659854 }	BitSet32
		mHeight	3469659854	unsigned int
		mWidth	3469659854	unsigned int
		mDepth	3469659854	unsigned int
		mPitchOrLinearSize	3469659854	unsigned int
		mMipMapCount	3469659854	unsigned int
		mFormat	-825307442	GFXFormat
		mBytesPerPixel	3469659854	unsigned int
		mFourCC	3469659854	unsigned int
+		mSurfaces	{mElementCount=3469659854 mArraySize=3469659854 mArray=0xcececece ...}	Vector<DDSFile::SurfaceData *>
		smExtantCopies	0	int

Thats the oddest values I have seen so far, but mFormat is coming back with the same value almost every time.

Isnt alot of information for the AtlasTexChunk.. Grabs the format and goes to write out the stream and then crashes.
#70
07/01/2006 (5:22 pm)
Well, that struct looks like it's uninitialize. What do the AtlasTexChunk's members look like? It might be getting deleted prematurely.
#71
07/01/2006 (5:34 pm)
Did another run thru and this time it looks initialized, but still not valid mFormat.

-		dds	0x0199aee0 {mFlags={...} mHeight=0 mWidth=0 ...}	DDSFile *
+		mFlags	{mbits=11698036 }	BitSet32
		mHeight	0	unsigned int
		mWidth	0	unsigned int
		mDepth	11853948	unsigned int
		mPitchOrLinearSize	26849896	unsigned int
		mMipMapCount	0	unsigned int
		mFormat	-808464640	GFXFormat
		mBytesPerPixel	27732272	unsigned int
		mFourCC	0	unsigned int
+		mSurfaces	{mElementCount=0 mArraySize=0 mArray=0x00000000 ...}	Vector<DDSFile::SurfaceData *>
		smExtantCopies	0	int


If you have VNC or something, I'd be willing to let you check run it from my end haha :)
#72
07/01/2006 (5:35 pm)
No, I don't care about the texture, I want the AtlasTexChunk. :)
#73
07/01/2006 (5:44 pm)
-		AtlasChunk	{mChunkSize=3486502863 mPreviousChunk=0 mOwningTOC=0xcfcfcfcf }	AtlasChunk
+		__vfptr	0x00b80d34 const AtlasTexChunk::'vftable'	*
		mChunkSize	3486502863	unsigned int
		mPreviousChunk	0	unsigned int
-		mOwningTOC	0xcfcfcfcf {mTreeDepth=??? mFile=??? mIsQuadtree=??? }	AtlasTOC *
		__vfptr	CXX0030: Error: expression cannot be evaluated	
		mTreeDepth	CXX0030: Error: expression cannot be evaluated	
		mFile	CXX0017: Error: symbol "" not found	
		mIsQuadtree	CXX0030: Error: expression cannot be evaluated

That is at the time when writeDDS is called... if there is something in particular you need me to grab or a certain part on the callstack to grab information from, let me know


-		agt	0x0199b10c {mFormat=FormatDDS bitmap=0x00000000 dds=0x0199a29c ...}	AtlasTexChunk *
+		AtlasChunk	{mChunkSize=3486502863 mPreviousChunk=0 mOwningTOC=0xcfcfcfcf }	AtlasChunk
		mFormat	FormatDDS	AtlasTexChunk::TexFormat
+		bitmap	0x00000000 {internalFormat=??? pBits=??? byteSize=??? ...}	GBitmap *
+		dds	0x0199a29c {mFlags={...} mHeight=3469659854 mWidth=3469659854 ...}	DDSFile *
+		mTexHandle	{...}	GFXTexHandle

That is from the instateNewChunk call, but let me step thru to it and grab it at runtime just in case
#74
07/01/2006 (5:46 pm)
Ah, ok, interesting. So the AtlasChunk is invalid at that point, too. What's the dump for chunk when it is passed to instateNewChunk?
#75
07/01/2006 (5:55 pm)
It looked like it loaded the DDS chunk from the TQT file fine, and then went invalid at some point which I'm trying to track down right now
#76
07/01/2006 (6:01 pm)
I'd be curious to know if anybody else is having issues with converting TQT files to the new format or not...
#77
07/01/2006 (6:30 pm)
Jeremiah and I are coordinate over IRC. We'll be sure to post what we come up with here.
#78
07/01/2006 (6:41 pm)
If anybody else has this similiar crash with TQT Conversion, working on it with Ben! :)
#79
07/01/2006 (9:39 pm)
What in the heck am I doing wrong to get this? This is the only problem I am having building TSE 1.35. Anyone else get this?

The thing that's confusing is that this file begins with this: // Automatically generated. DO NOT EDIT

Quote:coreStringDefaults.cpp
1>c:\tse\engine\i18n\corestringdefaults.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\tse\engine\i18n\corestringdefaults.cpp(5) : error C2143: syntax error : missing ';' before '*'
1>c:\tse\engine\i18n\corestringdefaults.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\tse\engine\i18n\corestringdefaults.cpp(8) : error C2440: 'initializing' : cannot convert from 'const char [30]' to 'int *'...

...count exceeds 100; stopping compilation
#80
07/01/2006 (11:19 pm)
I stil cannot ge this to compile...I download the updated setup file from abouv and F. Ross sent me some as well both gave me errors in the atlas cod ethat wasnt what i expected...but when i open the vs8 folder with out the updates the updates I only get one error

Linking...
LINK : fatal error LNK1104: cannot open file '..\lib\out.vc7.win32.debug\engine_debug.lib'
Build log was saved at "file://c:\tse\engine\out.vc7.win32.debug\BuildLog.htm"
Torque Shader Engine - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


If i need Ill show the other error from the updated packes but everthing is fine with this one exept this???

PLEASE HELP GOING.......MAD@$%&&...lol...sorry its late...