Add offset and pitch fields to intelRegion. Remove frontOffset, frontPitch,
authorBrian Paul <brian.paul@tungstengraphics.com>
Sat, 10 Sep 2005 00:10:15 +0000 (00:10 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Sat, 10 Sep 2005 00:10:15 +0000 (00:10 +0000)
backOffset, backPitch, depthOffset, depthPitch, textureOffset fields.

src/mesa/drivers/dri/i915/i830_metaops.c
src/mesa/drivers/dri/i915/i830_state.c
src/mesa/drivers/dri/i915/i915_metaops.c
src/mesa/drivers/dri/i915/i915_state.c
src/mesa/drivers/dri/i915/intel_batchbuffer.c
src/mesa/drivers/dri/i915/intel_ioctl.c
src/mesa/drivers/dri/i915/intel_pixel.c
src/mesa/drivers/dri/i915/intel_screen.c
src/mesa/drivers/dri/i915/intel_screen.h
src/mesa/drivers/dri/i915/intel_state.c
src/mesa/drivers/dri/i915/intel_tex.c

index e12ef88a742623fef50af31bd8017883d200b3f5..53997f83366e6dc3ab10af60ce30c278f685f2f3 100644 (file)
@@ -389,7 +389,7 @@ i830ClearWithTris(intelContextPtr intel, GLbitfield mask,
    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,
@@ -399,7 +399,7 @@ i830ClearWithTris(intelContextPtr intel, GLbitfield mask,
    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,
@@ -413,7 +413,7 @@ i830ClearWithTris(intelContextPtr intel, GLbitfield mask,
                           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 );
    }
 
@@ -542,7 +542,7 @@ i830TryTextureReadPixels( GLcontext *ctx,
                           src_offset, 
                           screen->width, 
                           screen->height, 
-                          screen->frontPitch, 
+                          screen->front.pitch, 
                           textureFormat ); 
    
    
index ec19fe980dc5533ba3eb8d8c644f19d5c3f77c10..e3f632348b69e46b5bf858c1bed39ca62a9b8fe5 100644 (file)
@@ -1000,16 +1000,16 @@ static void i830_init_packets( i830ContextPtr i830 )
    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;
index 2e9063edf0b3aaf656eabb785126739375fe2f04..a3d22b7bd07eb80a60fb40073111a6572307fce2 100644 (file)
@@ -478,7 +478,7 @@ i915ClearWithTris(intelContextPtr intel, GLbitfield mask,
    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, 
@@ -489,7 +489,7 @@ i915ClearWithTris(intelContextPtr intel, GLbitfield mask,
    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,
@@ -503,7 +503,7 @@ i915ClearWithTris(intelContextPtr intel, GLbitfield mask,
                           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 );
    }
index adb17b2187395d0116c9dd41f366c71023070143..9ba47d92e409d2b5e168b0a6d2643b395213df84 100644 (file)
@@ -856,16 +856,16 @@ static void i915_init_packets( i915ContextPtr i915 )
       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;
index 7c9ad87bed6fa8f47638d0f6a0125e1f9403d4dd..84ec70e2b9eaba6003e91bf333e9ca041e173658 100644 (file)
@@ -51,8 +51,8 @@ static void intel_fill_box( intelContextPtr intel,
 {
    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));
@@ -338,7 +338,7 @@ void intelCopyBuffer( const __DRIdrawablePrivate *dPriv )
       __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;
@@ -378,17 +378,17 @@ void intelCopyBuffer( const __DRIdrawablePrivate *dPriv )
         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();
       }
@@ -502,7 +502,7 @@ void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all,
    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;
@@ -596,7 +596,7 @@ void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all,
            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();
         }
@@ -607,7 +607,7 @@ void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all,
            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();
         }
@@ -618,7 +618,7 @@ void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all,
            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();
         }      
index 470eb315b5a1b500bfbec6117bda92b0fa3b764a..dd1e1d7587003d6e7689a3999096448665f4e69d 100644 (file)
@@ -558,7 +558,7 @@ GLuint intelAgpOffsetFromVirtual( intelContextPtr intel, const GLvoid *pointer )
    if (offset < 0 || offset > intel->intelScreen->tex.size)
       return ~0;
    else
-      return intel->intelScreen->textureOffset + offset;
+      return intel->intelScreen->tex.offset + offset;
 }
 
 
index 09eea5022f08ec98c91ba779ea4f3123ca8b85c1..a79bed45fbe80d9e036fd3b3b2132c7912675971 100644 (file)
@@ -130,7 +130,7 @@ clip_pixelrect( const GLcontext *ctx,
    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;
@@ -193,7 +193,7 @@ intelTryReadPixels( GLcontext *ctx,
       __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;
@@ -318,7 +318,7 @@ static void do_draw_pix( GLcontext *ctx,
         intelEmitCopyBlitLocked( intel,
                            intel->intelScreen->cpp,
                            src_pitch, src_offset,
-                           intel->intelScreen->frontPitch,
+                           intel->intelScreen->front.pitch,
                              intel->drawOffset,
                            bx - x, by - y,
                            bx, by,
index 2f4f083a87e342fce975f7e6c254a98581241213..c4a2e53b3d062c90dfc0125f9518a239b793380b 100644 (file)
@@ -61,13 +61,13 @@ static void intelPrintDRIInfo(intelScreenPrivate *intelScreen,
                            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);
 }
 
@@ -102,21 +102,19 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
    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;
                         
@@ -131,6 +129,8 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
       return GL_FALSE;
    }
 
+   intelScreen->depth.offset = gDRIPriv->depthOffset;
+   intelScreen->depth.pitch = gDRIPriv->depthPitch;
    intelScreen->depth.handle = gDRIPriv->depthbuffer;
    intelScreen->depth.size = gDRIPriv->depthbufferSize;
 
@@ -146,6 +146,8 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
       return GL_FALSE;
    }
 
+   intelScreen->tex.offset = gDRIPriv->textureOffset;
+   intelScreen->logTextureGranularity = gDRIPriv->logTextureGranularity;
    intelScreen->tex.handle = gDRIPriv->textures;
    intelScreen->tex.size = gDRIPriv->textureSize;
 
@@ -245,7 +247,7 @@ static GLboolean intelCreateBuffer( __DRIscreenPrivate *driScrnPriv,
             = 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);
@@ -256,7 +258,7 @@ static GLboolean intelCreateBuffer( __DRIscreenPrivate *driScrnPriv,
             = 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);
@@ -267,7 +269,7 @@ static GLboolean intelCreateBuffer( __DRIscreenPrivate *driScrnPriv,
             = 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);
@@ -277,7 +279,7 @@ static GLboolean intelCreateBuffer( __DRIscreenPrivate *driScrnPriv,
             = 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);
@@ -288,7 +290,7 @@ static GLboolean intelCreateBuffer( __DRIscreenPrivate *driScrnPriv,
             = 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);
index f41d7480e36ec913069b1bef12b0cb2d83b53658..ebecffa4cb155feb7c66fa71a04b134be5f115ad 100644 (file)
 
 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 
@@ -48,24 +50,12 @@ 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;
index f018f01762fe583bfe61d006fdad6a0539854f46..2343d061f527de04d8766fa8d9cb87533e152b7d 100644 (file)
@@ -193,9 +193,9 @@ static void intelDrawBuffer(GLcontext *ctx, GLenum mode )
    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 );
index ad0a2675569f2efc46db3401df5b4d9be5447435..396e126011fb64b2a91cb528f2b8f8a70b3b904e 100644 (file)
@@ -749,7 +749,7 @@ int intelUploadTexImages( intelContextPtr intel,
 
         /* 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;
       }