llvm / llvm/offload-test-suite
[SPIRV][DirectX] Add MSAA render target support
- Dominant language
- C++
- Stars
- 18
- Forks
- 39
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 40
Description
Required for testing `SV_SampleIndex`, `SV_Coverage`, and future `Texture2DMS` support.
Current status: DX and Vulkan hardcode raster sample counts to `1`. Render-target readback also uses a direct texture-to-buffer copy, which is invalid for multisampled textures.
_Note_: The scope is raster sample-count configuration, color resolve, and semantic/image validation on DX and Vulkan. Texture2DMS binding is deferred to https://github.com/llvm/offload-test-suite/issues/1428
AC:
- [ ] Allow YAML config to specify an optional valid sample count
- [ ] Add `SampleCount` to texture, render-pass, traditional raster PSO, and mesh raster PSO descriptors
- [ ] Thread the count through color target, default depth target, render pass, and PSO creation; reject attachment-count mismatches.
- [ ] DX: Query multisample quality/format support, configure PSO and texture sample descriptions, and use `TEXTURE2DMS` for multisampled SRVs.
- [ ] Vulkan: Query supported sample counts and format properties, then configure image samples, attachment samples, and `rasterizationSamples`.
- [ ] Add a `ComputeEncoder::resolveTexture` api as follows:
- [ ] DX: Implement resolve with `ResolveSubresource` and `RESOLVE_SOURCE`/`RESOLVE_DEST` transitions.
- [ ] Vulkan: Implement resolve with `vkCmdResolveImage` and the required transfer layouts/transitions.
- [ ] Create a single-sample resolve target for MSAA raster pipelines and read back from it.
- [ ] Add a MSAA golden-image test on DX/WARP and Vulkan.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.