backOffset, backPitch, depthOffset, depthPitch, textureOffset fields.
if(mask & BUFFER_BIT_FRONT_LEFT) {
set_no_depth_stencil_write( i830 );
set_color_mask( i830, GL_TRUE );
- set_draw_offset( i830, screen->frontOffset );
+ set_draw_offset( i830, screen->front.offset );
draw_quad(i830, x0, x1, y0, y1,
intel->clear_red, intel->clear_green,
intel->clear_blue, intel->clear_alpha,
if(mask & BUFFER_BIT_BACK_LEFT) {
set_no_depth_stencil_write( i830 );
set_color_mask( i830, GL_TRUE );
- set_draw_offset( i830, screen->backOffset );
+ set_draw_offset( i830, screen->back.offset );
draw_quad(i830, x0, x1, y0, y1,
intel->clear_red, intel->clear_green,
intel->ctx.Stencil.Clear);
set_color_mask( i830, GL_FALSE );
- set_draw_offset( i830, screen->frontOffset );
+ set_draw_offset( i830, screen->front.offset );
draw_quad( i830, x0, x1, y0, y1, 0, 0, 0, 0, 0, 0, 0, 0 );
}
src_offset,
screen->width,
screen->height,
- screen->frontPitch,
+ screen->front.pitch,
textureFormat );
i830->state.Buffer[I830_DESTREG_CBUFADDR0] = _3DSTATE_BUF_INFO_CMD;
i830->state.Buffer[I830_DESTREG_CBUFADDR1] =
(BUF_3D_ID_COLOR_BACK |
- BUF_3D_PITCH(screen->frontPitch * screen->cpp) |
+ BUF_3D_PITCH(screen->front.pitch * screen->cpp) |
BUF_3D_USE_FENCE);
i830->state.Buffer[I830_DESTREG_DBUFADDR0] = _3DSTATE_BUF_INFO_CMD;
i830->state.Buffer[I830_DESTREG_DBUFADDR1] =
(BUF_3D_ID_DEPTH |
- BUF_3D_PITCH(screen->depthPitch * screen->cpp) |
+ BUF_3D_PITCH(screen->depth.pitch * screen->cpp) |
BUF_3D_USE_FENCE);
- i830->state.Buffer[I830_DESTREG_DBUFADDR2] = screen->depthOffset;
+ i830->state.Buffer[I830_DESTREG_DBUFADDR2] = screen->depth.offset;
i830->state.Buffer[I830_DESTREG_DV0] = _3DSTATE_DST_BUF_VARS_CMD;
if (mask & BUFFER_BIT_FRONT_LEFT) {
set_no_depth_stencil_write( i915 );
set_color_mask( i915, GL_TRUE );
- set_draw_offset( i915, screen->frontOffset );
+ set_draw_offset( i915, screen->front.offset );
draw_quad(i915, x0, x1, y0, y1,
intel->clear_red, intel->clear_green,
if (mask & BUFFER_BIT_BACK_LEFT) {
set_no_depth_stencil_write( i915 );
set_color_mask( i915, GL_TRUE );
- set_draw_offset( i915, screen->backOffset );
+ set_draw_offset( i915, screen->back.offset );
draw_quad(i915, x0, x1, y0, y1,
intel->clear_red, intel->clear_green,
intel->ctx.Stencil.Clear);
set_color_mask( i915, GL_FALSE );
- set_draw_offset( i915, screen->frontOffset ); /* could be either? */
+ set_draw_offset( i915, screen->front.offset ); /* could be either? */
draw_quad( i915, x0, x1, y0, y1, 0, 0, 0, 0, 0, 0, 0, 0 );
}
i915->state.Buffer[I915_DESTREG_CBUFADDR0] = _3DSTATE_BUF_INFO_CMD;
i915->state.Buffer[I915_DESTREG_CBUFADDR1] =
(BUF_3D_ID_COLOR_BACK |
- BUF_3D_PITCH(screen->frontPitch * screen->cpp) |
+ BUF_3D_PITCH(screen->front.pitch * screen->cpp) |
BUF_3D_USE_FENCE);
i915->state.Buffer[I915_DESTREG_DBUFADDR0] = _3DSTATE_BUF_INFO_CMD;
i915->state.Buffer[I915_DESTREG_DBUFADDR1] =
(BUF_3D_ID_DEPTH |
- BUF_3D_PITCH(screen->depthPitch * screen->cpp) |
+ BUF_3D_PITCH(screen->depth.pitch * screen->cpp) |
BUF_3D_USE_FENCE);
- i915->state.Buffer[I915_DESTREG_DBUFADDR2] = screen->depthOffset;
+ i915->state.Buffer[I915_DESTREG_DBUFADDR2] = screen->depth.offset;
i915->state.Buffer[I915_DESTREG_DV0] = _3DSTATE_DST_BUF_VARS_CMD;
{
intelEmitFillBlitLocked( intel,
intel->intelScreen->cpp,
- intel->intelScreen->backPitch,
- intel->intelScreen->frontOffset,
+ intel->intelScreen->back.pitch,
+ intel->intelScreen->front.offset,
x, y, w, h,
INTEL_PACKCOLOR(intel->intelScreen->fbFormat,
r,g,b,0xff));
__DRIdrawablePrivate *dPriv = intel->driDrawable;
int nbox = dPriv->numClipRects;
drm_clip_rect_t *pbox = dPriv->pClipRects;
- int pitch = intelScreen->frontPitch;
+ int pitch = intelScreen->front.pitch;
int cpp = intelScreen->cpp;
int i;
GLuint CMD, BR13;
OUT_BATCH( (pbox->y2 << 16) | pbox->x2 );
if (intel->sarea->pf_current_page == 0)
- OUT_BATCH( intelScreen->frontOffset );
+ OUT_BATCH( intelScreen->front.offset );
else
- OUT_BATCH( intelScreen->backOffset );
+ OUT_BATCH( intelScreen->back.offset );
OUT_BATCH( (pbox->y1 << 16) | pbox->x1 );
OUT_BATCH( BR13 & 0xffff );
if (intel->sarea->pf_current_page == 0)
- OUT_BATCH( intelScreen->backOffset );
+ OUT_BATCH( intelScreen->back.offset );
else
- OUT_BATCH( intelScreen->frontOffset );
+ OUT_BATCH( intelScreen->front.offset );
ADVANCE_BATCH();
}
intelScreenPrivate *intelScreen = intel->intelScreen;
GLuint clear_depth, clear_color;
GLint cx, cy;
- GLint pitch = intelScreen->frontPitch;
+ GLint pitch = intelScreen->front.pitch;
GLint cpp = intelScreen->cpp;
GLint i;
GLuint BR13, CMD, D_CMD;
OUT_BATCH( BR13 );
OUT_BATCH( (b.y1 << 16) | b.x1 );
OUT_BATCH( (b.y2 << 16) | b.x2 );
- OUT_BATCH( intelScreen->frontOffset );
+ OUT_BATCH( intelScreen->front.offset );
OUT_BATCH( clear_color );
ADVANCE_BATCH();
}
OUT_BATCH( BR13 );
OUT_BATCH( (b.y1 << 16) | b.x1 );
OUT_BATCH( (b.y2 << 16) | b.x2 );
- OUT_BATCH( intelScreen->backOffset );
+ OUT_BATCH( intelScreen->back.offset );
OUT_BATCH( clear_color );
ADVANCE_BATCH();
}
OUT_BATCH( BR13 );
OUT_BATCH( (b.y1 << 16) | b.x1 );
OUT_BATCH( (b.y2 << 16) | b.x2 );
- OUT_BATCH( intelScreen->depthOffset );
+ OUT_BATCH( intelScreen->depth.offset );
OUT_BATCH( clear_depth );
ADVANCE_BATCH();
}
if (offset < 0 || offset > intel->intelScreen->tex.size)
return ~0;
else
- return intel->intelScreen->textureOffset + offset;
+ return intel->intelScreen->tex.offset + offset;
}
if (*height <= 0)
return GL_FALSE;
- *size = ((*y + *height - 1) * intel->intelScreen->frontPitch +
+ *size = ((*y + *height - 1) * intel->intelScreen->front.pitch +
(*x + *width - 1) * intel->intelScreen->cpp);
return GL_TRUE;
__DRIdrawablePrivate *dPriv = intel->driDrawable;
int nbox = dPriv->numClipRects;
int src_offset = intel->drawOffset;
- int src_pitch = intel->intelScreen->frontPitch;
+ int src_pitch = intel->intelScreen->front.pitch;
int dst_offset = intelAgpOffsetFromVirtual( intel, pixels);
drm_clip_rect_t *box = dPriv->pClipRects;
int i;
intelEmitCopyBlitLocked( intel,
intel->intelScreen->cpp,
src_pitch, src_offset,
- intel->intelScreen->frontPitch,
+ intel->intelScreen->front.pitch,
intel->drawOffset,
bx - x, by - y,
bx, by,
I830DRIPtr gDRIPriv)
{
fprintf(stderr, "Front size : 0x%x\n", sPriv->fbSize);
- fprintf(stderr, "Front offset : 0x%x\n", intelScreen->frontOffset);
+ fprintf(stderr, "Front offset : 0x%x\n", intelScreen->front.offset);
fprintf(stderr, "Back size : 0x%x\n", intelScreen->back.size);
- fprintf(stderr, "Back offset : 0x%x\n", intelScreen->backOffset);
+ fprintf(stderr, "Back offset : 0x%x\n", intelScreen->back.offset);
fprintf(stderr, "Depth size : 0x%x\n", intelScreen->depth.size);
- fprintf(stderr, "Depth offset : 0x%x\n", intelScreen->depthOffset);
+ fprintf(stderr, "Depth offset : 0x%x\n", intelScreen->depth.offset);
fprintf(stderr, "Texture size : 0x%x\n", intelScreen->tex.size);
- fprintf(stderr, "Texture offset : 0x%x\n", intelScreen->textureOffset);
+ fprintf(stderr, "Texture offset : 0x%x\n", intelScreen->tex.offset);
fprintf(stderr, "Memory : 0x%x\n", gDRIPriv->mem);
}
intelScreen->height = gDRIPriv->height;
intelScreen->mem = gDRIPriv->mem;
intelScreen->cpp = gDRIPriv->cpp;
- intelScreen->frontPitch = gDRIPriv->fbStride;
- intelScreen->frontOffset = gDRIPriv->fbOffset;
switch (gDRIPriv->bitsPerPixel) {
case 15: intelScreen->fbFormat = DV_PF_555; break;
case 16: intelScreen->fbFormat = DV_PF_565; break;
case 32: intelScreen->fbFormat = DV_PF_8888; break;
}
-
- intelScreen->backOffset = gDRIPriv->backOffset;
- intelScreen->backPitch = gDRIPriv->backPitch;
- intelScreen->depthOffset = gDRIPriv->depthOffset;
- intelScreen->depthPitch = gDRIPriv->depthPitch;
- intelScreen->textureOffset = gDRIPriv->textureOffset;
- intelScreen->logTextureGranularity = gDRIPriv->logTextureGranularity;
+
+ intelScreen->front.pitch = gDRIPriv->fbStride;
+ intelScreen->front.offset = gDRIPriv->fbOffset;
+ intelScreen->front.map = sPriv->pFB;
+
+ intelScreen->back.offset = gDRIPriv->backOffset;
+ intelScreen->back.pitch = gDRIPriv->backPitch;
intelScreen->back.handle = gDRIPriv->backbuffer;
intelScreen->back.size = gDRIPriv->backbufferSize;
return GL_FALSE;
}
+ intelScreen->depth.offset = gDRIPriv->depthOffset;
+ intelScreen->depth.pitch = gDRIPriv->depthPitch;
intelScreen->depth.handle = gDRIPriv->depthbuffer;
intelScreen->depth.size = gDRIPriv->depthbufferSize;
return GL_FALSE;
}
+ intelScreen->tex.offset = gDRIPriv->textureOffset;
+ intelScreen->logTextureGranularity = gDRIPriv->logTextureGranularity;
intelScreen->tex.handle = gDRIPriv->textures;
intelScreen->tex.size = gDRIPriv->textureSize;
= driNewRenderbuffer(GL_RGBA,
driScrnPriv->pFB,
screen->cpp,
- screen->frontOffset, screen->frontPitch,
+ screen->front.offset, screen->front.pitch,
driDrawPriv);
intelSetSpanFunctions(frontRb, mesaVis);
_mesa_add_renderbuffer(fb, BUFFER_FRONT_LEFT, &frontRb->Base);
= driNewRenderbuffer(GL_RGBA,
screen->back.map,
screen->cpp,
- screen->backOffset, screen->backPitch,
+ screen->back.offset, screen->back.pitch,
driDrawPriv);
intelSetSpanFunctions(backRb, mesaVis);
_mesa_add_renderbuffer(fb, BUFFER_BACK_LEFT, &backRb->Base);
= driNewRenderbuffer(GL_DEPTH_COMPONENT16,
screen->depth.map,
screen->cpp,
- screen->depthOffset, screen->depthPitch,
+ screen->depth.offset, screen->depth.pitch,
driDrawPriv);
intelSetSpanFunctions(depthRb, mesaVis);
_mesa_add_renderbuffer(fb, BUFFER_DEPTH, &depthRb->Base);
= driNewRenderbuffer(GL_DEPTH_COMPONENT24,
screen->depth.map,
screen->cpp,
- screen->depthOffset, screen->depthPitch,
+ screen->depth.offset, screen->depth.pitch,
driDrawPriv);
intelSetSpanFunctions(depthRb, mesaVis);
_mesa_add_renderbuffer(fb, BUFFER_DEPTH, &depthRb->Base);
= driNewRenderbuffer(GL_STENCIL_INDEX8_EXT,
screen->depth.map,
screen->cpp,
- screen->depthOffset, screen->depthPitch,
+ screen->depth.offset, screen->depth.pitch,
driDrawPriv);
intelSetSpanFunctions(stencilRb, mesaVis);
_mesa_add_renderbuffer(fb, BUFFER_STENCIL, &stencilRb->Base);
typedef struct {
drm_handle_t handle;
- drmSize size;
- char *map;
+ drmSize size; /* region size in bytes */
+ char *map; /* memory map */
+ int offset; /* from start of video mem, in bytes */
+ int pitch; /* row stride, in pixels */
} intelRegion;
typedef struct
int deviceID;
int width;
int height;
- int mem;
-
+ int mem; /* unused */
+
int cpp; /* for front and back buffers */
- int bitsPerPixel;
-
+ int bitsPerPixel; /* unused */
int fbFormat;
- int frontOffset;
- int frontPitch;
-
- int backOffset;
- int backPitch;
-
- int depthOffset;
- int depthPitch;
-
-
- int textureOffset;
int logTextureGranularity;
__DRIscreenPrivate *driScrnPriv;
intelSetFrontClipRects( intel );
if (front) {
- intel->drawOffset = screen->frontOffset;
+ intel->drawOffset = screen->front.offset;
} else {
- intel->drawOffset = screen->backOffset;
+ intel->drawOffset = screen->back.offset;
}
intel->vtbl.set_draw_offset( intel, intel->drawOffset );
/* Set the base offset of the texture image */
t->BufAddr = intel->intelScreen->tex.map + t->base.memBlock->ofs;
- t->TextureOffset = intel->intelScreen->textureOffset + t->base.memBlock->ofs;
+ t->TextureOffset = intel->intelScreen->tex.offset + t->base.memBlock->ofs;
t->dirty = ~0;
}