* For RG32F, gather4's channel select is broken.
*/
uint16_t gather_channel_quirk_mask;
+
+ /**
+ * Whether this sampler uses the compressed multisample surface layout.
+ */
+ uint16_t compressed_multisample_layout_mask;
};
#ifdef __cplusplus
#include "main/samplerobj.h"
#include "program/prog_parameter.h"
#include "program/program.h"
+#include "intel_mipmap_tree.h"
#include "glsl/ralloc.h"
if (img->InternalFormat == GL_RG32F)
key->gather_channel_quirk_mask |= 1 << s;
}
+
+ /* If this is a multisample sampler, and uses the CMS MSAA layout,
+ * then we need to emit slightly different code to first sample the
+ * MCS surface.
+ */
+ struct intel_texture_object *intel_tex =
+ intel_texture_object((struct gl_texture_object *)t);
+
+ if (brw->gen >= 7 &&
+ intel_tex->mt->msaa_layout == INTEL_MSAA_LAYOUT_CMS) {
+ key->compressed_multisample_layout_mask |= 1 << s;
+ }
}
}
}