xf86-video-intel: 3 commits - src/compat-api.h src/i830_render.c src/i915_render.c src/i965_render.c src/intel_batchbuffer.c src/intel_dri.c src/intel_driver.c src/intel_glamor.c src/intel.h src/intel_hwmc.c src/intel_uxa.c src/intel_video.c src/legacy/i810 src/Makefile.am src/sna/sna_dri.c src/sna/sna_driver.c src/sna/sna_glyphs.c src/sna/sna.h uxa/uxa.c uxa/uxa-glyphs.c uxa/uxa-priv.h
Dave Airlie
airlied at kemper.freedesktop.org
Wed May 23 03:05:56 PDT 2012
src/Makefile.am | 1 +
src/compat-api.h | 41 +++++++++++++++++++++++++++++++++++++++++
src/i830_render.c | 14 +++++++-------
src/i915_render.c | 18 +++++++++---------
src/i965_render.c | 14 +++++++-------
src/intel.h | 5 +++--
src/intel_batchbuffer.c | 2 +-
src/intel_dri.c | 30 +++++++++++++++---------------
src/intel_driver.c | 6 +++---
src/intel_glamor.c | 16 ++++++++--------
src/intel_hwmc.c | 2 +-
src/intel_uxa.c | 30 +++++++++++++++---------------
src/intel_video.c | 6 +++---
src/legacy/i810/i810.h | 1 +
src/legacy/i810/i810_accel.c | 6 +++---
src/legacy/i810/i810_cursor.c | 6 +++---
src/legacy/i810/i810_dga.c | 2 +-
src/legacy/i810/i810_dri.c | 18 +++++++++---------
src/legacy/i810/i810_driver.c | 6 +++---
src/legacy/i810/i810_hwmc.c | 2 +-
src/legacy/i810/i810_video.c | 6 +++---
src/sna/sna.h | 3 ++-
src/sna/sna_dri.c | 4 ++--
src/sna/sna_driver.c | 4 ++--
src/sna/sna_glyphs.c | 15 +++++++--------
uxa/uxa-glyphs.c | 9 ++++-----
uxa/uxa-priv.h | 2 ++
uxa/uxa.c | 2 +-
28 files changed, 158 insertions(+), 113 deletions(-)
New commits:
commit 54fde5bf05d43f26e7f1893584af736a138d245f
Author: Dave Airlie <airlied at redhat.com>
Date: Wed May 16 15:34:08 2012 +0100
intel: convert sna/uxa to using new glyph picture accessors.
The compat-api.h takes care of old/new servers.
Signed-off-by: Dave Airlie <airlied at redhat.com>
diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c
index 2af7e80..0a2e042 100644
--- a/src/sna/sna_glyphs.c
+++ b/src/sna/sna_glyphs.c
@@ -221,7 +221,7 @@ glyph_cache_upload(ScreenPtr screen,
DBG(("%s: upload glyph %p to cache (%d, %d)x(%d, %d)\n",
__FUNCTION__, glyph, x, y, glyph->info.width, glyph->info.height));
sna_composite(PictOpSrc,
- GlyphPicture(glyph)[screen->myNum], 0, cache->picture,
+ GetGlyphPicture(glyph, screen), 0, cache->picture,
0, 0,
0, 0,
x, y,
@@ -302,7 +302,7 @@ glyph_cache(ScreenPtr screen,
struct sna_render *render,
GlyphPtr glyph)
{
- PicturePtr glyph_picture = GlyphPicture(glyph)[screen->myNum];
+ PicturePtr glyph_picture = GetGlyphPicture(glyph, screen);
struct sna_glyph_cache *cache = &render->glyph[PICT_FORMAT_RGB(glyph_picture->format) != 0];
struct sna_glyph *priv;
int size, mask, pos, s;
@@ -460,7 +460,7 @@ glyphs_to_dst(struct sna *sna,
}
if (!glyph_cache(screen, &sna->render, glyph)) {
/* no cache for this glyph */
- priv.atlas = GlyphPicture(glyph)[index];
+ priv.atlas = GetGlyphPicture(glyph, screen);
priv.coordinate.x = priv.coordinate.y = 0;
} else
priv = *sna_glyph(glyph);
@@ -600,7 +600,7 @@ glyphs_slow(struct sna *sna,
if (priv.atlas == NULL) {
if (!glyph_cache(screen, &sna->render, glyph)) {
/* no cache for this glyph */
- priv.atlas = GlyphPicture(glyph)[index];
+ priv.atlas = GetGlyphPicture(glyph, screen);
priv.coordinate.x = priv.coordinate.y = 0;
} else
priv = *sna_glyph(glyph);
@@ -813,7 +813,7 @@ upload:
if (glyph_image == NULL) {
int dx, dy;
- picture = GlyphPicture(g)[s];
+ picture = GetGlyphPicture(g, dst->pDrawable->pScreen);
if (picture == NULL)
goto next_image;
@@ -908,7 +908,7 @@ next_image:
r.src = priv->coordinate;
} else {
/* no cache for this glyph */
- this_atlas = GlyphPicture(glyph)[index];
+ this_atlas = GetGlyphPicture(glyph, screen);
r.src.x = r.src.y = 0;
}
}
@@ -1046,7 +1046,6 @@ glyphs_fallback(CARD8 op,
GlyphListPtr list,
GlyphPtr *glyphs)
{
- int screen = dst->pDrawable->pScreen->myNum;
pixman_image_t *dst_image, *mask_image, *src_image;
int dx, dy, x, y;
BoxRec box;
@@ -1156,7 +1155,7 @@ glyphs_fallback(CARD8 op,
PicturePtr picture;
int gx, gy;
- picture = GlyphPicture(g)[screen];
+ picture = GetGlyphPicture(g, dst->pDrawable->pScreen);
if (picture == NULL)
goto next_glyph;
diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index 921b99c..7db094b 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -235,7 +235,7 @@ uxa_glyph_cache_upload_glyph(ScreenPtr screen,
GlyphPtr glyph,
int x, int y)
{
- PicturePtr pGlyphPicture = GlyphPicture(glyph)[screen->myNum];
+ PicturePtr pGlyphPicture = GetGlyphPicture(glyph, screen);
PixmapPtr pGlyphPixmap = (PixmapPtr) pGlyphPicture->pDrawable;
PixmapPtr pCachePixmap = (PixmapPtr) cache->picture->pDrawable;
PixmapPtr scratch;
@@ -449,7 +449,6 @@ uxa_check_glyphs(CARD8 op,
INT16 xSrc,
INT16 ySrc, int nlist, GlyphListPtr list, GlyphPtr * glyphs)
{
- int screen = dst->pDrawable->pScreen->myNum;
pixman_image_t *image;
PixmapPtr scratch;
PicturePtr mask;
@@ -513,7 +512,7 @@ uxa_check_glyphs(CARD8 op,
n = list->len;
while (n--) {
GlyphPtr glyph = *glyphs++;
- PicturePtr g = GlyphPicture(glyph)[screen];
+ PicturePtr g = GetGlyphPicture(glyph, dst->pDrawable->pScreen);
if (g) {
if (maskFormat) {
CompositePicture(PictOpAdd, g, NULL, mask,
@@ -579,7 +578,7 @@ static PicturePtr
uxa_glyph_cache(ScreenPtr screen, GlyphPtr glyph, int *out_x, int *out_y)
{
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
- PicturePtr glyph_picture = GlyphPicture(glyph)[screen->myNum];
+ PicturePtr glyph_picture = GetGlyphPicture(glyph, screen);
uxa_glyph_cache_t *cache = &uxa_screen->glyphCaches[PICT_FORMAT_RGB(glyph_picture->format) != 0];
struct uxa_glyph *priv = NULL;
int size, mask, pos, s;
@@ -796,7 +795,7 @@ uxa_glyphs_via_mask(CARD8 op,
this_atlas = uxa_glyph_cache(screen, glyph, &src_x, &src_y);
if (this_atlas == NULL) {
/* no cache for this glyph */
- this_atlas = GlyphPicture(glyph)[screen->myNum];
+ this_atlas = GetGlyphPicture(glyph, screen);
src_x = src_y = 0;
}
}
commit 43a34186d13d29c671431832469ca5301751b3cf
Author: Dave Airlie <airlied at redhat.com>
Date: Wed May 16 15:26:55 2012 +0100
intel: convert to new screen conversion APIs
The compat header takes care of the old server vs new server.
this commit was autogenerated from util/modular/x-driver-screen-scrn-conv.sh
Signed-off-by: Dave Airlie <airlied at redhat.com>
diff --git a/src/i830_render.c b/src/i830_render.c
index c12e87b..e169cc1 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -164,7 +164,7 @@ static Bool i830_get_dest_format(PicturePtr dest_picture, uint32_t * dst_format)
*dst_format = COLR_BUF_ARGB4444;
break;
default:
- scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
intel_debug_fallback(scrn, "Unsupported dest format 0x%x\n",
(int)dest_picture->format);
return FALSE;
@@ -245,7 +245,7 @@ static uint32_t i8xx_get_card_format(intel_screen_private *intel,
static void i830_texture_setup(PicturePtr picture, PixmapPtr pixmap, int unit)
{
- ScrnInfoPtr scrn = xf86Screens[picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(picture->pDrawable->pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
uint32_t format, tiling_bits, pitch, filter;
uint32_t wrap_mode;
@@ -346,7 +346,7 @@ i830_check_composite(int op,
PicturePtr dest_picture,
int width, int height)
{
- ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
uint32_t tmp1;
/* Check for unsupported compositing operations. */
@@ -399,7 +399,7 @@ i830_check_composite_target(PixmapPtr pixmap)
Bool
i830_check_composite_texture(ScreenPtr screen, PicturePtr picture)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if (picture->repeatType > RepeatReflect) {
@@ -446,7 +446,7 @@ i830_prepare_composite(int op, PicturePtr source_picture,
PicturePtr mask_picture, PicturePtr dest_picture,
PixmapPtr source, PixmapPtr mask, PixmapPtr dest)
{
- ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
drm_intel_bo *bo_table[] = {
NULL, /* batch_bo */
@@ -665,7 +665,7 @@ i830_emit_composite_primitive(PixmapPtr dest,
int maskX, int maskY,
int dstX, int dstY, int w, int h)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
Bool is_affine_src, is_affine_mask = TRUE;
int per_vertex;
@@ -853,7 +853,7 @@ void
i830_composite(PixmapPtr dest, int srcX, int srcY, int maskX, int maskY,
int dstX, int dstY, int w, int h)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
intel_batch_start_atomic(scrn, 58 + /* invarient */
diff --git a/src/i915_render.c b/src/i915_render.c
index c6d5ed7..5605edf 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -172,7 +172,7 @@ static Bool i915_get_dest_format(PicturePtr dest_picture, uint32_t * dst_format)
*dst_format = COLR_BUF_ARGB4444;
break;
default:
- scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
intel_debug_fallback(scrn,
"Unsupported dest format 0x%x\n",
(int)dest_picture->format);
@@ -189,7 +189,7 @@ i915_check_composite(int op,
PicturePtr dest_picture,
int width, int height)
{
- ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
uint32_t tmp1;
/* Check for unsupported compositing operations. */
@@ -243,7 +243,7 @@ Bool
i915_check_composite_texture(ScreenPtr screen, PicturePtr picture)
{
if (picture->repeatType > RepeatReflect) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn, "Unsupported picture repeat %d\n",
picture->repeatType);
return FALSE;
@@ -251,7 +251,7 @@ i915_check_composite_texture(ScreenPtr screen, PicturePtr picture)
if (picture->filter != PictFilterNearest &&
picture->filter != PictFilterBilinear) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn, "Unsupported filter 0x%x\n",
picture->filter);
return FALSE;
@@ -266,7 +266,7 @@ i915_check_composite_texture(ScreenPtr screen, PicturePtr picture)
w = picture->pDrawable->width;
h = picture->pDrawable->height;
if ((w > 2048) || (h > 2048)) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn,
"Picture w/h too large (%dx%d)\n",
w, h);
@@ -281,7 +281,7 @@ i915_check_composite_texture(ScreenPtr screen, PicturePtr picture)
}
if (i == sizeof(i915_tex_formats) / sizeof(i915_tex_formats[0]))
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn, "Unsupported picture format "
"0x%x\n",
(int)picture->format);
@@ -296,7 +296,7 @@ i915_check_composite_texture(ScreenPtr screen, PicturePtr picture)
static Bool i915_texture_setup(PicturePtr picture, PixmapPtr pixmap, int unit)
{
- ScrnInfoPtr scrn = xf86Screens[picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(picture->pDrawable->pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
uint32_t format, pitch, filter;
uint32_t wrap_mode, tiling_bits;
@@ -660,7 +660,7 @@ i915_prepare_composite(int op, PicturePtr source_picture,
PicturePtr mask_picture, PicturePtr dest_picture,
PixmapPtr source, PixmapPtr mask, PixmapPtr dest)
{
- ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
drm_intel_bo *bo_table[] = {
NULL, /* batch_bo */
@@ -951,7 +951,7 @@ void
i915_composite(PixmapPtr dest, int srcX, int srcY, int maskX, int maskY,
int dstX, int dstY, int w, int h)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
/* 28 + 16 + 10 + 20 + 32 + 16 */
diff --git a/src/i965_render.c b/src/i965_render.c
index b981ecc..98231b8 100644
--- a/src/i965_render.c
+++ b/src/i965_render.c
@@ -181,7 +181,7 @@ i965_check_composite(int op,
PicturePtr dest_picture,
int width, int height)
{
- ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
/* Check for unsupported compositing operations. */
if (op >= sizeof(i965_blend_op) / sizeof(i965_blend_op[0])) {
@@ -219,7 +219,7 @@ Bool
i965_check_composite_texture(ScreenPtr screen, PicturePtr picture)
{
if (picture->repeatType > RepeatReflect) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn,
"extended repeat (%d) not supported\n",
picture->repeatType);
@@ -228,7 +228,7 @@ i965_check_composite_texture(ScreenPtr screen, PicturePtr picture)
if (picture->filter != PictFilterNearest &&
picture->filter != PictFilterBilinear) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn, "Unsupported filter 0x%x\n",
picture->filter);
return FALSE;
@@ -240,7 +240,7 @@ i965_check_composite_texture(ScreenPtr screen, PicturePtr picture)
w = picture->pDrawable->width;
h = picture->pDrawable->height;
if ((w > 8192) || (h > 8192)) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn,
"Picture w/h too large (%dx%d)\n",
w, h);
@@ -255,7 +255,7 @@ i965_check_composite_texture(ScreenPtr screen, PicturePtr picture)
}
if (i == sizeof(i965_tex_formats) / sizeof(i965_tex_formats[0]))
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_debug_fallback(scrn,
"Unsupported picture format "
"0x%x\n",
@@ -1978,7 +1978,7 @@ i965_prepare_composite(int op, PicturePtr source_picture,
PicturePtr mask_picture, PicturePtr dest_picture,
PixmapPtr source, PixmapPtr mask, PixmapPtr dest)
{
- ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest_picture->pDrawable->pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
struct gen4_render_state *render_state = intel->gen4_render_state;
gen4_composite_op *composite_op = &render_state->composite_op;
@@ -2202,7 +2202,7 @@ void
i965_composite(PixmapPtr dest, int srcX, int srcY, int maskX, int maskY,
int dstX, int dstY, int w, int h)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
intel_batch_start_atomic(scrn, 200);
diff --git a/src/intel.h b/src/intel.h
index e274db1..253a6bf 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -560,7 +560,7 @@ intel_check_pitch_2d(PixmapPtr pixmap)
{
uint32_t pitch = intel_pixmap_pitch(pixmap);
if (pitch > KB(32)) {
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_debug_fallback(scrn, "pitch exceeds 2d limit 32K\n");
return FALSE;
}
@@ -573,7 +573,7 @@ intel_check_pitch_3d(PixmapPtr pixmap)
{
uint32_t pitch = intel_pixmap_pitch(pixmap);
if (pitch > KB(8)) {
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_debug_fallback(scrn, "pitch exceeds 3d limit 8K\n");
return FALSE;
}
diff --git a/src/intel_batchbuffer.c b/src/intel_batchbuffer.c
index 2719c38..46f22bc 100644
--- a/src/intel_batchbuffer.c
+++ b/src/intel_batchbuffer.c
@@ -246,7 +246,7 @@ void intel_batch_submit(ScrnInfoPtr scrn)
if (!once) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Detected a hung GPU, disabling acceleration.\n");
xf86DrvMsg(scrn->scrnIndex, X_ERROR, "When reporting this, please include i915_error_state from debugfs and the full dmesg.\n");
- uxa_set_force_fallback(screenInfo.screens[scrn->scrnIndex], TRUE);
+ uxa_set_force_fallback(xf86ScrnToScreen(scrn), TRUE);
intel->force_fallback = TRUE;
once = 1;
}
diff --git a/src/intel_dri.c b/src/intel_dri.c
index a5ed545..36e96ff 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -97,7 +97,7 @@ static uint32_t pixmap_flink(PixmapPtr pixmap)
static PixmapPtr get_front_buffer(DrawablePtr drawable)
{
ScreenPtr screen = drawable->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
PixmapPtr pixmap;
@@ -130,7 +130,7 @@ static PixmapPtr get_front_buffer(DrawablePtr drawable)
static PixmapPtr fixup_glamor(DrawablePtr drawable, PixmapPtr pixmap)
{
ScreenPtr screen = drawable->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
PixmapPtr old = get_drawable_pixmap(drawable);
struct intel_pixmap *priv = intel_get_pixmap_private(pixmap);
GCPtr gc;
@@ -182,7 +182,7 @@ static PixmapPtr fixup_glamor(DrawablePtr drawable, PixmapPtr pixmap)
priv->stride,
NULL);
- intel_get_screen_private(xf86Screens[screen->myNum])->needs_flush = TRUE;
+ intel_get_screen_private(xf86ScreenToScrn(screen))->needs_flush = TRUE;
return old;
}
@@ -248,7 +248,7 @@ static PixmapPtr fixup_shadow(DrawablePtr drawable, PixmapPtr pixmap)
intel_set_pixmap_private(old, priv);
old->refcnt++;
- intel_get_screen_private(xf86Screens[screen->myNum])->needs_flush = TRUE;
+ intel_get_screen_private(xf86ScreenToScrn(screen))->needs_flush = TRUE;
return old;
}
@@ -258,7 +258,7 @@ I830DRI2CreateBuffers(DrawablePtr drawable, unsigned int *attachments,
int count)
{
ScreenPtr screen = drawable->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
DRI2BufferPtr buffers;
I830DRI2BufferPrivatePtr privates;
@@ -385,7 +385,7 @@ I830DRI2CreateBuffer(DrawablePtr drawable, unsigned int attachment,
unsigned int format)
{
ScreenPtr screen = drawable->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
DRI2Buffer2Ptr buffer;
I830DRI2BufferPrivatePtr privates;
@@ -534,7 +534,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
I830DRI2BufferPrivatePtr srcPrivate = sourceBuffer->driverPrivate;
I830DRI2BufferPrivatePtr dstPrivate = destBuffer->driverPrivate;
ScreenPtr screen = drawable->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
DrawablePtr src = (sourceBuffer->attachment == DRI2BufferFrontLeft)
? drawable : &srcPrivate->pixmap->drawable;
@@ -687,7 +687,7 @@ static int
I830DRI2DrawablePipe(DrawablePtr pDraw)
{
ScreenPtr pScreen = pDraw->pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
BoxRec box, crtcbox;
xf86CrtcPtr crtc;
int pipe = -1;
@@ -910,7 +910,7 @@ intel_glamor_create_back_pixmap(ScreenPtr screen,
0);
intel_set_pixmap_bo(back_pixmap, back_bo);
if (!intel_glamor_create_textured_pixmap(back_pixmap)) {
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
"Failed to create textured back pixmap.\n");
screen->DestroyPixmap(back_pixmap);
@@ -1026,7 +1026,7 @@ I830DRI2ScheduleFlip(struct intel_screen_private *intel,
static Bool
can_exchange(DrawablePtr drawable, DRI2BufferPtr front, DRI2BufferPtr back)
{
- struct intel_screen_private *intel = intel_get_screen_private(xf86Screens[drawable->pScreen->myNum]);
+ struct intel_screen_private *intel = intel_get_screen_private(xf86ScreenToScrn(drawable->pScreen));
I830DRI2BufferPrivatePtr front_priv = front->driverPrivate;
I830DRI2BufferPrivatePtr back_priv = back->driverPrivate;
PixmapPtr front_pixmap = front_priv->pixmap;
@@ -1244,7 +1244,7 @@ I830DRI2ScheduleSwap(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front,
CARD64 remainder, DRI2SwapEventPtr func, void *data)
{
ScreenPtr screen = draw->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
drmVBlank vbl;
int ret, pipe = I830DRI2DrawablePipe(draw), flip = 0;
@@ -1431,7 +1431,7 @@ static int
I830DRI2GetMSC(DrawablePtr draw, CARD64 *ust, CARD64 *msc)
{
ScreenPtr screen = draw->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
drmVBlank vbl;
int ret, pipe = I830DRI2DrawablePipe(draw);
@@ -1478,7 +1478,7 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
CARD64 divisor, CARD64 remainder)
{
ScreenPtr screen = draw->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
DRI2FrameEventPtr wait_info;
drmVBlank vbl;
@@ -1616,7 +1616,7 @@ static int dri2_server_generation;
Bool I830DRI2ScreenInit(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
DRI2InfoRec info;
int dri2_major = 1;
@@ -1701,7 +1701,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen)
void I830DRI2CloseScreen(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
DRI2CloseScreen(screen);
diff --git a/src/intel_driver.c b/src/intel_driver.c
index 4265de8..d67d8c8 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -217,7 +217,7 @@ I830LoadPalette(ScrnInfoPtr scrn, int numColors, int *indices,
*/
static Bool i830CreateScreenResources(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
screen->CreateScreenResources = intel->CreateScreenResources;
@@ -840,7 +840,7 @@ I830HandleUEvents(int fd, void *closure)
if (memcmp(&s.st_rdev, &udev_devnum, sizeof (dev_t)) == 0 &&
hotplug && atoi(hotplug) == 1)
- RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
+ RRGetInfo(xf86ScrnToScreen(scrn), TRUE);
udev_device_unref(dev);
}
@@ -919,7 +919,7 @@ I830UeventFini(ScrnInfoPtr scrn)
static Bool
I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
VisualPtr visual;
#ifdef INTEL_XVMC
diff --git a/src/intel_glamor.c b/src/intel_glamor.c
index a868157..4741d58 100644
--- a/src/intel_glamor.c
+++ b/src/intel_glamor.c
@@ -53,7 +53,7 @@ intel_glamor_exchange_buffers(struct intel_screen_private *intel,
Bool
intel_glamor_create_screen_resources(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if (!(intel->uxa_flags & UXA_USE_GLAMOR))
@@ -104,7 +104,7 @@ PixmapPtr
intel_glamor_create_pixmap(ScreenPtr screen, int w, int h,
int depth, unsigned int usage)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if (intel->uxa_flags & UXA_USE_GLAMOR)
@@ -116,7 +116,7 @@ intel_glamor_create_pixmap(ScreenPtr screen, int w, int h,
Bool
intel_glamor_create_textured_pixmap(PixmapPtr pixmap)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
struct intel_pixmap *priv;
@@ -136,7 +136,7 @@ intel_glamor_create_textured_pixmap(PixmapPtr pixmap)
void
intel_glamor_destroy_pixmap(PixmapPtr pixmap)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private * intel;
intel = intel_get_screen_private(scrn);
@@ -147,7 +147,7 @@ intel_glamor_destroy_pixmap(PixmapPtr pixmap)
static void
intel_glamor_need_flush(DrawablePtr pDrawable)
{
- ScrnInfoPtr scrn = xf86Screens[pDrawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pDrawable->pScreen);
intel_screen_private * intel;
intel = intel_get_screen_private(scrn);
@@ -175,7 +175,7 @@ intel_glamor_finish_access(PixmapPtr pixmap, uxa_access_t access)
Bool
intel_glamor_init(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if ((intel->uxa_flags & UXA_GLAMOR_EGL_INITIALIZED) == 0)
@@ -213,7 +213,7 @@ intel_glamor_flush(intel_screen_private * intel)
{
ScreenPtr screen;
- screen = screenInfo.screens[intel->scrn->scrnIndex];
+ screen = xf86ScrnToScreen(intel->scrn);
if (intel->uxa_flags & UXA_USE_GLAMOR)
glamor_block_handler(screen);
}
@@ -221,7 +221,7 @@ intel_glamor_flush(intel_screen_private * intel)
Bool
intel_glamor_close_screen(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if (intel->uxa_flags & UXA_USE_GLAMOR)
diff --git a/src/intel_hwmc.c b/src/intel_hwmc.c
index d626725..af8bd81 100644
--- a/src/intel_hwmc.c
+++ b/src/intel_hwmc.c
@@ -189,7 +189,7 @@ static XF86MCSurfaceInfoPtr surface_info_vld[] = {
/* check chip type and load xvmc driver */
Bool intel_xvmc_adaptor_init(ScreenPtr pScreen)
{
- ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
static XF86MCAdaptorRec *pAdapt;
char *name;
diff --git a/src/intel_uxa.c b/src/intel_uxa.c
index 0b1a369..383efc5 100644
--- a/src/intel_uxa.c
+++ b/src/intel_uxa.c
@@ -160,7 +160,7 @@ intel_uxa_pixmap_compute_size(PixmapPtr pixmap,
int *stride,
unsigned usage)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
int pitch, size;
@@ -241,7 +241,7 @@ intel_uxa_pixmap_compute_size(PixmapPtr pixmap,
static Bool
intel_uxa_check_solid(DrawablePtr drawable, int alu, Pixel planemask)
{
- ScrnInfoPtr scrn = xf86Screens[drawable->pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(drawable->pScreen);
if (!UXA_PM_IS_SOLID(drawable, planemask)) {
intel_debug_fallback(scrn, "planemask is not solid\n");
@@ -266,7 +266,7 @@ intel_uxa_check_solid(DrawablePtr drawable, int alu, Pixel planemask)
static Bool
intel_uxa_prepare_solid(PixmapPtr pixmap, int alu, Pixel planemask, Pixel fg)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
drm_intel_bo *bo_table[] = {
NULL, /* batch_bo */
@@ -299,7 +299,7 @@ intel_uxa_prepare_solid(PixmapPtr pixmap, int alu, Pixel planemask, Pixel fg)
static void intel_uxa_solid(PixmapPtr pixmap, int x1, int y1, int x2, int y2)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
unsigned long pitch;
uint32_t cmd;
@@ -353,7 +353,7 @@ static Bool
intel_uxa_check_copy(PixmapPtr source, PixmapPtr dest,
int alu, Pixel planemask)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
if (!UXA_PM_IS_SOLID(&source->drawable, planemask)) {
intel_debug_fallback(scrn, "planemask is not solid");
@@ -385,7 +385,7 @@ static Bool
intel_uxa_prepare_copy(PixmapPtr source, PixmapPtr dest, int xdir,
int ydir, int alu, Pixel planemask)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
drm_intel_bo *bo_table[] = {
NULL, /* batch_bo */
@@ -417,7 +417,7 @@ static void
intel_uxa_copy(PixmapPtr dest, int src_x1, int src_y1, int dst_x1,
int dst_y1, int w, int h)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
uint32_t cmd;
int dst_x2, dst_y2, src_x2, src_y2;
@@ -501,7 +501,7 @@ intel_uxa_copy(PixmapPtr dest, int src_x1, int src_y1, int dst_x1,
static void intel_uxa_done(PixmapPtr pixmap)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if (IS_GEN6(intel) || IS_GEN7(intel)) {
@@ -523,7 +523,7 @@ static void intel_uxa_done(PixmapPtr pixmap)
*/
static void i830_done_composite(PixmapPtr dest)
{
- ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(dest->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
if (intel->vertex_flush)
@@ -682,7 +682,7 @@ static Bool intel_uxa_pixmap_is_offscreen(PixmapPtr pixmap)
static Bool intel_uxa_prepare_access(PixmapPtr pixmap, uxa_access_t access)
{
- ScrnInfoPtr scrn = xf86Screens[pixmap->drawable.pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
intel_screen_private *intel = intel_get_screen_private(scrn);
struct intel_pixmap *priv = intel_get_pixmap_private(pixmap);
dri_bo *bo = priv->bo;
@@ -787,7 +787,7 @@ static Bool intel_uxa_put_image(PixmapPtr pixmap,
w == pixmap->drawable.width &&
h == pixmap->drawable.height)
{
- intel_screen_private *intel = intel_get_screen_private(xf86Screens[screen->myNum]);
+ intel_screen_private *intel = intel_get_screen_private(xf86ScreenToScrn(screen));
uint32_t tiling = priv->tiling;
int size, stride;
dri_bo *bo;
@@ -932,7 +932,7 @@ static Bool intel_uxa_get_image(PixmapPtr pixmap,
FreeScratchGC(gc);
- intel_batch_submit(xf86Screens[screen->myNum]);
+ intel_batch_submit(xf86ScreenToScrn(screen));
x = y = 0;
pixmap = scratch;
@@ -1008,7 +1008,7 @@ static PixmapPtr
intel_uxa_create_pixmap(ScreenPtr screen, int w, int h, int depth,
unsigned usage)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
struct intel_pixmap *priv;
PixmapPtr pixmap, new_pixmap = NULL;
@@ -1146,7 +1146,7 @@ static Bool intel_uxa_destroy_pixmap(PixmapPtr pixmap)
Bool intel_uxa_create_screen_resources(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
dri_bo *bo = intel->front_buffer;
@@ -1230,7 +1230,7 @@ intel_limits_init(intel_screen_private *intel)
Bool intel_uxa_init(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
#if HAS_DIXREGISTERPRIVATEKEY
diff --git a/src/intel_video.c b/src/intel_video.c
index 0834bb2..83d1eab 100644
--- a/src/intel_video.c
+++ b/src/intel_video.c
@@ -327,7 +327,7 @@ intel_overlay_put_image(intel_screen_private *intel,
void I830InitVideo(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
XF86VideoAdaptorPtr overlayAdaptor = NULL, texturedAdaptor = NULL;
@@ -407,7 +407,7 @@ void I830InitVideo(ScreenPtr screen)
static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
XF86VideoAdaptorPtr adapt;
intel_adaptor_private *adaptor_priv;
@@ -516,7 +516,7 @@ static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr screen)
static XF86VideoAdaptorPtr I830SetupImageVideoTextured(ScreenPtr screen)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
intel_screen_private *intel = intel_get_screen_private(scrn);
XF86VideoAdaptorPtr adapt;
intel_adaptor_private *adaptor_privs;
diff --git a/src/legacy/i810/i810_accel.c b/src/legacy/i810/i810_accel.c
index 6b57dbb..7120b4b 100644
--- a/src/legacy/i810/i810_accel.c
+++ b/src/legacy/i810/i810_accel.c
@@ -69,7 +69,7 @@ Bool
I810AccelInit(ScreenPtr pScreen)
{
XAAInfoRecPtr infoPtr;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
@@ -215,8 +215,8 @@ I810WaitLpRing(ScrnInfoPtr pScrn, int n, int timeout_millis)
ErrorF("space: %d wanted %d\n", ring->space, n);
#ifdef HAVE_DRI1
if (pI810->directRenderingEnabled) {
- DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
- DRICloseScreen(screenInfo.screens[pScrn->scrnIndex]);
+ DRIUnlock(xf86ScrnToScreen(pScrn));
+ DRICloseScreen(xf86ScrnToScreen(pScrn));
}
#endif
pI810->AccelInfoRec = NULL; /* Stops recursive behavior */
diff --git a/src/legacy/i810/i810_cursor.c b/src/legacy/i810/i810_cursor.c
index 88829cb..580fe4b 100644
--- a/src/legacy/i810/i810_cursor.c
+++ b/src/legacy/i810/i810_cursor.c
@@ -63,7 +63,7 @@ I810CursorInit(ScreenPtr pScreen)
I810Ptr pI810;
xf86CursorInfoPtr infoPtr;
- pScrn = xf86Screens[pScreen->myNum];
+ pScrn = xf86ScreenToScrn(pScreen);
pI810 = I810PTR(pScrn);
pI810->CursorInfoRec = infoPtr = xf86CreateCursorInfoRec();
if (!infoPtr)
@@ -101,7 +101,7 @@ I810CursorInit(ScreenPtr pScreen)
static Bool I810UseHWCursorARGB (ScreenPtr pScreen, CursorPtr pCurs)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
if (!pI810->CursorARGBPhysical)
@@ -144,7 +144,7 @@ static void I810LoadCursorARGB (ScrnInfoPtr pScrn, CursorPtr pCurs)
static Bool
I810UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
if (!pI810->CursorPhysical)
diff --git a/src/legacy/i810/i810_dga.c b/src/legacy/i810/i810_dga.c
index 44181c6..baf0011 100644
--- a/src/legacy/i810/i810_dga.c
+++ b/src/legacy/i810/i810_dga.c
@@ -70,7 +70,7 @@ DGAFunctionRec I810DGAFuncs = {
Bool
I810DGAInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
DGAModePtr modes = NULL, newmodes = NULL, currentMode;
DisplayModePtr pMode, firstMode;
diff --git a/src/legacy/i810/i810_dri.c b/src/legacy/i810/i810_dri.c
index 9129069..2f02dd9 100644
--- a/src/legacy/i810/i810_dri.c
+++ b/src/legacy/i810/i810_dri.c
@@ -155,7 +155,7 @@ mylog2(unsigned int n)
Bool
I810DRIScreenInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
DRIInfoPtr pDRIInfo;
I810DRIPtr pI810DRI;
@@ -891,7 +891,7 @@ I810DRIScreenInit(ScreenPtr pScreen)
void
I810DRICloseScreen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
I810DRIPtr pI810DRI = (I810DRIPtr) pI810->pDRIInfo->devPrivate;
@@ -956,7 +956,7 @@ Bool
I810DRIFinishScreenInit(ScreenPtr pScreen)
{
I810SAREARec *sPriv = (I810SAREARec *) DRIGetSAREAPrivate(pScreen);
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr info = I810PTR(pScrn);
memset(sPriv, 0, sizeof(sPriv));
@@ -976,7 +976,7 @@ I810DRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
DRIContextType oldContextType, void *oldContext,
DRIContextType newContextType, void *newContext)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
if (syncType == DRI_3D_SYNC &&
@@ -1002,7 +1002,7 @@ static void
I810DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
BoxPtr pbox = REGION_RECTS(prgn);
int nbox = REGION_NUM_RECTS(prgn);
@@ -1047,7 +1047,7 @@ I810DRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
RegionPtr prgnSrc, CARD32 index)
{
ScreenPtr pScreen = pParent->drawable.pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
BoxPtr pboxTmp, pboxNext, pboxBase;
DDXPointPtr pptTmp, pptNew2 = NULL;
@@ -1249,7 +1249,7 @@ static void I810DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
static void I810EnablePageFlip(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
I810SAREAPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen);
int cpp=2;
@@ -1298,7 +1298,7 @@ static void I810DRITransitionMultiToSingle3d(ScreenPtr pScreen)
static void I810DRITransitionTo3d(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
I810EnablePageFlip(pScreen);
@@ -1307,7 +1307,7 @@ static void I810DRITransitionTo3d(ScreenPtr pScreen)
static void I810DRITransitionTo2d(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
I810SAREAPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen);
diff --git a/src/legacy/i810/i810_driver.c b/src/legacy/i810/i810_driver.c
index 60053d8..09d52c5 100644
--- a/src/legacy/i810/i810_driver.c
+++ b/src/legacy/i810/i810_driver.c
@@ -1353,7 +1353,7 @@ I810ModeInit(ScrnInfoPtr scrn, DisplayModePtr mode)
#ifdef HAVE_DRI1
if (pI810->directRenderingEnabled) {
- DRILock(screenInfo.screens[scrn->scrnIndex], 0);
+ DRILock(xf86ScrnToScreen(scrn), 0);
pI810->LockHeld = 1;
}
#endif
@@ -1362,7 +1362,7 @@ I810ModeInit(ScrnInfoPtr scrn, DisplayModePtr mode)
#ifdef HAVE_DRI1
if (pI810->directRenderingEnabled) {
- DRIUnlock(screenInfo.screens[scrn->scrnIndex]);
+ DRIUnlock(xf86ScrnToScreen(scrn));
pI810->LockHeld = 0;
}
#endif
@@ -1577,7 +1577,7 @@ I810ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
I810Ptr pI810;
VisualPtr visual;
- scrn = xf86Screens[screen->myNum];
+ scrn = xf86ScreenToScrn(screen);
pI810 = I810PTR(scrn);
hwp = VGAHWPTR(scrn);
diff --git a/src/legacy/i810/i810_hwmc.c b/src/legacy/i810/i810_hwmc.c
index ba50e1e..c7100e0 100644
--- a/src/legacy/i810/i810_hwmc.c
+++ b/src/legacy/i810/i810_hwmc.c
@@ -197,7 +197,7 @@ static XF86MCAdaptorPtr ppAdapt[1] =
**************************************************************************/
void I810InitMC(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
I810Ptr pI810 = I810PTR(pScrn);
int i;
diff --git a/src/legacy/i810/i810_video.c b/src/legacy/i810/i810_video.c
index 5a568a6..2999ee0 100644
--- a/src/legacy/i810/i810_video.c
+++ b/src/legacy/i810/i810_video.c
@@ -154,7 +154,7 @@ static Atom xvBrightness, xvContrast, xvColorKey;
void I810InitVideo(ScreenPtr screen)
{
- ScrnInfoPtr pScrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(screen);
XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
XF86VideoAdaptorPtr newAdaptor = NULL;
int num_adaptors;
@@ -377,7 +377,7 @@ static void I810ResetVideo(ScrnInfoPtr pScrn)
static XF86VideoAdaptorPtr
I810SetupImageVideo(ScreenPtr screen)
{
- ScrnInfoPtr pScrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(screen);
I810Ptr pI810 = I810PTR(pScrn);
XF86VideoAdaptorPtr adapt;
I810PortPrivPtr pPriv;
@@ -941,7 +941,7 @@ I810AllocateMemory(
xf86FreeOffscreenLinear(linear);
}
- screen = screenInfo.screens[pScrn->scrnIndex];
+ screen = xf86ScrnToScreen(pScrn);
new_linear = xf86AllocateOffscreenLinear(screen, size, 4,
NULL, NULL, NULL);
diff --git a/src/sna/sna.h b/src/sna/sna.h
index 6c6650b..7a01ee7 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -332,7 +332,7 @@ to_sna(ScrnInfoPtr scrn)
constant static inline struct sna *
to_sna_from_screen(ScreenPtr screen)
{
- return to_sna(xf86Screens[screen->myNum]);
+ return to_sna(xf86ScreenToScrn(screen));
}
constant static inline struct sna *
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index 517eaad..4fa4320 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -686,7 +686,7 @@ sna_dri_copy_region(DrawablePtr draw,
static int
sna_dri_get_pipe(DrawablePtr pDraw)
{
- ScrnInfoPtr pScrn = xf86Screens[pDraw->pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pDraw->pScreen);
BoxRec box, crtcbox;
xf86CrtcPtr crtc;
int pipe;
@@ -1496,7 +1496,7 @@ sna_dri_schedule_swap(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front,
CARD64 remainder, DRI2SwapEventPtr func, void *data)
{
ScreenPtr screen = draw->pScreen;
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
struct sna *sna = to_sna(scrn);
drmVBlank vbl;
int pipe;
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 9ec3ecf..2e81640 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -641,7 +641,7 @@ sna_handle_uevents(int fd, void *closure)
if (memcmp(&s.st_rdev, &udev_devnum, sizeof (dev_t)) == 0 &&
hotplug && atoi(hotplug) == 1)
- RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
+ RRGetInfo(xf86ScrnToScreen(scrn), TRUE);
udev_device_unref(dev);
}
@@ -826,7 +826,7 @@ agp_aperture_size(struct pci_device *dev, int gen)
static Bool
sna_screen_init(int scrnIndex, ScreenPtr screen, int argc, char **argv)
{
- ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
struct sna *sna = to_sna(scrn);
VisualPtr visual;
diff --git a/uxa/uxa.c b/uxa/uxa.c
index b4a1da6..0ba6869 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -366,7 +366,7 @@ void uxa_set_force_fallback(ScreenPtr screen, Bool value)
static Bool uxa_close_screen(int i, ScreenPtr pScreen)
{
uxa_screen_t *uxa_screen = uxa_get_screen(pScreen);
- ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
#ifdef RENDER
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
#endif
commit 9aabc04d76fa976abb4a74f4e9676c7556e88df3
Author: Dave Airlie <airlied at redhat.com>
Date: Wed May 16 15:14:32 2012 +0100
intel: add compat header file for conversion fns
Signed-off-by: Dave Airlie <airlied at redhat.com>
diff --git a/src/Makefile.am b/src/Makefile.am
index 448a354..fd139ee 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -43,6 +43,7 @@ NULL:=#
intel_drv_la_SOURCES = \
intel_list.h \
intel_module.c \
+ compat-api.h \
$(NULL)
if UXA
diff --git a/src/compat-api.h b/src/compat-api.h
new file mode 100644
index 0000000..1bb7724
--- /dev/null
+++ b/src/compat-api.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2012 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Dave Airlie <airlied at redhat.com>
+ */
+
+/* this file provides API compat between server post 1.13 and pre it,
+ it should be reused inside as many drivers as possible */
+#ifndef COMPAT_API_H
+#define COMPAT_API_H
+
+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
+#endif
+
+#ifndef XF86_HAS_SCRN_CONV
+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
+#endif
+
+#endif
diff --git a/src/intel.h b/src/intel.h
index f806aea..e274db1 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -69,6 +69,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "intel_driver.h"
#include "intel_list.h"
+#include "compat-api.h"
#if HAVE_UDEV
#include <libudev.h>
diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h
index 2c0b53e..f4caf56 100644
--- a/src/legacy/i810/i810.h
+++ b/src/legacy/i810/i810.h
@@ -51,6 +51,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xorg-server.h"
#include <pciaccess.h>
+#include "compat-api.h"
#ifdef HAVE_DRI1
#include "xf86drm.h"
#include "sarea.h"
diff --git a/src/sna/sna.h b/src/sna/sna.h
index 790f5ff..6c6650b 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -59,6 +59,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <xf86drm.h>
#include <xf86drmMode.h>
+#include "../compat-api.h"
#define _XF86DRI_SERVER_
#include <dri2.h>
#include <i915_drm.h>
diff --git a/uxa/uxa-priv.h b/uxa/uxa-priv.h
index b24ec4f..b74a625 100644
--- a/uxa/uxa-priv.h
+++ b/uxa/uxa-priv.h
@@ -59,6 +59,8 @@
#endif
#include "damage.h"
+#include "../src/compat-api.h"
+
/* Provide substitutes for gcc's __FUNCTION__ on other compilers */
#if !defined(__GNUC__) && !defined(__FUNCTION__)
# if defined(__STDC__) && (__STDC_VERSION__>=199901L) /* C99 */
More information about the xorg-commit
mailing list