ilo: add pipe_texture_target to ilo_image
authorChia-I Wu <olvaffe@gmail.com>
Sun, 17 May 2015 03:55:05 +0000 (11:55 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Sun, 14 Jun 2015 07:43:20 +0000 (15:43 +0800)
Save the target in ilo_image instead of passing it around.

src/gallium/drivers/ilo/core/ilo_image.c
src/gallium/drivers/ilo/core/ilo_image.h
src/gallium/drivers/ilo/core/ilo_state_3d.h
src/gallium/drivers/ilo/core/ilo_state_3d_bottom.c
src/gallium/drivers/ilo/core/ilo_state_3d_top.c
src/gallium/drivers/ilo/ilo_state.c

index 2405959..5365dd1 100644 (file)
@@ -675,6 +675,7 @@ img_init_size_and_format(struct ilo_image *img,
    enum pipe_format format = templ->format;
    bool require_separate_stencil = false;
 
+   img->target = templ->target;
    img->width0 = templ->width0;
    img->height0 = templ->height0;
    img->depth0 = templ->depth0;
@@ -1343,6 +1344,7 @@ img_init_for_transfer(struct ilo_image *img,
 
    img->aux.type = ILO_IMAGE_AUX_NONE;
 
+   img->target = templ->target;
    img->width0 = templ->width0;
    img->height0 = templ->height0;
    img->depth0 = templ->depth0;
index 1354dd4..bef08bc 100644 (file)
@@ -88,6 +88,8 @@ struct ilo_image_lod {
  * Texture layout.
  */
 struct ilo_image {
+   enum pipe_texture_target target;
+
    /* size, format, etc for programming hardware states */
    unsigned width0;
    unsigned height0;
index 04d0075..819a17d 100644 (file)
@@ -386,7 +386,6 @@ ilo_gpe_init_view_surface_for_buffer(const struct ilo_dev *dev,
 void
 ilo_gpe_init_view_surface_for_image(const struct ilo_dev *dev,
                                     const struct ilo_image *img,
-                                    enum pipe_texture_target target,
                                     enum pipe_format format,
                                     unsigned first_level,
                                     unsigned num_levels,
@@ -399,7 +398,6 @@ void
 ilo_gpe_init_zs_surface(const struct ilo_dev *dev,
                         const struct ilo_image *img,
                         const struct ilo_image *s8_img,
-                        enum pipe_texture_target target,
                         enum pipe_format format, unsigned level,
                         unsigned first_layer, unsigned num_layers,
                         struct ilo_zs_surface *zs);
index 5a4c5dd..22cd4ea 100644 (file)
@@ -936,7 +936,6 @@ static void
 zs_init_info(const struct ilo_dev *dev,
              const struct ilo_image *img,
              const struct ilo_image *s8_img,
-             enum pipe_texture_target target,
              enum pipe_format format, unsigned level,
              unsigned first_layer, unsigned num_layers,
              struct ilo_zs_surface_info *info)
@@ -947,7 +946,7 @@ zs_init_info(const struct ilo_dev *dev,
 
    memset(info, 0, sizeof(*info));
 
-   info->surface_type = ilo_gpe_gen6_translate_texture(target);
+   info->surface_type = ilo_gpe_gen6_translate_texture(img->target);
 
    if (info->surface_type == GEN6_SURFTYPE_CUBE) {
       /*
@@ -1086,7 +1085,7 @@ zs_init_info(const struct ilo_dev *dev,
 
    info->width = img->width0;
    info->height = img->height0;
-   info->depth = (target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
+   info->depth = (img->target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
 
    info->lod = level;
    info->first_layer = first_layer;
@@ -1097,7 +1096,6 @@ void
 ilo_gpe_init_zs_surface(const struct ilo_dev *dev,
                         const struct ilo_image *img,
                         const struct ilo_image *s8_img,
-                        enum pipe_texture_target target,
                         enum pipe_format format, unsigned level,
                         unsigned first_layer, unsigned num_layers,
                         struct ilo_zs_surface *zs)
@@ -1111,7 +1109,7 @@ ilo_gpe_init_zs_surface(const struct ilo_dev *dev,
    ILO_DEV_ASSERT(dev, 6, 8);
 
    if (img) {
-      zs_init_info(dev, img, s8_img, target, format,
+      zs_init_info(dev, img, s8_img, format,
             level, first_layer, num_layers, &info);
 
       switch (img->sample_count) {
index c498a84..4c06c91 100644 (file)
@@ -554,7 +554,6 @@ view_init_for_buffer_gen6(const struct ilo_dev *dev,
 static void
 view_init_for_image_gen6(const struct ilo_dev *dev,
                          const struct ilo_image *img,
-                         enum pipe_texture_target target,
                          enum pipe_format format,
                          unsigned first_level,
                          unsigned num_levels,
@@ -569,7 +568,7 @@ view_init_for_image_gen6(const struct ilo_dev *dev,
 
    ILO_DEV_ASSERT(dev, 6, 6);
 
-   surface_type = ilo_gpe_gen6_translate_texture(target);
+   surface_type = ilo_gpe_gen6_translate_texture(img->target);
    assert(surface_type != GEN6_SURFTYPE_BUFFER);
 
    if (format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT && img->separate_stencil)
@@ -583,7 +582,7 @@ view_init_for_image_gen6(const struct ilo_dev *dev,
 
    width = img->width0;
    height = img->height0;
-   depth = (target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
+   depth = (img->target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
    pitch = img->bo_stride;
 
    if (surface_type == GEN6_SURFTYPE_CUBE) {
@@ -910,7 +909,6 @@ view_init_for_buffer_gen7(const struct ilo_dev *dev,
 static void
 view_init_for_image_gen7(const struct ilo_dev *dev,
                          const struct ilo_image *img,
-                         enum pipe_texture_target target,
                          enum pipe_format format,
                          unsigned first_level,
                          unsigned num_levels,
@@ -925,7 +923,7 @@ view_init_for_image_gen7(const struct ilo_dev *dev,
 
    ILO_DEV_ASSERT(dev, 7, 8);
 
-   surface_type = ilo_gpe_gen6_translate_texture(target);
+   surface_type = ilo_gpe_gen6_translate_texture(img->target);
    assert(surface_type != GEN6_SURFTYPE_BUFFER);
 
    if (format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT && img->separate_stencil)
@@ -939,7 +937,7 @@ view_init_for_image_gen7(const struct ilo_dev *dev,
 
    width = img->width0;
    height = img->height0;
-   depth = (target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
+   depth = (img->target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
    pitch = img->bo_stride;
 
    if (surface_type == GEN6_SURFTYPE_CUBE) {
@@ -1045,7 +1043,7 @@ view_init_for_image_gen7(const struct ilo_dev *dev,
     * returns zero for the number of layers when this field is not set.
     */
    if (surface_type != GEN6_SURFTYPE_3D) {
-      switch (target) {
+      switch (img->target) {
       case PIPE_TEXTURE_1D_ARRAY:
       case PIPE_TEXTURE_2D_ARRAY:
       case PIPE_TEXTURE_CUBE_ARRAY:
@@ -1220,7 +1218,6 @@ ilo_gpe_init_view_surface_for_buffer(const struct ilo_dev *dev,
 void
 ilo_gpe_init_view_surface_for_image(const struct ilo_dev *dev,
                                     const struct ilo_image *img,
-                                    enum pipe_texture_target target,
                                     enum pipe_format format,
                                     unsigned first_level,
                                     unsigned num_levels,
@@ -1230,11 +1227,11 @@ ilo_gpe_init_view_surface_for_image(const struct ilo_dev *dev,
                                     struct ilo_view_surface *surf)
 {
    if (ilo_dev_gen(dev) >= ILO_GEN(7)) {
-      view_init_for_image_gen7(dev, img, target, format,
+      view_init_for_image_gen7(dev, img, format,
             first_level, num_levels, first_layer, num_layers,
             is_rt, surf);
    } else {
-      view_init_for_image_gen6(dev, img, target, format,
+      view_init_for_image_gen6(dev, img, format,
             first_level, num_levels, first_layer, num_layers,
             is_rt, surf);
    }
index 7627fcf..3865e15 100644 (file)
@@ -1019,8 +1019,7 @@ ilo_create_sampler_view(struct pipe_context *pipe,
                   "not created for sampling\n");
       }
 
-      ilo_gpe_init_view_surface_for_image(dev, &tex->image,
-            tex->base.target, templ->format,
+      ilo_gpe_init_view_surface_for_image(dev, &tex->image, templ->format,
             templ->u.tex.first_level,
             templ->u.tex.last_level - templ->u.tex.first_level + 1,
             templ->u.tex.first_layer,
@@ -1066,8 +1065,7 @@ ilo_create_surface(struct pipe_context *pipe,
       /* relax this? */
       assert(tex->base.target != PIPE_BUFFER);
 
-      ilo_gpe_init_view_surface_for_image(dev,
-            &tex->image, tex->base.target,
+      ilo_gpe_init_view_surface_for_image(dev, &tex->image,
             templ->format, templ->u.tex.level, 1,
             templ->u.tex.first_layer,
             templ->u.tex.last_layer - templ->u.tex.first_layer + 1,
@@ -1077,7 +1075,7 @@ ilo_create_surface(struct pipe_context *pipe,
 
       ilo_gpe_init_zs_surface(dev, &tex->image,
             (tex->separate_s8) ? &tex->separate_s8->image : NULL,
-            tex->base.target, templ->format,
+            templ->format,
             templ->u.tex.level, templ->u.tex.first_layer,
             templ->u.tex.last_layer - templ->u.tex.first_layer + 1,
             &surf->u.zs);
@@ -1292,7 +1290,7 @@ ilo_state_vector_init(const struct ilo_dev *dev,
 {
    ilo_gpe_set_scissor_null(dev, &vec->scissor);
 
-   ilo_gpe_init_zs_surface(dev, NULL, NULL, PIPE_TEXTURE_2D,
+   ilo_gpe_init_zs_surface(dev, NULL, NULL,
          PIPE_FORMAT_NONE, 0, 0, 1, &vec->fb.null_zs);
 
    util_dynarray_init(&vec->global_binding.bindings);