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
- Unity CIL Linker fails on Player build when persistent listeners have "<" and ">" in their XML attribute names
- ”Lighting data asset ‘LightingData’ is incompatible with the current Unity version…” warnings are thrown when saving Indoors (URP) and Outdoors (URP) Scenes as Scene Templates
- [iOS] The screen blinks when transitioning from custom to Unity splash screen
- [macOS] ”Ignoring depth surface load action as it is memoryless” warnings are thrown when taking Game View Snapshot
- UI Builder Inspector scrolls back up when changes on an expanded but not fully displayed Inspector tab are saved
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.