st/mesa: revalidate image atoms when a texture is updated
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 4 Jun 2016 17:25:35 +0000 (13:25 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Tue, 7 Jun 2016 14:18:34 +0000 (10:18 -0400)
A texture may be redefined with _NEW_TEXTURE, which might have been
bound to a shader image slot. We have to revalidate the image atoms to
pick up on the new resource.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
src/mesa/state_tracker/st_atom_image.c

index 9b8f5059ac0e2ede1a2061cc221a8e0684241fe5..f8a0044c24215f9d333c7f44b13d892de90f0353 100644 (file)
@@ -148,7 +148,7 @@ static void bind_vs_images(struct st_context *st)
 const struct st_tracked_state st_bind_vs_images = {
    "st_bind_vs_images",
    {
-      0,
+      _NEW_TEXTURE,
       ST_NEW_VERTEX_PROGRAM | ST_NEW_IMAGE_UNITS,
    },
    bind_vs_images
@@ -168,7 +168,7 @@ static void bind_fs_images(struct st_context *st)
 const struct st_tracked_state st_bind_fs_images = {
    "st_bind_fs_images",
    {
-      0,
+      _NEW_TEXTURE,
       ST_NEW_FRAGMENT_PROGRAM | ST_NEW_IMAGE_UNITS,
    },
    bind_fs_images
@@ -188,7 +188,7 @@ static void bind_gs_images(struct st_context *st)
 const struct st_tracked_state st_bind_gs_images = {
    "st_bind_gs_images",
    {
-      0,
+      _NEW_TEXTURE,
       ST_NEW_GEOMETRY_PROGRAM | ST_NEW_IMAGE_UNITS,
    },
    bind_gs_images
@@ -208,7 +208,7 @@ static void bind_tcs_images(struct st_context *st)
 const struct st_tracked_state st_bind_tcs_images = {
    "st_bind_tcs_images",
    {
-      0,
+      _NEW_TEXTURE,
       ST_NEW_TESSCTRL_PROGRAM | ST_NEW_IMAGE_UNITS,
    },
    bind_tcs_images
@@ -228,7 +228,7 @@ static void bind_tes_images(struct st_context *st)
 const struct st_tracked_state st_bind_tes_images = {
    "st_bind_tes_images",
    {
-      0,
+      _NEW_TEXTURE,
       ST_NEW_TESSEVAL_PROGRAM | ST_NEW_IMAGE_UNITS,
    },
    bind_tes_images
@@ -248,7 +248,7 @@ static void bind_cs_images(struct st_context *st)
 const struct st_tracked_state st_bind_cs_images = {
    "st_bind_cs_images",
    {
-      0,
+      _NEW_TEXTURE,
       ST_NEW_COMPUTE_PROGRAM | ST_NEW_IMAGE_UNITS,
    },
    bind_cs_images