Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:redwil:15.4
presentproto
n_presentproto-1.3-2023.2.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File n_presentproto-1.3-2023.2.patch of Package presentproto
Index: presentproto-1.1/presentproto.h =================================================================== --- presentproto-1.1.orig/presentproto.h +++ presentproto-1.1/presentproto.h @@ -32,55 +32,55 @@ #define EventID CARD32 typedef struct { - Window window B32; - CARD32 serial B32; + Window window; + CARD32 serial; } xPresentNotify; #define sz_xPresentNotify 8 typedef struct { CARD8 reqType; CARD8 presentReqType; - CARD16 length B16; - CARD32 majorVersion B32; - CARD32 minorVersion B32; + CARD16 length; + CARD32 majorVersion; + CARD32 minorVersion; } xPresentQueryVersionReq; #define sz_xPresentQueryVersionReq 12 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 majorVersion B32; - CARD32 minorVersion B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; + CARD16 sequenceNumber; + CARD32 length; + CARD32 majorVersion; + CARD32 minorVersion; + CARD32 pad2; + CARD32 pad3; + CARD32 pad4; + CARD32 pad5; } xPresentQueryVersionReply; #define sz_xPresentQueryVersionReply 32 typedef struct { CARD8 reqType; CARD8 presentReqType; - CARD16 length B16; - Window window B32; + CARD16 length; + Window window; - Pixmap pixmap B32; - CARD32 serial B32; + Pixmap pixmap; + CARD32 serial; - Region valid B32; - Region update B32; + Region valid; + Region update; - INT16 x_off B16; - INT16 y_off B16; - CARD32 target_crtc B32; + INT16 x_off; + INT16 y_off; + CARD32 target_crtc; - XSyncFence wait_fence B32; - XSyncFence idle_fence B32; + XSyncFence wait_fence; + XSyncFence idle_fence; - CARD32 options B32; - CARD32 pad1 B32; + CARD32 options; + CARD32 pad1; CARD64 target_msc; CARD64 divisor; @@ -92,11 +92,11 @@ typedef struct { typedef struct { CARD8 reqType; CARD8 presentReqType; - CARD16 length B16; - Window window B32; + CARD16 length; + Window window; - CARD32 serial B32; - CARD32 pad0 B32; + CARD32 serial; + CARD32 pad0; CARD64 target_msc; CARD64 divisor; @@ -107,32 +107,32 @@ typedef struct { typedef struct { CARD8 reqType; CARD8 presentReqType; - CARD16 length B16; - CARD32 eid B32; - CARD32 window B32; - CARD32 eventMask B32; + CARD16 length; + CARD32 eid; + CARD32 window; + CARD32 eventMask; } xPresentSelectInputReq; #define sz_xPresentSelectInputReq 16 typedef struct { CARD8 reqType; CARD8 presentReqType; - CARD16 length B16; - CARD32 target B32; + CARD16 length; + CARD32 target; } xPresentQueryCapabilitiesReq; #define sz_xPresentQueryCapabilitiesReq 8 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 capabilities B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; + CARD16 sequenceNumber; + CARD32 length; + CARD32 capabilities; + CARD32 pad3; + CARD32 pad4; + CARD32 pad5; + CARD32 pad6; + CARD32 pad7; } xPresentQueryCapabilitiesReply; #define sz_xPresentQueryCapabilitiesReply 32 @@ -145,36 +145,36 @@ typedef struct { typedef struct { CARD8 type; CARD8 extension; - CARD16 sequenceNumber B16; + CARD16 sequenceNumber; CARD32 length; - CARD16 evtype B16; + CARD16 evtype; CARD16 pad2; - CARD32 eid B32; - CARD32 window B32; - INT16 x B16; - INT16 y B16; - CARD16 width B16; - CARD16 height B16; - INT16 off_x B16; - INT16 off_y B16; - - CARD16 pixmap_width B16; - CARD16 pixmap_height B16; - CARD32 pixmap_flags B32; + CARD32 eid; + CARD32 window; + INT16 x; + INT16 y; + CARD16 width; + CARD16 height; + INT16 off_x; + INT16 off_y; + + CARD16 pixmap_width; + CARD16 pixmap_height; + CARD32 pixmap_flags; } xPresentConfigureNotify; #define sz_xPresentConfigureNotify 40 typedef struct { CARD8 type; CARD8 extension; - CARD16 sequenceNumber B16; + CARD16 sequenceNumber; CARD32 length; - CARD16 evtype B16; + CARD16 evtype; CARD8 kind; CARD8 mode; - CARD32 eid B32; - Window window B32; - CARD32 serial B32; + CARD32 eid; + Window window; + CARD32 serial; CARD64 ust; CARD64 msc; @@ -184,15 +184,15 @@ typedef struct { typedef struct { CARD8 type; CARD8 extension; - CARD16 sequenceNumber B16; + CARD16 sequenceNumber; CARD32 length; - CARD16 evtype B16; - CARD16 pad2 B16; - CARD32 eid B32; - Window window B32; - CARD32 serial B32; - Pixmap pixmap B32; - CARD32 idle_fence B32; + CARD16 evtype; + CARD16 pad2; + CARD32 eid; + Window window; + CARD32 serial; + Pixmap pixmap; + CARD32 idle_fence; } xPresentIdleNotify; #define sz_xPresentIdleNotify 32 @@ -200,35 +200,35 @@ typedef struct { typedef struct { CARD8 type; CARD8 extension; - CARD16 sequenceNumber B16; + CARD16 sequenceNumber; CARD32 length; - CARD16 evtype B16; + CARD16 evtype; CARD8 update_window; CARD8 pad1; - CARD32 eid B32; - Window event_window B32; - Window window B32; - Pixmap pixmap B32; - CARD32 serial B32; - + CARD32 eid; + Window event_window; + Window window; + Pixmap pixmap; + CARD32 serial; + /* 32-byte boundary */ - Region valid_region B32; - Region update_region B32; + Region valid_region; + Region update_region; xRectangle valid_rect; xRectangle update_rect; - INT16 x_off B16; - INT16 y_off B16; - CARD32 target_crtc B32; + INT16 x_off; + INT16 y_off; + CARD32 target_crtc; - XSyncFence wait_fence B32; - XSyncFence idle_fence B32; + XSyncFence wait_fence; + XSyncFence idle_fence; - CARD32 options B32; - CARD32 pad2 B32; + CARD32 options; + CARD32 pad2; CARD64 target_msc; CARD64 divisor; Index: presentproto-1.1/presentproto.pc.in =================================================================== --- presentproto-1.1.orig/presentproto.pc.in +++ presentproto-1.1/presentproto.pc.in @@ -1,9 +1,7 @@ prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ includedir=@includedir@ Name: PresentProto Description: Present extension headers -Version: 1.2 +Version: 1.3 Cflags: -I${includedir} Index: presentproto-1.1/presentproto.txt =================================================================== --- presentproto-1.1.orig/presentproto.txt +++ presentproto-1.1/presentproto.txt @@ -1,6 +1,6 @@ The Present Extension - Version 1.2 - 2018-02-26 + Version 1.3 + 2023-06-13 Keith Packard keithp@keithp.com @@ -57,11 +57,13 @@ PRESENTEVENTMASK { PresentConfigureNotif PRESENTOPTION { PresentOptionAsync, PresentOptionCopy, PresentOptionUST, - PresentOptionSuboptimal } + PresentOptionSuboptimal, + PresentOptionAsyncMayTear } PRESENTCAPABILITY { PresentCapabilityAsync, PresentCapabilityFence, - PresentCapabilityUST } + PresentCapabilityUST, + PresentCapabilityAsyncMayTear } PRESENTCOMPLETEKIND { PresentCompleteKindPixmap, PresentCompleteKindMSCNotify } @@ -129,7 +131,7 @@ The name of this extension is "Present" It is the clients responsibility to ensure that the server supports a version which is compatible with its expectations. - Backwards compatible changes included addition of new + Backwards compatible changes include addition of new requests. ❄ ❄ ❄ ❄ ❄ ❄ ❄ @@ -201,7 +203,7 @@ The name of this extension is "Present" the client as soon as the PresentIdleNotify event has been received. Note that if PresentCapabilityFence is set for the associated CRTC, then clients should use fences to improve - overall systme performance. If PresentCapabilityFence is not + overall system performance. If PresentCapabilityFence is not set, then using fences offers no benefit, but also no cost. If 'target-msc' is greater than the current msc for 'window', @@ -215,7 +217,16 @@ The name of this extension is "Present" If 'options' contains PresentOptionAsync, and the 'target-msc' is less than or equal to the current msc for 'window', then the operation will be performed as soon as possible, not - necessarily waiting for the next vertical blank interval. + necessarily waiting for the next vertical blank interval. If + the target-crtc does not support PresentCapabilityAsyncMayTear, + this may result in tearing. + + If the target-crtc supports PresentCapabilityAsyncMayTear, + 'options' contains PresentOptionAsyncMayTear, and the 'target-msc' + is less than or equal to the current msc for 'window', then + the operation will be performed as soon as possible, not + necessarily waiting for the next vertical blank interval, and + possibly resulting in tearing. If 'options' contains PresentOptionCopy, then 'pixmap' will be idle, and 'idle-fence' triggered as soon as the operation occurs. @@ -265,7 +276,7 @@ The name of this extension is "Present" Delivers a PresentCompleteNotifyEvent with kind PresentCompleteKindNotifyMSC after the time specified by - 'target-msc', 'divisor' and 'remainder'). + 'target-msc', 'divisor' and 'remainder'. 'serial' is an arbitrary client-specified value which will be returned in the event so that the client can associate the @@ -315,13 +326,23 @@ The name of this extension is "Present" 'target' is a WINDOW, then the target CRTC is selected by the X server from among the CRTCs on the screen specified by the window. - PresentCapabilityAsync means that the target device can flip - the scanout buffer mid-frame instead of waiting for a vertical - blank interval. The precise latency between the flip request - and the actual scanout transition is not defined by this + PresentCapabilityAsyncMayTear means that the target device may be + able to flip the scanout buffer mid-frame instead of waiting for + a vertical blank interval. The precise latency between the flip + request and the actual scanout transition is not defined by this specification, but is intended to be no more than a few scanlines. + If PresentCapabilityAsyncMayTear is not supported, + PresentCapabilityAsync means the same as + PresentCapabilityAsyncMayTear described above. + + If PresentCapabilityAsyncMayTear is supported, + PresentCapabilityAsync means that even if there is already a flip + pending in the target device, it may be possible to replace that + flip before the next vertical blank interval. The scanout buffer + does not change mid-frame though, i.e. there is no tearing. + PresentCapabilityFence means that the target device can take advantage of SyncFences in the Present operations to improve GPU throughput. The driver must operate correctly in the @@ -546,7 +567,7 @@ Present provides similar functionality t requests, however Present uses X pixmaps to refer to the new window contents instead of the DRI2 buffer attachments. -Present and DRI3 are designed in conjunction to replace DRI2 +Present and DRI3 are designed in conjunction to replace DRI2. 10.4 XvMC / Xv @@ -584,6 +605,7 @@ A.1 Common Types 2 PresentOptionCopy; 4 PresentOptionUST 8 PresentOptionSuboptimal + 16 PresentOptionAsyncMayTear └─── ┌─── @@ -591,6 +613,7 @@ A.1 Common Types 1 PresentCapabilityAsync 2 PresentCapabilityFence 4 PresentCapabilityUST + 8 PresentCapabilityAsyncMayTear └─── ┌─── Index: presentproto-1.1/presenttokens.h =================================================================== --- presentproto-1.1.orig/presenttokens.h +++ presentproto-1.1/presenttokens.h @@ -25,7 +25,7 @@ #define PRESENT_NAME "Present" #define PRESENT_MAJOR 1 -#define PRESENT_MINOR 2 +#define PRESENT_MINOR 3 #define PresentNumberErrors 0 #define PresentNumberEvents 0 @@ -45,11 +45,15 @@ #define PresentOptionCopy (1 << 1) #define PresentOptionUST (1 << 2) #define PresentOptionSuboptimal (1 << 3) +#define PresentOptionAsyncMayTear (1 << 4) #define PresentAllOptions (PresentOptionAsync | \ PresentOptionCopy | \ PresentOptionUST | \ - PresentOptionSuboptimal) + PresentOptionSuboptimal | \ + PresentOptionAsyncMayTear) + +#define PresentAllAsyncOptions (PresentOptionAsync | PresentOptionAsyncMayTear) /* Present capabilities */ @@ -57,10 +61,14 @@ #define PresentCapabilityAsync 1 #define PresentCapabilityFence 2 #define PresentCapabilityUST 4 +#define PresentCapabilityAsyncMayTear 8 #define PresentAllCapabilities (PresentCapabilityAsync | \ PresentCapabilityFence | \ - PresentCapabilityUST) + PresentCapabilityUST | \ + PresentCapabilityAsyncMayTear) + +#define PresentAllAsyncCapabilities (PresentCapabilityAsync | PresentCapabilityAsyncMayTear) /* Events */ #define PresentConfigureNotify 0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor