vc4: Respect a sampler view's first_layer field.
authorEric Anholt <eric@anholt.net>
Tue, 7 Aug 2018 19:59:14 +0000 (12:59 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 8 Aug 2018 00:00:22 +0000 (17:00 -0700)
Fixes texturing from EGL images created from cubemap faces, as in
dEQP-EGL.functional.image.create.gles2_cubemap_negative_x_rgba_texture

Cc: mesa-stable@lists.freedesktop.org
src/gallium/drivers/vc4/vc4_state.c

index 408a9e0af2a478fb5d7bdaf57087affbcb096c32..1e4657a79227394084dcc8a13eefb1e75f517cc6 100644 (file)
@@ -614,7 +614,9 @@ vc4_create_sampler_view(struct pipe_context *pctx, struct pipe_resource *prsc,
         }
 
         so->texture_p0 =
-                (VC4_SET_FIELD(rsc->slices[0].offset >> 12, VC4_TEX_P0_OFFSET) |
+                (VC4_SET_FIELD((rsc->slices[0].offset +
+                                cso->u.tex.first_layer *
+                                rsc->cube_map_stride) >> 12, VC4_TEX_P0_OFFSET) |
                  VC4_SET_FIELD(rsc->vc4_format & 15, VC4_TEX_P0_TYPE) |
                  VC4_SET_FIELD(so->force_first_level ?
                                cso->u.tex.last_level :