CNA-PLAT-002: SDL_GPU ignores BlendState.MultiSampleMask because SDL_gpu reserves its sample-mask fields
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
SDL 3.5.0 documents SDL_GPUMultisampleState::sample_mask/enable_mask as reserved (must be 0/false), so SdlGpuRenderer::ApplyBlendState drops the mask and a partial MultiSampleMask renders all samples without an error.
- Identifier
CNA-PLAT-002- Category
- Platform limitation
- Subsystem
- Graphics & renderers
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- BlendState.MultiSampleMask / GraphicsDevice.MultiSampleMask on SDL_GPU
Expected behaviour
A partial MultiSampleMask should restrict which samples a draw writes (XNA HiDef), or the renderer should refuse it.
Actual behaviour at TARGET
SdlGpuRenderer.cpp's ApplyBlendState copies the four colour-write masks and, per its REMED-GFX-086 comment, does not use writeState.multiSampleMask because SDL reserves the fields. No exception or capability signals the drop (the comment calls it "not a silent drop", but the code path is silent).
Source locations
modules/renderers/sdl-gpu/src/SdlGpuRenderer.cpp— SdlGpuRenderer::ApplyBlendState and its REMED-GFX-086 commentmodules/renderers/sdl-gpu/examples/CMakeLists.txt— comment: MultiSampleMask is not compiled in
Evidence
Checked by reading the named sources at 009d40f5; nothing was built or executed for this entry.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
SDL_GPU colour-write-mask fixtures exist; none asserts MultiSampleMask behaviour.
Regression test
Once SDL_gpu exposes the mask, a two-leg MSAA fixture (mask 1 versus all) like Vulkan_MRT_MsaaResolve's; until then, a test that pins whichever refusal or warning is chosen.
Blast radius
MSAA techniques that rely on per-sample masks (alpha-to-coverage emulation, stippled transparency) on SDL_GPU.
Workaround
No workaround is known.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Known issues
- Platform limitation index