Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EGLSharedSurface implements the SupportCSpaces method #6

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

javifernandez
Copy link
Member

In https://phabricator.services.mozilla.com/D207651 a new feature to manage color spaces has been added. As a result, a new virtual method has been defined in the SharedSurface abstract class to indicate whether the implementor supports specific color spaces passed through the creation options.

The implementation considered false as default, so that that all the surfaces implemented in the derived classes would use gfx::ColorSpace2::Display when creating the specific SharedSurface instance. This generic color space would then be determined by the new feature mentioned before, as part of the logic of the WebGLContext::PresentInto function.

However, this change had the (unexpected ?) effect of disabling polling on the SwapChain::Acquire method. The problem is that no matter what color space we pass to the Acquire method, the surface created will have Display. Hence, there won't be a match with the pool's front so that it's set to an empty set.

We are not sure yet whether this is such an expected behavior of the new color management feature, but it's worth filing a bug upstream so that Mozilla folks can evaluate it.

In https://phabricator.services.mozilla.com/D207651 a new feature
to manage color spaces has been added. As a result, a new virtual
method has been defined in the SharedSurface abstract class to
indicate whether the implementor supports specific color spaces
passed through the creation options.

The implementation considered false as default, so that that all
the surfaces implemented in the derived classes would use
gfx::ColorSpace2::Display when creating the specific SharedSurface
instance. This generic color space would then be determined by the
new feature mentioned before, as part of the logic of the
WebGLContext::PresentInto function.

However, this change had the (unexpected ?) effect of disabling
polling on the SwapChain::Acquire method. The problem is that no
matter what color space we pass to the Acquire method, the surface
created will have Display. Hence, there won't be a match with the
pool's front so that it's set to an empty set.

We are not sure yet whether this is such an expected behavior of
the new color management feature, but it's worth filing a bug
upstream so that Mozilla folks can evaluate it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant