Current bugs

CNA snapshot c1c316b9  ·  Known Issues › Current bugs  ·  source links pinned to c1c316b9

✓

Evidence basis: source-verified at the pinned commit. Claims on this page were checked by reading the CNA source at commit c1c316b9; unless a sentence says otherwise, nothing here was built or executed.

Existing behaviour violates an intended or documented contract. Every entry below exists at CNA c1c316b9; open an entry for its expected and actual behaviour, source locations, evidence and blast radius.

191 entries

IDTitleSubsystemStatusSeverityEvidence basis
CNA-BUG-001Plane::Transform(plane, matrix) transposes the inverse in place through a non-aliasing-safe Matrix::TransposeMath & geometryopenhighreproduced
CNA-BUG-002BoundingSphere::Contains(const BoundingFrustum&) never returns DisjointMath & geometryopenmediumsource-verified
CNA-BUG-003BoundingBox::Contains(const BoundingFrustum&) never returns Disjoint and answers Contains when only the first frustum corner is outsideMath & geometryopenmediumsource-verified
CNA-BUG-004BoundingFrustum::Intersects(Ray) never computes an entry distance: rays starting outside always miss, and an origin on a plane throwsMath & geometryopenmediumsource-verified
CNA-BUG-006SpriteEffect caches a MatrixTransform parameter that never exists, so OnApply() never sets the sprite projectionGraphics & renderersopenlowsource-verified
CNA-BUG-008Load<Song> and Load<Video> resolve a same-named .cnj file and return a media object that points at JSONContent & XNB/CNB/CNJopenmediumreproduced
CNA-BUG-012GraphicsDeviceCapabilityTest's catch-all expectations are still wrong for STUB and for Linux SDL_GPU builds without libshadercTesting & evidencenarrowedlowsource-verified
CNA-BUG-016The .cnj JSON parser (CNA::Internal::ParseJson) recurses without a nesting limit, so a small crafted document overflows the stackContent & XNB/CNB/CNJopenmediumreproduced
CNA-BUG-017XnbReadLimits::maxFileSize is not applied to ContentManager's whole-file .xnb readsContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-021ContentManager::Unload() only clears the cache; it disposes none of the assets it loadedContent & XNB/CNB/CNJopenmediumsource-verified
CNA-BUG-022ReflectiveTypeReader has no TypeVersion, so an XNA .xnb for a [ContentSerializerTypeVersion] type is rejectedContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-025PlaneIntersectionType's Doxygen swaps the meaning of Front and BackDocumentation & release toolingopenlowsource-verified
CNA-BUG-026Matrix::CreatePerspectiveFieldOfView accepts a field of view of exactly MathHelper::PiMath & geometryopenlowsource-verified
CNA-BUG-027Vector Clamp, Min and Max resolve inverted ranges and NaN operands differently from XNAMath & geometryopenlowsource-verified
CNA-BUG-028Curve::ComputeTangent Smooth tangents test the key spacing against two different epsilons, where XNA tests the value difference against oneMath & geometryopenlowreproduced
CNA-BUG-029A copied Texture2D or TextureCube raises GraphicsDevice.ResourceDestroyed without a matching ResourceCreated, and a copy taken after its device died still reaches the device on disposalGraphics & renderersnarrowedlowsource-verified
CNA-BUG-035devices-tests.yml's exact-name gtest filters skip eight Microsoft::Devices suites and never match the FileDialog and MessageBox suitesBuild & CIopenlowsource-verified
CNA-BUG-036run-all-renderer-smoke-tests.sh ignores the build's exit status, and its '-- -k' build flag aborts every Ninja build, so smoke verdicts can come from stale binariesTesting & evidencenarrowedlowsource-verified
CNA-BUG-041A relative ContentManager root still follows the working directory on the non-SDL3 platforms, and the loose tier cannot see Android packaged assetsContent & XNB/CNB/CNJnarrowedmediumsource-verified
CNA-BUG-045THIRD_PARTY_NOTICES.md still omits the vendored cgltf and stb image headers (and ENet and dr_libs)Documentation & release toolingnarrowedlowsource-verified
CNA-BUG-047StorageContainer::GetFileNames/GetDirectoryNames(searchPattern): GlobMatch treats ? as one byte and compares case-sensitively on every hostStorageopenlowsource-verified
CNA-BUG-049Accelerometer, Gyroscope, Compass and Motion declare Dispose(bool) public, so an external Dispose(false) marks the sensor disposed without cleanupInputnarrowedlowsource-verified
CNA-BUG-050Guide message-box and keyboard-input results expose an AsyncWaitHandle that is already signalled while the answer is pendingNetworking & gamer servicesnarrowedlowsource-verified
CNA-BUG-052SongTypeReader and MediaLibraryIndex offer song formats (.opus, .aac, .wma) that no CNA-configured mixer decodesAudio & mediaopenlowinferred (strong)
CNA-BUG-054HEADLESS reports occlusion-query support and a precise pixel count while its query always answers 1Graphics & renderersnarrowedlowsource-verified
CNA-BUG-055Stale whole-registry renderer counts survive outside check_renderer_identities.py's list: CORE.md and FEATURE_MATRIX.md say 50, core_ext.h 46, ModuleProbes.cmake 42, the C API limitation and mapping records 25, and CHANGELOG 49 for a 50-identity releaseDocumentation & release toolingnarrowedlowsource-verified
CNA-BUG-056docs/c-api/FEATURE_MATRIX.md and docs/c-api/README.md still present the C ABI as version 0.1.0 while abi.h declares 0.46.0Documentation & release toolingnarrowedlowsource-verified
CNA-BUG-057RegisterAllBuiltInXnbReaders() documentation still calls the general EffectReader a known-unsupported placeholderDocumentation & release toolingopenlowsource-verified
CNA-BUG-058LIMITATIONS.md omits the 631 planned public C++ declarations and RELEASE_GATE.md still attributes 654 declarations to CBIND-117Documentation & release toolingnarrowedlowsource-verified
CNA-BUG-061README.md, docs/coverage.md and docs/xna-4-api-coverage.md still report 3,467/3,627 runtime members and 160 gaps; the generated report says 3,627/3,627Documentation & release toolingopenlowsource-verified
CNA-BUG-063Vector3::Length, LengthSquared, Distance and DistanceSquared accumulate in float, not at the width CNA measured XNA to useMath & geometryopenlowrecorded by CNA
CNA-BUG-064Curve::Evaluate reads the wrong key for Step continuity away from position 1 and for a Linear post-loopMath & geometryopenmediumsource-verified
CNA-BUG-065Curve::Evaluate divides by zero for coincident key positions, returning NaN and converting infinity to int in the cyclic loop modesMath & geometryopenlowsource-verified
CNA-BUG-066BoundingFrustum::Contains(Vector3) answers Intersects for a point exactly on a plane and skips the remaining planesMath & geometryopenlowsource-verified
CNA-BUG-067Math argument failures throw a mix of Sharp Runtime and std:: exception types that differs between near-identical functionsMath & geometryopenlowsource-verified
CNA-BUG-068Vector2/3/4 and Matrix division by a scalar divide every component where XNA 4.0 multiplies by one reciprocalMath & geometryopenlowsource-verified
CNA-BUG-069Ray::Intersects(BoundingBox) and Ray::Intersects(BoundingSphere) differ from XNA 4.0 on degenerate and boundary raysMath & geometryopenlowreproduced
CNA-BUG-070BoundingSphere::Contains(Vector3) and Contains(BoundingSphere) return different ContainmentType values from XNA 4.0Math & geometryopenmediumsource-verified
CNA-BUG-071BoundingFrustum::Intersects differs from XNA 4.0: box and sphere overloads use a conservative plane test, and the Plane overload counts an on-plane corner as IntersectingMath & geometryopenlowsource-verified
CNA-BUG-072BoundingBox::ToString and Ray::ToString emit literal doubled braces ({{Min:... }}) where XNA 4.0 prints single bracesMath & geometryopenlowsource-verified
CNA-BUG-073Math ToString methods print floats with six significant digits and the C++ global locale, where XNA 4.0 uses Single.ToString(CurrentCulture)Math & geometryopenlowinferred (strong)
CNA-BUG-074Vector, Matrix, Quaternion and CurveKey hash codes use raw float bits, so +0.0f and -0.0f components compare equal but hash differentlyMath & geometryopenlowsource-verified
CNA-BUG-075Point declares +, -, * and / operators that XNA 4.0's Point does not have, without the CNAEXT marker, and / has no divide-by-zero guardMath & geometryopenlowsource-verified
CNA-BUG-076Color::FromNonPremultiplied(int r, int g, int b, int a) multiplies in 32-bit int, so large arguments overflow (undefined behaviour)Math & geometryopenlowsource-verified
CNA-BUG-078Game::PollEvents fires the renderer's test-only context-loss hooks on F9/F10 in every buildCore & runtimeopenmediumsource-verified
CNA-BUG-080The Emscripten Game loop (EmscriptenMainLoopCallback) does not implement Game's loop contractCore & runtimeopenmediumsource-verified
CNA-BUG-081Game::InactiveSleepTime is stored and validated but the loop never sleeps while the game is inactiveCore & runtimeopenlowsource-verified
CNA-BUG-082GraphicsDeviceManager leaves dangling references when its lifetime is not nested inside its GameCore & runtimeopenlowsource-verified
CNA-BUG-083PhoneApplicationService::getCurrentProperty()'s static instance detaches from an already-destroyed Game during static destructionCore & runtimeopenmediumsource-verified
CNA-BUG-085GameTime.IsRunningSlowly follows FNA's lag counter, not XNA 4.0's ruleCore & runtimeopenlowsource-verified
CNA-BUG-086GameComponent::Dispose(true) does not remove the component from Game.ComponentsCore & runtimeopenmediumsource-verified
CNA-BUG-087Game::Dispose(true) walks Components by live index, so a component that removes itself or another during Dispose makes the loop skip oneCore & runtimeopenlowsource-verified
CNA-BUG-088In variable-step mode Game gives its first updates a non-zero ElapsedGameTime where XNA 4.0 reports zeroCore & runtimeopenlowsource-verified
CNA-BUG-090GraphicsDeviceInformation accepts a null Adapter, and GraphicsDeviceManager then binds a reference through that null pointerCore & runtimeopenlowsource-verified
CNA-BUG-091GameWindow keeps a raw pointer to the platform window owned by the Game's GraphicsDevice, and nothing clears it when the game disposes that deviceCore & runtimeopenlowsource-verified
CNA-BUG-092Public non-XNA members Texture::GetFormatSizeEXT, GetBlockSizeSquaredEXT, GetPixelStoreAlignment, ValidateGetDataFormat and GameWindow's IsBorderlessEXT accessors carry no CNAEXT markerCore & runtimeopenlowsource-verified
CNA-BUG-093HeadlessRenderer::GetLastFrameStatistics() reports the frame in progress, not the finished frame its documentation namesGraphics & renderersopenlowsource-verified
CNA-BUG-094SDL_GPU claims compute shaders and SPIR-V compute intake on every device, including Direct3D 12 and Metal drivers that cannot take its raw SPIR-V compute pipelinesGraphics & renderersnarrowedlowinferred (strong)
CNA-BUG-095A GraphicsDevice constructor that fails after renderer resolution leaves the selection latched to the renderer it destroyedGraphics & renderersopenlowsource-verified
CNA-BUG-096VulkanRenderer's constructor leaks the Vulkan handles it created when a later construction step throwsGraphics & renderersopenlowsource-verified
CNA-BUG-101GraphicsDevice::Reset rolls back only the window and virtual-resolution stage; a later renderer failure leaves the new PresentationParameters stored and DeviceReset unraisedGraphics & renderersopenlowsource-verified
CNA-BUG-102On DIRECTX9, SetContextRecoveryEnabled and SetStringMarkerEXT throw 'not yet implemented', and GraphicsDevice has already changed the recovery flag when the first one throwsGraphics & renderersopenlowsource-verified
CNA-BUG-103VULKAN clears every colour attachment of a multiple-render-target set, so PreserveContents targets lose their contents when bound as part of an MRT setGraphics & renderersopenmediumsource-verified
CNA-BUG-104DIRECTX9 reports AnisotropicFiltering and MultiSampleAntiAliasing unconditionally and writes MaxAnisotropy to the sampler without clamping to the device capGraphics & renderersopenlowsource-verified
CNA-BUG-105SDL_RENDERER clips to any non-empty ScissorRectangle even when RasterizerState.ScissorTestEnable is falseGraphics & renderersopenmediumsource-verified
CNA-BUG-106ShaderEffect, PbrEffect, SkinnedPbrEffect and ColorMatrixEffect clone a disposed source instead of throwing ObjectDisposedExceptionGraphics & renderersopenlowsource-verified
CNA-BUG-107DIRECTX9 draws a 3D ShaderEffect with the stock BasicEffect shader (16-byte vertices) or fails with a BasicEffect vertex-layout error instead of using or refusing the custom effectGraphics & renderersopenlowsource-verified
CNA-BUG-110Stock-effect state is captured at draw time, so a property changed after EffectPass::Apply() affects the next draw, unlike XNAGraphics & renderersopenlowsource-verified
CNA-BUG-111ShaderEffect::SetTexture(int, Texture2D&), SetTexture(int, TextureCube&) and SetTexture(int, Texture3D&) evaluate *renderer_ of a disposed texture (an empty shared_ptr) and forward a null pointer instead of throwing ObjectDisposedExceptionGraphics & renderersopenlowsource-verified
CNA-BUG-112On VULKAN SpriteBatch draws are never tagged with the active OcclusionQuery: a sprite-only Begin/End span reports PixelCount 0, and sprites in a mixed span are counted only by record orderGraphics & renderersopenmediumsource-verified
CNA-BUG-113An enabled zero-area ScissorRectangle draws unclipped on VULKAN and SDL_GPU, while WEBGPU clips everything and METAL suppresses the drawGraphics & renderersopenmediumrecorded by CNA
CNA-BUG-114WEBGPU always creates a Depth24PlusStencil8 back-buffer depth attachment but PresentationParameters keeps the requested DepthFormatGraphics & renderersopenlowsource-verified
CNA-BUG-115DIRECTX9 requests D3DPRESENT_INTERVAL_TWO without checking device support, and a failing Reset is then retried on every PresentGraphics & renderersopenlowinferred (probable)
CNA-BUG-116DIRECTX9 never resolves multisampled render targets bound as a multiple-render-target setGraphics & renderersopenmediumsource-verified
CNA-BUG-117The SdlRenderer constructor maps any positive swap interval to 1, so a device constructed with PresentInterval::Two runs at interval 1 until the next resetGraphics & renderersopenlowsource-verified
CNA-BUG-118GraphicsDevice::GetMaxTextureDimension() is documented as the renderer's real maximum, but most renderers return an unqueried 16384 that the capability profile marks as knownGraphics & renderersopenlowsource-verified
CNA-BUG-119The XNB type-reader registry is process-wide and unsynchronised, and every reader construction writes to itContent & XNB/CNB/CNJopenmediumsource-verified
CNA-BUG-120ContentManager::LoadXnbAssetUntyped lacks LoadXnbAsset<T>'s compressed-header guard and refuses LZ4Content & XNB/CNB/CNJopenmediumsource-verified
CNA-BUG-121ContentManager::Load<T> never calls the virtual OpenStream, so ResourceContentManager::Load<T> ignores its resource familyContent & XNB/CNB/CNJopenmediumsource-verified
CNA-BUG-122ContentManager::Load<T> leaks non-XNA exception types: unwrapped Load<SoundEffect> errors and std::runtime_error when disposedContent & XNB/CNB/CNJnarrowedmediumsource-verified
CNA-BUG-123ContentManager has no in-progress guard, so an .xnb external-reference cycle recurses until the stack overflowsContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-124ContentManager::Load<T> holds a plain reference to the loose-file reader, so RegisterTypeReader<T> during that reader's Read destroys it mid-callContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-125DecompressXnbPayload grows the LZX output without bound and checks it against the declared size only after the last blockContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-126ContentReader::InnerReadObjectAny bypasses the object-nesting depth guard, so nested object-typed values recurse without limitContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-128Model::Draw indexes its bone scratch buffer with bone 0 even for a model with no bonesModels & glTFopenlowsource-verified
CNA-BUG-129BlendMorphTargetsEXT indexes NormalDeltas and every per-vertex delta array without checking their lengthsModels & glTFopenlowsource-verified
CNA-BUG-130The .cnj Model reader truncates vertex and index sidecar sizes and never range-checks indices, where the SkinnedModel reader refuses the same inputModels & glTFopenlowsource-verified
CNA-BUG-131The .cnj Model bones parser accepts forward or self parent indices and turns a malformed transform into identityModels & glTFopenlowsource-verified
CNA-BUG-132FNA_KEYBOARD_USE_SCANCODES does not make Keyboard::GetState layout-independent; only the input bridge and GetKeyFromScancodeEXT honour itInputopenmediumsource-verified
CNA-BUG-133DIRECTX9, DIRECTX11 and METAL implement the window-to-logical transform but never register for their window, so mouse and touch input ignore itInputopenmediumsource-verified
CNA-BUG-134Inside a letterbox bar, Mouse::GetState reports the raw window coordinate on renderers whose transform declines the pointInputopenlowsource-verified
CNA-BUG-135Mouse::SetCaptureEXT, GetGlobalPositionEXT and WarpGlobalEXT let PlatformNotSupportedException escape on the terminal platformInputopenlowsource-verified
CNA-BUG-137MediaPlayer::Play(Song*) reads and writes a destroyed Song when given a Song that the queue ownsAudio & mediaopenhighreproduced
CNA-BUG-138MediaPlayer flags ActiveSongChanged on every Play(Song*), even for the same song, and never for Play(const SongCollection&[, index])Audio & mediaopenlowsource-verified
CNA-BUG-139MediaPlayer::Play(Song*) records Duration and PlayCount on the caller's Song instead of the queued copy, and Stop never resets that PlayCountAudio & mediaopenlowsource-verified
CNA-BUG-140MediaPlayer::Play reports no error when a song cannot be played and can leave the player Playing with no trackAudio & mediaopenmediumsource-verified
CNA-BUG-141MediaPlayer::ProgramExit is documented as called at application exit, but nothing in CNA calls itAudio & mediaopenlowsource-verified
CNA-BUG-142Without a mixer (NULL audio) songs never end: queued copies carry no Duration, so the elapsed-time fallback never firesAudio & mediaopenlowsource-verified
CNA-BUG-143VideoPlayer and Video keep raw pointers to each other, so destroying a Video before its player is stopped writes to freed memoryAudio & mediaopenmediumreproduced
CNA-BUG-144VideoPlayer::GetTexture lets the decoder's std::runtime_error escape, undocumented, and leaves the player PlayingAudio & mediaopenlowsource-verified
CNA-BUG-145VideoDecoder::SetVideoStream switches to another video stream mid-playback without seeking, so decoding resumes at a non-keyframe positionAudio & mediaopenlowinferred (strong)
CNA-BUG-146VideoDecoder converts every YUV frame with one full-range BT.601 matrix: limited-range and BT.709 video decode with wrong levels and coloursAudio & mediaopenmediumreproduced
CNA-BUG-147SoundBank::PlayCue destroys a fire-and-forget cue that is still playing five minutes after it startedAudio & mediaopenmediumsource-verified
CNA-BUG-148DynamicSoundEffectInstance::SubmitFloatBufferEXT accepts empty and non-frame-aligned float buffersAudio & medianarrowedlowsource-verified
CNA-BUG-149Microphone::Start reports Started even when the capture device could not be openedAudio & mediaopenlowsource-verified
CNA-BUG-150StorageDevice::EnsureStorageRoot caches the process-wide storage root in unsynchronised staticsStorageopenlowsource-verified
CNA-BUG-152StorageDevice::getFreeSpaceProperty, getTotalSpaceProperty and getIsConnectedProperty pass the UTF-8 root to std::filesystem through the narrow path constructorStorageopenlowinferred (strong)
CNA-BUG-153StorageContainer::DeleteFile removes an empty directory and DeleteDirectory removes a fileStorageopenlowsource-verified
CNA-BUG-154A save container titled GamerServices shares its directory with the gamer-services store, so DeleteContainer("GamerServices") deletes local achievements and leaderboardsStorageopenlowsource-verified
CNA-BUG-155StorageContainer members keep working after Dispose instead of throwing ObjectDisposedExceptionStorageopenlowsource-verified
CNA-BUG-156HttpNotificationChannel answers length-less, chunked and truncated pushes with 200 and reads request bodies of unbounded sizeNetworking & gamer servicesopenlowsource-verified
CNA-BUG-157HttpNotificationChannel::Close and the channel destructor block indefinitely while a connected peer sends nothingNetworking & gamer servicesopenmediumsource-verified
CNA-BUG-158RawPushNotificationMessage::SendAsync and ToastPushNotificationMessage::SendAsync return true for a push the receiver rejectedNetworking & gamer servicesopenlowsource-verified
CNA-BUG-159ToastPushNotificationMessage::SendAsync inserts Title and SubTitle into the toast XML without escapingNetworking & gamer servicesopenlowsource-verified
CNA-BUG-160Two open HttpNotificationChannel objects with the same name leave Find unable to locate one that is still openNetworking & gamer servicesopenlowsource-verified
CNA-BUG-161A handler that throws during HttpNotificationChannel::DispatchPendingNotificationsEXT discards every remaining notification of that batchNetworking & gamer servicesopenlowsource-verified
CNA-BUG-162The phone notification channel and sender never initialise Winsock, cannot detect INVALID_SOCKET and have no Windows testNetworking & gamer servicesopenmediuminferred (strong)
CNA-BUG-163HttpNotificationChannel writes its reply with ::send flags 0, so a peer that aborts its connection mid-request can end the process with SIGPIPENetworking & gamer servicesopenmediuminferred (strong)
CNA-BUG-164HttpNotificationChannel's listener reads listenSocket_ unsynchronised while Close resets it, and spins without backoff on a persistent accept errorNetworking & gamer servicesopenlowsource-verified
CNA-BUG-168LocalGamerServicesStore maps distinct gamertags to one achievements file when they differ only in characters outside A-Z, a-z, 0-9, '.', '_' and '-'Networking & gamer servicesopenlowreproduced
CNA-BUG-169NetworkSession::GamerJoined reports a gamer added with AddLocalGamer twice to a handler subscribed between that call and the next UpdateNetworking & gamer servicesopenlowsource-verified
CNA-BUG-170A joined SystemLink session answers LAN discovery for itself and handles ClientHello as if it were the hostNetworking & gamer servicesopenmediumsource-verified
CNA-BUG-176Setting Game::IsMouseVisible throws PlatformException on the terminal platform when the terminal reports mouse inputPlatformsopenmediumsource-verified
CNA-BUG-177The Headless and Terminal window constructors accept BorderlessFullscreen although their own SetFullscreenMode refuses itPlatformsopenlowsource-verified
CNA-BUG-181Sdl3Platform reports the nativeFileDialog capability on iOS and web builds, where SDL has no usable file-dialog backendPlatformsopenlowinferred (strong)
CNA-BUG-183The SDL3 file-dialog and tray-entry trampolines call application callbacks without a try/catch, so a throwing handler unwinds through SDL's C codePlatformsopenlowreproduced
CNA-BUG-184Core's build files still carry dependencies its sources dropped: -lembind on Emscripten and a link probe that tolerates SDL3Build & CIopenlowsource-verified
CNA-BUG-185Stub_Smoke links SDL3::SDL3 unconditionally, so STUB + tests cannot be configured with CNA_ENABLE_SDL=OFFBuild & CIopenlowsource-verified
CNA-BUG-186CNA_ENABLE_VIDEO=AUTO accepts any pkg-config FFmpeg, but VideoDecoder.cpp needs the FFmpeg 5.1 channel-layout APIBuild & CIopenlowinferred (strong)
CNA-BUG-191cna_configure_vendored_enet tells the user to run 'git submodule update --init third_party/enet', but ENet is committed in the tree, not a submoduleBuild & CIopenlowsource-verified
CNA-BUG-192metal-macos-ci.yml's push path filter names three CMake files that no longer exist and omits the files that now register the Metal testsBuild & CIopenlowsource-verified
CNA-BUG-193general-tests-ci.yml still allowlists EasyGL_GraphicsDevice_ReferenceStencil as a known failure after REMED-GFX-236 fixed it, so a regression of that test cannot turn the job redBuild & CIopenlowsource-verified
CNA-BUG-197cmake/toolchains/mingw-w64.cmake falls back to the i686 compiler but keeps CMAKE_SYSTEM_PROCESSOR x86_64, so the persistent SDL install key mislabels a 32-bit buildBuild & CIopenlowsource-verified
CNA-BUG-198Link-closure tests pass --build-dir ${CMAKE_BINARY_DIR}, so when CNA is added as a subproject of a Makefiles build they look for link.txt in the consumer's build root and always skipBuild & CInarrowedlowsource-verified
CNA-BUG-206Software_XnaLineCoverage passes when a scene differs from the XNA reference: run-oracle-corpus-diff-software.sh fails only on render errorsTesting & evidenceopenlowreproduced
CNA-BUG-207Delta-maintained diagnostics gauges such as Audio/AllocatedVoices drift after a runtime OFF windowDiagnostics & Inspectoropenlowreproduced
CNA-BUG-208On Emscripten a diagnostics frame excludes the requestAnimationFrame wait, so FrameSample.framesPerSecond is a work rate thereDiagnostics & Inspectoropenlowsource-verified
CNA-BUG-209Inspector ServerHello.graphicsRenderer reports the compile-time default renderer, not the one GraphicsRendererSelection actually createdDiagnostics & Inspectoropenlowsource-verified
CNA-BUG-210A diagnostics name or resource label longer than 4,096 bytes makes every Inspector snapshot or event batch that contains it fail with LimitExceededDiagnostics & Inspectoropenlowreproduced
CNA-BUG-211Agent::Stop can wait up to about six seconds for a connection that the accept loop takes around the time Stop runsDiagnostics & Inspectoropenlowsource-verified
CNA-BUG-212cna_graphics_resource_get_graphics_device returns CNA_RESULT_INVALID_HANDLE for every resource created on a caller-created GraphicsDeviceC API & bindingsopenlowsource-verified
CNA-BUG-213audio.h and AUDIO.md call cna_dynamic_sound_effect_instance_submit_buffer safe from a producer thread, but every call off the creation thread returns CNA_RESULT_THREADC API & bindingsopenlowsource-verified
CNA-BUG-214docs/c-api/HANDLES.md documents CNA_RESULT_SHUTTING_DOWN for a closing or closed runtime, but no C API route ever returns itC API & bindingsopenlowsource-verified
CNA-BUG-215GraphicsRendererSelection::IsLatched() is documented to latch when the first GraphicsDevice begins construction; it latches only on successful resolutionDocumentation & release toolingopenlowsource-verified
CNA-BUG-216MathTypeConverter::supportStringConvert's comment names three converters that clear it; six doDocumentation & release toolingopenlowsource-verified
CNA-BUG-217docs/framework-design.md says the Framework.Design registration associates the twelve value types with ordered descriptor collections; registerConverter registers only converter factoriesDocumentation & release toolingopenlowsource-verified
CNA-BUG-218content_readers.h documentation names cna_get_last_error_message, which does not existDocumentation & release toolingopenlowsource-verified
CNA-BUG-220cna_game_destroy's comment says Shutdown has disposed the canonical graphics device; it has notDocumentation & release toolingopenlowsource-verified
CNA-BUG-221RunContentCompiler documentation says XNB output writers are registered only for --format xnb; they are registered on every runDocumentation & release toolingopenlowsource-verified
CNA-BUG-222Audio comments describe behaviour the code does not have: SoundEffect::Play's instance limit, FireAndForgetPanState freeing, the is3D_ latch and SoundEffectReader's WAV routeDocumentation & release toolingopenlowsource-verified
CNA-BUG-223docs/input-backend.md names a SdlInputBridge ProcessEvent overload and src/Input/... paths that do not exist at TARGETDocumentation & release toolingopenlowsource-verified
CNA-BUG-224GraphicsDevice's DeviceLost documentation and device-status comments still say only Direct3D 9 reports device lossDocumentation & release toolingopenlowsource-verified
CNA-BUG-225Two EasyGL comments still describe runtime GL profiles (phase P11) as future workDocumentation & release toolingopenlowsource-verified
CNA-BUG-227StubTextureRenderer's comment says GetData() is accepted and discarded, but the inherited default refuses the readDocumentation & release toolingopenlowsource-verified
CNA-BUG-228xnb.md still says 'Status: planning document only. Nothing described here is implemented yet.' directly beneath a banner that records the XNB reader phases completeDocumentation & release toolingopenlowsource-verified
CNA-BUG-229docs/graphics-renderer-feature-matrix.md calls itself up to date but still says EasyGL's ReferenceStencil gap (Task 872) is open and lists its test as a known failure, contradicting its own table rowDocumentation & release toolingnarrowedlowsource-verified
CNA-BUG-230cna_define_shared_runtime_deferred's comment says cna_graphics_ext and cna_devices_ext exist only with CNA_CNAEXT; modules/CMakeLists.txt always creates bothDocumentation & release toolingopenlowsource-verified
CNA-BUG-231CHECKLIST.md's per-file port checklist still says 'FNA still wins on semantics', contradicting the rule in CLAUDE.md that XNA wins where the two disagreeDocumentation & release toolingopenlowsource-verified
CNA-BUG-232docs/physical-modules.md has no row for modules/platform, omits the platform and diagnostics edges of runtime, input, audio and devices-ext, and says top-level examples/ holds only examples/goldenDocumentation & release toolingopenlowsource-verified
CNA-BUG-234CLAUDE.md's 'WebGPU Is Active' section still gives the current WEBGPU baseline as clear/present, Texture2D, buffer uploads and SpriteBatch, contradicting its own renderer paragraph, which describes a real 3D route with render targetsDocumentation & release toolingopenlowsource-verified
CNA-BUG-235docs/physical-modules.md's Sharp Runtime column omits components that four modules link: Uri for phone and media, Collections.Core for input, Resources for contentDocumentation & release toolingopenlowsource-verified
CNA-BUG-237A comment in Sdl3Platform.cpp refers to a Game::UpdateInput() that does not existDocumentation & release toolingopenlowsource-verified
CNA-BUG-241docs/devices-event-contract.md and docs/devices-thread-safety.md describe sensor behaviour the code no longer hasDocumentation & release toolingopenlowsource-verified
CNA-BUG-242Source comments still say StorageDevice reaches the platform or the SDL preference pathDocumentation & release toolingopenlowsource-verified
CNA-BUG-243docs/gltf-limitations.md says CNA reverses the winding of mirrored glTF placements; the importer leaves it unchangedDocumentation & release toolingopenlowsource-verified
CNA-BUG-244README.md's Usage Example does not compile (nonexistent Graphics/GraphicsDeviceManager.hpp include, unqualified CornflowerBlue) and presents every frame twiceDocumentation & release toolingopenmediumreproduced
CNA-BUG-245misc/cnj.md and xnb.md say the content manifest services ResolveAssetPath's existence checks; ContentManager still probes the live filesystem on every LoadDocumentation & release toolingopenlowsource-verified
CNA-BUG-246docs/graphics-resource-lifetime.md says existing XNA resources hold a unique_ptr renderer and names a non-existent ITexture2DRenderer; Texture2D, Texture3D and TextureCube hold shared_ptr renderers and Texture2D's public copies share oneDocumentation & release toolingopenlowsource-verified
CNA-BUG-247The EasyGL L7 policy and report justify zero tolerance with 'all 137 renderable assets' while the report's own fields record 140 captured, byte-identical assetsDocumentation & release toolingopenlowsource-verified
CNA-BUG-248PacketReader::ReadColor and PacketWriter::Write(Color) doc comments still say ReadColor reads four floats and is not the inverse of Write(Color)Documentation & release toolingopenlowsource-verified
CNA-BUG-250LocalNetworkGamer::SendData in a Local or LocalWithLeaderboards session silently drops every packet, so neither the sender nor another local gamer ever receives itNetworking & gamer servicesopenlowsource-verified
CNA-BUG-251BoundingSphere(Vector3 center, float radius) accepts a negative radius, where XNA 4.0 throws ArgumentExceptionMath & geometryopenlowsource-verified
CNA-BUG-252Vector3, Vector4, Quaternion and Matrix GetHashCode add raw int bit patterns with signed arithmetic, which overflows (undefined behaviour) for ordinary valuesMath & geometryopenlowrecorded by CNA
CNA-BUG-253SdlGpu_ConstructorExceptionSafety aborts with a double free, a defect CNA's own record calls real and leaves unfixedGraphics & renderersopenmediumrecorded by CNA
CNA-BUG-254docs/directx9-renderer.md says the DIRECTX9 custom ShaderEffect phase (D9-11) has not been started; plans/plan_dx9.md records it fully closed on 2026-07-15Documentation & release toolingopenlowsource-verified
CNA-BUG-256docs/model-content-pipeline-support.md still says CNA has no binary .xnb model reader and lists Model loader gaps that the code has closedDocumentation & release toolingnarrowedlowsource-verified
CNA-BUG-259Matrix::Decompose follows FNA's algorithm, not XNA 4.0's: a mirrored matrix decomposes to positive scales and a non-unit quaternion, and a sheared matrix reports successMath & geometryopenmediumsource-verified
CNA-BUG-260ExitingEventArgs is documented as the data of Game.Exiting but nothing delivers it, and this non-XNA type carries no CNAEXT markerCore & runtimeopenlowsource-verified
CNA-BUG-261Comments and docs say GpuDrawParams::specularEnabled is read by no renderer and DIRECTX9's specular variants are blocked, but D3D9EffectDraw and Fna3dDraw read itDocumentation & release toolingopenlowsource-verified
CNA-BUG-262CnaTests is linked with both -sJSPI=1 and -sASYNCIFY=1 on Emscripten; emcc lets the later flag win, so the JSPI its CMake comment relies on is silently replaced by AsyncifyBuild & CIopenlowinferred (strong)
CNA-BUG-263TerminalMouse::SetPosition throws PlatformException although IPlatformMouse::SetPosition documents no exception, so XNA's Mouse.SetPosition throws on the terminal platformInputopenlowsource-verified
CNA-BUG-264Vulkan passes XNA's normalised RasterizerState.DepthBias to vkCmdSetDepthBias unscaled, so a realistic bias has no effectGraphics & renderersopenmediumsource-verified
CNA-BUG-267A join beyond MaxGamers is not refused: the host sends ServerWelcome, AddRemoteGamer throws Session is full!, and the receive path's catch-all drops it, so SessionFull is never raisedNetworking & gamer servicesopenmediumsource-verified
CNA-BUG-269cna_validate_renderer_identity_selection says it checks the per-identity CNA_RENDERER_<X> switches, but only retired names are checked: a misspelled or unknown switch is never read and the platform's default renderer is configured silentlyBuild & CIopenlowsource-verified
CNA-BUG-271known_bugs.md still lists the FNA3D dangling-device use-after-free as OPEN and a lost repeated SpriteBatch Begin/End as a live symptom, although the source has fixed bothDocumentation & release toolingopenlowsource-verified
CNA-BUG-272misc/cnj.md's native-extension table omits .gltf and .glb, its sourceFile matrix omits Texture3D, AnimationClip and Curve, and one sentence says CNA has no JSON object type although Json.hpp defines JsonValueDocumentation & release toolingopenlowsource-verified
CNA-BUG-273CLAUDE.md and AGENTS.md tell contributors to throw std::runtime_error after disposal, while the public layer throws System::ObjectDisposedException at 51 sites in the graphics module aloneDocumentation & release toolingopenlowsource-verified
CNA-BUG-274README.md calls the CNAEXT purity check "a dedicated CMake build option", but CNA_STRICT_XNA_API is a compile definition on two harness targets and no CMake option existsDocumentation & release toolingopenlowsource-verified
CNA-BUG-275GamerServices tests compiled into CnaTests call POSIX setenv and unsetenv without a platform guard, and the check that refused such calls is no longer registeredBuild & CInarrowedmediuminferred (strong)
CNA-BUG-276SoundEffect::Play(volume, pitch, pan) clamps pitch, does not check volume and returns false when disposed, where XNA 4.0 throwsAudio & mediaopenlowsource-verified
CNA-BUG-277The glTF importer still refuses a file that requires KHR_materials_specular and warns that renderer bindings are pending, although every PBR renderer samples both specular mapsModels & glTFopenlowsource-verified