Current bugs

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

✓

Evidence basis: source-verified at the pinned commit. Claims on this page were checked by reading the CNA source at commit 3b43bd86; 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 3b43bd86; open an entry for its expected and actual behaviour, source locations, evidence and blast radius.

145 entries

IDTitleSubsystemStatusSeverityEvidence basis
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-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-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 nine 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 ENet and dr_libsDocumentation & release toolingnarrowedlowsource-verified
CNA-BUG-047StorageContainer::GetFileNames/GetDirectoryNames(searchPattern): GlobMatch treats ? as one byte and compares case-sensitively on every hostStorageopenlowsource-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-055CHANGELOG.md's v0.1.0-alpha.1 section says 49 renderer identities for a release that had 50Documentation & release toolingnarrowedlowsource-verified
CNA-BUG-056docs/c-api/README.md still presents the C ABI as its initial 0.1.0 library while abi.h declares 0.50.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 633 planned public C++ declarations and RELEASE_GATE.md still attributes 654 declarations to CBIND-117Documentation & release toolingnarrowedlowsource-verified
CNA-BUG-065Curve::Evaluate divides by a zero key span in the cyclic loop modes and converts the resulting infinity to intMath & geometrynarrowedlowsource-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(BoundingSphere) returns no hit for a ray that starts exactly on the sphere and points outwardMath & geometrynarrowedlowreproduced
CNA-BUG-071BoundingFrustum::Intersects(Plane) counts a corner lying on the plane as Intersecting, where XNA 4.0 answers BackMath & geometrynarrowedlowsource-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-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 & runtimenarrowedmediumsource-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-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-095A GraphicsDevice constructor that fails after renderer resolution leaves the selection latched to the renderer it destroyedGraphics & 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-104DIRECTX9 reports AnisotropicFiltering and MultiSampleAntiAliasing unconditionally and writes MaxAnisotropy to the sampler without clamping to the device capGraphics & renderersopenlowsource-verified
CNA-BUG-106PbrEffect, SkinnedPbrEffect and ColorMatrixEffect clone a disposed source instead of throwing ObjectDisposedExceptionGraphics & renderersnarrowedlowsource-verified
CNA-BUG-107DIRECTX9 draws a 3D ShaderEffect with the stock BasicEffect shader 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-113An enabled zero-area ScissorRectangle draws unclipped on SDL_GPU, while every other rasterizing renderer clips everythingGraphics & 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 Reset that rejects it leaves the device lost and retried every frameGraphics & renderersopenlowinferred (probable)
CNA-BUG-116DIRECTX9 never resolves multisampled render targets bound as a multiple-render-target setGraphics & renderersopenmediumsource-verified
CNA-BUG-118GraphicsDevice::GetMaxTextureDimension() is documented as the renderer's real maximum, but every renderer returns an unqueried 16384 that the capability profile marks as knownGraphics & renderersopenlowsource-verified
CNA-BUG-120ContentManager::LoadXnbAssetUntyped refuses LZ4, which LoadXnbAsset<T> decodesContent & XNB/CNB/CNJnarrowedmediumsource-verified
CNA-BUG-122ContentManager::Load<SoundEffect> lets its loose tier's System::NotSupportedException escape instead of ContentLoadExceptionContent & 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 implements the window-to-logical transform but never registers for its 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-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-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-156HttpNotificationChannel answers length-less and chunked pushes with 200 and reads request bodies of unbounded sizeNetworking & gamer servicesnarrowedlowsource-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 or link ws2_32, so on Windows they work only if something else didNetworking & gamer servicesnarrowedmediuminferred (strong)
CNA-BUG-164HttpNotificationChannel's listener spins without backoff on a persistent accept errorNetworking & gamer servicesnarrowedlowsource-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, so Find lists the session once per memberNetworking & gamer servicesnarrowedmediumsource-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-197cmake/toolchains/mingw-w64.cmake falls back to the i686 compiler but keeps CMAKE_SYSTEM_PROCESSOR x86_64, so 32-bit and 64-bit trees share one persistent SDL install directoryBuild & CInarrowedlowsource-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-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 and SoundEffectReader's WAV routeDocumentation & release toolingnarrowedlowsource-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-224A GraphicsDevice maintainer comment still says only DIRECTX9 drives the device status, although WEBGPU raises device events tooDocumentation & release toolingnarrowedlowsource-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-228plans/plan_xnb.md still says 'Nothing here is implemented yet - every row starts ⬜' beneath a status banner that records every XNB reader phase but H and I completeDocumentation & release toolingnarrowedlowsource-verified
CNA-BUG-229docs/graphics-renderer-feature-matrix.md calls itself up to date but still lists EasyGL's ReferenceStencil 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-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-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-248PacketWriter::Write(Color)'s doc comment still says ReadColor reads four floats and is not the inverse of Write(Color)Documentation & release toolingnarrowedlowsource-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-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-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-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 the joiner never sees SessionFullNetworking & 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-273CLAUDE.md and AGENTS.md tell contributors to throw std::runtime_error after disposal, while the public layer throws System::ObjectDisposedException at 50 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-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, although its own registry note says every PBR renderer samples both specular mapsModels & glTFnarrowedlowsource-verified
CNA-BUG-278An XNB BoundingSphere or Model mesh sphere with a negative radius fails to load, although XNA and CNA's own XNB writer accept itContent & XNB/CNB/CNJopenlowsource-verified
CNA-BUG-279The sibling version check accepts sharp-runtime's v0.1.0 tag, but this snapshot needs sharp-runtime APIs added after it (a FileStream constructor and XmlSerializer property members), so such a build fails to compile instead of failing configurationBuild & CIopenlowsource-verified
CNA-BUG-280On FNA3D's SDL_GPU driver a TextureCube, Texture3D or mipmapped Texture2D changed between two draws of one frame shows its new contents in the earlier draw tooGraphics & renderersnarrowedlowrecorded by CNA
CNA-BUG-281FNA3D's Direct3D 11 driver cannot build some valid compiled effects: a ps_3_0 shader that reads two vertex outputs packed in one register fails to compile, and the integer input-layout rewrite can retype the wrong semanticGraphics & renderersopenlowrecorded by CNA
CNA-BUG-282RendererFeature::MultiSampleMask misreports EasyGL without glSampleMaski (OPENGLES3 on an OpenGL ES 3.0 context, WEBGL2) and WEBGPU over wgpu-native's Metal driverGraphics & renderersopenlowsource-verified