mirror of
https://gitlab.freedesktop.org/xorg/proto/xorgproto.git
synced 2025-12-20 04:40:10 +01:00
dri2proto: Add DRI2GetParam request
Bump protocol version to 1.4. Bump package version to 2.7. This new protocol request effectively allows clients to perform feature detection on the DDX. If I had DRI2GetParam in June 2011, when I was implementing support in the Intel DDX and Mesa for new hardware that required a new DRI2 attachment format, then I could have avoided a week of pain caused by the necessity to write a horrid feature detection hack [1] in Mesa. In the future, when the work begins to add MSAA support to the Intel DDX, having a clean way to do feature detection will allow us to avoid revisiting and expanding that hack. [1] mesa, commit aea2236a, function intel_verify_dri2_has_hi Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Ian Romanick <idr@freedesktop.org> Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
parent
428688d1ea
commit
652fe8d9dd
3 changed files with 76 additions and 3 deletions
|
|
@ -1,5 +1,5 @@
|
|||
AC_PREREQ([2.60])
|
||||
AC_INIT([DRI2Proto], [2.6], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
|
||||
AC_INIT([DRI2Proto], [2.7], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
|
|
|
|||
28
dri2proto.h
28
dri2proto.h
|
|
@ -35,11 +35,11 @@
|
|||
|
||||
#define DRI2_NAME "DRI2"
|
||||
#define DRI2_MAJOR 1
|
||||
#define DRI2_MINOR 3
|
||||
#define DRI2_MINOR 4
|
||||
|
||||
#define DRI2NumberErrors 0
|
||||
#define DRI2NumberEvents 2
|
||||
#define DRI2NumberRequests 13
|
||||
#define DRI2NumberRequests 14
|
||||
|
||||
#define X_DRI2QueryVersion 0
|
||||
#define X_DRI2Connect 1
|
||||
|
|
@ -54,6 +54,7 @@
|
|||
#define X_DRI2WaitMSC 10
|
||||
#define X_DRI2WaitSBC 11
|
||||
#define X_DRI2SwapInterval 12
|
||||
#define X_DRI2GetParam 13
|
||||
|
||||
/*
|
||||
* Events
|
||||
|
|
@ -330,4 +331,27 @@ typedef struct {
|
|||
} xDRI2InvalidateBuffers;
|
||||
#define sz_xDRI2InvalidateBuffers 32
|
||||
|
||||
typedef struct {
|
||||
CARD8 reqType;
|
||||
CARD8 dri2ReqType;
|
||||
CARD16 length B16;
|
||||
CARD32 drawable B32;
|
||||
CARD32 param B32;
|
||||
} xDRI2GetParamReq;
|
||||
#define sz_xDRI2GetParamReq 12
|
||||
|
||||
typedef struct {
|
||||
BYTE type; /*X_Reply*/
|
||||
BOOL is_param_recognized;
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32;
|
||||
CARD32 value_hi B32;
|
||||
CARD32 value_lo B32;
|
||||
CARD32 pad1 B32;
|
||||
CARD32 pad2 B32;
|
||||
CARD32 pad3 B32;
|
||||
CARD32 pad4 B32;
|
||||
} xDRI2GetParamReply;
|
||||
#define sz_xDRI2GetParamReply 32
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -440,6 +440,36 @@ The name of this extension is "DRI2".
|
|||
DRI2SwapBuffers requests to swap at most once per interval frames,
|
||||
which is useful useful for limiting the frame rate.
|
||||
|
||||
┌───
|
||||
DRI2GetParam
|
||||
drawable: DRAWABLE
|
||||
param: CARD32
|
||||
▶
|
||||
is_param_recognized: BOOL
|
||||
value: CARD64
|
||||
└───
|
||||
Errors: Drawable
|
||||
|
||||
Get the value of a parameter. The parameter's value is looked up on
|
||||
the screen associated with 'drawable'.
|
||||
|
||||
Parameter names in which the value of the most significant byte is
|
||||
0 are reserved for the X server. Currently, no such parameter names
|
||||
are defined. (When any such names are defined, they will be defined in
|
||||
this extension specification and its associated headers).
|
||||
|
||||
Parameter names in which the byte's value is 1 are reserved for the
|
||||
DDX. Such names are private to each driver and shall be defined in the
|
||||
respective driver's headers.
|
||||
|
||||
Parameter names in which the byte's value is neither 0 nor 1 are
|
||||
reserved for future use.
|
||||
|
||||
Possible values of 'is_param_recognized' are true (1) and false (0).
|
||||
If false, then 'value' is undefined.
|
||||
|
||||
This request is only available with protocol version 1.4 or later.
|
||||
|
||||
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
|
||||
|
||||
9. Extension Events
|
||||
|
|
@ -512,6 +542,8 @@ The DRI2 extension has undergone a number of revisions before
|
|||
|
||||
2.6: Enlightenment attained. Added the DRI2BufferHiz attachment.
|
||||
|
||||
2.7: Added the DRI2GetParam request.
|
||||
|
||||
Compatibility up to 2.0 is not preserved, but was also never released.
|
||||
|
||||
|
||||
|
|
@ -830,6 +862,23 @@ A.2 Protocol Requests
|
|||
▶
|
||||
└───
|
||||
|
||||
┌───
|
||||
DRI2GetParam
|
||||
1 CARD8 major opcode
|
||||
1 13 DRI2 opcode
|
||||
2 8 length
|
||||
4 DRAWABLE drawable
|
||||
4 CARD32 param
|
||||
▶
|
||||
1 1 Reply
|
||||
1 BOOL is_param_recognized
|
||||
2 CARD16 sequence number
|
||||
4 0 reply length
|
||||
4 CARD32 value_hi
|
||||
4 CARD32 value_lo
|
||||
16 unused
|
||||
└───
|
||||
|
||||
A.3 Protocol Events
|
||||
|
||||
The DRI2 extension specifies DRI2_BufferSwapComplete and
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue