ilo: rename ilo_resource to ilo_texture
authorChia-I Wu <olvaffe@gmail.com>
Mon, 13 May 2013 07:10:34 +0000 (15:10 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Tue, 14 May 2013 08:01:25 +0000 (16:01 +0800)
In preparation for the introduction of ilo_buffer.

src/gallium/drivers/ilo/ilo_blit.c
src/gallium/drivers/ilo/ilo_gpe_gen6.c
src/gallium/drivers/ilo/ilo_gpe_gen6.h
src/gallium/drivers/ilo/ilo_gpe_gen7.c
src/gallium/drivers/ilo/ilo_resource.c
src/gallium/drivers/ilo/ilo_resource.h
src/gallium/drivers/ilo/ilo_transfer.c

index 20e09ae340bd4a9e9ebb6973b61ca658bde80945..e3fd67cecf84db197c76c014b1d03fa1647929aa 100644 (file)
 
 static bool
 blitter_xy_color_blt(struct pipe_context *pipe,
-                     struct pipe_resource *r,
+                     struct pipe_resource *res,
                      int16_t x1, int16_t y1,
                      int16_t x2, int16_t y2,
                      uint32_t color)
 {
    const int cmd_len = 6;
    struct ilo_context *ilo = ilo_context(pipe);
-   struct ilo_resource *res = ilo_resource(r);
+   struct ilo_texture *tex = ilo_texture(res);
    uint32_t cmd, br13;
    int cpp, stride;
    struct intel_bo *bo_check[2];
 
    /* how to support Y-tiling? */
-   if (res->tiling == INTEL_TILING_Y)
+   if (tex->tiling == INTEL_TILING_Y)
       return false;
 
    /* nothing to clear */
@@ -62,7 +62,7 @@ blitter_xy_color_blt(struct pipe_context *pipe,
    cmd = XY_COLOR_BLT_CMD | (cmd_len - 2);
    br13 = 0xf0 << 16;
 
-   cpp = util_format_get_blocksize(res->base.format);
+   cpp = util_format_get_blocksize(tex->base.format);
    switch (cpp) {
    case 4:
       cmd |= XY_BLT_WRITE_ALPHA | XY_BLT_WRITE_RGB;
@@ -79,9 +79,9 @@ blitter_xy_color_blt(struct pipe_context *pipe,
       break;
    }
 
-   stride = res->bo_stride;
-   if (res->tiling != INTEL_TILING_NONE) {
-      assert(res->tiling == INTEL_TILING_X);
+   stride = tex->bo_stride;
+   if (tex->tiling != INTEL_TILING_NONE) {
+      assert(tex->tiling == INTEL_TILING_X);
 
       cmd |= XY_DST_TILED;
       /* in dwords */
@@ -90,7 +90,7 @@ blitter_xy_color_blt(struct pipe_context *pipe,
 
    /* make room if necessary */
    bo_check[0] = ilo->cp->bo;
-   bo_check[1] = res->bo;
+   bo_check[1] = tex->bo;
    if (ilo->winsys->check_aperture_space(ilo->winsys, bo_check, 2))
       ilo_cp_flush(ilo->cp);
 
@@ -101,7 +101,7 @@ blitter_xy_color_blt(struct pipe_context *pipe,
    ilo_cp_write(ilo->cp, br13 | stride);
    ilo_cp_write(ilo->cp, (y1 << 16) | x1);
    ilo_cp_write(ilo->cp, (y2 << 16) | x2);
-   ilo_cp_write_bo(ilo->cp, 0, res->bo,
+   ilo_cp_write_bo(ilo->cp, 0, tex->bo,
                    INTEL_DOMAIN_RENDER,
                    INTEL_DOMAIN_RENDER);
    ilo_cp_write(ilo->cp, color);
index 159a117272f9e4fcfd5403549056137adc8431d9..e2a5dbe344200176e221b30d6878302aed46ce15 100644 (file)
@@ -757,15 +757,15 @@ gen6_emit_3DSTATE_VERTEX_BUFFERS(const struct ilo_dev_info *dev,
 
       /* use null vb if there is no buffer or the stride is out of range */
       if (vb->buffer && vb->stride <= 2048) {
-         const struct ilo_resource *res = ilo_resource(vb->buffer);
+         const struct ilo_texture *tex = ilo_texture(vb->buffer);
          const uint32_t start_offset = vb->buffer_offset;
-         const uint32_t end_offset = res->bo->get_size(res->bo) - 1;
+         const uint32_t end_offset = tex->bo->get_size(tex->bo) - 1;
 
          dw |= vb->stride << BRW_VB0_PITCH_SHIFT;
 
          ilo_cp_write(cp, dw);
-         ilo_cp_write_bo(cp, start_offset, res->bo, INTEL_DOMAIN_VERTEX, 0);
-         ilo_cp_write_bo(cp, end_offset, res->bo, INTEL_DOMAIN_VERTEX, 0);
+         ilo_cp_write_bo(cp, start_offset, tex->bo, INTEL_DOMAIN_VERTEX, 0);
+         ilo_cp_write_bo(cp, end_offset, tex->bo, INTEL_DOMAIN_VERTEX, 0);
          ilo_cp_write(cp, instance_divisor);
       }
       else {
@@ -925,13 +925,13 @@ gen6_emit_3DSTATE_INDEX_BUFFER(const struct ilo_dev_info *dev,
 {
    const uint32_t cmd = ILO_GPE_CMD(0x3, 0x0, 0x0a);
    const uint8_t cmd_len = 3;
-   const struct ilo_resource *res = ilo_resource(ib->buffer);
+   const struct ilo_texture *tex = ilo_texture(ib->buffer);
    uint32_t start_offset, end_offset;
    int format;
 
    ILO_GPE_VALID_GEN(dev, 6, 7);
 
-   if (!res)
+   if (!tex)
       return;
 
    format = gen6_translate_index_size(ib->index_size);
@@ -945,7 +945,7 @@ gen6_emit_3DSTATE_INDEX_BUFFER(const struct ilo_dev_info *dev,
    }
 
    /* end_offset must also be aligned */
-   end_offset = res->bo->get_size(res->bo);
+   end_offset = tex->bo->get_size(tex->bo);
    end_offset -= (end_offset % ib->index_size);
    /* it is inclusive */
    end_offset -= 1;
@@ -954,8 +954,8 @@ gen6_emit_3DSTATE_INDEX_BUFFER(const struct ilo_dev_info *dev,
    ilo_cp_write(cp, cmd | (cmd_len - 2) |
                     ((enable_cut_index) ? BRW_CUT_INDEX_ENABLE : 0) |
                     format << 8);
-   ilo_cp_write_bo(cp, start_offset, res->bo, INTEL_DOMAIN_VERTEX, 0);
-   ilo_cp_write_bo(cp, end_offset, res->bo, INTEL_DOMAIN_VERTEX, 0);
+   ilo_cp_write_bo(cp, start_offset, tex->bo, INTEL_DOMAIN_VERTEX, 0);
+   ilo_cp_write_bo(cp, end_offset, tex->bo, INTEL_DOMAIN_VERTEX, 0);
    ilo_cp_end(cp);
 }
 
@@ -2283,7 +2283,7 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
       ILO_GPE_CMD(0x3, 0x0, 0x05) : ILO_GPE_CMD(0x3, 0x1, 0x05);
    const uint8_t cmd_len = 7;
    const int max_2d_size = (dev->gen >= ILO_GEN(7)) ? 16384 : 8192;
-   struct ilo_resource *res;
+   struct ilo_texture *tex;
    uint32_t dw1, dw3;
    uint32_t slice_offset, x_offset, y_offset;
    int surface_type, depth_format, width, height;
@@ -2337,8 +2337,8 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
       return;
    }
 
-   res = ilo_resource(surface->texture);
-   surface_type = ilo_gpe_gen6_translate_texture(res->base.target);
+   tex = ilo_texture(surface->texture);
+   surface_type = ilo_gpe_gen6_translate_texture(tex->base.target);
    width = surface->width;
    height = surface->height;
 
@@ -2346,7 +2346,7 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
     * we always treat the resource as non-mipmapped and set the slice/x/y
     * offsets manually
     */
-   slice_offset = ilo_resource_get_slice_offset(res,
+   slice_offset = ilo_texture_get_slice_offset(tex,
          surface->u.tex.level, surface->u.tex.first_layer,
          true, &x_offset, &y_offset);
 
@@ -2369,12 +2369,12 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
    height += y_offset;
 
    /* required for GEN6+ */
-   assert(res->tiling == INTEL_TILING_Y);
+   assert(tex->tiling == INTEL_TILING_Y);
 
-   assert(res->bo_stride > 0 && res->bo_stride < 128 * 1024 &&
-         res->bo_stride % 128 == 0);
+   assert(tex->bo_stride > 0 && tex->bo_stride < 128 * 1024 &&
+         tex->bo_stride % 128 == 0);
    assert(surface->u.tex.first_layer == surface->u.tex.last_layer);
-   assert(width <= res->bo_stride);
+   assert(width <= tex->bo_stride);
 
    /* we have to treat them as 2D surfaces */
    if (surface_type == BRW_SURFACE_CUBE) {
@@ -2410,7 +2410,7 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
 
    dw1 = surface_type << 29 |
          depth_format << 18 |
-         (res->bo_stride - 1);
+         (tex->bo_stride - 1);
 
    if (dev->gen >= ILO_GEN(7)) {
       if (has_depth) {
@@ -2428,8 +2428,8 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
             (width - 1) << 4;
    }
    else {
-      dw1 |= (res->tiling != INTEL_TILING_NONE) << 27 |
-             (res->tiling == INTEL_TILING_Y) << 26;
+      dw1 |= (tex->tiling != INTEL_TILING_NONE) << 27 |
+             (tex->tiling == INTEL_TILING_Y) << 26;
 
       if (hiz) {
          dw1 |= 1 << 22 |
@@ -2446,7 +2446,7 @@ ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info *dev,
    ilo_cp_write(cp, dw1);
 
    if (has_depth) {
-      ilo_cp_write_bo(cp, slice_offset, res->bo,
+      ilo_cp_write_bo(cp, slice_offset, tex->bo,
             INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
    }
    else {
@@ -2639,7 +2639,7 @@ gen6_emit_3DSTATE_STENCIL_BUFFER(const struct ilo_dev_info *dev,
       ILO_GPE_CMD(0x3, 0x0, 0x06) :
       ILO_GPE_CMD(0x3, 0x1, 0x0e);
    const uint8_t cmd_len = 3;
-   struct ilo_resource *res;
+   struct ilo_texture *tex;
    uint32_t slice_offset;
    int pitch;
 
@@ -2655,7 +2655,7 @@ gen6_emit_3DSTATE_STENCIL_BUFFER(const struct ilo_dev_info *dev,
       return;
    }
 
-   res = ilo_resource(surface->texture);
+   tex = ilo_texture(surface->texture);
 
    /* TODO */
    slice_offset = 0;
@@ -2666,13 +2666,13 @@ gen6_emit_3DSTATE_STENCIL_BUFFER(const struct ilo_dev_info *dev,
     *     "The pitch must be set to 2x the value computed based on width, as
     *      the stencil buffer is stored with two rows interleaved."
     */
-   pitch = 2 * res->bo_stride;
+   pitch = 2 * tex->bo_stride;
    assert(pitch > 0 && pitch < 128 * 1024 && pitch % 128 == 0);
 
    ilo_cp_begin(cp, cmd_len);
    ilo_cp_write(cp, cmd | (cmd_len - 2));
    ilo_cp_write(cp, pitch - 1);
-   ilo_cp_write_bo(cp, slice_offset, res->bo,
+   ilo_cp_write_bo(cp, slice_offset, tex->bo,
          INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
    ilo_cp_end(cp);
 }
@@ -2686,7 +2686,7 @@ gen6_emit_3DSTATE_HIER_DEPTH_BUFFER(const struct ilo_dev_info *dev,
       ILO_GPE_CMD(0x3, 0x0, 0x07) :
       ILO_GPE_CMD(0x3, 0x1, 0x0f);
    const uint8_t cmd_len = 3;
-   struct ilo_resource *res;
+   struct ilo_texture *tex;
    uint32_t slice_offset;
 
    ILO_GPE_VALID_GEN(dev, 6, 7);
@@ -2701,18 +2701,18 @@ gen6_emit_3DSTATE_HIER_DEPTH_BUFFER(const struct ilo_dev_info *dev,
       return;
    }
 
-   res = ilo_resource(surface->texture);
+   tex = ilo_texture(surface->texture);
 
    /* TODO */
    slice_offset = 0;
 
-   assert(res->bo_stride > 0 && res->bo_stride < 128 * 1024 &&
-          res->bo_stride % 128 == 0);
+   assert(tex->bo_stride > 0 && tex->bo_stride < 128 * 1024 &&
+          tex->bo_stride % 128 == 0);
 
    ilo_cp_begin(cp, cmd_len);
    ilo_cp_write(cp, cmd | (cmd_len - 2));
-   ilo_cp_write(cp, res->bo_stride - 1);
-   ilo_cp_write_bo(cp, slice_offset, res->bo,
+   ilo_cp_write(cp, tex->bo_stride - 1);
+   ilo_cp_write_bo(cp, slice_offset, tex->bo,
          INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
    ilo_cp_end(cp);
 }
@@ -3569,7 +3569,7 @@ gen6_fill_null_SURFACE_STATE(const struct ilo_dev_info *dev,
 
 static void
 gen6_fill_buffer_SURFACE_STATE(const struct ilo_dev_info *dev,
-                               const struct ilo_resource *res,
+                               const struct ilo_texture *tex,
                                unsigned offset, unsigned size,
                                unsigned struct_size,
                                enum pipe_format elem_format,
@@ -3635,7 +3635,7 @@ gen6_fill_buffer_SURFACE_STATE(const struct ilo_dev_info *dev,
     *     "If Surface Type is SURFTYPE_BUFFER, this field (Tiled Surface) must
     *      be false (buffers are supported only in linear memory)"
     */
-   assert(res->tiling == INTEL_TILING_NONE);
+   assert(tex->tiling == INTEL_TILING_NONE);
 
    pitch--;
    num_entries--;
@@ -3665,7 +3665,7 @@ gen6_fill_buffer_SURFACE_STATE(const struct ilo_dev_info *dev,
 
 static void
 gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
-                               struct ilo_resource *res,
+                               struct ilo_texture *tex,
                                enum pipe_format format,
                                unsigned first_level, unsigned num_levels,
                                unsigned first_layer, unsigned num_layers,
@@ -3679,7 +3679,7 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
    ILO_GPE_VALID_GEN(dev, 6, 6);
    assert(num_dwords == 6);
 
-   surface_type = ilo_gpe_gen6_translate_texture(res->base.target);
+   surface_type = ilo_gpe_gen6_translate_texture(tex->base.target);
    assert(surface_type != BRW_SURFACE_BUFFER);
 
    if (is_rt)
@@ -3688,13 +3688,13 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       surface_format = ilo_translate_texture_format(format);
    assert(surface_format >= 0);
 
-   width = res->base.width0;
-   height = res->base.height0;
-   pitch = res->bo_stride;
+   width = tex->base.width0;
+   height = tex->base.height0;
+   pitch = tex->bo_stride;
 
-   switch (res->base.target) {
+   switch (tex->base.target) {
    case PIPE_TEXTURE_3D:
-      depth = res->base.depth0;
+      depth = tex->base.depth0;
       break;
    case PIPE_TEXTURE_CUBE:
    case PIPE_TEXTURE_CUBE_ARRAY:
@@ -3741,10 +3741,10 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
    }
 
    /* non-full array spacing is supported only on GEN7+ */
-   assert(res->array_spacing_full);
+   assert(tex->array_spacing_full);
    /* non-interleaved samples are supported only on GEN7+ */
-   if (res->base.nr_samples > 1)
-      assert(res->interleaved);
+   if (tex->base.nr_samples > 1)
+      assert(tex->interleaved);
 
    /*
     * Compute the offset to the layer manually.
@@ -3757,7 +3757,7 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       /* we lose the capability for layered rendering */
       assert(num_levels == 1 && num_layers == 1);
 
-      layer_offset = ilo_resource_get_slice_offset(res,
+      layer_offset = ilo_texture_get_slice_offset(tex,
             first_level, first_layer, true, &x_offset, &y_offset);
 
       assert(x_offset % 4 == 0);
@@ -3766,10 +3766,10 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       y_offset /= 2;
 
       /* derive the size for the LOD */
-      width = u_minify(res->base.width0, first_level);
-      height = u_minify(res->base.height0, first_level);
+      width = u_minify(tex->base.width0, first_level);
+      height = u_minify(tex->base.height0, first_level);
       if (surface_type == BRW_SURFACE_3D)
-         depth = u_minify(res->base.depth0, first_level);
+         depth = u_minify(tex->base.depth0, first_level);
 
       first_level = 0;
       first_layer = 0;
@@ -3800,7 +3800,7 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
     *
     *     "For linear surfaces, this field (X Offset) must be zero"
     */
-   if (res->tiling == INTEL_TILING_NONE) {
+   if (tex->tiling == INTEL_TILING_NONE) {
       if (is_rt) {
          const int elem_size = util_format_get_blocksize(format);
          assert(layer_offset % elem_size == 0);
@@ -3830,17 +3830,17 @@ gen6_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
 
    dw[3] = (depth - 1) << BRW_SURFACE_DEPTH_SHIFT |
            (pitch - 1) << BRW_SURFACE_PITCH_SHIFT |
-           ilo_gpe_gen6_translate_winsys_tiling(res->tiling);
+           ilo_gpe_gen6_translate_winsys_tiling(tex->tiling);
 
    dw[4] = first_level << BRW_SURFACE_MIN_LOD_SHIFT |
            first_layer << 17 |
            (depth - 1) << 8 |
-           ((res->base.nr_samples > 1) ? BRW_SURFACE_MULTISAMPLECOUNT_4 :
+           ((tex->base.nr_samples > 1) ? BRW_SURFACE_MULTISAMPLECOUNT_4 :
                                          BRW_SURFACE_MULTISAMPLECOUNT_1);
 
    dw[5] = x_offset << BRW_SURFACE_X_OFFSET_SHIFT |
            y_offset << BRW_SURFACE_Y_OFFSET_SHIFT;
-   if (res->valign_4)
+   if (tex->valign_4)
       dw[5] |= BRW_SURFACE_VERTICAL_ALIGN_ENABLE;
 }
 
@@ -3890,15 +3890,15 @@ gen6_emit_surf_SURFACE_STATE(const struct ilo_dev_info *dev,
    ILO_GPE_VALID_GEN(dev, 6, 6);
 
    if (surface && surface->texture) {
-      struct ilo_resource *res = ilo_resource(surface->texture);
+      struct ilo_texture *tex = ilo_texture(surface->texture);
 
-      bo = res->bo;
+      bo = tex->bo;
 
       /*
        * classic i965 sets render_cache_rw for constant buffers and sol
        * surfaces but not render buffers.  Why?
        */
-      gen6_fill_normal_SURFACE_STATE(dev, res, surface->format,
+      gen6_fill_normal_SURFACE_STATE(dev, tex, surface->format,
             surface->u.tex.level, 1,
             surface->u.tex.first_layer,
             surface->u.tex.last_layer - surface->u.tex.first_layer + 1,
@@ -3918,19 +3918,19 @@ gen6_emit_view_SURFACE_STATE(const struct ilo_dev_info *dev,
                              const struct pipe_sampler_view *view,
                              struct ilo_cp *cp)
 {
-   struct ilo_resource *res = ilo_resource(view->texture);
+   struct ilo_texture *tex = ilo_texture(view->texture);
    uint32_t dw[6];
 
    ILO_GPE_VALID_GEN(dev, 6, 6);
 
-   gen6_fill_normal_SURFACE_STATE(dev, res, view->format,
+   gen6_fill_normal_SURFACE_STATE(dev, tex, view->format,
          view->u.tex.first_level,
          view->u.tex.last_level - view->u.tex.first_level + 1,
          view->u.tex.first_layer,
          view->u.tex.last_layer - view->u.tex.first_layer + 1,
          false, false, dw, Elements(dw));
 
-   return gen6_emit_SURFACE_STATE(dev, res->bo, false, dw, Elements(dw), cp);
+   return gen6_emit_SURFACE_STATE(dev, tex->bo, false, dw, Elements(dw), cp);
 }
 
 static uint32_t
@@ -3939,17 +3939,17 @@ gen6_emit_cbuf_SURFACE_STATE(const struct ilo_dev_info *dev,
                              struct ilo_cp *cp)
 {
    const enum pipe_format elem_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
-   struct ilo_resource *res = ilo_resource(cbuf->buffer);
+   struct ilo_texture *tex = ilo_texture(cbuf->buffer);
    uint32_t dw[6];
 
    ILO_GPE_VALID_GEN(dev, 6, 6);
 
-   gen6_fill_buffer_SURFACE_STATE(dev, res,
+   gen6_fill_buffer_SURFACE_STATE(dev, tex,
          cbuf->buffer_offset, cbuf->buffer_size,
          util_format_get_blocksize(elem_format), elem_format,
          false, false, dw, Elements(dw));
 
-   return gen6_emit_SURFACE_STATE(dev, res->bo, false, dw, Elements(dw), cp);
+   return gen6_emit_SURFACE_STATE(dev, tex->bo, false, dw, Elements(dw), cp);
 }
 
 static uint32_t
@@ -3959,7 +3959,7 @@ gen6_emit_so_SURFACE_STATE(const struct ilo_dev_info *dev,
                            int so_index,
                            struct ilo_cp *cp)
 {
-   struct ilo_resource *res = ilo_resource(so->buffer);
+   struct ilo_texture *tex = ilo_texture(so->buffer);
    unsigned bo_offset, struct_size;
    enum pipe_format elem_format;
    uint32_t dw[6];
@@ -3988,10 +3988,10 @@ gen6_emit_so_SURFACE_STATE(const struct ilo_dev_info *dev,
       break;
    }
 
-   gen6_fill_buffer_SURFACE_STATE(dev, res, bo_offset, so->buffer_size,
+   gen6_fill_buffer_SURFACE_STATE(dev, tex, bo_offset, so->buffer_size,
          struct_size, elem_format, false, true, dw, Elements(dw));
 
-   return gen6_emit_SURFACE_STATE(dev, res->bo, false, dw, Elements(dw), cp);
+   return gen6_emit_SURFACE_STATE(dev, tex->bo, false, dw, Elements(dw), cp);
 }
 
 static uint32_t
index 62166d908a5b65c56f3cfecc69d0937d2e87d64e..4f81d4284535445a86baed5d78476533d899b468 100644 (file)
@@ -110,7 +110,7 @@ enum intel_tiling_mode;
 
 struct intel_bo;
 struct ilo_cp;
-struct ilo_resource;
+struct ilo_texture;
 struct ilo_shader;
 
 typedef void
index b703a69779bc0df5f46caf7c5489db3b7e90f371..27fa12438036a7e65204ecdac0da31e4357d3476 100644 (file)
@@ -1130,7 +1130,7 @@ gen7_emit_3DSTATE_SO_BUFFER(const struct ilo_dev_info *dev,
 {
    const uint32_t cmd = ILO_GPE_CMD(0x3, 0x1, 0x18);
    const uint8_t cmd_len = 4;
-   struct ilo_resource *res;
+   struct ilo_texture *tex;
    int end;
 
    ILO_GPE_VALID_GEN(dev, 7, 7);
@@ -1145,7 +1145,7 @@ gen7_emit_3DSTATE_SO_BUFFER(const struct ilo_dev_info *dev,
       return;
    }
 
-   res = ilo_resource(so_target->buffer);
+   tex = ilo_texture(so_target->buffer);
 
    /* DWord-aligned */
    assert(stride % 4 == 0 && base % 4 == 0);
@@ -1159,8 +1159,8 @@ gen7_emit_3DSTATE_SO_BUFFER(const struct ilo_dev_info *dev,
    ilo_cp_write(cp, cmd | (cmd_len - 2));
    ilo_cp_write(cp, index << SO_BUFFER_INDEX_SHIFT |
                     stride);
-   ilo_cp_write_bo(cp, base, res->bo, INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
-   ilo_cp_write_bo(cp, end, res->bo, INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
+   ilo_cp_write_bo(cp, base, tex->bo, INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
+   ilo_cp_write_bo(cp, end, tex->bo, INTEL_DOMAIN_RENDER, INTEL_DOMAIN_RENDER);
    ilo_cp_end(cp);
 }
 
@@ -1296,7 +1296,7 @@ gen7_fill_null_SURFACE_STATE(const struct ilo_dev_info *dev,
 
 static void
 gen7_fill_buffer_SURFACE_STATE(const struct ilo_dev_info *dev,
-                               const struct ilo_resource *res,
+                               const struct ilo_texture *tex,
                                unsigned offset, unsigned size,
                                unsigned struct_size,
                                enum pipe_format elem_format,
@@ -1380,7 +1380,7 @@ gen7_fill_buffer_SURFACE_STATE(const struct ilo_dev_info *dev,
     *     "If Surface Type is SURFTYPE_BUFFER, this field (Tiled Surface) must
     *      be false (because buffers are supported only in linear memory)."
     */
-   assert(res->tiling == INTEL_TILING_NONE);
+   assert(tex->tiling == INTEL_TILING_NONE);
 
    pitch--;
    num_entries--;
@@ -1415,7 +1415,7 @@ gen7_fill_buffer_SURFACE_STATE(const struct ilo_dev_info *dev,
 
 static void
 gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
-                               struct ilo_resource *res,
+                               struct ilo_texture *tex,
                                enum pipe_format format,
                                unsigned first_level, unsigned num_levels,
                                unsigned first_layer, unsigned num_layers,
@@ -1429,7 +1429,7 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
    ILO_GPE_VALID_GEN(dev, 7, 7);
    assert(num_dwords == 8);
 
-   surface_type = ilo_gpe_gen6_translate_texture(res->base.target);
+   surface_type = ilo_gpe_gen6_translate_texture(tex->base.target);
    assert(surface_type != BRW_SURFACE_BUFFER);
 
    if (is_rt)
@@ -1438,13 +1438,13 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       surface_format = ilo_translate_texture_format(format);
    assert(surface_format >= 0);
 
-   width = res->base.width0;
-   height = res->base.height0;
-   pitch = res->bo_stride;
+   width = tex->base.width0;
+   height = tex->base.height0;
+   pitch = tex->bo_stride;
 
-   switch (res->base.target) {
+   switch (tex->base.target) {
    case PIPE_TEXTURE_3D:
-      depth = res->base.depth0;
+      depth = tex->base.depth0;
       break;
    case PIPE_TEXTURE_CUBE:
    case PIPE_TEXTURE_CUBE_ARRAY:
@@ -1503,7 +1503,7 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       /* we lose the capability for layered rendering */
       assert(num_levels == 1 && num_layers == 1);
 
-      layer_offset = ilo_resource_get_slice_offset(res,
+      layer_offset = ilo_texture_get_slice_offset(tex,
             first_level, first_layer, true, &x_offset, &y_offset);
 
       assert(x_offset % 4 == 0);
@@ -1512,10 +1512,10 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       y_offset /= 2;
 
       /* derive the size for the LOD */
-      width = u_minify(res->base.width0, first_level);
-      height = u_minify(res->base.height0, first_level);
+      width = u_minify(tex->base.width0, first_level);
+      height = u_minify(tex->base.height0, first_level);
       if (surface_type == BRW_SURFACE_3D)
-         depth = u_minify(res->base.depth0, first_level);
+         depth = u_minify(tex->base.depth0, first_level);
 
       first_level = 0;
       first_layer = 0;
@@ -1551,7 +1551,7 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
     *
     *     "For linear surfaces, this field (X Offset) must be zero."
     */
-   if (res->tiling == INTEL_TILING_NONE) {
+   if (tex->tiling == INTEL_TILING_NONE) {
       if (is_rt) {
          const int elem_size = util_format_get_blocksize(format);
          assert(layer_offset % elem_size == 0);
@@ -1563,18 +1563,18 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
 
    dw[0] = surface_type << BRW_SURFACE_TYPE_SHIFT |
            surface_format << BRW_SURFACE_FORMAT_SHIFT |
-           ilo_gpe_gen6_translate_winsys_tiling(res->tiling) << 13;
+           ilo_gpe_gen6_translate_winsys_tiling(tex->tiling) << 13;
 
    if (surface_type != BRW_SURFACE_3D && depth > 1)
       dw[0] |= GEN7_SURFACE_IS_ARRAY;
 
-   if (res->valign_4)
+   if (tex->valign_4)
       dw[0] |= GEN7_SURFACE_VALIGN_4;
 
-   if (res->halign_8)
+   if (tex->halign_8)
       dw[0] |= GEN7_SURFACE_HALIGN_8;
 
-   if (res->array_spacing_full)
+   if (tex->array_spacing_full)
       dw[0] |= GEN7_SURFACE_ARYSPC_FULL;
    else
       dw[0] |= GEN7_SURFACE_ARYSPC_LOD0;
@@ -1601,7 +1601,7 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
     * means the samples are interleaved.  The layouts are the same when the
     * number of samples is 1.
     */
-   if (res->interleaved && res->base.nr_samples > 1) {
+   if (tex->interleaved && tex->base.nr_samples > 1) {
       assert(!is_rt);
       dw[4] |= GEN7_SURFACE_MSFMT_DEPTH_STENCIL;
    }
@@ -1609,9 +1609,9 @@ gen7_fill_normal_SURFACE_STATE(const struct ilo_dev_info *dev,
       dw[4] |= GEN7_SURFACE_MSFMT_MSS;
    }
 
-   if (res->base.nr_samples > 4)
+   if (tex->base.nr_samples > 4)
       dw[4] |= GEN7_SURFACE_MULTISAMPLECOUNT_8;
-   else if (res->base.nr_samples > 2)
+   else if (tex->base.nr_samples > 2)
       dw[4] |= GEN7_SURFACE_MULTISAMPLECOUNT_4;
    else
       dw[4] |= GEN7_SURFACE_MULTISAMPLECOUNT_1;
@@ -1673,15 +1673,15 @@ gen7_emit_surf_SURFACE_STATE(const struct ilo_dev_info *dev,
    ILO_GPE_VALID_GEN(dev, 7, 7);
 
    if (surface && surface->texture) {
-      struct ilo_resource *res = ilo_resource(surface->texture);
+      struct ilo_texture *tex = ilo_texture(surface->texture);
 
-      bo = res->bo;
+      bo = tex->bo;
 
       /*
        * classic i965 sets render_cache_rw for constant buffers and sol
        * surfaces but not render buffers.  Why?
        */
-      gen7_fill_normal_SURFACE_STATE(dev, res, surface->format,
+      gen7_fill_normal_SURFACE_STATE(dev, tex, surface->format,
             surface->u.tex.level, 1,
             surface->u.tex.first_layer,
             surface->u.tex.last_layer - surface->u.tex.first_layer + 1,
@@ -1701,19 +1701,19 @@ gen7_emit_view_SURFACE_STATE(const struct ilo_dev_info *dev,
                              const struct pipe_sampler_view *view,
                              struct ilo_cp *cp)
 {
-   struct ilo_resource *res = ilo_resource(view->texture);
+   struct ilo_texture *tex = ilo_texture(view->texture);
    uint32_t dw[8];
 
    ILO_GPE_VALID_GEN(dev, 7, 7);
 
-   gen7_fill_normal_SURFACE_STATE(dev, res, view->format,
+   gen7_fill_normal_SURFACE_STATE(dev, tex, view->format,
          view->u.tex.first_level,
          view->u.tex.last_level - view->u.tex.first_level + 1,
          view->u.tex.first_layer,
          view->u.tex.last_layer - view->u.tex.first_layer + 1,
          false, false, dw, Elements(dw));
 
-   return gen7_emit_SURFACE_STATE(dev, res->bo, false, dw, Elements(dw), cp);
+   return gen7_emit_SURFACE_STATE(dev, tex->bo, false, dw, Elements(dw), cp);
 }
 
 static uint32_t
@@ -1722,17 +1722,17 @@ gen7_emit_cbuf_SURFACE_STATE(const struct ilo_dev_info *dev,
                              struct ilo_cp *cp)
 {
    const enum pipe_format elem_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
-   struct ilo_resource *res = ilo_resource(cbuf->buffer);
+   struct ilo_texture *tex = ilo_texture(cbuf->buffer);
    uint32_t dw[8];
 
    ILO_GPE_VALID_GEN(dev, 7, 7);
 
-   gen7_fill_buffer_SURFACE_STATE(dev, res,
+   gen7_fill_buffer_SURFACE_STATE(dev, tex,
          cbuf->buffer_offset, cbuf->buffer_size,
          util_format_get_blocksize(elem_format), elem_format,
          false, false, dw, Elements(dw));
 
-   return gen7_emit_SURFACE_STATE(dev, res->bo, false, dw, Elements(dw), cp);
+   return gen7_emit_SURFACE_STATE(dev, tex->bo, false, dw, Elements(dw), cp);
 }
 
 static uint32_t
index 96f9d0037937b03e6dc681afc8a678d645cd5efe..e4233e20018f6843c0a333d5a142f2873395d28b 100644 (file)
 #define ILO_BIND_MCS PIPE_BIND_CUSTOM
 
 static struct intel_bo *
-alloc_buf_bo(const struct ilo_resource *res)
+alloc_buf_bo(const struct ilo_texture *tex)
 {
-   struct ilo_screen *is = ilo_screen(res->base.screen);
+   struct ilo_screen *is = ilo_screen(tex->base.screen);
    struct intel_bo *bo;
    const char *name;
-   const unsigned size = res->bo_width;
+   const unsigned size = tex->bo_width;
 
-   switch (res->base.bind) {
+   switch (tex->base.bind) {
    case PIPE_BIND_VERTEX_BUFFER:
       name = "vertex buffer";
       break;
@@ -58,19 +58,19 @@ alloc_buf_bo(const struct ilo_resource *res)
    }
 
    /* this is what a buffer supposed to be like */
-   assert(res->bo_width * res->bo_height * res->bo_cpp == size);
-   assert(res->tiling == INTEL_TILING_NONE);
-   assert(res->bo_stride == 0);
+   assert(tex->bo_width * tex->bo_height * tex->bo_cpp == size);
+   assert(tex->tiling == INTEL_TILING_NONE);
+   assert(tex->bo_stride == 0);
 
-   if (res->handle) {
+   if (tex->handle) {
       bo = is->winsys->import_handle(is->winsys, name,
-            res->bo_width, res->bo_height, res->bo_cpp, res->handle);
+            tex->bo_width, tex->bo_height, tex->bo_cpp, tex->handle);
 
       /* since the bo is shared to us, make sure it meets the expectations */
       if (bo) {
-         assert(bo->get_size(res->bo) == size);
-         assert(bo->get_tiling(res->bo) == res->tiling);
-         assert(bo->get_pitch(res->bo) == res->bo_stride);
+         assert(bo->get_size(tex->bo) == size);
+         assert(bo->get_tiling(tex->bo) == tex->tiling);
+         assert(bo->get_pitch(tex->bo) == tex->bo_stride);
       }
    }
    else {
@@ -81,13 +81,13 @@ alloc_buf_bo(const struct ilo_resource *res)
 }
 
 static struct intel_bo *
-alloc_tex_bo(const struct ilo_resource *res)
+alloc_tex_bo(const struct ilo_texture *tex)
 {
-   struct ilo_screen *is = ilo_screen(res->base.screen);
+   struct ilo_screen *is = ilo_screen(tex->base.screen);
    struct intel_bo *bo;
    const char *name;
 
-   switch (res->base.target) {
+   switch (tex->base.target) {
    case PIPE_TEXTURE_1D:
       name = "1D texture";
       break;
@@ -117,47 +117,47 @@ alloc_tex_bo(const struct ilo_resource *res)
       break;
    }
 
-   if (res->handle) {
+   if (tex->handle) {
       bo = is->winsys->import_handle(is->winsys, name,
-            res->bo_width, res->bo_height, res->bo_cpp, res->handle);
+            tex->bo_width, tex->bo_height, tex->bo_cpp, tex->handle);
    }
    else {
       const bool for_render =
-         (res->base.bind & (PIPE_BIND_DEPTH_STENCIL |
+         (tex->base.bind & (PIPE_BIND_DEPTH_STENCIL |
                             PIPE_BIND_RENDER_TARGET));
       const unsigned long flags =
          (for_render) ? INTEL_ALLOC_FOR_RENDER : 0;
 
       bo = is->winsys->alloc(is->winsys, name,
-            res->bo_width, res->bo_height, res->bo_cpp,
-            res->tiling, flags);
+            tex->bo_width, tex->bo_height, tex->bo_cpp,
+            tex->tiling, flags);
    }
 
    return bo;
 }
 
 bool
-ilo_resource_alloc_bo(struct ilo_resource *res)
+ilo_texture_alloc_bo(struct ilo_texture *tex)
 {
-   struct intel_bo *old_bo = res->bo;
+   struct intel_bo *old_bo = tex->bo;
 
    /* a shared bo cannot be reallocated */
-   if (old_bo && res->handle)
+   if (old_bo && tex->handle)
       return false;
 
-   if (res->base.target == PIPE_BUFFER)
-      res->bo = alloc_buf_bo(res);
+   if (tex->base.target == PIPE_BUFFER)
+      tex->bo = alloc_buf_bo(tex);
    else
-      res->bo = alloc_tex_bo(res);
+      tex->bo = alloc_tex_bo(tex);
 
-   if (!res->bo) {
-      res->bo = old_bo;
+   if (!tex->bo) {
+      tex->bo = old_bo;
       return false;
    }
 
    /* winsys may decide to use a different tiling */
-   res->tiling = res->bo->get_tiling(res->bo);
-   res->bo_stride = res->bo->get_pitch(res->bo);
+   tex->tiling = tex->bo->get_tiling(tex->bo);
+   tex->bo_stride = tex->bo->get_pitch(tex->bo);
 
    if (old_bo)
       old_bo->unreference(old_bo);
@@ -166,42 +166,42 @@ ilo_resource_alloc_bo(struct ilo_resource *res)
 }
 
 static bool
-alloc_slice_offsets(struct ilo_resource *res)
+alloc_slice_offsets(struct ilo_texture *tex)
 {
    int depth, lv;
 
    /* sum the depths of all levels */
    depth = 0;
-   for (lv = 0; lv <= res->base.last_level; lv++)
-      depth += u_minify(res->base.depth0, lv);
+   for (lv = 0; lv <= tex->base.last_level; lv++)
+      depth += u_minify(tex->base.depth0, lv);
 
    /*
-    * There are (depth * res->base.array_size) slices.  Either depth is one
-    * (non-3D) or res->base.array_size is one (non-array), but it does not
+    * There are (depth * tex->base.array_size) slices.  Either depth is one
+    * (non-3D) or tex->base.array_size is one (non-array), but it does not
     * matter.
     */
-   res->slice_offsets[0] =
-      CALLOC(depth * res->base.array_size, sizeof(res->slice_offsets[0][0]));
-   if (!res->slice_offsets[0])
+   tex->slice_offsets[0] =
+      CALLOC(depth * tex->base.array_size, sizeof(tex->slice_offsets[0][0]));
+   if (!tex->slice_offsets[0])
       return false;
 
    /* point to the respective positions in the buffer */
-   for (lv = 1; lv <= res->base.last_level; lv++) {
-      res->slice_offsets[lv] = res->slice_offsets[lv - 1] +
-         u_minify(res->base.depth0, lv - 1) * res->base.array_size;
+   for (lv = 1; lv <= tex->base.last_level; lv++) {
+      tex->slice_offsets[lv] = tex->slice_offsets[lv - 1] +
+         u_minify(tex->base.depth0, lv - 1) * tex->base.array_size;
    }
 
    return true;
 }
 
 static void
-free_slice_offsets(struct ilo_resource *res)
+free_slice_offsets(struct ilo_texture *tex)
 {
    int lv;
 
-   FREE(res->slice_offsets[0]);
-   for (lv = 0; lv <= res->base.last_level; lv++)
-      res->slice_offsets[lv] = NULL;
+   FREE(tex->slice_offsets[0]);
+   for (lv = 0; lv <= tex->base.last_level; lv++)
+      tex->slice_offsets[lv] = NULL;
 }
 
 struct layout_tex_info {
@@ -221,12 +221,12 @@ struct layout_tex_info {
  * Prepare for texture layout.
  */
 static void
-layout_tex_init(const struct ilo_resource *res, struct layout_tex_info *info)
+layout_tex_init(const struct ilo_texture *tex, struct layout_tex_info *info)
 {
-   struct ilo_screen *is = ilo_screen(res->base.screen);
-   const enum pipe_format bo_format = res->bo_format;
-   const enum intel_tiling_mode tiling = res->tiling;
-   const struct pipe_resource *templ = &res->base;
+   struct ilo_screen *is = ilo_screen(tex->base.screen);
+   const enum pipe_format bo_format = tex->bo_format;
+   const enum intel_tiling_mode tiling = tex->tiling;
+   const struct pipe_resource *templ = &tex->base;
    int last_level, lv;
 
    memset(info, 0, sizeof(*info));
@@ -586,7 +586,7 @@ layout_tex_init(const struct ilo_resource *res, struct layout_tex_info *info)
           * compressed formats because the block height for those formats are
           * 4, and it wants QPitch to mean the number of memory rows, as
           * opposed to texel rows, between slices.  Since we use texel rows in
-          * res->slice_offsets, we do not need to divide QPitch by 4.
+          * tex->slice_offsets, we do not need to divide QPitch by 4.
           */
          info->qpitch = h0 + h1 +
             ((is->dev.gen >= ILO_GEN(7)) ? 12 : 11) * info->align_j;
@@ -605,14 +605,14 @@ layout_tex_init(const struct ilo_resource *res, struct layout_tex_info *info)
  * Layout a 2D texture.
  */
 static void
-layout_tex_2d(struct ilo_resource *res, const struct layout_tex_info *info)
+layout_tex_2d(struct ilo_texture *tex, const struct layout_tex_info *info)
 {
-   const struct pipe_resource *templ = &res->base;
+   const struct pipe_resource *templ = &tex->base;
    unsigned int level_x, level_y, num_slices;
    int lv;
 
-   res->bo_width = 0;
-   res->bo_height = 0;
+   tex->bo_width = 0;
+   tex->bo_height = 0;
 
    level_x = 0;
    level_y = 0;
@@ -622,16 +622,16 @@ layout_tex_2d(struct ilo_resource *res, const struct layout_tex_info *info)
       int slice;
 
       for (slice = 0; slice < templ->array_size; slice++) {
-         res->slice_offsets[lv][slice].x = level_x;
+         tex->slice_offsets[lv][slice].x = level_x;
          /* slices are qpitch apart in Y-direction */
-         res->slice_offsets[lv][slice].y = level_y + info->qpitch * slice;
+         tex->slice_offsets[lv][slice].y = level_y + info->qpitch * slice;
       }
 
       /* extend the size of the monolithic bo to cover this mip level */
-      if (res->bo_width < level_x + level_w)
-         res->bo_width = level_x + level_w;
-      if (res->bo_height < level_y + level_h)
-         res->bo_height = level_y + level_h;
+      if (tex->bo_width < level_x + level_w)
+         tex->bo_width = level_x + level_w;
+      if (tex->bo_height < level_y + level_h)
+         tex->bo_height = level_y + level_h;
 
       /* MIPLAYOUT_BELOW */
       if (lv == 1)
@@ -646,21 +646,21 @@ layout_tex_2d(struct ilo_resource *res, const struct layout_tex_info *info)
       num_slices *= templ->nr_samples;
 
    /* we did not take slices into consideration in the computation above */
-   res->bo_height += info->qpitch * (num_slices - 1);
+   tex->bo_height += info->qpitch * (num_slices - 1);
 }
 
 /**
  * Layout a 3D texture.
  */
 static void
-layout_tex_3d(struct ilo_resource *res, const struct layout_tex_info *info)
+layout_tex_3d(struct ilo_texture *tex, const struct layout_tex_info *info)
 {
-   const struct pipe_resource *templ = &res->base;
+   const struct pipe_resource *templ = &tex->base;
    unsigned int level_y;
    int lv;
 
-   res->bo_width = 0;
-   res->bo_height = 0;
+   tex->bo_width = 0;
+   tex->bo_height = 0;
 
    level_y = 0;
    for (lv = 0; lv <= templ->last_level; lv++) {
@@ -676,8 +676,8 @@ layout_tex_3d(struct ilo_resource *res, const struct layout_tex_info *info)
          int i;
 
          for (i = 0; i < num_slices_per_row && slice + i < level_d; i++) {
-            res->slice_offsets[lv][slice + i].x = slice_pitch * i;
-            res->slice_offsets[lv][slice + i].y = level_y;
+            tex->slice_offsets[lv][slice + i].x = slice_pitch * i;
+            tex->slice_offsets[lv][slice + i].y = level_y;
          }
 
          /* move on to the next slice row */
@@ -688,10 +688,10 @@ layout_tex_3d(struct ilo_resource *res, const struct layout_tex_info *info)
       slice = MIN2(num_slices_per_row, level_d) - 1;
 
       /* extend the size of the monolithic bo to cover this slice */
-      if (res->bo_width < slice_pitch * slice + level_w)
-         res->bo_width = slice_pitch * slice + level_w;
+      if (tex->bo_width < slice_pitch * slice + level_w)
+         tex->bo_width = slice_pitch * slice + level_w;
       if (lv == templ->last_level)
-         res->bo_height = (level_y - slice_qpitch) + level_h;
+         tex->bo_height = (level_y - slice_qpitch) + level_h;
    }
 }
 
@@ -743,10 +743,10 @@ guess_tex_size(const struct pipe_resource *templ,
 }
 
 static enum intel_tiling_mode
-get_tex_tiling(const struct ilo_resource *res)
+get_tex_tiling(const struct ilo_texture *tex)
 {
-   const struct pipe_resource *templ = &res->base;
-   const enum pipe_format bo_format = res->bo_format;
+   const struct pipe_resource *templ = &tex->base;
+   const enum pipe_format bo_format = tex->bo_format;
 
    /*
     * From the Sandy Bridge PRM, volume 1 part 2, page 32:
@@ -828,34 +828,34 @@ get_tex_tiling(const struct ilo_resource *res)
 }
 
 static void
-init_texture(struct ilo_resource *res)
+init_texture(struct ilo_texture *tex)
 {
    struct layout_tex_info info;
 
-   switch (res->base.format) {
+   switch (tex->base.format) {
    case PIPE_FORMAT_ETC1_RGB8:
-      res->bo_format = PIPE_FORMAT_R8G8B8X8_UNORM;
+      tex->bo_format = PIPE_FORMAT_R8G8B8X8_UNORM;
       break;
    default:
-      res->bo_format = res->base.format;
+      tex->bo_format = tex->base.format;
       break;
    }
 
    /* determine tiling first as it may affect the layout */
-   res->tiling = get_tex_tiling(res);
+   tex->tiling = get_tex_tiling(tex);
 
-   layout_tex_init(res, &info);
+   layout_tex_init(tex, &info);
 
-   res->compressed = info.compressed;
-   res->block_width = info.block_width;
-   res->block_height = info.block_height;
+   tex->compressed = info.compressed;
+   tex->block_width = info.block_width;
+   tex->block_height = info.block_height;
 
-   res->halign_8 = (info.align_i == 8);
-   res->valign_4 = (info.align_j == 4);
-   res->array_spacing_full = info.array_spacing_full;
-   res->interleaved = info.interleaved;
+   tex->halign_8 = (info.align_i == 8);
+   tex->valign_4 = (info.align_j == 4);
+   tex->array_spacing_full = info.array_spacing_full;
+   tex->interleaved = info.interleaved;
 
-   switch (res->base.target) {
+   switch (tex->base.target) {
    case PIPE_TEXTURE_1D:
    case PIPE_TEXTURE_2D:
    case PIPE_TEXTURE_CUBE:
@@ -863,10 +863,10 @@ init_texture(struct ilo_resource *res)
    case PIPE_TEXTURE_1D_ARRAY:
    case PIPE_TEXTURE_2D_ARRAY:
    case PIPE_TEXTURE_CUBE_ARRAY:
-      layout_tex_2d(res, &info);
+      layout_tex_2d(tex, &info);
       break;
    case PIPE_TEXTURE_3D:
-      layout_tex_3d(res, &info);
+      layout_tex_3d(tex, &info);
       break;
    default:
       assert(!"unknown resource target");
@@ -882,37 +882,37 @@ init_texture(struct ilo_resource *res)
     * Since we ask for INTEL_TILING_NONE instead lf INTEL_TILING_W, we need to
     * manually align the bo width and height to the tile boundaries.
     */
-   if (res->bo_format == PIPE_FORMAT_S8_UINT) {
-      res->bo_width = align(res->bo_width, 64);
-      res->bo_height = align(res->bo_height, 64);
+   if (tex->bo_format == PIPE_FORMAT_S8_UINT) {
+      tex->bo_width = align(tex->bo_width, 64);
+      tex->bo_height = align(tex->bo_height, 64);
    }
 
    /* in blocks */
-   assert(res->bo_width % info.block_width == 0);
-   assert(res->bo_height % info.block_height == 0);
-   res->bo_width /= info.block_width;
-   res->bo_height /= info.block_height;
-   res->bo_cpp = util_format_get_blocksize(res->bo_format);
+   assert(tex->bo_width % info.block_width == 0);
+   assert(tex->bo_height % info.block_height == 0);
+   tex->bo_width /= info.block_width;
+   tex->bo_height /= info.block_height;
+   tex->bo_cpp = util_format_get_blocksize(tex->bo_format);
 }
 
 static void
-init_buffer(struct ilo_resource *res)
+init_buffer(struct ilo_texture *tex)
 {
-   res->bo_format = res->base.format;
-   res->bo_width = res->base.width0;
-   res->bo_height = 1;
-   res->bo_cpp = 1;
-   res->bo_stride = 0;
-   res->tiling = INTEL_TILING_NONE;
-
-   res->compressed = false;
-   res->block_width = 1;
-   res->block_height = 1;
-
-   res->halign_8 = false;
-   res->valign_4 = false;
-   res->array_spacing_full = false;
-   res->interleaved = false;
+   tex->bo_format = tex->base.format;
+   tex->bo_width = tex->base.width0;
+   tex->bo_height = 1;
+   tex->bo_cpp = 1;
+   tex->bo_stride = 0;
+   tex->tiling = INTEL_TILING_NONE;
+
+   tex->compressed = false;
+   tex->block_width = 1;
+   tex->block_height = 1;
+
+   tex->halign_8 = false;
+   tex->valign_4 = false;
+   tex->array_spacing_full = false;
+   tex->interleaved = false;
 }
 
 static struct pipe_resource *
@@ -920,34 +920,34 @@ create_resource(struct pipe_screen *screen,
                 const struct pipe_resource *templ,
                 struct winsys_handle *handle)
 {
-   struct ilo_resource *res;
+   struct ilo_texture *tex;
 
-   res = CALLOC_STRUCT(ilo_resource);
-   if (!res)
+   tex = CALLOC_STRUCT(ilo_texture);
+   if (!tex)
       return NULL;
 
-   res->base = *templ;
-   res->base.screen = screen;
-   pipe_reference_init(&res->base.reference, 1);
-   res->handle = handle;
+   tex->base = *templ;
+   tex->base.screen = screen;
+   pipe_reference_init(&tex->base.reference, 1);
+   tex->handle = handle;
 
-   if (!alloc_slice_offsets(res)) {
-      FREE(res);
+   if (!alloc_slice_offsets(tex)) {
+      FREE(tex);
       return NULL;
    }
 
    if (templ->target == PIPE_BUFFER)
-      init_buffer(res);
+      init_buffer(tex);
    else
-      init_texture(res);
+      init_texture(tex);
 
-   if (!ilo_resource_alloc_bo(res)) {
-      free_slice_offsets(res);
-      FREE(res);
+   if (!ilo_texture_alloc_bo(tex)) {
+      free_slice_offsets(tex);
+      FREE(tex);
       return NULL;
    }
 
-   return &res->base;
+   return &tex->base;
 }
 
 static boolean
@@ -981,26 +981,26 @@ ilo_resource_from_handle(struct pipe_screen *screen,
 
 static boolean
 ilo_resource_get_handle(struct pipe_screen *screen,
-                        struct pipe_resource *r,
+                        struct pipe_resource *res,
                         struct winsys_handle *handle)
 {
-   struct ilo_resource *res = ilo_resource(r);
+   struct ilo_texture *tex = ilo_texture(res);
    int err;
 
-   err = res->bo->export_handle(res->bo, handle);
+   err = tex->bo->export_handle(tex->bo, handle);
 
    return !err;
 }
 
 static void
 ilo_resource_destroy(struct pipe_screen *screen,
-                     struct pipe_resource *r)
+                     struct pipe_resource *res)
 {
-   struct ilo_resource *res = ilo_resource(r);
+   struct ilo_texture *tex = ilo_texture(res);
 
-   free_slice_offsets(res);
-   res->bo->unreference(res->bo);
-   FREE(res);
+   free_slice_offsets(tex);
+   tex->bo->unreference(tex->bo);
+   FREE(tex);
 }
 
 /**
@@ -1025,20 +1025,20 @@ ilo_init_resource_functions(struct ilo_screen *is)
  * y_offset is always a multiple of 2.
  */
 unsigned
-ilo_resource_get_slice_offset(const struct ilo_resource *res,
-                              int level, int slice, bool tile_aligned,
-                              unsigned *x_offset, unsigned *y_offset)
+ilo_texture_get_slice_offset(const struct ilo_texture *tex,
+                             int level, int slice, bool tile_aligned,
+                             unsigned *x_offset, unsigned *y_offset)
 {
-   const unsigned x = res->slice_offsets[level][slice].x / res->block_width;
-   const unsigned y = res->slice_offsets[level][slice].y / res->block_height;
+   const unsigned x = tex->slice_offsets[level][slice].x / tex->block_width;
+   const unsigned y = tex->slice_offsets[level][slice].y / tex->block_height;
    unsigned tile_w, tile_h, tile_size, row_size;
    unsigned slice_offset;
 
    /* see the Sandy Bridge PRM, volume 1 part 2, page 24 */
 
-   switch (res->tiling) {
+   switch (tex->tiling) {
    case INTEL_TILING_NONE:
-      tile_w = res->bo_cpp;
+      tile_w = tex->bo_cpp;
       tile_h = 1;
       break;
    case INTEL_TILING_X:
@@ -1051,24 +1051,24 @@ ilo_resource_get_slice_offset(const struct ilo_resource *res,
       break;
    default:
       assert(!"unknown tiling");
-      tile_w = res->bo_cpp;
+      tile_w = tex->bo_cpp;
       tile_h = 1;
       break;
    }
 
    tile_size = tile_w * tile_h;
-   row_size = res->bo_stride * tile_h;
+   row_size = tex->bo_stride * tile_h;
 
    /*
     * for non-tiled resources, this is equivalent to
     *
-    *   slice_offset = y * res->bo_stride + x * res->bo_cpp;
+    *   slice_offset = y * tex->bo_stride + x * tex->bo_cpp;
     */
    slice_offset =
-      row_size * (y / tile_h) + tile_size * (x * res->bo_cpp / tile_w);
+      row_size * (y / tile_h) + tile_size * (x * tex->bo_cpp / tile_w);
 
    /*
-    * Since res->bo_stride is a multiple of tile_w, slice_offset should be
+    * Since tex->bo_stride is a multiple of tile_w, slice_offset should be
     * aligned at this point.
     */
    assert(slice_offset % tile_size == 0);
@@ -1080,20 +1080,20 @@ ilo_resource_get_slice_offset(const struct ilo_resource *res,
        * be a multiple of 2.
        */
       if (x_offset) {
-         assert(tile_w % res->bo_cpp == 0);
-         *x_offset = (x % (tile_w / res->bo_cpp)) * res->block_width;
+         assert(tile_w % tex->bo_cpp == 0);
+         *x_offset = (x % (tile_w / tex->bo_cpp)) * tex->block_width;
          assert(*x_offset % 4 == 0);
       }
       if (y_offset) {
-         *y_offset = (y % tile_h) * res->block_height;
+         *y_offset = (y % tile_h) * tex->block_height;
          assert(*y_offset % 2 == 0);
       }
    }
    else {
-      const unsigned tx = (x * res->bo_cpp) % tile_w;
+      const unsigned tx = (x * tex->bo_cpp) % tile_w;
       const unsigned ty = y % tile_h;
 
-      switch (res->tiling) {
+      switch (tex->tiling) {
       case INTEL_TILING_NONE:
          assert(tx == 0 && ty == 0);
          break;
index 87f80d5c5757702e34046b6b6ada93f92c4c1eb8..cf54dc83bcd86d7c09c3c5ffe54f352825968c06 100644 (file)
@@ -43,7 +43,7 @@ struct winsys_handle;
  *    - ilo_texture
  *    - ilo_global_binding
  */
-struct ilo_resource {
+struct ilo_texture {
    struct pipe_resource base;
    struct winsys_handle *handle;
 
@@ -79,21 +79,21 @@ struct ilo_resource {
    } *slice_offsets[PIPE_MAX_TEXTURE_LEVELS];
 };
 
-static inline struct ilo_resource *
-ilo_resource(struct pipe_resource *res)
+static inline struct ilo_texture *
+ilo_texture(struct pipe_resource *res)
 {
-   return (struct ilo_resource *) res;
+   return (struct ilo_texture *) res;
 }
 
 void
 ilo_init_resource_functions(struct ilo_screen *is);
 
 bool
-ilo_resource_alloc_bo(struct ilo_resource *res);
+ilo_texture_alloc_bo(struct ilo_texture *tex);
 
 unsigned
-ilo_resource_get_slice_offset(const struct ilo_resource *res,
-                              int level, int slice, bool tile_aligned,
-                              unsigned *x_offset, unsigned *y_offset);
+ilo_texture_get_slice_offset(const struct ilo_texture *tex,
+                             int level, int slice, bool tile_aligned,
+                             unsigned *x_offset, unsigned *y_offset);
 
 #endif /* ILO_RESOURCE_H */
index 3b9c4d6994f3b64e0ada835e675ff6604fa6a547..30751d32b0fdb373da052074ac8f45f0dcbe09f3 100644 (file)
@@ -56,7 +56,7 @@ ilo_transfer(struct pipe_transfer *transfer)
 
 static void
 ilo_transfer_inline_write(struct pipe_context *pipe,
-                          struct pipe_resource *r,
+                          struct pipe_resource *res,
                           unsigned level,
                           unsigned usage,
                           const struct pipe_box *box,
@@ -65,7 +65,7 @@ ilo_transfer_inline_write(struct pipe_context *pipe,
                           unsigned layer_stride)
 {
    struct ilo_context *ilo = ilo_context(pipe);
-   struct ilo_resource *res = ilo_resource(r);
+   struct ilo_texture *tex = ilo_texture(res);
    int offset, size;
    bool will_be_busy;
 
@@ -74,9 +74,9 @@ ilo_transfer_inline_write(struct pipe_context *pipe,
     * unsynchronized write, as the buffer is likely to be busy and pwrite()
     * will stall.
     */
-   if (unlikely(res->base.target != PIPE_BUFFER) ||
+   if (unlikely(tex->base.target != PIPE_BUFFER) ||
        (usage & PIPE_TRANSFER_UNSYNCHRONIZED)) {
-      u_default_transfer_inline_write(pipe, r,
+      u_default_transfer_inline_write(pipe, res,
             level, usage, box, data, stride, layer_stride);
 
       return;
@@ -90,21 +90,21 @@ ilo_transfer_inline_write(struct pipe_context *pipe,
    if (ilo->cp->hw_ctx)
       ilo_cp_flush(ilo->cp);
 
-   will_be_busy = ilo->cp->bo->references(ilo->cp->bo, res->bo);
+   will_be_busy = ilo->cp->bo->references(ilo->cp->bo, tex->bo);
 
    /* see if we can avoid stalling */
-   if (will_be_busy || intel_bo_is_busy(res->bo)) {
+   if (will_be_busy || intel_bo_is_busy(tex->bo)) {
       bool will_stall = true;
 
       if (usage & PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE) {
          /* old data not needed so discard the old bo to avoid stalling */
-         if (ilo_resource_alloc_bo(res))
+         if (ilo_texture_alloc_bo(tex))
             will_stall = false;
       }
       else {
          /*
           * We could allocate a temporary bo to hold the data and emit
-          * pipelined copy blit to move them to res->bo.  But for now, do
+          * pipelined copy blit to move them to tex->bo.  But for now, do
           * nothing.
           */
       }
@@ -115,7 +115,7 @@ ilo_transfer_inline_write(struct pipe_context *pipe,
    }
 
    /* for PIPE_BUFFERs, conversion should not be needed */
-   assert(res->bo_format == res->base.format);
+   assert(tex->bo_format == tex->base.format);
 
    /* they should specify just an offset and a size */
    assert(level == 0);
@@ -126,7 +126,7 @@ ilo_transfer_inline_write(struct pipe_context *pipe,
    offset = box->x;
    size = box->width;
 
-   res->bo->pwrite(res->bo, offset, size, data);
+   tex->bo->pwrite(tex->bo, offset, size, data);
 }
 
 static void
@@ -160,7 +160,7 @@ transfer_unmap_sys_convert(enum pipe_format dst_fmt,
 
 static void
 transfer_unmap_sys(struct ilo_context *ilo,
-                   struct ilo_resource *res,
+                   struct ilo_texture *tex,
                    struct ilo_transfer *xfer)
 {
    const void *src = xfer->ptr;
@@ -179,12 +179,12 @@ transfer_unmap_sys(struct ilo_context *ilo,
       return;
    }
 
-   if (likely(res->bo_format != res->base.format)) {
-      transfer_unmap_sys_convert(res->bo_format, dst_xfer, dst,
-            res->base.format, &xfer->base, src);
+   if (likely(tex->bo_format != tex->base.format)) {
+      transfer_unmap_sys_convert(tex->bo_format, dst_xfer, dst,
+            tex->base.format, &xfer->base, src);
    }
    else {
-      util_copy_box(dst, res->bo_format,
+      util_copy_box(dst, tex->bo_format,
             dst_xfer->stride, dst_xfer->layer_stride, 0, 0, 0,
             dst_xfer->box.width, dst_xfer->box.height, dst_xfer->box.depth,
             src, xfer->base.stride, xfer->base.layer_stride, 0, 0, 0);
@@ -196,13 +196,13 @@ transfer_unmap_sys(struct ilo_context *ilo,
 
 static bool
 transfer_map_sys(struct ilo_context *ilo,
-                 struct ilo_resource *res,
+                 struct ilo_texture *tex,
                  struct ilo_transfer *xfer)
 {
    const struct pipe_box *box = &xfer->base.box;
-   const size_t stride = util_format_get_stride(res->base.format, box->width);
+   const size_t stride = util_format_get_stride(tex->base.format, box->width);
    const size_t size =
-      util_format_get_2d_size(res->base.format, stride, box->height);
+      util_format_get_2d_size(tex->base.format, stride, box->height);
    bool read_back = false;
 
    if (xfer->base.usage & PIPE_TRANSFER_READ) {
@@ -233,63 +233,63 @@ transfer_map_sys(struct ilo_context *ilo,
 
 static void
 transfer_unmap_direct(struct ilo_context *ilo,
-                      struct ilo_resource *res,
+                      struct ilo_texture *tex,
                       struct ilo_transfer *xfer)
 {
-   res->bo->unmap(res->bo);
+   tex->bo->unmap(tex->bo);
 }
 
 static bool
 transfer_map_direct(struct ilo_context *ilo,
-                    struct ilo_resource *res,
+                    struct ilo_texture *tex,
                     struct ilo_transfer *xfer)
 {
    int x, y, err;
 
    if (xfer->base.usage & PIPE_TRANSFER_UNSYNCHRONIZED)
-      err = res->bo->map_unsynchronized(res->bo);
+      err = tex->bo->map_unsynchronized(tex->bo);
    /* prefer map() when there is the last-level cache */
-   else if (res->tiling == INTEL_TILING_NONE &&
+   else if (tex->tiling == INTEL_TILING_NONE &&
             (ilo->dev->has_llc || (xfer->base.usage & PIPE_TRANSFER_READ)))
-      err = res->bo->map(res->bo, (xfer->base.usage & PIPE_TRANSFER_WRITE));
+      err = tex->bo->map(tex->bo, (xfer->base.usage & PIPE_TRANSFER_WRITE));
    else
-      err = res->bo->map_gtt(res->bo);
+      err = tex->bo->map_gtt(tex->bo);
 
    if (err)
       return false;
 
    /* note that stride is for a block row, not a texel row */
-   xfer->base.stride = res->bo_stride;
+   xfer->base.stride = tex->bo_stride;
 
    /*
     * we can walk through layers when the resource is a texture array or
     * when this is the first level of a 3D texture being mapped
     */
-   if (res->base.array_size > 1 ||
-       (res->base.target == PIPE_TEXTURE_3D && xfer->base.level == 0)) {
-      const unsigned qpitch = res->slice_offsets[xfer->base.level][1].y -
-         res->slice_offsets[xfer->base.level][0].y;
+   if (tex->base.array_size > 1 ||
+       (tex->base.target == PIPE_TEXTURE_3D && xfer->base.level == 0)) {
+      const unsigned qpitch = tex->slice_offsets[xfer->base.level][1].y -
+         tex->slice_offsets[xfer->base.level][0].y;
 
-      assert(qpitch % res->block_height == 0);
-      xfer->base.layer_stride = (qpitch / res->block_height) * xfer->base.stride;
+      assert(qpitch % tex->block_height == 0);
+      xfer->base.layer_stride = (qpitch / tex->block_height) * xfer->base.stride;
    }
    else {
       xfer->base.layer_stride = 0;
    }
 
-   x = res->slice_offsets[xfer->base.level][xfer->base.box.z].x;
-   y = res->slice_offsets[xfer->base.level][xfer->base.box.z].y;
+   x = tex->slice_offsets[xfer->base.level][xfer->base.box.z].x;
+   y = tex->slice_offsets[xfer->base.level][xfer->base.box.z].y;
 
    x += xfer->base.box.x;
    y += xfer->base.box.y;
 
    /* in blocks */
-   assert(x % res->block_width == 0 && y % res->block_height == 0);
-   x /= res->block_width;
-   y /= res->block_height;
+   assert(x % tex->block_width == 0 && y % tex->block_height == 0);
+   x /= tex->block_width;
+   y /= tex->block_height;
 
-   xfer->ptr = res->bo->get_virtual(res->bo);
-   xfer->ptr += y * res->bo_stride + x * res->bo_cpp;
+   xfer->ptr = tex->bo->get_virtual(tex->bo);
+   xfer->ptr += y * tex->bo_stride + x * tex->bo_cpp;
 
    return true;
 }
@@ -300,13 +300,13 @@ transfer_map_direct(struct ilo_context *ilo,
  */
 static bool
 transfer_map_choose_method(struct ilo_context *ilo,
-                           struct ilo_resource *res,
+                           struct ilo_texture *tex,
                            struct ilo_transfer *xfer)
 {
    bool will_be_busy, will_stall;
 
    /* need to convert on-the-fly */
-   if (res->bo_format != res->base.format &&
+   if (tex->bo_format != tex->base.format &&
        !(xfer->base.usage & PIPE_TRANSFER_MAP_DIRECTLY)) {
       xfer->method = ILO_TRANSFER_MAP_STAGING_SYS;
 
@@ -319,7 +319,7 @@ transfer_map_choose_method(struct ilo_context *ilo,
    if (xfer->base.usage & PIPE_TRANSFER_UNSYNCHRONIZED)
       return true;
 
-   will_be_busy = ilo->cp->bo->references(ilo->cp->bo, res->bo);
+   will_be_busy = ilo->cp->bo->references(ilo->cp->bo, tex->bo);
    if (!will_be_busy) {
       /*
        * XXX With hardware context support, the bo may be needed by GPU
@@ -329,7 +329,7 @@ transfer_map_choose_method(struct ilo_context *ilo,
       if (ilo->cp->hw_ctx)
          ilo_cp_flush(ilo->cp);
 
-      if (!intel_bo_is_busy(res->bo))
+      if (!intel_bo_is_busy(tex->bo))
          return true;
    }
 
@@ -341,7 +341,7 @@ transfer_map_choose_method(struct ilo_context *ilo,
    }
    else if (xfer->base.usage & PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE) {
       /* discard old bo and allocate a new one for mapping */
-      if (ilo_resource_alloc_bo(res))
+      if (ilo_texture_alloc_bo(tex))
          will_stall = false;
    }
    else if (xfer->base.usage & PIPE_TRANSFER_FLUSH_EXPLICIT) {
@@ -386,15 +386,15 @@ ilo_transfer_unmap(struct pipe_context *pipe,
                    struct pipe_transfer *transfer)
 {
    struct ilo_context *ilo = ilo_context(pipe);
-   struct ilo_resource *res = ilo_resource(transfer->resource);
+   struct ilo_texture *tex = ilo_texture(transfer->resource);
    struct ilo_transfer *xfer = ilo_transfer(transfer);
 
    switch (xfer->method) {
    case ILO_TRANSFER_MAP_DIRECT:
-      transfer_unmap_direct(ilo, res, xfer);
+      transfer_unmap_direct(ilo, tex, xfer);
       break;
    case ILO_TRANSFER_MAP_STAGING_SYS:
-      transfer_unmap_sys(ilo, res, xfer);
+      transfer_unmap_sys(ilo, tex, xfer);
       break;
    default:
       assert(!"unknown mapping method");
@@ -407,14 +407,14 @@ ilo_transfer_unmap(struct pipe_context *pipe,
 
 static void *
 ilo_transfer_map(struct pipe_context *pipe,
-                 struct pipe_resource *r,
+                 struct pipe_resource *res,
                  unsigned level,
                  unsigned usage,
                  const struct pipe_box *box,
                  struct pipe_transfer **transfer)
 {
    struct ilo_context *ilo = ilo_context(pipe);
-   struct ilo_resource *res = ilo_resource(r);
+   struct ilo_texture *tex = ilo_texture(res);
    struct ilo_transfer *xfer;
    int ok;
 
@@ -425,19 +425,19 @@ ilo_transfer_map(struct pipe_context *pipe,
    }
 
    xfer->base.resource = NULL;
-   pipe_resource_reference(&xfer->base.resource, &res->base);
+   pipe_resource_reference(&xfer->base.resource, &tex->base);
    xfer->base.level = level;
    xfer->base.usage = usage;
    xfer->base.box = *box;
 
-   ok = transfer_map_choose_method(ilo, res, xfer);
+   ok = transfer_map_choose_method(ilo, tex, xfer);
    if (ok) {
       switch (xfer->method) {
       case ILO_TRANSFER_MAP_DIRECT:
-         ok = transfer_map_direct(ilo, res, xfer);
+         ok = transfer_map_direct(ilo, tex, xfer);
          break;
       case ILO_TRANSFER_MAP_STAGING_SYS:
-         ok = transfer_map_sys(ilo, res, xfer);
+         ok = transfer_map_sys(ilo, tex, xfer);
          break;
       default:
          assert(!"unknown mapping method");