uint32_t cpp;
uint32_t flags;
uint32_t width, height;
+ uint64_t last_swap;
enum dri3_buffer_type buffer_type;
};
{
__GLXDRIdisplay base;
- const __DRIextension *loader_extensions[8];
+ const __DRIextension **loader_extensions;
/* DRI3 bits */
int dri3Major;
const __DRI2flushExtension *f;
const __DRI2configQueryExtension *config;
const __DRItexBufferExtension *texBuffer;
+ const __DRI2rendererQueryExtension *rendererQuery;
const __DRIconfig **driver_configs;
void *driver;
__DRIcontext *driContext;
};
-#define DRI3_NUM_BACK 2
+#define DRI3_MAX_BACK 3
#define DRI3_BACK_ID(i) (i)
-#define DRI3_FRONT_ID (DRI3_NUM_BACK)
-
-static inline int
-dri3_buf_id_next(int buf_id)
-{
- if (buf_id == DRI3_NUM_BACK - 1)
- return 0;
- return buf_id + 1;
-}
-
-static inline int
-dri3_buf_id_prev(int buf_id)
-{
- if (buf_id == 0)
- return DRI3_NUM_BACK - 1;
- return buf_id - 1;
-}
+#define DRI3_FRONT_ID (DRI3_MAX_BACK)
static inline int
dri3_pixmap_buf_id(enum dri3_buffer_type buffer_type)
return DRI3_FRONT_ID;
}
-#define DRI3_NUM_BUFFERS (1 + DRI3_NUM_BACK)
+#define DRI3_NUM_BUFFERS (1 + DRI3_MAX_BACK)
struct dri3_drawable {
__GLXDRIdrawable base;
uint8_t have_back;
uint8_t have_fake_front;
uint8_t is_pixmap;
+ uint8_t flipping;
/* SBC numbers are tracked by using the serial numbers
* in the present request and complete events
struct dri3_buffer *buffers[DRI3_NUM_BUFFERS];
int cur_back;
+ int num_back;
uint32_t *stamp;