llvm / llvm/offload-test-suite

[SPIRV][DirectX] Add MSAA render target support

Open
#1,043 0 comments 0 reactions 1 assignee Assigned to @Icohedron View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.