On Sat, Oct 12, 2013 at 12:10 AM, Ian Romanick <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > The enumerated values are currently allocated from Intel's range. > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > --- > docs/MESA_query_renderer.spec | 381 > ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 381 insertions(+) > create mode 100644 docs/MESA_query_renderer.spec > > diff --git a/docs/MESA_query_renderer.spec b/docs/MESA_query_renderer.spec > new file mode 100644 > index 0000000..6d683ee > --- /dev/null > +++ b/docs/MESA_query_renderer.spec > @@ -0,0 +1,381 @@ > +Name > + > + MESA_query_renderer > + > +Name Strings > + > + GLX_MESA_query_renderer > + > +Contact > + > + Ian Romanick <ian.d.roman...@intel.com> > + > +IP Status > + > + No known IP claims. > + > +Status > + > + Incomplete. DO NOT SHIP. > + > +Version > + > + Version 5, 14-February-2013 > + > +Number > + > + TBD. > + > +Dependencies > + > + GLX 1.4 is required. > + > + GLX_ARB_create_context and GLX_ARB_create_context_profile are required. > + > + This extension interacts with GLX_EXT_create_context_es2_profile and > + GLX_EXT_create_context_es_profile. > + > +Overview > + > + In many situations, applications want to detect characteristics of a > + rendering device before creating a context for that device. Information > + gathered at this stage may guide choices the application makes about > + color depth, number of samples per-pixel, texture quality, and so on. > + In addition, versions of supported APIs and implementation API > + preference may also guide start-up decisions made by the application. > + For example, one implementation may prefer vertex data be supplied using > + methods only available in a compatibility profile, but another > + implementation may only support the desired version in a core profile. > + > + There are also cases where more than one renderer may be available per > + display. For example, there is typically a hardware implementation and > + a software based implementation. There are cases where an application > + may want to pick one over the other. One such situation is when the > + software implementation supports more features than the hardware > + implementation. Another situation is when a particular version of the > + hardware implementation is blacklisted due to known bugs. > + > + This extension provides a mechanism for the application to query all of > + the available renderers for a particular display and screen. In > + addition, this extension provides a mechanism for applications to create > + contexts with respect to a specific renderer. > + > +New Procedures and Functions > + > + Bool glXQueryRendererIntegerMESA(Display *dpy, int screen, > + int renderer, int attribute, > + unsigned int *value); > + Bool glXQueryCurrentRendererIntegerMESA(int attribute, unsigned int > *value); > + > + const char *glXQueryRendererStringMESA(Display *dpy, int screen, > + int renderer, int attribute); > + > + const char *glXQueryCurrentRendererStringMESA(int attribute); > + > +New Tokens > + > + Accepted as an <attribute> in glXQueryRendererIntegerMESA:
Also accepted in glXQueryCurrentRendererIntegerMESA? > + > + GLX_RENDERER_VENDOR_ID_MESA 0x8183 > + GLX_RENDERER_DEVICE_ID_MESA 0x8184 > + GLX_RENDERER_VERSION_MESA 0x8185 > + GLX_RENDERER_ACCELERATED_MESA 0x8186 > + GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187 > + GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188 > + GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189 > + GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A > + GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B > + GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C > + GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D > + > + Accepted as an <attribute> in glXQueryRendererStringMESA: Also accepted in glXQueryCurrentRendererStringMESA? > + > + GLX_RENDERER_VENDOR_ID_MESA > + GLX_RENDERER_DEVICE_ID_MESA > + > + Accepted as an attribute name in <*attrib_list> in > + glXCreateContextAttribsARB: > + > + GLX_RENDERER_ID_MESA 0x818E > + > +Additions to the OpenGL / WGL Specifications > + > + None. This specification is written for GLX. > + > +Additions to the GLX 1.4 Specification > + > + [Add the following to Section X.Y.Z of the GLX Specification] > + > + To obtain information about the available renderers for a particular > + display and screen, > + > + void glXQueryRendererIntegerMESA(Display *dpy, int screen, int > renderer, > + int attribute, unsigned int *value); > + > + can be used. The value for <attribute> will be returned in one or more > + integers specified by <value>. The values, data sizes, and descriptions > + of each renderer attribute are listed in the table below. > + > + GLX renderer attribute number description > + of values > + ---------------------- --------- ----------- > + GLX_RENDERER_VENDOR_ID_MESA 1 PCI ID of the device vendor > + GLX_RENDERER_DEVICE_ID_MESA 1 PCI ID of the device > + GLX_RENDERER_VERSION_MESA 3 Major, minor, and patch level > of > + the renderer implementation > + GLX_RENDERER_ACCELERATED_MESA 1 Boolean indicating whether or > + not the renderer is hardware > + accelerated > + GLX_RENDERER_VIDEO_MEMORY_MESA 1 Number of megabytes of video > + memory available to the > renderer > + GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA > + 1 Boolean indicating whether or > + not the renderer uses a unified > + memory architecture or has > + separate "on-card" and GART > + memory. > + GLX_RENDERER_PREFERRED_PROFILE_MESA > + 1 Bitmask of the preferred > context > + profile for this renderer. > This > + value is suitable to be > supplied > + with the > + GLX_CONTEXT_PROFILE_MASK_ARB > + attribute to > + glXCreateContextAttribsARB > + GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA > + 2 Maximum core profile major and > + minor version supported by the > + renderer > + GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA > + 2 Maximum compatibility profile > + major and minor version > + supported by the renderer > + GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA > + 2 Maximum OpenGL ES 1.x > + major and minor version > + supported by the renderer > + GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA > + 2 Maximum OpenGL ES 2.x or 3.x > + major and minor version > + supported by the renderer > + > + In the table, boolean attributes will have either the value 0 or 1. > + > + GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA, > + GLX_RENDERER_OPENGL_COMAPTIBILITY_PROFILE_VERSION_MESA, Typo: COMPATIBILITY. Acked-by: Marek Olšák <marek.ol...@amd.com> It's a nice extension, but it's quite unlikely I will have time to work on it. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev