I am developing a ray tracing application in Unity which involves writing specific color data in a header at the top-left of the window. This color data must be presented to the screen with the values exactly as written in a compute shader. However, I am seeing the color values in the diverge as the result of an apparent blending/antialiasing operation being applied when it appears on the screen. The following is a screenshot of the output (zoomed to show individual pixels):
In my rendering pipeline, I am writing alternating red, green, blue pixels in the top left. The rest of the window is black. However, the screenshot shows the color values diverging as you go to the right, with the last blue pixel having an RGB value of 0, 12, 243 instead of 0, 0, 255 as written to the framebuffer. Analyzing the frame in PIX shows no divergence of the color values in the back buffer being presented:
We have another custom DX12 application and a UE4 application which both do a similar render but we do not see this issue. I have disabled all 3D settings in the NVidia control panel that might be responsible with no effect. It is interesting to note that if you hover the mouse over the window thumbnail in the taskbar, the problem temporarily goes away and the correct colors appear in a screenshot. I am on driver version 471.68 and my GPU is an RTX 3080.
I have also played with render settings in Unity to no avail. What is the operation being applied to the image and how can I disable it?