Search Issue Tracker
Won't Fix
Votes
0
Found in
2022.3.17f1
2023.2.4f1
2023.3.0b1
6000.0.0b11
Issue ID
UUM-59881
Regression
No
Color Buffer returns resolved pixel sample values for partially covered pixels when RenderTextureDescriptor.BindMS is set to true
Reproduction steps:
1. Open the attached "ReproProj.zip" project
2. Open the "Assets/Scenes/SampleScene" scene
3. Enter the Play Mode
4. Do not move the camera and press the "t" key
5. Observe the Console Logs
Expected results: Color sample data values differ based on the part of a pixel
Actual results: Color sample data values are consistent across different parts of a pixel
Reproducible with: 2022.3.17f1, 2023.2.4f1, 2023.3.0b1
Could not test with: 2021.3.34f1(Could not resolve errors)
Reproducible on: Windows 11 Pro
Not reproducible on: No other environments tested
Notes:
- The first four values in each Console Log correspond to the pixel sample data
- "s0" and "s1" denote sample position
- The flag of RenderTextureCreationFlags.NoResolvedColorSurface is read-only, therefore it is not possible to manually stop the Color sample values from resolving
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Mono Windows Builds don't produce full log callstacks when generating logs
- AssetBundles fail to load when running in Built Players for Mobile Devices
- UI elements with text gets bigger and grey when Player window is moved to another screen with different resolution
- System name accepts multiline text but crops it on confirmation, duplicates input, and shrinks the field when empty
- UI element scale and position are wrong in project build when DRS is changed with HDR and Software Dynamic Resolution enabled
Resolution Note:
The issue isn't that RenderTextureDescriptor.BindMS is ignored, but that the camera color attachment has already been resolved by the time that the user uses it to blit into their 4x multisample texture.
URP and other engine features (such as the frame debugger) currently relies on this auto-resolving of color surfaces to be done. Hence, URP can be modified to not auto-resolve the color surface by modifying the camera's color target to have the bindMS flag. However, this would require the user to handle their own resolve-pass and postprocessing.
A workaround that didn't involve substantial changes to URP was provided to the user that introduces a separate draw pass that outputs to a 4x offscreen bindMS color target. Please reopen if the provided solution did not fit your needs and we can investigate further.