diff options
author | Chad Versace <chad.versace@linux.intel.com> | 2012-11-14 08:53:34 -0800 |
---|---|---|
committer | Chad Versace <chad.versace@linux.intel.com> | 2012-11-14 13:34:44 -0800 |
commit | 5d6bd95a70e4a34f33dcb359ff1f378a8fb93aef (patch) | |
tree | eb0ff8f1518b0e8373f76417dd9078ef24494466 /man | |
parent | 65163eda4694d5d6631597dea55c050341d7ea5b (diff) |
waffle: Change WAFFLE_CONTEXT_PROFILE behavior for GL
This patch changes the behavior of WAFFLE_CONTEXT_PROFILE when the
requested api is WAFFLE_CONTEXT_OPENGL.
At commit a40dec1~1 (Nov 12), the behavior was:
- For GL < 3.2, require that the profile be WAFFLE_NONE, core,
or compat.
- For GL >= 3.2, require that the profile be core or compat.
This is the behavior released in waffle-1.1.
However, the waffle_config manpage documented requirements for
WAFFLE_CONTEXT_PROFILE that differed from the implementation. The
documented requirements imitated the EGL_KHR_create_context and
GLX_ARB_create_context_profile specs. Commit a40dec1 (Nov 12) changed the
behavior to match the manpage:
- For GL < 3.2, completely ignore the profile value.
- For GL >= 3.2, require that the profile be core or compat.
This behavior had looser requirements than a40dec1~1 because the profile's
value was not validated for GL < 3.2. No waffle release contains a40dec1.
The GLX working group, though, can't decide on the exact behavior of
profile bit. A later GLX extension, GLX_EXT_create_context_es_profile, is
built on top of but breaks backwards compatibility with
GLX_ARB_create_context_profile. According to
GLX_EXT_create_context_es_profile, the profile *is* signficant for all
versions of GL when its value is GLX_CONTEXT_PROFILE_ES_BIT_EXT.
Rather than attempt to predict what the GLX working group will decide
next regarding the profile bit, Waffle should be as restrictive as
possible in its interpretation of WAFFLE_CONTEXT_PROFILE. Being
restrictive decreases the possibility that Waffle will accept something
that a later GLX extension will reject, a situation that would likely
result in modifying the public interface or internal ugliness.
This patch changes the behavior to be more sightly more restrictive than
a40dec1~1:
- For GL < 3.2, require that the profile be WAFFLE_NONE.
- For GL >= 3.2, require that the profile be core or compat.
It will be straightforward to later loosen these requirements if necessary
in response to a new GLX or EGL extension.
This patch also updates the waffle_config manpage and wcore_config_attrs
unittests accordingly.
Even though the current requirements are more restrictive than those
released in waffle-1.1, I don't expect this to change to break any
clients. The only clients I'm aware of are Piglit, which is not affected
by this change, and some experimental unreleased apps.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Diffstat (limited to 'man')
-rw-r--r-- | man/waffle_config.3.xml | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/man/waffle_config.3.xml b/man/waffle_config.3.xml index a0f20e5..9f196a6 100644 --- a/man/waffle_config.3.xml +++ b/man/waffle_config.3.xml @@ -320,15 +320,21 @@ struct waffle_config; </para> <para> - If the requested API is <constant>WAFFLE_CONTEXT_OPENGL</constant>, + If the requested API is <constant>WAFFLE_CONTEXT_OPENGL</constant> - then default value is <constant>WAFFLE_CONTEXT_CORE_PROFILE</constant>. + and the requested version is less than 3.2, + + then the default and only accepted value is <constant>WAFFLE_NONE</constant>. + </para> + + <para> + If the requested API is <constant>WAFFLE_CONTEXT_OPENGL</constant> - If the requested context version is less than 3.2, + and the requested version is at least 3.2, - then the value of <constant>WAFFLE_CONTEXT_PROFILE</constant> is ignored. + then default value is <constant>WAFFLE_CONTEXT_CORE_PROFILE</constant>. - If the requested context version is at least 3.2, then the set of accepted values is + The set of accepted values is <constant>WAFFLE_CONTEXT_PROFILE_CORE</constant> and <constant>WAFFLE_CONTEXT_PROFILE_COMPATIBILITY</constant>. |