CNA-PLAT-002: SDL_GPU ignores BlendState.MultiSampleMask because SDL_gpu reserves its sample-mask fields

CNA snapshot 009d40f5  ·  Known Issues › Platform limitations  ·  source links pinned to 009d40f5

✓

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

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.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.