Khronos Frequently Asked Questions

For Integrators

Why is the WFD pipeline direct refresh attribute _not_ available for stream input?

The thought was that in the streaming case there is no need for the user to be aware of this since the buffers are provided/managed by the stream, not the user.

How and when is the WFD pipeline layering order decided?

Layering order of the WFD pipelines that can be bound to a particular port is expected to be a static feature of the implementation and likely of the hardware itself. For shareable pipelines, those that can be bound to more than one port (not simultaneously), the layering number of the pipeline for each port may be different, but the layering number in relation to a particular port is intended to be static.

What is the purpose for the WFD pipeline direct refresh attribute?

The WFD pipeline direct refresh attribute is intended to indicate to the client that the hardware is refreshing from the client provided directly bound image buffer. This is intended to denote to the client that any changes to the bound buffer contents may cause visual tearing or other display artifacts.

Does WFD support sharing of object handles?

The WFD specification was written with the expectation of a single client, the platform windowing system. The WFD object handles are single instance handles, meaning only one handle to an object can be created at any point in time. WFD handles are intended to be safe for use by multiple threads, in the same process, but the handle sharing mechanism is left to the API user.

Are OpenWF APIs thread and process safe?

The API specifications note that thread safety is indeed a goal. There is no requirement for per thread data storage. All API functions are intended to be safe when accessed from multiple threads within the same process. The subject of process safey is not addressed by the specifications. Process safety is left to the API user to resolve.

What pixel formats are supported by WFC or WFD APIs?

Input or output pixel formats are not addressed by the API specifications. Functions involving pixel input and output typically raise an error, if an unsupported format is used. To avoid trial and error type of usage, the native stream type, and/or EGL image type, may allow querying for supported pixel formats.