From: Nicolai Hähnle Date: Sun, 13 Mar 2016 20:06:15 +0000 (-0500) Subject: tgsi/scan: track which shader images are really buffers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=457f9c6b25240795039b1827876a3af5ffa2155b;p=mesa.git tgsi/scan: track which shader images are really buffers Reviewed-by: Ilia Mirkin Reviewed-by: Marek Olšák --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index dee6884d14d..65bdab5b1cd 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -427,6 +427,9 @@ scan_declaration(struct tgsi_shader_info *info, } } else if (file == TGSI_FILE_SAMPLER) { info->samplers_declared |= 1 << reg; + } else if (file == TGSI_FILE_IMAGE) { + if (fulldecl->Image.Resource == TGSI_TEXTURE_BUFFER) + info->images_buffers |= 1 << reg; } } } diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h index f52729ae2d2..d777f23749b 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h @@ -122,6 +122,10 @@ struct tgsi_shader_info * Indirect image accesses are not reflected in this mask. */ unsigned images_writemask; + /** + * Bitmask indicating which declared image is a buffer. + */ + unsigned images_buffers; /** * Bitmask indicating which register files are accessed with * indirect addressing. The bits are (1 << TGSI_FILE_x), etc.