st/mesa: revalidate image atoms when a texture is updated

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>
This commit is contained in:
Ilia Mirkin 2016-06-04 13:25:35 -04:00
parent 71ad8a173f
commit c81b090c92

View file

@ -148,7 +148,7 @@ static void bind_vs_images(struct st_context *st)
const struct st_tracked_state st_bind_vs_images = { const struct st_tracked_state st_bind_vs_images = {
"st_bind_vs_images", "st_bind_vs_images",
{ {
0, _NEW_TEXTURE,
ST_NEW_VERTEX_PROGRAM | ST_NEW_IMAGE_UNITS, ST_NEW_VERTEX_PROGRAM | ST_NEW_IMAGE_UNITS,
}, },
bind_vs_images 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 = { const struct st_tracked_state st_bind_fs_images = {
"st_bind_fs_images", "st_bind_fs_images",
{ {
0, _NEW_TEXTURE,
ST_NEW_FRAGMENT_PROGRAM | ST_NEW_IMAGE_UNITS, ST_NEW_FRAGMENT_PROGRAM | ST_NEW_IMAGE_UNITS,
}, },
bind_fs_images 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 = { const struct st_tracked_state st_bind_gs_images = {
"st_bind_gs_images", "st_bind_gs_images",
{ {
0, _NEW_TEXTURE,
ST_NEW_GEOMETRY_PROGRAM | ST_NEW_IMAGE_UNITS, ST_NEW_GEOMETRY_PROGRAM | ST_NEW_IMAGE_UNITS,
}, },
bind_gs_images 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 = { const struct st_tracked_state st_bind_tcs_images = {
"st_bind_tcs_images", "st_bind_tcs_images",
{ {
0, _NEW_TEXTURE,
ST_NEW_TESSCTRL_PROGRAM | ST_NEW_IMAGE_UNITS, ST_NEW_TESSCTRL_PROGRAM | ST_NEW_IMAGE_UNITS,
}, },
bind_tcs_images 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 = { const struct st_tracked_state st_bind_tes_images = {
"st_bind_tes_images", "st_bind_tes_images",
{ {
0, _NEW_TEXTURE,
ST_NEW_TESSEVAL_PROGRAM | ST_NEW_IMAGE_UNITS, ST_NEW_TESSEVAL_PROGRAM | ST_NEW_IMAGE_UNITS,
}, },
bind_tes_images 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 = { const struct st_tracked_state st_bind_cs_images = {
"st_bind_cs_images", "st_bind_cs_images",
{ {
0, _NEW_TEXTURE,
ST_NEW_COMPUTE_PROGRAM | ST_NEW_IMAGE_UNITS, ST_NEW_COMPUTE_PROGRAM | ST_NEW_IMAGE_UNITS,
}, },
bind_cs_images bind_cs_images