On 08.06.2016 01:03, Ilia Mirkin wrote:
On Tue, Jun 7, 2016 at 7:00 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote:
@@ -2554,16 +2564,23 @@ st_finalize_texture(struct gl_context *ctx,
           /* Need to import images in main memory or held in other textures.
            */
           if (stImage && stObj->pt != stImage->pt) {
-            GLuint height = stObj->height0;
-            GLuint depth = stObj->depth0;
+            GLuint height;
+            GLuint depth;

              if (stObj->base.Target != GL_TEXTURE_1D_ARRAY)
-               height = u_minify(height, level);
+               height = u_minify(ptHeight, level);
+            else
+               height = ptLayers;
+
              if (stObj->base.Target == GL_TEXTURE_3D)
-               depth = u_minify(depth, level);
+               depth = u_minify(ptDepth, level);
+            else if (stObj->base.Target == GL_TEXTURE_CUBE_MAP)
+               depth = 1;

Should this be 6? If not, should you divide ptLayers by 6 for CUBE_MAP_ARRAY?

[haven't carefully grok'd what you're doing... just observed this inconsistency]

This code is trying to be the inverse of st_gl_texture_dims_to_pipe_dims. Cube maps have GL depth == 1, but cube map arrays have GL depth == number of Gallium layers. The inconsistency is part of OpenGL...

Nicolai


+            else
+               depth = ptLayers;

              if (level == 0 ||
-                (stImage->base.Width == u_minify(stObj->width0, level) &&
+                (stImage->base.Width == u_minify(ptWidth, level) &&
                   stImage->base.Height == height &&
                   stImage->base.Depth == depth)) {
                 /* src image fits expected dest mipmap level size */
@@ -2599,10 +2616,6 @@ st_AllocTextureStorage(struct gl_context *ctx,

     assert(levels > 0);

-   /* Save the level=0 dimensions */
-   stObj->width0 = width;
-   stObj->height0 = height;
-   stObj->depth0 = depth;
     stObj->lastLevel = levels - 1;

     fmt = st_mesa_format_to_pipe_format(st, texImage->TexFormat);
@@ -2740,9 +2753,6 @@ st_TextureView(struct gl_context *ctx,
     tex->surface_format =
        st_mesa_format_to_pipe_format(st_context(ctx), image->TexFormat);

-   tex->width0 = image->Width;
-   tex->height0 = image->Height;
-   tex->depth0 = image->Depth;
     tex->lastLevel = numLevels - 1;

     return GL_TRUE;
diff --git a/src/mesa/state_tracker/st_manager.c 
b/src/mesa/state_tracker/st_manager.c
index a983d64..33f56ea 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -587,9 +587,6 @@ st_context_teximage(struct st_context_iface *stctxi,
     }

     pipe_resource_reference(&stImage->pt, tex);
-   stObj->width0 = width;
-   stObj->height0 = height;
-   stObj->depth0 = depth;
     stObj->surface_format = pipe_format;

     _mesa_dirty_texobj(ctx, texObj);
diff --git a/src/mesa/state_tracker/st_texture.h 
b/src/mesa/state_tracker/st_texture.h
index d8cd7c7..ae9e2b4 100644
--- a/src/mesa/state_tracker/st_texture.h
+++ b/src/mesa/state_tracker/st_texture.h
@@ -79,12 +79,6 @@ struct st_texture_object
      */
     GLuint lastLevel;

-   /** The size of the level=0 mipmap image.
-    * Note that the number of 1D array layers will be in height0 and the
-    * number of 2D array layers will be in depth0, as in GL.
-    */
-   GLuint width0, height0, depth0;
-
     /* On validation any active images held in main memory or in other
      * textures will be copied to this texture and the old storage freed.
      */
diff --git a/src/mesa/state_tracker/st_vdpau.c 
b/src/mesa/state_tracker/st_vdpau.c
index 08f2553..dffa52f 100644
--- a/src/mesa/state_tracker/st_vdpau.c
+++ b/src/mesa/state_tracker/st_vdpau.c
@@ -238,9 +238,6 @@ st_vdpau_map_surface(struct gl_context *ctx, GLenum target, 
GLenum access,
     sampler_view = st_texture_get_sampler_view(st, stObj);
     *sampler_view = st->pipe->create_sampler_view(st->pipe, res, &templ);

-   stObj->width0 = res->width0;
-   stObj->height0 = res->height0;
-   stObj->depth0 = 1;
     stObj->surface_format = res->format;

     _mesa_dirty_texobj(ctx, texObj);
--
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to