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
- Required SpriteMask class (ID 331) is stripped when "Strip Engine Code" is enabled
- “Maximized serialized file backup not found” error is thrown when minimizing a window in a newly opened project
- Build stack trace contains invalid lines when building with IL2CPP using scripts with delegates containing generic types in the signature
- Entities Systems window has a “Show Full Player Loop” dropdown which does nothing when clicked after enabling “Show Full Player Loop”
- Entities Hierarchy Search “Show/Hide” button’s Lens Icon is blurry when the Editor is on an external monitor
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.