Page MenuHome

Fix T103399: correctly apply SRGB framebuffer and shader conversion mode in Metal.
ClosedPublic

Authored by Jason Fielder (jason_apple) on Jan 3 2023, 3:34 PM.

Details

Summary

First binding of a framebuffer lead to an incorrect SRGB conversion state being applied, as attachments, where presence of SRGB is determined, were processed after the SRGB check rather than before.
This DIFF also cleans up SRGB naming conventions and caching of fallback non-srgb texture view, for use when SRGB mode is disabled.

Authored by Apple: Michael Parkin-White

Ref T103399
Ref T96261

Diff Detail

Repository
rB Blender

Event Timeline

Jason Fielder (jason_apple) requested review of this revision.Jan 3 2023, 3:34 PM
Jason Fielder (jason_apple) created this revision.

Is this creating that difference or is there something else?

left Cycles render with OpenGL backend, right Cycles render with Metal backend

Is this creating that difference or is there something else?

left Cycles render with OpenGL backend, right Cycles render with Metal backend

Thanks Steve, had seen this one reported on the Blender Artists Apple thread, and thinking it's entirely reasonable that this is the same issue. This would make sense, as the incorrect SRGB conversion applies to the first render to a framebuffer, and the Cycles output is only rendered to the target once.

However, there does appear to be a shader compilation failure in the Open Color IO conversion shader, which will likely also need addressing.

Ok thanks for getting back to me and looking into it:)

This revision is now accepted and ready to land.Jan 7 2023, 5:57 PM