#896 closed defect (duplicate)
Brush/plane slice operation causes rare assertion failure
Reported by: | Erik Johansson | Owned by: | |
---|---|---|---|
Priority: | Should Have | Milestone: | |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description
I'm not 100% sure how I got the following error, just using the flatten tool a lot. I'll see if I get it again, but I'll post the error message:
Assertion failed: "idx < si.newv.size()" Location: Brush.cpp:246 (CBrush::Slice) Call stack: CBrush::Slice (brush.cpp:246) this = (unavailable) plane = 0xFFFFFFFF -> m_Norm = X = (unavailable - internal error) Y = (unavailable - internal error) Z = (unavailable - internal error) m_Dist = (unavailable - internal error) result = 0x00000005 firstInFace = 5 (0x00000005) si = v = (error -100500 while analyzing vector<SliceVertexInfo >) newv = (error -100500 while analyzing vector<NewVertexInfo >) thisFaceNewVertex = 3732780 (0x0038F52C) original = 0x0038F4E8 -> m_Vertices = (error -100500 while analyzing vector<CVector3D >) m_Faces = (error -100500 while analyzing vector<size_t >) result = 0x0038F508 -> m_Vertices = (error -100500 while analyzing vector<CVector3D >) m_Faces = (error -100500 while analyzing vector<size_t >) startInResultFaceArray = 6 (0x00000006) i = 3732828 (0x0038F55C) cur = 14 (0x0000000E) CBrush::Intersect (brush.cpp:297) this = (unavailable) frustum = 0x03CFDDA0 -> m_aPlanes = [10] m_Norm = X = 1.696903 (0x3FD9341C) Y = -1.762556 (0xBFE19B6D) Z = 0.104325 (0x3DD5A878) m_Dist = -0.000019 (0xB79F08D9) m_Norm = X = -0.622785 (0xBF1F6ED4) Y = 1.763787 (0x3FE1C3C7) Z = 1.582765 (0x3FCA9808) m_Dist = 0.000016 (0x378949FF) m_Norm = X = -2.342355 (0xC015E926) Y = -2.664490 (0xC02A8701) Z = 2.678723 (0x402B7031) m_Dist = 0.000019 (0x37A097C0) m_Norm = X = 3.416473 (0x405AA77E) Y = 2.665722 (0x402A9B2F) Z = -0.991633 (0xBF7DDBA4) m_Dist = -0.000022 (0xB7B6569A) m_Norm = X = -0.004212 (0xBB8A0680) Y = -0.000005 (0xB6A20A00) Z = -0.006616 (0xBBD8CB80) m_Dist = 32.125492 (0x42008081) m_Norm = X = 1.078330 (0x3F8A06B8) Y = 0.001236 (0x3AA20A0B) Z = 1.693706 (0x3FD8CB5C) m_Dist = -32.125492 (0xC2008081) m_Norm = X = 0.000000 (0x00000000) Y = 0.000000 (0x00000000) Z = 0.000000 (0x00000000) m_Dist = 0.000000 (0x00000000) m_Norm = X = 0.000000 (0x00000000) Y = 0.000000 (0x00000000) Z = 0.000000 (0x00000000) m_Dist = 0.000000 (0x00000000) ... m_NumPlanes = 6 (0x00000006) result = 0x0038F52C -> m_Vertices = (error -100500 while analyzing vector<CVector3D >) m_Faces = (error -100500 while analyzing vector<size_t >) buf = m_Vertices = (error -100500 while analyzing vector<CVector3D >) m_Faces = (error -100500 while analyzing vector<size_t >) CBound::IntersectFrustumConservative (bound.cpp:174) this = (unavailable) frustum = 0x03CFDDA0 (see above) brush = m_Vertices = (error -100500 while analyzing vector<CVector3D >) m_Faces = (error -100500 while analyzing vector<size_t >) buf = m_Vertices = (error -100500 while analyzing vector<CVector3D >) m_Faces = (error -100500 while analyzing vector<size_t >) ShadowMapInternals::CalcShadowMatrices (shadowmap.cpp:228) this = (unavailable) minZ = 0.343842 (0x3EB00C0F) shift = X = 0.277283 (0x3E8DF7FD) Y = 439.700012 (0x43DBD99A) Z = 0.000000 (0x00000000) lightToTex = _11 = 0.000000 (0x19F1647A) _21 = 0.000000 (0x0038F600) _31 = 0.000000 (0x0038F60C) _41 = 0.000000 (0x00CE6C51) _12 = 0.000000 (0x00DC9608) _22 = 0.000000 (0x19F1647A) _32 = 5.921517 (0x40BD7D12) _42 = 0.000000 (0x19F1647A) _13 = 5.921517 (0x40BD7D12) _23 = 0.000000 (0x03CD1D30) _33 = 0.000000 (0x0CA8D970) _43 = 0.000000 (0x19F1647A) _14 = 5.921517 (0x40BD7D12) _24 = 0.000000 (0x0038F868) _34 = 0.000000 (0x00CE6C86) _44 = 5.921517 (0x40BD7D12) _data = [16] 0.000000 (0x19F1647A) 0.000000 (0x0038F600) 0.000000 (0x0038F60C) 0.000000 (0x00CE6C51) 0.000000 (0x00DC9608) 0.000000 (0x19F1647A) 5.921517 (0x40BD7D12) 0.000000 (0x19F1647A) 5.921517 (0x40BD7D12) 0.000000 (0x03CD1D30) 0.000000 (0x0CA8D970) 0.000000 (0x19F1647A) ... _data2d = [4] [4] { 0.000000 (0x19F1647A), 0.000000 (0x0038F600), 0.000000 (0x0038F60C), 0.000000 (0x00CE6C51) } [4] { 0.000000 (0x00DC9608), 0.000000 (0x19F1647A), 5.921517 (0x40BD7D12), 0.000000 (0x19F1647A) } [4] { 5.921517 (0x40BD7D12), 0.000000 (0x03CD1D30), 0.000000 (0x0CA8D970), 0.000000 (0x19F1647A) } [4] { 5.921517 (0x40BD7D12), 0.000000 (0x0038F868), 0.000000 (0x00CE6C86), 5.921517 (0x40BD7D12) } offsetX = 0.343842 (0x3EB00C0F) texscalex = 5.921517 (0x40BD7D12) texscaley = 5497927542043857700000000000000000.000000 (0x778788CD) offsetY = -0.553332 (0xBF0DA732) texscalez = -0.939027 (0xBF706414) scale = X = -0.203328 (0xBE503543) Y = 252.507553 (0x437C81EF) Z = 340282346638528860000000000000000000000.000000 (0x7F7FFFFF) ShadowMap::BeginRender (shadowmap.cpp:434) this = (unavailable) CRenderer::RenderShadowMap (renderer.cpp:931) this = (unavailable) transparentShadows = px = 0x19F1647A -> (RenderModifier) pn = pi_ = 0x0038F78C -> use_count_ = 13934493 (0x00D49F9D) weak_count_ = 0 (0x00000000) shadowTransp = 0.000000 (0x03C55438) CRenderer::RenderSubmissions (renderer.cpp:1530) this = (unavailable) waterScissor = m_Data = [2] X = -1.#QNAN0 (0xFFFFFFFF) Y = 0.000000 (0x0038F708) Z = 0.000000 (0x03D24910) X = 0.000000 (0x0A64AA30) Y = 5.921517 (0x40BD7D12) Z = 0.000000 (0x19A56E88) reflectionScissor = x1 = 253191815 (0x0F176687) y1 = 1086160146 (0x40BD7D12) x2 = 430272136 (0x19A56E88) y2 = 1086160146 (0x40BD7D12) refractionScissor = x1 = 3733260 (0x0038F70C) y1 = 3733272 (0x0038F718) x2 = 13528145 (0x00CE6C51) y2 = 14456328 (0x00DC9608) dirty = x1 = 64061216 (0x03D17F20) y1 = 210461408 (0x0C8B62E0) x2 = 253191815 (0x0F176687) y2 = 2005371085 (0x778788CD) CRenderer::RenderScene (renderer.cpp:1792) this = (unavailable) scene = 0x03CB9568 -> (Scene) frustum = m_aPlanes = [10] m_Norm = X = -1.040495 (0xBF852EEF) Y = 1211.236450 (0x44976791) Z = 1.603598 (0x3FCD42B1) m_Dist = -0.940888 (0xBF70DE01) m_Norm = X = 1.595981 (0x3FCC491B) Y = -859.250427 (0xC456D007) Z = -2.600444 (0xC0266DAE) m_Dist = 0.550317 (0x3F0CE18E) m_Norm = X = 3.563219 (0x40640BC8) Y = -1054.831055 (0xC483DA98) Z = 2.195049 (0x400C7BB0) m_Dist = -2.428372 (0xC01B6A74) m_Norm = X = -3.007733 (0xC0407EB2) Y = 1406.817139 (0x44AFDA26) Z = 0.001590 (0x3AD06080) m_Dist = 0.007365 (0x3BF15580) m_Norm = X = -0.002178 (0xBB0EC300) Y = 30.745148 (0x41F5F610) Z = -0.406985 (0xBED0604A) m_Dist = -1.885421 (0xBFF15578) m_Norm = X = 0.557665 (0x3F0EC31A) Y = 321.240845 (0x43A09ED4) Z = 0.000000 (0x00000000) m_Dist = 0.000000 (0x00000000) m_Norm = X = 0.000000 (0x00000000) Y = 0.000000 (0x00000000) Z = 0.000000 (0x00000000) m_Dist = 0.000000 (0x00000000) m_Norm = X = 0.000000 (0x00000000) Y = 0.000000 (0x00000000) Z = 0.000000 (0x00000000) m_Dist = 0.000000 (0x00000000) ... m_NumPlanes = 63798520 (0x03CD7CF8) CGameView::Render (gameview.cpp:470) this = (unavailable) Render (gamesetup.cpp:215) skycol = r = 1.000000 (0x3F800000) g = -170141183460469230000000000000000000000.000000 (0xFF000000) b = 0.000000 (0x00000000) a = 0.000000 (0x00200000) skystring = { (error -100500 while analyzing string >) } cursorName = { (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) } ViewGame::Render (view.cpp:248) this = (unavailable) vp = m_X = 0 (0x00000000) m_Y = 1476 (0x000005C4) m_Width = 762 (0x000002FA) m_Height = 3212836864 (0xBF800000) costClass = 0 (0x00) goal = type = POINT x = value = 0 (0x00000000) z = value = 0 (0x00000000) u = X = value = 0 (0x00000000) Y = value = 0 (0x00000000) v = X = value = 0 (0x00000000) Y = value = 0 (0x00000000) hw = value = 0 (0x00000000) hh = value = 63207156 (0x03C476F4) BeginAtlas (gameloop.cpp:268) args = 0x00000000 dll = 0x03C27528 -> m_Name = 0x03C303D8 -> [8] { 64 ('@'), 142, 209, 12, 0, 0, 0, 0 } m_Handle = 0x03C278F8 hooks = override_gl_upload_caps = 0x03C27A70 -> get_log_dir = 0x00000000 bundle_logs = 0x00000000 translate = 0x00C073F2 -> (CmdLineArgs::Has) translate_free = 0x0D0E9378 -> log = 0x00000051 display_error = 0x00000000 uiThread = 6 (0x00000006) msgPasser = (AtlasMessage::MessagePasser) m_Mutex = m_Mutex = 0x00000020 m_SemaphoreName = { (error -100500 while analyzing string >) } m_Semaphore = 0x00000002 m_Queue = (error -100500 while analyzing queue<AtlasMessage::IMessage *,deque<AtlasMessage::IMessage * > >) m_Trace = (bool)0x20 paths = m_root = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 31320 m_rdata = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 428 m_data = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 360 m_config = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 55534 m_cache = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 10192 m_logs = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 47 ('/') last_activity = 1.08646e-311 (0x0000020000000125) recent_activity = false time = 6.0267e+175 (0x646E756F72416574) ev = ev = type = 26 (0x1A) active = { type = 26 (0x1A), gain = 0 (0x00), state = 0 (0x00) } key = type = 26 (0x1A) keysym = { sym = 31, unicode = 31360 (0x7A80) } motion = { type = 26 (0x1A), x = 0 (0x0000), y = 31 (0x001F) } button = type = 26 (0x1A) button = 0 (0x00) state = 0 (0x00) x = 31 (0x001F) y = 0 (0x0000) resize = { type = 26 (0x1A), w = 31 (0x0000001F), h = 63076992 (0x03C27A80) } expose = { type = 26 (0x1A) } quit = { type = 26 (0x1A) } user = { type = 26 (0x1A), code = 31 (0x0000001F), data1 = 0x03C27A80 } length = 0.000000 (0x03007400) last_time = 7549.07 (0x40BD7D11EEF0839A) name = (error -100500 while analyzing string >) sleepUntil = 6.0267e+175 (0x646E756F72416574) ATLAS_RunIfOnCmdLine (atlas.cpp:77) args = 0x0038FC1C -> m_Args = (error -100500 while analyzing vector<pair<CStr8,CStr8> >) m_Arg0 = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 47 ('/'), 30598, 64980, 56 ('8'), 32 (' '), 0, 57382, 30598 } force = false RunGameOrAtlas (main.cpp:437) argc = 2 (0x00000002) argv = 0x03C27A50 -> 0x03C26CE0 -> "pyrogenesis.exe" args = m_Args = (error -100500 while analyzing vector<pair<CStr8,CStr8> >) m_Arg0 = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 64980 paths = m_root = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 7885 m_rdata = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 1 m_data = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 64824 m_config = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 m_cache = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 64900 m_logs = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 18902 replay = m_Stream = 0x00020024 -> (error -100406 while analyzing basic_istream<char,char_traits<char> >) mod = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 63062 zip = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 paths = m_root = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 7885 m_rdata = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 1 m_data = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 64824 m_config = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 m_cache = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 64900 m_logs = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 18902 builder = m_VFS = px = 0x00000000 pn = pi_ = 0x00000020 m_Files = (error -100500 while analyzing vector<Path >) m_TempDir = path = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) separator = 72 ('H') main (main.cpp:511) argc = 2 (0x00000002) argv = 0x03C27A50 (see above) wmain (wseh.cpp:380) argc = 2 (0x00000002) argv = 0x03C26C98 -> 0x03C26CA4 -> "pyrogenesis.exe" utf8_argv = (error -100500 while analyzing vector<char * >) ret = 13873581 (0x00D3B1AD) utf8 = (error -100500 while analyzing string >) __tmainCRTStartup (crtexe.c:583) nested = 0 (0x00000000) CallStartupWithinTryBlock (wseh.cpp:397) ret = 939161476 (0x37FA7784) BaseThreadInitThunk (:0) RtlInitializeExceptionChain (:0) RtlInitializeExceptionChain (:0) errno = 0 (No error reported here) OS error = 487 (Ett försök gjordes att använda en ogiltig adress.)
(The Swedish text means more or less: An attempt was made to use an invalid address.)
Change History (3)
comment:1 by , 13 years ago
Component: | Atlas editor → Game engine |
---|---|
Summary: | Atlas crash → Brush/plane slice operation causes rare assertion failure |
comment:2 by , 12 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Closing this as duplicate of #1027, since that ticket has more info (crash dumps, etc).
comment:3 by , 12 years ago
Milestone: | Backlog |
---|
Note:
See TracTickets
for help on using tickets.
Looks like
CBrush::Slice
is failing to handle certain parameters, but I can't find what values trigger the error. Probably need to check the algorithm carefully to figure out what might be going wrong.